'##############
'Rollband Script
'##############


'Simulates 90s style Full Matrix Line and Terminus Display (Type AEG Krüger)

'(c) 17.09.2013 Marcel Kuhnt

'Script Version: 1.0
'Omsi release: 2.0

'Needs:
'- Cockpit (Batterietrennschalter)
'- IBIS

'NrSpecRandom Seed Area:
'971: Anzahl der Fehlerpixel pro Jahr


'Revision History:
'- Marcel Kuhnt		29.09.2012	Created from scratch
'- Marcel Kuhnt		17.09.2013	Steckschilder für ausgewählte Ziele
'- Marcel Kuhnt		17.09.2013	Seitenschild
'- Marcel Kuhnt		13.10.2013	Neuer Seitenschildpfad
'- Marcel Kuhnt		20.12.2013	Bugfix: Steckschild-Init

'------------------------------------------------------------------------------------------

'*******************************************
' Trigger für Steckschild

{trigger:bus_matrix_change_steckschild}
	(L.L.emke_tp_route_index)  (M.V.GetRouteTerminusIndex) (M.V.GetTerminusCode) 1000 >
	{if}
		(L.L.emke_tp_route_index) (M.V.GetRouteTerminusIndex)  (S.L.matrix_steckschild_Termindex)
		 (M.V.GetTerminusCode) (S.L.matrix_steckschild_index)
	{else}
		(L.L.matrix_steckschild_index) 1 + (S.L.matrix_steckschild_index)
		1000 + (M.V.GetTerminusIndex) (S.L.matrix_steckschild_Termindex)
	{endif}
	

	(M.L.matrix_setsteckschild)
	(M.L.matrix_refreshIntIndex)
{end}

{trigger:bus_steckschild_hide}
	0 (S.L.matrix_steckschild_vis) (S.L.target_index_int)
{end}

{macro:Matrix_init}
	-1 (S.L.matrix_steckschild_Termindex)
	0 (S.L.matrix_steckschild_vis)
{end}


{trigger:ai_scheduled_settarget}

	(L.L.AI_target_index) s0 (M.V.GetTerminusCode) s1
'Wenn der Terminus-Code größer als 1000 ist, dann bitte Steckschild verwenden:
	1000 >
	{if}
		l1 1000 - (S.L.matrix_steckschild_index)
		l0 (S.L.matrix_steckschild_Termindex)
'Matrix auf 0:
		0 (S.L.IBIS_TerminusIndex) s2
	{else}

'Wenn der Bitmap-String in Verwendung ist, dann den als Integer interpretieren und Steckschild zusätzlich setzen:
		l0 6 (M.V.GetTerminusString) $StrToFloat s1
		l1 1000 >
		{if}
			l1 1000 - (S.L.matrix_steckschild_index)
			l0 (S.L.matrix_steckschild_Termindex)			
		{endif}

	{endif}
	(M.L.matrix_setsteckschild)

{end}


{macro:matrix_setsteckschild}
	(L.L.matrix_steckschild_Termindex) s0
	0 >= 
	{if}
		l0 6 (M.V.GetTerminusString) (S.$.Matrix_SchildFrnt)
		1 $SetLengthL $StrToFloat 1 max (S.L.matrix_steckschild_vis) s3
		l3 1 >
		{if}
			1 (S.L.matrix_steckschild_vis)
		{endif}
		"..\..\Anzeigen\SteckSchilder\" (L.$.Matrix_SchildFrnt) $+ (S.$.Matrix_SchildFrnt) $msg
	{else}
		0 (S.L.matrix_steckschild_index) (S.L.matrix_steckschild_vis)
		""  (S.$.Matrix_SchildFrnt) (S.$.Matrix_SchildTop)
	{endif}
{end}


{macro:matrix_refreshIntIndex}
	(L.L.matrix_steckschild_Termindex) s0 0 >=
	l0 0 (M.V.GetTerminusString) "" $= ! &&
	{if}
		l0
	{else}
		(L.L.Matrix_TerminusAct)
	{endif}
	(S.L.target_index_int)
{end}

