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

'Rollbandanimation für ein SD83-Rollband (Ziffern und Ziel automatisch)

'(c) 11.10.2010 Rüdiger Hülsmann
'(c) 29.06.2011 Marcel Kuhnt


'Script Version: 1.5
'Omsi release: 1.0

'Needs:
'- none


'Revision History:
'- Rüdiger Hülsmann		11.10.2010	File created (based on rollband.osc)
'- Rüdiger Hülsmann		17.10.2010	line offset added
'- Rüdiger Hülsmann		23.10.2010	line offset bugfixed
'- Marcel Kuhnt			03.02.2011	/^\ corrected
'- Marcel Kuhnt		13.10.2013	Neuer Seitenschildpfad

'------------------------------------------------------------------------------------------
'Spezielle SD83-Trigger:

{trigger:rlbnd_ziel_select_100_+}
	1 (S.L.rlbnd_ziel_select_100_+_pressed)
	(L.L.rlbnd_ziel_select_100_rolle) 1 + (S.L.rlbnd_ziel_select_100_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_100)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_100_+_off}
	0 (S.L.rlbnd_ziel_select_100_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_ziel_select_10_+}
	1 (S.L.rlbnd_ziel_select_10_+_pressed)
	(L.L.rlbnd_ziel_select_10_rolle) 1 + (S.L.rlbnd_ziel_select_10_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_10)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_10_+_off}
	0 (S.L.rlbnd_ziel_select_10_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_ziel_select_1_+}
	1 (S.L.rlbnd_ziel_select_1_+_pressed)
	(L.L.rlbnd_ziel_select_1_rolle) 1 + (S.L.rlbnd_ziel_select_1_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_1)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_1_+_off}
	0 (S.L.rlbnd_ziel_select_1_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_100_+}
	1 (S.L.rlbnd_linie_select_100_+_pressed)
	(L.L.rlbnd_linie_select_100_rolle) 1 + (S.L.rlbnd_linie_select_100_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_100)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_100_+_off}
	0 (S.L.rlbnd_linie_select_100_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_10_+}
	1 (S.L.rlbnd_linie_select_10_+_pressed)
	(L.L.rlbnd_linie_select_10_rolle) 1 + (S.L.rlbnd_linie_select_10_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_10)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_10_+_off}
	0 (S.L.rlbnd_linie_select_10_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_1_+}
	1 (S.L.rlbnd_linie_select_1_+_pressed)
	(L.L.rlbnd_linie_select_1_rolle) 1 + (S.L.rlbnd_linie_select_1_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_1)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_1_+_off}
	0 (S.L.rlbnd_linie_select_1_+_pressed)
	(T.L.rlbnd_taste_aus)
{end}




{trigger:rlbnd_ziel_select_100_-}
	1 (S.L.rlbnd_ziel_select_100_-_pressed)
	(L.L.rlbnd_ziel_select_100_rolle) 1 - (S.L.rlbnd_ziel_select_100_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_100)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_100_-_off}
	0 (S.L.rlbnd_ziel_select_100_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_ziel_select_10_-}
	1 (S.L.rlbnd_ziel_select_10_-_pressed)
	(L.L.rlbnd_ziel_select_10_rolle) 1 - (S.L.rlbnd_ziel_select_10_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_10)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_10_-_off}
	0 (S.L.rlbnd_ziel_select_10_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_ziel_select_1_-}
	1 (S.L.rlbnd_ziel_select_1_-_pressed)
	(L.L.rlbnd_ziel_select_1_rolle) 1 - (S.L.rlbnd_ziel_select_1_rolle) s0
	10 % s1
	s0 0 <
	{if}
		l1 10 + s1
	{endif}
	l1 (S.L.rlbnd_ziel_select_1)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_select_1_-_off}
	0 (S.L.rlbnd_ziel_select_1_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_100_-}
	1 (S.L.rlbnd_linie_select_100_-_pressed)
	(L.L.rlbnd_linie_select_100_rolle) 1 - (S.L.rlbnd_linie_select_100_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_100)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_100_-_off}
	0 (S.L.rlbnd_linie_select_100_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_10_-}
	1 (S.L.rlbnd_linie_select_10_-_pressed)
	(L.L.rlbnd_linie_select_10_rolle) 1 - (S.L.rlbnd_linie_select_10_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_10)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_10_-_off}
	0 (S.L.rlbnd_linie_select_10_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_select_1_-}
	1 (S.L.rlbnd_linie_select_1_-_pressed)
	(L.L.rlbnd_linie_select_1_rolle) 1 - (S.L.rlbnd_linie_select_1_rolle) s0
	16 % s1
	s0 0 <
	{if}
		l1 16 + s1
	{endif}
	l1 (S.L.rlbnd_linie_select_1)
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_select_1_-_off}
	0 (S.L.rlbnd_linie_select_1_-_pressed)
	(T.L.rlbnd_taste_aus)
{end}


