Traffic hat zunehmend Probleme damit, wenn in einem Fahrplan ein Makro aufgerufen wird und im Makronamen ein Parameter eines Laufzeitmakros ist, um z. B. verschiedene Makros mit ähnlichen Namen aufrufen zu können.
Ich habe da mal einen kleinen Demo-Fahrplan gemacht, den ich mit Traffic 4.19, 4.26 und 4.39 testen konnte.
Code |
$DEF Testgarnitur1=SBB_10001GL,DB_4A_BUM234AL,DB_BM232PGL,DB_BM232PL[OT:DB_BM232PGL,2,12][NB:B,BA8][NT:P][B:245,8,2,1,#6E6E6E][B:141,10,1,1,#581515]
$DEF Testgarnitur2=(Test)garnitur1
$DEF Testgarnitur3=($1)garnitur1
%*DEF(Testgarnitur4(Namensteil)=%Namensteil;garnitur1)
%*DEF(Testgarnitur5(Namensteil)=(%Namensteil;)garnitur1)
TX=Laufzeitmakro ohne Namensteil;V=25;C=Testgarnitur1
TX=Laufzeitmakro, Namensteil in Klammern ausgeschrieben;V=25;C=Testgarnitur2
TX=Laufzeitmakro, Namensteil als Parameter in Klammern;V=25;C=$Testgarnitur3(Test)
TX=Präprozessormakro, Namensteil als Parameter ohne Klammer;V=25;C=%Testgarnitur4(Test)
TX=Präprozessormakro, Namensteil als Parameter mit Klammer;V=25;C=%Testgarnitur5(Test)
|
Testgarnitur1 ist quasi die Basisgarnitur. Die funktioniert wunderbar.
Testgarnitur2 ist ein Laufzeitmakro und ruft Testgarnitur1 auf, aber mit einer Klammer im Makronamen. Funktioniert auch und soll eigentlich nur zeigen, daß die Klammern nicht das Problem sind.
Testgarnitur3 ist auch ein Laufzeitmakro, der Testgarnitur1 aufruft, aber mit einem Parameter. Der würde mehr Sinn ergeben, wenn es noch Makros wie "Versuchsgarnitur1" und "Probegarnitur1" gäbe; da könnte man jedes davon wahlweise mit demselben Makro aufrufen.
Und dieses Makro macht Probleme:
Die Lok hat eine Stromabnehmersteuerung mit
. Beide Stromabnehmer sind abgezogen. Das hat in Traffic 4.19 auch schon nicht funktioniert.
Der erste Wagen hat eine Fenstersteuerung. Die wirft die Fehlermeldung: Code | Window type name A already used in WD:A,21,12,8,27,45,63,81,99,117,135,153,171,189,207,225 for DB_4A_BUM234A |
In Traffic 4.19 ging das noch, in Traffic 4.26 und 4.39 nicht mehr. Das hatte ich vor knapp vier Jahren hier schon erwähnt.
Der zweite Wagen ist als Overlay in der neuen Schreibweise mit Doppelpunkt aufgebaut. Das macht mit dem Laufzeitmakro-Parameter aber auch Probleme: Code | Illegales Zeichen in ":DB_BM232PL" DB_BM232PL |
Auch das hat in Traffic 4.19 schon nicht funktioniert.
Der dritte Wagen ist an sich derselbe wie der zweite, aber im Fahrplan selbst umgebaut auf die alte Schreibweise. Der funktioniert; den habe ich nur eingebaut, weil ich hoffte, damit einem Grafikglitch auf die Spur zu kommen.
Die Fehler bei den beiden Wagen sorgen übrigens dafür, daß in der Bewegungszeile außer
nichts anderes geparst wird. Die Geschwindigkeit wird ignoriert, der Text wird ignoriert, und wenn es Vorder- und Hintergrundbilder gäbe, würden die auch ignoriert.
Testgarnitur4 ist ein Präprozessormakro und macht dasselbe wie Testgarnitur3 ohne Klammern um den Parameter im Namen des aufgerufenen Makro. Funktioniert wieder.
Testgarnitur5 ist auch ein Präprozessormakro und macht dasselbe wie Testgarnitur3 mit Klammern um den Parameter im Namen des aufgerufenen Makro. Funktioniert auch. |