# Indicatore alto di partenza, da accoppiare come avviso a un segnale di partenza
# lontano da dove i treni si fermano in stazione; si accende se il segnale succes-
# sivo è acceso e non rosso (ATTENZIONE: non ci devono essere scambi in mezzo).
# L'aspetto è lampeggiante se il segnale a valle del suo è spento.
#
# Aspetti: spento (stop), acceso (on), lampeggiante (flashing)

# Pure distant signal implementing the departure indicator, to be placed before an
# exit signal when the latter is far from where the trains stop in the station.
# It lights up whenever the next signal is lit and not red (WARNING: no swithches
# can be in between). The aspect is flashing if the signal next to its own is unlit.
#
# Aspects: stop (off), on, flashing

# P.Rosati  21/01/2021 (Versione 5.1)

Aspect: stop
	IconE: IP_off_E.xpm
	IconW: IP_off_W.xpm
	IconN: IP_off_N.xpm
	IconS: IP_off_S.xpm
	Action: none

Aspect: on
	IconE: IP_on_E.xpm
	IconW: IP_on_W.xpm
	IconN: IP_on_N.xpm
	IconS: IP_on_S.xpm
	Action: none

Aspect: flashing
	IconE: IP_on_E.xpm IP_off_E.xpm
	IconW: IP_on_W.xpm IP_off_W.xpm
	IconN: IP_on_N.xpm IP_off_N.xpm
	IconS: IP_on_S.xpm IP_off_S.xpm
	Action: none

# initial aspect

OnInit:
	.aspect = stop
end

# the player or a script cleared the signal

OnCleared:
	return
end

# this or another signal changed its aspect

OnUpdate:
	# Se il suo segnale è R o spento, sta spento
	# If its signal is R or unlit, stay off
	if next.aspect = red or next.aspect = off or next.aspect = disabled or next.aspect = fault
		.aspect = stop
		return
	end
	# Se il suo è S e quello oltre il suo è spento, lampeggia
	# If its signal is S, and the one beyond is unlit, flashes
	if next.aspect = shunt and next.next.script < "rfi_LM" or next.next.script > "rfi_LN"
		if next.next.aspect = disabled or next.next.aspect = off
			.aspect = flashing
			return
		end
	end
	.aspect = on
end

# a train passed the signal

OnCross:
	return
end