'Start-Trigger

{trigger:rlbnd_ziel_start}
	1 (S.L.rlbnd_ziel_start_pressed)
	(L.L.elec_busbar_main)
	{if}
		(L.L.rlbnd_ziel_select_target) (S.L.rlbnd_ziel_target)
	{endif}
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_ziel_start_off}
	0 (S.L.rlbnd_ziel_start_pressed)
	(T.L.rlbnd_taste_aus)
{end}


{trigger:rlbnd_linie_start}
	1 (S.L.rlbnd_linie_start_pressed)
	(L.L.elec_busbar_main)
	{if}
		(L.L.rlbnd_linie_select_100) (S.L.rlbnd_ln1_target)
		(L.L.rlbnd_linie_select_10) (S.L.rlbnd_ln2_target)
		(L.L.rlbnd_linie_select_1) (S.L.rlbnd_ln3_target)
	{endif}
	(T.L.rlbnd_taste_ein)
{end}

{trigger:rlbnd_linie_start_off}
	0 (S.L.rlbnd_linie_start_pressed)
	(T.L.rlbnd_taste_aus)
{end}



'Rollband-Standardtrigger


{trigger:rollband_sync}
	1 (S.L.rlbnd_sync_pressed) 
	(T.L.rlbnd_taste_ein)
	(L.L.elec_busbar_main)
	{if}
		(S.L.rlbnd_running_dn)
		0 (S.L.rlbnd_ziel_target)
	{endif}
{end}

{trigger:rollband_sync_off}
	0 (S.L.rlbnd_sync_pressed)
	(T.L.rlbnd_taste_aus)
{end}


'*******************************************
' Trigger für Tastaturbedienung

' Braucht der SD83 nicht

'****************************************************************
'**  MCQ 24.5.2009 - Trigger für AI-Scheduled-Initialisierung: **
'****************************************************************

{trigger:ai_scheduled_settarget}

'Hier wird das automatische Rollband eingestellt:
	1 (S.L.elec_busbar_main_sw)
	1.0 (S.L.elec_V_battery)
	(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.rlbnd_steckschild_index)
		l0 (S.L.rlbnd_steckschild_Termindex)
'Rollband auf 0:
		0 (S.L.rlbnd_ziel_target)
	{else}
		l0 (S.L.rlbnd_ziel_target)
		-1 (S.L.rlbnd_steckschild_Termindex)

'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.rlbnd_steckschild_index)
			l0 (S.L.rlbnd_steckschild_Termindex)			
		{endif}

	{endif}
	(M.L.rollband_setsteckschild)

'	Und gleich "schnell" gekurbelt: (aber +0.1, damit das Zielband noch aktualisiert wird)
	(L.L.rlbnd_ziel_target) 0.1 + (S.L.rlbnd_ziel)

'Hier werden die Nummernrollbänder eingestellt:

'Nummern-String holen:


