Inoffizelle Analyse zu: mod.lua wird ständig neu geladen im Spiel und was passiert da im Debug Modus

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Hallo,


    mehrere Spieler und Modder hier haben sich gefragt, was TPF2 seit dem Update da an stdout.txt Meldungen so rauswirft, das war doch früher nicht so viel?


    Wie immer, wenn irgendwas nicht so richtig läuft warte ich auf keine UG Erklärung, sondern hol da mal meinen Werkzeugkasten raus.


    Ich kann ausschließen, das CommonAPI2 der Grund für das ganze ist, aber es bietet mir halt die Möglichkeit Teile des Code umzuändern.


    Es gibt da eigentlich zwei interessante Funktionen:

    lua::FunctionLoader::Reload

    lua::FunctionLoader::Use


    Über die inneren Aufbau braucht man sich eigentlich nicht viel Gedanken machen, hmm.


    1. Bekomme ich die UG Console auch ohne Debug Modus Einstellung aktiviert

    Ja, aber warum sehe ich trotzdem CommonAPI2s Modifer in der stdout.txt



    2. Akt:


    Also lua::FunctionLoader::Reload angeschaut, wird nur einmal im Code verzweigt zu:


    Code
    if (ThreadRichtig && (GetGlobalSettings() + IdFuerDebugMode) && StatischeFunktion(KonstanteZahl)) {
        lua::FunctionLoader::Reload(vieleParameter)
    }
    lua::FunctionLoader::Use(mehrParameter)

    Hmm, schauen wir mal was wir da so neu laden:



    Wenn ich dann ne Konstruktion bauen will passiert das hier:


    Also TPF2 mag wirklich sehr gerne das temperate.clima.lua neu laden. || Also weg mit der Funktion und weiter testen:


    Ich hab ja immer noch "eis_os_linedestinationpatcher: Adding modifier". :cursing:


    Das war doch früher ganz bestimmt nicht so, also weiter schauen wie und wenn lua::FunctionLoader::Use aufgerufen wird:


    In lua::FunctionLoader::Use sehen wir dann das hier:

    Code: Erstellt aus String analyse der TPF2 Linux Version
           Assert(
                "info.modifier == m_infos[fileName2indices[0]].modifier",
                "../../train_fever/src/Lib/lua/FunctionLoader.cpp",
                0x5Du,
                "lua::State* lua::FunctionLoader::Use(lua::Loader&, std::set<std::__cxx11::basic_string<char> >&, const std::vector<std::__cxx11::basic_string<char> >&, bool) const");


    Zum Teufel, was will UG jetzt mit dem Modifier und außerdem das ist kein GetGlobalSettings drumherum um zu schauen ob der Debug Modus aktiv ist?
    Sprich das macht es bei jedem lua::FunctionLoader::Use Aufruf.

    Und später macht es dann ein lua::Loader::Load, hmm das sah früher sehr viel kürzer aus.


    Zum Abschluss, Zusammenfassung:


    Es ist egal ob der Debug Modus an oder aus ist. Ich sehe kein Aufruf zu GetGlobalSettings, d.h. der Modifier Kram wird wohl bei jeder neuen Nutzung durchgeführt...

    Ich habe mal angemerkt, das das Debug Modus modifier vergisst, beim neu laden, jetzt scheint es die aber immer wieder durchzuarbeiten. :huh:

    Viele Mods, viel Holz zum durchgehen...


    Performance technisch nicht so dolle. Ich werde zumindest lua::FunctionLoader::Reload auch im Debug Modus mit CommonAPI2 abschaltbar machen...


    Das Modifier Problem bleibt aber weiterhin bestehen...

  • eis_os

    Hat das Thema freigeschaltet
  • ja


    Thread did not respond to ping. Possible hang detected!


    zu hunderten

    Intel Core i9-9900k @ 3.60GHz / 64 GB DDR4 SDRAM 2133 / NVIDIA GeForce RTX 3080 Ti 12288 MB GDDR6X

    BenQ PV3200 3840 x 2160 / 1x NVM 2 1TB / 1x NVM 2 2TB / 1x SSD 1TB / Win 10 Pro / TPF2 VULKAN

BlueBrixx