# Segnale di avviso seguito da protezione specifica per PL con barriere.
# Gli aspetti non corrispondono ai nomi, perché questo segnale può essere usato
# ovunque (nascosto) per "mascherare" qulunque segnale imperativo che lo segue,
# così i segnali precedenti vedranno sempre la linea libera. Versione piccola.
#
# Aspetti: G  (segnale del PL spento - segnale mascherato spento)
#          V  (PL chiuso - segnale mascherato aperto)
#          Gx (PL aperto - segnale mascherato chiuso)

# Pure distant specific for level crossings with gates, to be followed by an LC
# protection signal. The aspects don't match their names, as this signal can be
# used anywhere (hidden) to mask the main signal that follows to the preceding
# signals, which will always "see" a clear line. Smaller version.
#
# Aspects: Y  (LC signal unlit - masked signal unlit)
#          G  (LC gates closed - masked signal clear)
#          Yx (LC gates open   - masked signal unclear)

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

Aspect: yellow
	IconE: LT_b_E.xpm
	IconW: LT_b_W.xpm
	IconN: LT_b_N.xpm
	IconS: LT_b_S.xpm
	Action: none

Aspect: yellow_flashing
	IconE: LT_y_E.xpm
	IconW: LT_y_W.xpm
	IconN: LT_y_N.xpm
	IconS: LT_y_S.xpm
	Action: none

Aspect: green
	IconE: LT_g_E.xpm
	IconW: LT_g_W.xpm
	IconN: LT_g_N.xpm
	IconS: LT_g_S.xpm
	Action: none

# initial aspect

OnInit:
	.aspect = yellow_flashing
end

# the player or a script cleared the signal

OnCleared:
	return
end

# this or another signal changed its aspect

OnUpdate:
	if next.aspect = closed
		.aspect = green
		return
	end
	# Si controllano vari aspetti, perché questo segnale può essere usato per mascherarne altri
	# Many aspects are checked, as this signal may be used also to mask other signals
	if next.aspect = clear_off or next.aspect = unclear_off or next.aspect = off or next.aspect = fault
		.aspect = yellow
		return
	end
	if next.aspect = clear_not_closed or next.aspect = unclear_not_closed or next.aspect = red or next.aspect = shunt or next.aspect = red_yellow_yellow or next.color = white
		.aspect = yellow_flashing
	else
		.aspect = green
	end
end

# a train passed the signal

OnCross:
	return
end