'Vorgehensweise pro Ziffer: zunächst wird die Ziffer "ausgeschnitten", dann jeweils dubliziert, damit
'jeweils ein Exemplar der ausgeschnittenen Ziffer im Cache bleibt (die andere geht beim $= verloren)

'1. Ziffer:

	(L.$.SetLineTo) 1 $SetLengthL		$d

	" " $=		{if}	 0 s1	{endif} $d
	"N" $=		{if}	 2 s1	{endif} $d
	"g" $=		{if}	 3 s1	{endif} $d
	"0" $=		{if}	 4 s1	{endif} $d
	"1" $=		{if}	 5 s1	{endif} $d
	"2" $=		{if}	 6 s1	{endif} $d
	"3" $=		{if}	 7 s1	{endif} $d
	"4" $=		{if}	 8 s1	{endif} $d
	"5" $=		{if}     9 s1	{endif} $d
	"6" $=		{if}	10 s1	{endif} $d
	"7" $=		{if}	11 s1	{endif} $d
	"8" $=		{if}	12 s1	{endif} $d
	"9" $=		{if}	13 s1	{endif} $d
	"/" $=		{if}	14 s1	{endif}

'2. Ziffer:

	(L.$.SetLineTo) 2 $SetLengthL 1 $SetLengthR		$d

	" " $=		{if}	 0 s2	{endif} $d
	"E" $=		{if}	 1 s2	{endif} $d
	"h" $=		{if}	 3 s2	{endif} $d
	"0" $=		{if}	 4 s2	{endif} $d
	"1" $=		{if}	 5 s2	{endif} $d
	"2" $=		{if}	 6 s2	{endif} $d
	"3" $=		{if}	 7 s2	{endif} $d
	"4" $=		{if}	 8 s2	{endif} $d
	"5" $=		{if}     9 s2	{endif} $d
	"6" $=		{if}	10 s2	{endif} $d
	"7" $=		{if}	11 s2	{endif} $d
	"8" $=		{if}	12 s2	{endif} $d
	"9" $=		{if}	13 s2	{endif} $d
	"^" $=		{if}	14 s2	{endif} 

'3. Ziffer:

	(L.$.SetLineTo) 3 $SetLengthL 1 $SetLengthR		$d

	" " $=		{if}	 0 s3	{endif} $d
	"E" $=		{if}	 1 s3	{endif} $d
	"N" $=		{if}	 2 s3	{endif} $d
	"0" $=		{if}	 4 s3	{endif} $d
	"1" $=		{if}	 5 s3	{endif} $d
	"2" $=		{if}	 6 s3	{endif} $d
	"3" $=		{if}	 7 s3	{endif} $d
	"4" $=		{if}	 8 s3	{endif} $d
	"5" $=		{if}     9 s3	{endif} $d
	"6" $=		{if}	10 s3	{endif} $d
	"7" $=		{if}	11 s3	{endif} $d
	"8" $=		{if}	12 s3	{endif} $d
	"9" $=		{if}	13 s3	{endif} $d
	"\" $=		{if}	14 s3	{endif} 


' Das ultimative Sahnehäubchen: die drei Rollbänder werden noch zufällig verrutscht...! *ggg*

' Nöö, nicht beim SD83...

l1 (S.L.rlbnd_ln1_target) (S.L.rlbnd_ln1)
l2 (S.L.rlbnd_ln2_target) (S.L.rlbnd_ln2)
l3 (S.L.rlbnd_ln3_target) (S.L.rlbnd_ln3)


	(M.L.rollband_actu)

1 (S.L.rlbnd_refresh_seitenschild)

{end}

'********************************************************************
'**  MCQ 24.5.2009 - Ende Trigger für AI-Scheduled-Initialisierung **
'********************************************************************



'*******************************************
' Trigger für Seitenschild

