Jag har nu bemästrat funktionen "GetLinkFeatherChar" och till en början fått till 3 gröna (Kör 40, kort tågväg)
I function BaseInitialise() så lade jag till följande rader.
Kod:
-- Get link character and store it as "gIndicator".
gLinkFeatherChar = 0
gIndicator = ""
-- If we're connected to a valid link and the signal isn't red
if gConnectedLink > 0 then
-- Check what indicator (if any) is used by that route
gLinkFeatherChar = Call("GetLinkFeatherChar", gConnectedLink)
-- If route has a valid indicator, turn its ID into a string
if gLinkFeatherChar ~= 0 then
gIndicator = string.char(gLinkFeatherChar)
else
gIndicator = ""
end
end
Koden ovan gör att man hämtar ACII-värdet av tecknet du skrev in i A-rutan, konverterar det till ett tecken eller sträng och förvarar det i gIndicator. detta kan justeras per länk.
Sen längst ner i SetSignalState() lade jag till följande rader:
Kod:
if (gIndicator == "K") or (gIndicator == "k") then
gLightOn = 1
else
gLightOn = 0
end
och sedan i rad 110:
Kod:
elseif (gSignalState == STATE_SLOW) then
SwitchLight( LIGHT_NODE_GREEN, 1 )
SwitchLight( LIGHT_NODE_RED, 0 )
SwitchLight( LIGHT_NODE_GREEN2, 1 )
SwitchLight( LIGHT_NODE_WHITE, 0 )
SwitchLight( LIGHT_NODE_GREEN3, gLightOn )
om du har skrivit in bokstaven K i a-rutan för en länk så kommer alltså signalen att visa "KÖR 40, kort tågväg" istället för KÖR 40.
Det var ett h-vete, men man lär sig varje dag!

EDIT: Det innehåller lite buggar, det uppdateras inte i realtid, fel signalbild kan visas. :/