![]() |
makeobj 55.4 für Linux scheitert beim Extrahieren von PAK-Dateien - Druckversion +- Deutsches Simutransforum (https://simutrans-forum.de/mybb) +-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3) +--- Forum: Bugs und Probleme (https://simutrans-forum.de/mybb/forumdisplay.php?fid=11) +--- Thema: makeobj 55.4 für Linux scheitert beim Extrahieren von PAK-Dateien (/showthread.php?tid=8533) |
makeobj 55.4 für Linux scheitert beim Extrahieren von PAK-Dateien - edwin - 27-09-2016 Um mich in die Struktur der PAK-Dateien einzuarbeiten, habe ich versucht mit dem aktuellen makeobj bestehende PAK-Dateien zu extrahieren. makeobj bricht stets mit folgender Fehlermeldung ab: ""ERROR: Unmerge: factory.Moebelhaus.pak is not an archieve (aborting) For help with this error or to file a bug report please see the Simutrans forum: http://forum.simutrans.com"" Software: Simutrans 120.1.3 und diverse PAK-Sets (z. B. PAK128.german 0.9) als kompilierte RPMs aus den OpenSUSE repositories. Da OpenSUSE makeobj nicht mitliefert wurde zusätzlich der Sourcecode von Sourceforge gezogen (simutrans-src-120-1-3.zip) und daraus makeobj kompiliert. Nach der Installation der entsprechenden Bibliotheken ist das dann auch gelaufen. Code: > makeobj Schritte zur Fehlerreproduktion: 1) Terminalprogramm öffen 2) Anlegen eines Arbeitsverzeichnisses und dann hineinwechseln 3) Kopieren eines oder mehrerer PAK-Dateien in das Verzeichnis 4) makeobj ausführen Code: Simutrans-MyData> ../Simutrans/makeobj/makeobj EXTRACT good.Fisch.pak Das selbe Ergebnis tritt mit allen von mir getesteten PAK-Dateien (mehrere aus PAK128.german, eines aus PAK) auf. LIST und DUMP liefern folgende Ergebnisse: Code: Simutrans-MyData> ../Simutrans/makeobj/makeobj LIST good.Fisch.pak Ich konnte den Bug bis in die Zeile 372 der Datei root_writer.cc zurückverfolgen. Dort wird mit der Methode obj_node_t::read_node eine Datenstruktur root vom Typ obj_node_info_t aus der übergebenen Datei gelesen, wobei dann root.children den Wert 1 erhält. Weiter habe ich den Code nicht verstanden. Ich hoffe, das hilft. Das Spiel selbst ist bei mir problemlos gelaufen. MfG Edwin - prissi - 27-09-2016 makeobj kann keine dat aus pak erzeugen, dass ist gewollt einen Einbahnstrasse. Da aber die meisten paks OpenSource sind, wuerde ich da nachfragen; ansonsten einfach mal den Verwalter fragen. Im Notfall druckt simutrans in der Debugversion mit "-log -debug 3" auch reichlich Parameter der pak-Dateien aus. Ein pak kann aus vielen einzelenen pak bestehen, dazu gehört der Befehl merge. Will man aus dieser pak-Bibliothek wieder einen herausholen, braucht man unmerge. - Wurzelgnom - 28-09-2016 Wenn es nur um die Datparameter geht, dann kann man auch im Translator nachsehen. Sofern halt die Setbetreuer sie da auch einstellen. Wobei die nicht immer auf den ganz aktuellen Stand sind. Dort auf der Setinfo-Seite ist dann auch der Link zu den Sourcen sofern eingetragen von den Setbetreuern. - edwin - 28-09-2016 prissi,'index.php?page=Thread&postID=111696#post111696' schrieb:makeobj kann keine dat aus pak erzeugen, dass ist gewollt einen Einbahnstrasse. Das ist schade, ich würde mir wesentlich leichter tun etwas zu Simutrans beizutragen, wenn das funktionieren würde. Dann sollte man die EXTRACT Funktion aus dem Code und der Dokumentation entfernen. Derzeit ist das für den Benutzer irreführend. MfG Edwin - Wurzelgnom - 28-09-2016 edwin,'index.php?page=Thread&postID=111705#post111705' schrieb:.... Dann sollte man die EXTRACT Funktion aus dem Code und der Dokumentation entfernen. Derzeit ist das für den Benutzer irreführend. Die Dokumentation ist doch eindeutig. Code: MakeObj MERGE <pak file library> <pak file(s)> edwin,'index.php?page=Thread&postID=111705#post111705' schrieb:... Wo ist da Dein Problem? Auf SourceForge gibt es mehrere Grafiksets als OpenSource. Im Wiki gibt es eine fast vollständige Doku zu den Parametern. Im japanischen Wiki gibt es auch vieles. Und schlussendlich kann man den Urheber fragen ob man die Dateien bekommt. Also um etwas bei Simutrans beitragen zu können hat man recht viele Quellen zur Verfügung. Mir erschließt sich jetzt nicht, das man dafür unbedingt eine pak-Datei dekompilieren muss. |