{trigger:rlbnd_seitenschildklemme_drag}
	(L.S.mouse_y) -300 / (L.L.rlbnd_seitenschildklemme) + (S.L.rlbnd_seitenschildklemme) s0
	l0 0 <
	{if}
		0 (S.L.rlbnd_seitenschildklemme)
	{endif}
	l0 0.7 >
	{if}
		(L.L.rlbnd_seitenschild_refresh) 0 =
		{if}
			1 (S.L.rlbnd_seitenschild_refresh)
			(T.L.ev_fahrertuer_auf)
			(L.$.Rollband_Seitenschild) "" $=
			{if}
				1 (S.L.rlbnd_refresh_seitenschild)
			{else}
				"" (S.$.Rollband_Seitenschild)
			{endif}
		{endif}
	{endif}
	l0 1 >
	{if}
		1 (S.L.rlbnd_seitenschildklemme)
	{endif}
{end}

{trigger:rlbnd_seitenschildklemme_off}
	(L.L.rlbnd_seitenschildklemme)
	0.3 >
	{if}
		(T.L.ev_fahrertuer_zu)
	{endif}
	0 (S.L.rlbnd_seitenschildklemme)
	(S.L.rlbnd_seitenschild_refresh)
{end}

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

{trigger:bus_rollband_change_steckschild}
	(L.L.rlbnd_steckschild_index) 1 + (S.L.rlbnd_steckschild_index)
	1000 + (M.V.GetTerminusIndex) (S.L.rlbnd_steckschild_Termindex)

	(M.L.rollband_setsteckschild)
	(M.L.rollband_refreshIntIndex)
{end}

{macro:rollband_setsteckschild}
	(L.L.rlbnd_steckschild_Termindex) s0
	0 >= 
	{if}
		l0 6 (M.V.GetTerminusString) (S.$.Rollband_SchildFrnt)
		1 $SetLengthL $StrToFloat 1 max (S.L.rlbnd_steckschild_vis)
		"..\..\Anzeigen\SteckSchilder\" (L.$.Rollband_SchildFrnt) $+ (S.$.Rollband_SchildFrnt)
	{else}
		0 (S.L.rlbnd_steckschild_index) (S.L.rlbnd_steckschild_vis)
		""  (S.$.Rollband_SchildFrnt)
	{endif}
{end}


'----------------------
'	Init
'----------------------

{macro:rollband_init}
	0 (S.L.rlbnd_ziel_select_100) (S.L.rlbnd_ziel_select_10) (S.L.rlbnd_ziel_select_1) (S.L.rlbnd_linie_select_100) (S.L.rlbnd_linie_select_10) (S.L.rlbnd_linie_select_1) (S.L.rlbnd_linie_select_1_rolle) (S.L.rlbnd_linie_select_10_rolle) (S.L.rlbnd_linie_select_100_rolle) (S.L.rlbnd_ziel_select_1_rolle) (S.L.rlbnd_ziel_select_10_rolle) (S.L.rlbnd_ziel_select_100_rolle) (S.L.rlbnd_ziel_100) (S.L.rlbnd_ziel_10) (S.L.rlbnd_ziel_1) (S.L.rlbnd_ln1) (S.L.rlbnd_ln1_target) (S.L.rlbnd_ln2) (S.L.rlbnd_ln2_target) (S.L.rlbnd_ln3) (S.L.rlbnd_ln3_target) (S.L.rlbnd_ziel) (S.L.rlbnd_ziel_target)
	-1 (L.L.rlbnd_steckschild_Termindex)
	0 (S.L.rlbnd_steckschild_vis)
{end}

{macro:rollband_frame}

'	Zusammensetzen des Zielcodes aus den drei Eingabefeldern:

	(L.L.rlbnd_ziel_select_100) 100 * (L.L.rlbnd_ziel_select_10) 10 * + (L.L.rlbnd_ziel_select_1) + (S.L.rlbnd_ziel_select_target)


