JA, man muss Schritt für Schritt immer kleine Änderungen machen und jedesmal testen und NIE viel auf einmal machen!
JA, man muss Schritt für Schritt immer kleine Änderungen machen und jedesmal testen und NIE viel auf einmal machen!
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Man muss vor allem auch Routineänderungen immer prüfen. Hier hatte ich den SPECIALIST_ENTERTAINER oder SPECIALIST_ARTIST ausgetauscht, welchen genau weil ich nicht mehr - und da ich gerade ziemlich viele Spezis, aber auch viele Units bei der Geburtenrate ersetzt habe, habe ich nicht jedes einzelne Gebäude geprüft, ob ich auch den richtigen Eintrag verwendet hatte. Das rächte sich jetzt.
That's why I am here: Mein Mod
Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude
Die aktuelle Story zum Mod:
Die Vereinigten Staaten von Amerika
Alte Stories zu alten Versionen:
Alte Storys
Frage zu dem komischen Logging bei CIV:
Erstens: Wieso kommt man auf die Idee, dass man nicht genutzte XML-Parameter (das hat seinen Grund!) als "Fehler" ausgibt?PHP-Code:
int CvGlobals::getInfoTypeForString(const char* szType, bool hideAssert) const
{
FAssertMsg(szType, "null info type string");
InfosMap::const_iterator it = m_infosMap.find(szType);
if (it!=m_infosMap.end())
{
return it->second;
}
if(!hideAssert)
{
if (strcmp(szType, "NONE")==0 && strcmp(szType, "")==0)
{
CvString szError;
szError.Format("info type %s not found, Current XML file is: %s", szType, GC.getCurrentXMLFile().GetCString());
FAssertMsg(strcmp(szType, "NONE")==0 || strcmp(szType, "")==0, szError.c_str());
gDLL->logMsg("xml.log", szError);
}
}
return -1;
}
Zweites: Wie kann es sein, dass dies überhaupt ausgegeben wird, denn szType müsste ja wegen if (a && b) beides sein: NONE und "" oder versteh ich da was falsch? das sollte doch nur mit if (a || b) funktionieren....
Wäre es nicht sinnvoller, dieses Log zeigt nur Elemente, die eben nicht NONE oder "" sind, und die es wirklich nicht gibt ?!
Wäre es dann so korrekt?: if (strcmp(szType, "NONE")!=0 && strcmp(szType, "")!=0)
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Ja, das sollte nie auslösen. strcmp == 0 heißt, die Strings sind identisch. szType kann ja nicht gleichzeitig identisch "None" und "" sein.
Allerdings: ich kenne diese Log-Meldung. Wird die noch irgendwoanders erzeugt?
Im xml.log und da ist sowas total missverständlich... deswegen möcht ich das ändern.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Im XML.log kann man sie lesen, klar. Aber wie kommt sie da rein, wenn der gezeigte Code gar nicht ausgeführt werden kann?
Das war ja meine zweite Frage, die ich mir gestellt hab.
Ich habs aber nun geändert und jetzt ist mein XML.log sauber.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Über diese Einträge im Log habe ich mich auch schon oft geärgert, weil es hunderte sind - und man echte Fehler da gar nicht mehr sieht.
That's why I am here: Mein Mod
Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude
Die aktuelle Story zum Mod:
Die Vereinigten Staaten von Amerika
Alte Stories zu alten Versionen:
Alte Storys
Ja, im FAssertMsg isses ja richtig: FAssertMsg(strcmp(szType, "NONE")==0 || strcmp(szType, "")==0, szError.c_str());
Aber wir in Gottes Namen(!) kommt der überhaupt da rein mit if (strcmp(szType, "NONE")==0 && strcmp(szType, "")==0) ???
Aber mir kanns egal sein. Ist nur Kosmetik und ich hab diese Logzeilen jetzt eh nicht mehr.
@Kathy: kannst du ja ganz leicht in CvGobals.cpp ändern:
strcmp(szType, "NONE")!=0 && strcmp(szType, "")!=0 (beide Zeilen, beim if und beim FAssert)
Ich habs aber so gemacht, dass er alles andere als NONE oder "" anzeigen soll. Weil für mich sind NONE und "" ja kein Fehler.
Geändert von Pie (Gestern um 13:08 Uhr)
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Ist denn sicher, dass dieser Code auch in der DLL drin war und gleichzeitig die Log-Nachrichten ausgegeben wurden?
Ich habe mal in die Funktion im DLL-Code im 'pbmod'-Repo nachgeschaut. Da sieht es nämlich so aus:
=> Kein If-Statement drin und die Version habe ich laut 'git blame' nicht geändert und ist die ursprüngliche von BTS.Code:int CvGlobals::getInfoTypeForString(const char* szType, bool hideAssert) const { FAssertMsg(szType, "null info type string"); InfosMap::const_iterator it = m_infosMap.find(szType); if (it!=m_infosMap.end()) { return it->second; } if(!hideAssert) { CvString szError; szError.Format("info type %s not found, Current XML file is: %s", szType, GC.getCurrentXMLFile().GetCString()); FAssertMsg(strcmp(szType, "NONE")==0 || strcmp(szType, "")==0, szError.c_str()); gDLL->logMsg("xml.log", szError); } return -1; }
Geändert von Ramkhamhaeng (Gestern um 14:04 Uhr)
Das ist wahr und das klingt auch viel sinnvoller...
vielleicht von irgendwo falsch und unüberlegt mitübertragen (Unofficial Patch oder BetterAI)...
denn auch K-Mod hat es anders:
if (!hideAssert && !(strcmp(szType, "NONE")==0 || strcmp(szType, "")==0)) // K-Mod
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!
Bei mir sieht es auch aus wie bei Ramkhamhaeng. Dennoch steht in meinem log oft reihenweise, dass er "NONE" oder "" nicht findet.
That's why I am here: Mein Mod
Mehr Technologien, mehr Einheiten, mehr Zivilisationen, mehr Gebäude
Die aktuelle Story zum Mod:
Die Vereinigten Staaten von Amerika
Alte Stories zu alten Versionen:
Alte Storys
weil bei euch die gDLL->losMsg noch aktiv ist. Deswegen hat K-Mod wohl vorher schon die Überprüfung gemacht und sogar das FAssert auskommentiert.
Pie's Ancient Europe (PAE)
Erlebe mit dieser CIV IV Mod(ifikation) hautnah das Zeitalter der Antike bis ins allerletzte Detail!
Mit bahnbrechenden Erweiterungen und vielen ein- und erstmaligen Features, die Spaß machen. Hand drauf!
- Pie's Ancient Europe (VII)
... im Übrigen bin ich der Meinung, dass Karthago wieder aufgebaut werden muss!