Ist eigentlich recht simpel, autmatisches Routenumschalten zu verhindern, ich zeigs mal am Beispiel des Standard-IBIS:
relativ weit unten findet ihr diesen Abschnitt in der IBIS_2.osc (es handelt sich um die ersten Zeilen von {macro:IBIS_RefreshBusstop}:
(L.L.IBIS_RouteIndex) 0 <
{if}
"" (S.$.act_busstop)
{else}
(L.L.IBIS_RouteIndex) (M.V.GetBusstopCount) (L.L.IBIS_busstop) <=
{if}
'Wenn der Bushaltestellenindex größer oder gleich der Anzahl ist und somit zu groß (der Bushaltestellenindex ist wie alle Indizes nullbasiert),
'dann wechsele automatisch auf die Gegenroute, sofern der Index 01 oder 02 ist und der jeweilige andere Index existiert. Sonst belasse die Route.
0 (S.L.IBIS_busstop)
' Entwerter umstellen:
(T.L.ev_IBIS_entwerter)
(L.L.IBIS_busstop_entwerter_soll) (S.L.IBIS_busstop_entwerter_ist)
(L.L.IBIS_Route) s5
1.5 <
{if}
2 s6
{else}
l5 2.5 <
{if}
1 s6
{endif}
{endif}
'Suche den Routeindex:
(L.L.IBIS_LinieKurs) 100 * l6 + (M.V.GetRouteIndex) s1
0 >=
{if}
'Wenn gültig, dann wechsele:
(M.L.IBIS_SetRoute)
l6 (S.L.IBIS_Route)
(M.L.Fahrscheindrucker-Haltestelle)
{endif}
{else}
0 (S.L.IBIS_mode)
{endif}
{endif}
Alles anzeigen
Mal kurz für Laien übersetzt:
1. wenn keine Gültige Route ausgewählt ist (Routenindex 0), dann gibt's keine aktuelle Haltestelle.
2. Ansonsten, wenn die letzte Haltestelle erreicht ist, dann die Route wechseln, ansonsten einfach zurück in den Standard-Modus.
Was wir brauchen:
1. wenn keine Gültige Route ausgewählt ist (Routenindex 0), dann gibt's keine aktuelle Haltestelle.
2. Ansonsten, einfach zurück in den Standard-Modus.
Also muss der Abschnitt so aussehen:
(L.L.IBIS_RouteIndex) 0 <
{if}
"" (S.$.act_busstop)
{else}
0 (S.L.IBIS_mode)
{endif}
LG Niklas