'	Hauptteil: Rollbandbewegung

	(L.L.elec_busbar_main)
	{if}
		(L.L.rlbnd_ziel_target) (L.L.rlbnd_ziel) =
		{if}
			(L.L.rlbnd_auf_pressed) 
			{if}
				(L.L.rlbnd_ziel_target) 1 + (S.L.rlbnd_ziel_target)
				1 (S.L.rlbnd_running) (S.L.rlbnd_running_up) 
				0 (S.L.rlbnd_running_dn)
				(T.L.rlbnd_klick)	
			{else}
	
				(L.L.rlbnd_ab_pressed) 
				{if}
					(L.L.rlbnd_ziel_target) 1 - (S.L.rlbnd_ziel_target)
					1 (S.L.rlbnd_running) (S.L.rlbnd_running_dn) 
					0 (S.L.rlbnd_running_up)
					(T.L.rlbnd_klick)
				{else}
					(L.L.rlbnd_running)
					{if}
						(T.L.rlbnd_klick)
					{endif}
					0 (S.L.rlbnd_running) (S.L.rlbnd_running_up) (S.L.rlbnd_running_dn)
				{endif}
			{endif}
		{else}
			1 (S.L.rlbnd_running)
			(L.L.rlbnd_ziel_target) (L.L.rlbnd_ziel) >
			{if}
				1 (S.L.rlbnd_running_up)
				0 (S.L.rlbnd_running_dn)
			{else}
				1 (S.L.rlbnd_running_dn)
				0 (S.L.rlbnd_running_up)
			{endif}
		{endif}


'		Hier muss unterschieden werden zwischen Auf und Ab, da das Zählwerk sofort nach Betätigung des Tasters umspringen soll:

		(L.L.rlbnd_ziel) trunc s0
		(L.L.rlbnd_ziel_target) (L.L.rlbnd_ziel) >
		{if}
			l0 1 + (S.L.rlbnd_ziel_1)
		{else}
		l0 (S.L.rlbnd_ziel_1)
		{endif}

		(L.L.rlbnd_ziel_1) 10 / trunc 
		(S.L.rlbnd_ziel_10)

		(L.L.rlbnd_ziel_10) 10 / trunc 
		(S.L.rlbnd_ziel_100)


'		Tickern des Zählwerks (tickert bei getrunctem Übersprung):

		(L.L.rlbnd_ziel) trunc s0 (L.L.rlbnd_last_ziel) = !
		{if}
			(T.L.rlbnd_klick)
		{endif}
		l0 (S.L.rlbnd_last_ziel)

'		Bewegung Linienbänder
		(L.S.timegap) (C.L.rlbnd_vmax) * s0 (L.L.rlbnd_ln1_target) (L.L.rlbnd_ln1) - l0 min s1 l0 /-/ l1 max s0
		0 = !
		{if}
			l0 (L.L.rlbnd_ln1) + (S.L.rlbnd_ln1)
			1 (S.L.rlbnd_ln1_running)
			(M.L.rollband_actu)
		{else}
			(L.L.rlbnd_ln1_running)
			{if}
				(L.L.rlbnd_ln1_target) (S.L.rlbnd_ln1)
				0 (S.L.rlbnd_ln1_running)
				(T.L.rlbnd_klick)
			{endif}		
		{endif}
		(L.S.timegap) (C.L.rlbnd_vmax) * s2 (L.L.rlbnd_ln2_target) (L.L.rlbnd_ln2) - l2 min s3 l2 /-/ l3 max s2
		0 = !
		{if}
			l2 (L.L.rlbnd_ln2) + (S.L.rlbnd_ln2)
			1 (S.L.rlbnd_ln2_running)
			(M.L.rollband_actu)
		{else}
			(L.L.rlbnd_ln2_running)
			{if}
				(L.L.rlbnd_ln2_target) (S.L.rlbnd_ln2)
				0 (S.L.rlbnd_ln2_running)
				(T.L.rlbnd_klick)
			{endif}	
		{endif}
		(L.S.timegap) (C.L.rlbnd_vmax) * s4 (L.L.rlbnd_ln3_target) (L.L.rlbnd_ln3) - l4 min s5 l4 /-/ l5 max s4
		0 = !
		{if}
			l4 (L.L.rlbnd_ln3) + (S.L.rlbnd_ln3)
			1 (S.L.rlbnd_ln3_running)
			(M.L.rollband_actu)
		{else}
			(L.L.rlbnd_ln3_running)
			{if}
				(L.L.rlbnd_ln3_target) (S.L.rlbnd_ln3)
				0 (S.L.rlbnd_ln3_running)
				(T.L.rlbnd_klick)
			{endif}	
		{endif}

		(L.L.rlbnd_ln1_running)
		(L.L.rlbnd_ln2_running) ||
		(L.L.rlbnd_ln3_running) ||
		(S.L.rlbnd_ln_running)

