Afforess
The White Wizard
My source files could be pretty well described as convulted. Especially since I'm not the original owner, and it has a bunch of mod's and modcomps in it. (I believe it has RevDCM [RevDCM includes Better AI, UP, and IDW], Civic Flavors, WOC, a heavily modified Mountains, back to service, Route restrictor, Realistic Diplomacy, CAR, Multiple Production Mod, Event Images, Food threshold modifiers, and some leftovers from the previous owner too.) Well, the trouble arises when I try to use a debug DLL. It's nearly impossible for me to sort out what Asserts are real problems and which have been broken over time in the code and are no longer necessary. So I would appreciate anyone's help, telling me which of these need to stay and actually are giving me a real problem, and which are broken and need to be fixed or removed entirely.
Upon loading XML, Civ4 with my Debug DLL, I immediately receive a
I'm not sure what this is trying to tell me, as I thought all flavor values were in the XML.
Fixed. Stupid Typos.
After selecting "Ignore Always", I get my next friendly error:
I'm not sure what this one is about either.
Moments later (were still "Init XML" folks) I recieve:
(Unmodded RevDCM's sources have this one too)
This one has me baffled as well. No ideas on what causes it.
Ignoring that, I finally get to the shiny spinning globe of earth. I select single player, the default map (aboria), Standard Size, Normal Speed, and try to generate a map.
Now the key word is try. I get another Asset immediately.
(Unmodded RevDCM's sources have this one too)
Moments later, after ignoring that assert, I recieve this one:
Improvement Sanitize_Water? I've never heard of it. Now the funny thing is with this assert is that if I select "ignore once", I just get again, meaning there are more than one error like this. I have to select "ignore always" to get past this assert.
Fixed. Python error.
And two asserts later, we're at the map. I select my settler and build my capital. Then, I get an assert.
This one baffles me almost as much as the "Override this" assert. If the eIndex is >= 0, but is EXPECTED to be >=0, why is there an assert firing? Or am I just crazy?
Ignoring that, my city settles. I tell my city to build a warrior, and pick Animal Husbandry to research. I play for 2 turns to ensure no errors. Then I save. Then, I reload my save. Then, I get an assert.
This assert has no message. Real helpful Firaxis. The expression says that the getAliveCount is greater than or equal to zero. I would hope so, as I'm assuming this mean the number of players that are alive are greater than 0. So why is this an assert?
Ignoring that, I immediately get another assert.
Then, after ignoring that assert, I get the best message of them all.
Yes, Yes I do.
Edit:
After more playing around with a debug dll, I got a few more Asserts:
So, can anyone help me detirmine which asserts are telling me actual problems and which are false alarms?
Upon loading XML, Civ4 with my Debug DLL, I immediately receive a
Assert Failed
File: CvGlobals.cpp
Line: 3688
Expression: strcmp(szType, "NONE")==0 || strcmp(szType, "")==0
Message: type FLAVOR_MIILTARY not found
I'm not sure what this is trying to tell me, as I thought all flavor values were in the XML.
Fixed. Stupid Typos.
After selecting "Ignore Always", I get my next friendly error:
Assert Failed
File: CvGlobals.cpp
Line: 4059
Expression: iExisting==-1 || iExisting==idx || strcmp(szType, "ERROR")==0
Message: xml info type entry RELIGION_HELLENISM already exists
I'm not sure what this one is about either.
Moments later (were still "Init XML" folks) I recieve:
(Unmodded RevDCM's sources have this one too)
Assert Failed
File: CvXMLLoadUtilitySet.cpp
Line: 1529
Expression: bSuccess
Message: OWN TYPE - dependency not found: (null), in file: "NONE"
This one has me baffled as well. No ideas on what causes it.
Ignoring that, I finally get to the shiny spinning globe of earth. I select single player, the default map (aboria), Standard Size, Normal Speed, and try to generate a map.
Now the key word is try. I get another Asset immediately.
(Unmodded RevDCM's sources have this one too)
I'm assuming "Override This" means ignore it. But why have an assert that you ignore? I thought the point was to tell you something was wrong.Assert Failed
File: c:\program files (x86)\firaxis games\sid meier's civilization 4\beyond the sword\cvgamecoredll\CvInfos.h
Line: 93
Expression: false
Message: Override this
Moments later, after ignoring that assert, I recieve this one:
Assert Failed
File: CvGlobals.cpp
Line: 4027
Expression: strcmp(szType, "NONE")==0 || strcmp(szType, "")==0
Message: info type IMPROVEMENT_SANITIZE_WATER not found, Current XML file is: xml\GameInfo/CIV4EspionageMissionInfo.xml
Improvement Sanitize_Water? I've never heard of it. Now the funny thing is with this assert is that if I select "ignore once", I just get again, meaning there are more than one error like this. I have to select "ignore always" to get past this assert.
Fixed. Python error.
And two asserts later, we're at the map. I select my settler and build my capital. Then, I get an assert.
Assert Failed
File: CvCity.cpp
Line: 11001
Expression: eIndex >= 0
Message: eIndex expected to be >= 0
This one baffles me almost as much as the "Override this" assert. If the eIndex is >= 0, but is EXPECTED to be >=0, why is there an assert firing? Or am I just crazy?
Ignoring that, my city settles. I tell my city to build a warrior, and pick Animal Husbandry to research. I play for 2 turns to ensure no errors. Then I save. Then, I reload my save. Then, I get an assert.
Assert Failed
File: CvTeam.cpp
Line: 3580
Expression: getAliveCount() >= 0
Message:
This assert has no message. Real helpful Firaxis. The expression says that the getAliveCount is greater than or equal to zero. I would hope so, as I'm assuming this mean the number of players that are alive are greater than 0. So why is this an assert?
Ignoring that, I immediately get another assert.
Brilliant, another messageless assert. This one is telling me that eCivilizationNum is greater than -1. I should hope so. I'm assuming this means there are more than -1 civilizations, which would make sense, so why does this assert fire?Assert Failed
File: CvGlobals.cpp
Line: 1458
Expression: eCivilizationNum > -1
Message:
Then, after ignoring that assert, I get the best message of them all.
This program has encountered a problem and needs to be closed. Do you wish to save a diagnostic file?
Yes, Yes I do.
Edit:
After more playing around with a debug dll, I got a few more Asserts:
Assert Failed
File: CvGlobals.cpp
Line: 4027
Expression: strcmp(szType, "NONE")==0 || strcmp(szType, "")==0
Message: info type BUILDING_BOULEVARD_CIRCLE not found, Current XML file is: xml\GameInfo/CIV4EspionageMissionInfo.xml
Assert Failed
File: CvCity.cpp
Line: 5918
Expression: getBaseGreatPeopleRate() >= 0
Message:
Assert Failed
File: CvCity.cpp
Line: 7579
Expression: getBuildingDefense() >= 0
Message:
Assert Failed
File: CvPlayerAI.cpp
Line: 5588
Expression: ePlayer != getID()
Message: shouldn't call this function on ourselves
Assert Failed
File: CvCity.cpp
Line: 5432
Expression: eIndex != NO_BUILDING
Message: BuildingType eIndex is expected to not be NO_BUILDING
So, can anyone help me detirmine which asserts are telling me actual problems and which are false alarms?