Deutsches Simutransforum

Normale Version: Makeobjext5.0 mag keine "/" in inline comments
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Simutrans-Version:

Nee, diesmal makeobj.50

PAK-Set (+zusätzliche PAK-Dateien):

Diesmal sehr egal

Betriebssystem:

Debian GNU/Linux

Fehler (möglichst genaue Beschreibung):

Bei einem "/" in einem inline comment vermisst makeobject die image number:

writing file ./menu.DialogeTools.pak
packing menu.DialogeTools
ERROR IN CLASS image_writer_t: no image number in icons.2.1 # file/options

Workarounds:
- Steht der Kommentar in einer eigenen Zeile, stört er nicht mehr.
- Wenn der böse Slash weg ist, läufts auch.

Verhalten (Absturz, Einfrieren, ...):

makeobject beendet sich, leichte Wutanfälle bei mir nach langer Fehlersuche, ansonsten nix.
Kommentare dahinter sind eh nicht erlaubt. Das sie bis jetzt funktioniert haben ist reine Glücksache. "#" ist KEIN Kommentarzeichen für makeobj. "!" oder "$" oder irgend etwas anderes würde auch funktionierten. makeobj ignoriert einfach alle Strings, die es nicht kennt.

Es könnte ja auch sein, dass du die Datei "moebel #haus.png" haben willst. Das ist ein legaler Dateiname unter windows ... (Übrigens: Punkte im "Kommentar" würden auch für Chaos sorgen)

Findet es also eine /, dann wird nur dahinter nach einem Punkt gesucht, denn die Datei muss ja logischerweise dahinter sein.

Mit Dateien die "version.2.png" heißen kommt daher makeobj auch nicht klar ...
*seufz*

Ich habs auch grad gemerkt. Mir kam der komische Verdacht, dass dieses array vielleicht schlicht in C-Code includiert wird. Dann verstehe ich die Kommentarregeln.

1. Vorschlag: Diese Regeln mal oben reinschreiben.

2. Vorschlag: Zeichen, die völlig normal in Dateinamen auftauchen dürfen, anders abfangen.

Edit:
Moment mal, da fällt mir noch was auf:

Zitat Prissi: "Kommentare dahinter sind eh nicht erlaubt."

Heisst dass, "//" geht auch nicht? Liege ich etwa mir meiner Vermutung, dass sei C-Syntax, auch daneben? Wenn ja: Was ist das denn eigentlich?

Dwachs

die dat-dateien werden so eingelesen:
-- es wird nach Zeilen gesucht 'name = irgendwas' und damit eine Tabelle name->irgendwas gefuellt
-- kommt eine Zeile mit '-'-Zeichen - dann Ende, weil dort das naechste Objekt anfaengt.
also: Kommentare nur auf eigene Zeilen schreiben.
Was Daniel sagen wollte:
- In einer Parameterzeile (also alles mit "=") sind keine Kommentare erlaubt.
- ALLES, was nicht ein Parameter ist, ignoriert. (=Kommentar)
- Ausnahme: wenn eine Zeile mit "-" anfängt, dann wird ein neues Objekt angefangen.

Gültige Kommentarzeilen sind für "Hier kommt ein Auto" also auch:

--
Hier kommt ein Auto
obj=vehicle
Wegtype Straße
waytype=road
....