'		Sound für Linienbänder	
				
		(L.L.rlbnd_ln1_target) (L.L.rlbnd_ln1) >
		(L.L.rlbnd_ln2_target) (L.L.rlbnd_ln2) > ||
		(L.L.rlbnd_ln3_target) (L.L.rlbnd_ln3) > ||
		{if}
			1 (S.L.rlbnd_running_up)
		{else}
			(L.L.rlbnd_running) !
			{if}
				0 (S.L.rlbnd_running_up)
			{endif}
		{endif}

		(L.L.rlbnd_ln1_target) (L.L.rlbnd_ln1) <
		(L.L.rlbnd_ln2_target) (L.L.rlbnd_ln2) < ||
		(L.L.rlbnd_ln3_target) (L.L.rlbnd_ln3) < ||
		{if}
			1 (S.L.rlbnd_running_dn)
		{else}
			(L.L.rlbnd_running) !
			{if}
				0 (S.L.rlbnd_running_dn)
			{endif}
		{endif}
		(M.L.rollband_refresh_setLineTo)
	

	{else}
		0 (S.L.rlbnd_running) (S.L.rlbnd_running_dn) (S.L.rlbnd_running_up)
		(L.L.rlbnd_ziel) (S.L.rlbnd_ziel_target)
		(L.L.rlbnd_ln1_target) (S.L.rlbnd_ln1)
		(L.L.rlbnd_ln2_target) (S.L.rlbnd_ln2)
		(L.L.rlbnd_ln3_target) (S.L.rlbnd_ln3)
	{endif}







	(L.L.elec_busbar_main)
	{if}
		(L.S.Timegap) (C.L.rlbnd_vmax) * s0 (L.L.rlbnd_ziel_target) (L.L.rlbnd_ziel) - l0 min s1 l0 /-/ l1 max s0
		0 = !
		{if}

			l0 (L.L.rlbnd_ziel) + (S.L.rlbnd_ziel)

			(L.L.rlbnd_ziel) (S.L.target_index_int) trunc
'			(S.L.target_index_ext)
			/-/ (L.L.rlbnd_ziel) + (S.L.rlbnd_ziel_trans) 1 - (S.L.rlbnd_ziel_trans_2)
'			(L.L.target_texture) 1 + (S.L.target_texture_2)


'Aktualisierung der Strings für das Austauschen der Texturen:
			(L.L.rlbnd_ziel) trunc s0
			"..\..\Anzeigen\Rollband_SD79\" 1 (M.V.GetDepotStringGlobal) $+ "\" $+ (S.$.Rollband_Tex_H)
			l0 4 (M.V.GetTerminusString) $+ (S.$.Rollband_Tex_V)
			(L.$.Rollband_Tex_H) l0 1 + 4 (M.V.GetTerminusString) $+ (S.$.Rollband_Tex_H)

		{endif}
	{endif}

'Aktualisierung der Code-Tafel:

	"Linienlisten\" (L.$.yard) "_RLB.jpg" $+ $+ (S.$.Rollband_Linelist)


	(L.L.rlbnd_refresh_seitenschild)
	{if}
		"..\..\Anzeigen\Seitenschilder\" 2 (M.V.GetDepotStringGlobal) $+ "\" $+ (L.$.SetLineTo) $RemoveSpaces $+ ".bmp" $+ (S.$.Rollband_Seitenschild)
		0 (S.L.rlbnd_refresh_seitenschild)
	{endif}
{end}

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

