Hallo,
leider ist mal wieder viel Zeit für kreative Workarounds drauf gegangen.
Eine echte Hilfe oder Funktionen, die eine stabilere CommonAPI2 ermöglicht habe ich UG trotz aller Versuche nicht abringen können.
Bestes Beispiel ist die UI Nutzung im Hauptmenü crasht das Spiel, ich habe nun den Fehler gefunden: LUA wird vor der UI entladen und das führt zum Crash.
Mit kreativer LUA Metatable Programmierung entferne ich nun die UI Elemente. Das scheint bei mir nun sehr stabil zu laufen. Keine Crashs mehr in der Linux Version beim beenden!
Auch habe ich ganz einfache Sachen wie game.config schreibar in postRunFn zu machen angefragt, aber auch so etwas ist nicht gewollt.
Version 20210516 ist da
Wenn die DLL oder SO Library nicht geladen wurde (native code funktioniert nicht) benutzt CommonAPI2 nun mehrere Dateien um Daten zwischen den LUA States zu transportieren,
daher ist es nicht sinnvoll das Spiel mehrmals zu starten! Wenn die DLL läuft, wird das alles im Programmspeicher abgewickelt.
Gleislisten werden nun sehr spät in der postRunFn nochmals übernommen und alle Parameter der Konstruktionen ggf. verändert.
commonapi.uiparameter.modifyTrackCatenary verändert nun die uiliste teils dynamisch. (Man sieht es an einem (c) im ersten Eintrag)
Damit sollte der ganze Krempel nun mit dynamischen Gleisen funktionieren, wenn jemand ein Mod kennt, das Gleise via postRunFn ändert oder hinzufügt, bitte ich um Tests.
Den Ringlokschuppen mit Fix habe ich nun mit und ohne Dll, mit und ohne Debug Modus getestet und alles hat funktioniert.
1.7.20210516-dev
- WARNING: If native dll or so isn't loaded, you can run only one instance of TPF2 at a time, lua data is shared via files in commonapi2 mod folder!
- tpfui: add __gc metamethods to destroy ui elements (fake window, failbackui) just before game quits to fix linux and rare windows crash at exit
- utils: fix serializeSettingsData missing complicate table keys
- add file based shareddatafile for syncing across lua threads if native dll isn't loaded
- add filesystem.lua to have an anchor point when a game gets loaded to fix ug lua thread madness
- repos: add late postRunFn dynamic data upgrade. All tracks will be upgraded or added into commonapi.repos
- uiparameter: disable filtering in commonapi.uiparameter, as construction lua can't be called in postRunFn state
- uiparameter: construction parameter will be checked and patched (small (c) shows proper dynamic parameter creation)
- native: mark postRunFn state in commonapi console (note state is used for mesh loading too!)
Ich bitte um Tests, da ich bald wieder Steam und reguläre Versionen anbieten möchte.