{macro:rollband_actu}
	(L.L.rlbnd_ln1) trunc 0.001 + (S.L.rlbnd_ln1_bmp)
	/-/ (L.L.rlbnd_ln1) + 2 / (S.L.rlbnd_ln1_trans)

	(L.L.rlbnd_ln2) trunc 0.001 + (S.L.rlbnd_ln2_bmp)
	/-/ (L.L.rlbnd_ln2) + 2 / (S.L.rlbnd_ln2_trans)

	(L.L.rlbnd_ln3) trunc 0.001 + (S.L.rlbnd_ln3_bmp)
	/-/ (L.L.rlbnd_ln3) + 2 / (S.L.rlbnd_ln3_trans)
{end}

{macro:rollband_refresh_setLineTo}


	(L.L.rlbnd_ln1) s0
	l0 0.5 <	{if}	" " 	{else}
	l0 1.5 <	{if}	" " 	{else}
	l0 2.5 <	{if}	"N" 	{else}
	l0 3.5 <	{if}	"g" 	{else}
	l0 4.5 <	{if}	"0" 	{else}
	l0 5.5 <	{if}	"1" 	{else}
	l0 6.5 <	{if}	"2" 	{else}
	l0 7.5 <	{if}	"3" 	{else}
	l0 8.5 <	{if}	"4" 	{else}
	l0 9.5 <	{if}	"5" 	{else}
	l0 10.5 <	{if}	"6" 	{else}
	l0 11.5 <	{if}	"7" 	{else}
	l0 12.5 <	{if}	"8" 	{else}
	l0 13.5 <	{if}	"9" 	{else}
	l0 14.5 <	{if}	"/" 	{else}	
	" "
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}

	(L.L.rlbnd_ln2) s0
	l0 0.5 <	{if}	" " 	{else}
	l0 1.5 <	{if}	"E" 	{else}
	l0 2.5 <	{if}	" " 	{else}
	l0 3.5 <	{if}	"h" 	{else}
	l0 4.5 <	{if}	"0" 	{else}
	l0 5.5 <	{if}	"1" 	{else}
	l0 6.5 <	{if}	"2" 	{else}
	l0 7.5 <	{if}	"3" 	{else}
	l0 8.5 <	{if}	"4" 	{else}
	l0 9.5 <	{if}	"5" 	{else}
	l0 10.5 <	{if}	"6" 	{else}
	l0 11.5 <	{if}	"7" 	{else}
	l0 12.5 <	{if}	"8" 	{else}
	l0 13.5 <	{if}	"9" 	{else}
	l0 14.5 <	{if}	"^" 	{else}	
	" "
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}			$+

	(L.L.rlbnd_ln3) s0
	l0 0.5 <	{if}	" " 	{else}
	l0 1.5 <	{if}	"E" 	{else}
	l0 2.5 <	{if}	"N" 	{else}
	l0 3.5 <	{if}	" " 	{else}
	l0 4.5 <	{if}	"0" 	{else}
	l0 5.5 <	{if}	"1" 	{else}
	l0 6.5 <	{if}	"2" 	{else}
	l0 7.5 <	{if}	"3" 	{else}
	l0 8.5 <	{if}	"4" 	{else}
	l0 9.5 <	{if}	"5" 	{else}
	l0 10.5 <	{if}	"6" 	{else}
	l0 11.5 <	{if}	"7" 	{else}
	l0 12.5 <	{if}	"8" 	{else}
	l0 13.5 <	{if}	"9" 	{else}
	l0 14.5 <	{if}	"\" 	{else}	
	" "
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}
	{endif}			$+ (S.$.SetLineTo)
{end}
