Quick Modding Questions Thread

Your screenshot help me 1 step further but now I get this error: [...]
I don't remember if I ever got that error; probably I did and checked the "don't show again" box. We don't have debug symbols for the EXE - but we do have them for the DLL.
and it loads BtS not CoM :confused:
The mod=... command argument should cause the mod to be loaded. In my screenshot it's ini=... – which also works, if the respective ini file loads the mod.
BTW I tried googling on how to set up the debugger in VS properly but didn't find anything useful yet.
There are instructions at the end of the opening post of Nightinggale's makefile thread. And this is what I've put in the AdvCiv manual:
Spoiler :
To attach the VS debugger, I recommend creating a copy of My Games\Beyond the Sword\CivilizationIV.ini, e.g. named AdvCivDebug.ini. It's easiest to place it in the same directory as Civ4BeyondSword.exe (CIV4_PATH directory). In the copy, set FullScreen = 0 and Mod = Mods\AdvCiv. You may also want to reduce ScreenHeight a little (rationale) and make some other debug-friendly settings: CheatCode = chipotle, LoggingEnabled = 1, AutoSaveInterval = 1. Then select the “Debug” configuration in VS 2010 and under “Configuration Properties” - “Debugging,” enter Civ4BeyondSword.exe with its full path(!) into the “Command” field and ini=AdvCivDebug.ini into “Command Arguments”. (VS will write that information into CvGameCoreDLL\Project\AdvCiv.vcxproj.user; that file can also be edited manually.) You can then “Start Debugging” via the “Debug” menu.
(But using the mod=... argument should be fine too, and simpler.)
 
Interestingly this CTD happens after autosave, so I started the mod with the debug dll, dismissed the many other debug errors (they seem to be harmless as not causing CTD) and then loaded the autosave.
I'm still on a black screen when another error message comes:

Assert Failed

File: ..\.\CvPlayer.cpp
Line: 18226
Expression: getBuildingClassCount(eIndex) <= (GC.getBuildingClassInfo(eIndex).getMaxPlayerInstances() + GC.getBuildingClassInfo(eIndex).getExtraPlayerInstances())
Message: BuildingClassCount is expected to be less than or match the number of max player instances plus extra player instances

----------------------------------------------------------

...and than collapse.
There I find this:
1670965978434.png


That line is only a {
 
The mod=... command argument should cause the mod to be loaded. In my screenshot it's ini=... – which also works, if the respective ini file loads the mod.
Okay, that part is missing for me. Is that the mod's own ini? :noob:

EDIT: Apparently not :lol:
Didn't read your description :blush:
 
Last edited:
Spoiler : To attach the VS debugger, I recommend creating a copy of My Games\Beyond the Sword\CivilizationIV.ini, e.g. named AdvCivDebug.ini. It's easiest to place it in the same directory as Civ4BeyondSword.exe (CIV4_PATH directory). In the copy, set FullScreen = 0 and Mod = Mods\AdvCiv. You may also want to reduce ScreenHeight a little (rationale) and make some other debug-friendly settings: CheatCode = chipotle, LoggingEnabled = 1, AutoSaveInterval = 1. Then select the “Debug” configuration in VS 2010 and under “Configuration Properties” - “Debugging,” enter Civ4BeyondSword.exe with its full path(!) into the “Command” field and ini=AdvCivDebug.ini into “Command Arguments”. (VS will write that information into CvGameCoreDLL\Project\AdvCiv.vcxproj.user; that file can also be edited manually.) You can then “Start Debugging” via the “Debug” menu.
I did these but it's still the same :(

This is my options:
1670967377128.png
 
Interestingly this CTD happens after autosave, so I started the mod with the debug dll, dismissed the many other debug errors (they seem to be harmless as not causing CTD) and then loaded the autosave.
I'm still on a black screen when another error message comes: [...]
You've got the wrong source file there. The assertion is in CvPlayer::isBuildingClassMaxedOut. I think the failure means that a building is not just maxed out (that's allowed to happen) - but its limit already exceeded. Doesn't sound like a serious problem. Is this the last failed assertion before the crash?
I did these but it's still the same :(
And is Debug-fast also chosen is the "active solution configuration"? I think there's a bit of a gotcha: The active config can only be changed through the "Configuration Manager" button. Then, if you get the EXE to launch with the debugger attached and the problem is really just that the mod isn't loaded, you could just load it manually from the "Advanced" menu in Civ.
 
You've got the wrong source file there. The assertion is in CvPlayer::isBuildingClassMaxedOut. I think the failure means that a building is not just maxed out (that's allowed to happen) - but its limit already exceeded. Doesn't sound like a serious problem. Is this the last failed assertion before the crash?
Yes, that's the last one.

And is Debug-fast also chosen is the "active solution configuration"?
You mean this?
1670968846091.png

Yes, the same.

Then, if you get the EXE to launch with the debugger attached and the problem is really just that the mod isn't loaded, you could just load it manually from the "Advanced" menu in Civ.
Let's see...

EDIT:
Clicking debug on that last one just gets me CTD :confused:
 
Last edited:
You mean this? [...] Yes, the same.
Oh, right, the Expert view shows the active config up there. That looks good then.
EDIT:Clicking debug on that last one just gets me CTD :confused:
On the assertion popup? I think it'll terminate so that you can re-start with a debugger attached. Not very intuitive behavior. If a debugger is already attached, then it should jump to the FAssert call in the source code.
 
Oh, right, the Expert view shows the active config up there. That looks good then.On the assertion popup? I think it'll terminate so that you can re-start with a debugger attached. Not very intuitive behavior. If a debugger is already attached, then it should jump to the FAssert call in the source code.
Okay, things suddenly and miraculously changed: Now it loads CoM properly and pressing debug brings me here:
1670972120825.png


Continue:
1670972228197.png

and this keeps poping up infinitely if I try to continue.
 
Great - because I was running out of ideas.
[...] and this keeps poping up infinitely if I try to continue.
Right, the access violation would crash the program if it weren't for the debugger; can't continue past that. If you click "Break"? That shouldn't land you at the FAssertMsg - I don't think that's what's causing the access violation (although it could in principle).
 
Thx, I didn't know that logs are that useless.
There are just too many lines of code that can happen between log messages.
All that the logs will tell you is that it crashes somewhere in the program flow after logic X, so it may give you a first starting point.

But since you are already working wiht a debug DLL, you are on a much better way of analysing. :thumbsup:
With a savegame where the CTD is reproducable that is the most reliable and safest way to find the cause of a CTD.
 
If you click "Break"?
Than I get what you see on the screenshot above.

That shouldn't land you at the FAssertMsg - I don't think that's what's causing the access violation (although it could in principle).
Is there anything I can try here? Or is it hopeless without being a programmer? 😒
 
Well, maybe the FAssertMsg is causing the crash then. (And, with a release build – which disables all assertions – the crash would still occur at a later point.) But it's a little strange because the FAssertMsg first succeeds at giving you the "Assert Failed" popup and then, supposedly, it causes a crash. It could be that the popup happens for one building class and the crash for a different one. But, also, eIndex=90 (in your screenshot) is clearly a valid building class ID; it's hard to see how getBuildingClassInfo (in the FAssertMsg) could crash for that index. Maybe, just to make sure we're not chasing ghosts, you could comment out that last FAssertMsg in isBuildingClassMaxedOut, recompile the debug DLL and see where the crash occurs then.

Having taken a look at the Civ4BuildingClassInfos.xml in the latest Chronicles patch, building class #90 seems to be
Code:
<BuildingClassInfo>
	<Type>BUILDINGCLASS_ACADEMY</Type>
	<Description>TXT_KEY_BUILDING_ACADEMY</Description>
	<iMaxGlobalInstances>-1</iMaxGlobalInstances>
	<iMaxTeamInstances>-1</iMaxTeamInstances>
	<iMaxPlayerInstances>1</iMaxPlayerInstances>
	<iExtraPlayerInstances>0</iExtraPlayerInstances>
	<bNoLimit>0</bNoLimit>
	<bMonument>0</bMonument>
	<DefaultBuilding>BUILDING_ACADEMY</DefaultBuilding>
	<VictoryThresholds/>
</BuildingClassInfo>
I may have miscounted, but none of the adjacent building classes have a player instances limit. I guess that means that Academy is a national wonder in your mod. I don't know why the limit would be exceeded, and I don't see how that could cause a crash.
 
Grrr.... While I was waiting for your answer I tried to merge your changes for @Inthegrave

Than I couldn't compile because a lot of errors. I undid the merge but still cannot compile :wallbash:
Arrrg! Why is it so hard :badcomp:
(I know, I know: Everything is hard when you don't know what you are doing :undecide: )
So I have to get the compiler back to work first.
I may have miscounted, but none of the adjacent building classes have a player instances limit. I guess that means that Academy is a national wonder in your mod. I don't know why the limit would be exceeded, and I don't see how that could cause a crash.
It is just as in AND2 for years and Academy never caused any issue.
 
When I try to compile I get these:
Spoiler :

1>------ Build started: Project: CvGameCoreDLL, Configuration: Release-fast Win32 ------
1> Building source list
1> Running fastdep
1> CvInfos.cpp
1>..\CvInfos.cpp(20103): error C2600: 'CvLeaderHeadInfo::CvLeaderHeadInfo' : cannot define a compiler-generated special member function (must be declared in the class first)
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=bool
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20103): error C2512: 'CvDynamicArray<T>' : no appropriate default constructor available
1> with
1> [
1> T=int
1> ]
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20108): error C2065: 'm_pbTraits' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20108): error C2039: 'm_pbTraits' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20109): error C2065: 'm_piFlavorValue' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20109): error C2039: 'm_piFlavorValue' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20110): error C2065: 'm_piContactRand' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20110): error C2039: 'm_piContactRand' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20111): error C2065: 'm_piContactDelay' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20111): error C2039: 'm_piContactDelay' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20112): error C2065: 'm_piMemoryDecayRand' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20112): error C2039: 'm_piMemoryDecayRand' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20113): error C2065: 'm_piMemoryAttitudePercent' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20113): error C2039: 'm_piMemoryAttitudePercent' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20114): error C2065: 'm_piNoWarAttitudeProb' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20114): error C2039: 'm_piNoWarAttitudeProb' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20115): error C2065: 'm_piUnitAIWeightModifier' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20115): error C2039: 'm_piUnitAIWeightModifier' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20116): error C2065: 'm_piImprovementWeightModifier' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20116): error C2039: 'm_piImprovementWeightModifier' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20117): error C2065: 'm_piDiploPeaceIntroMusicScriptIds' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20117): error C2039: 'm_piDiploPeaceIntroMusicScriptIds' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20118): error C2065: 'm_piDiploPeaceMusicScriptIds' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20118): error C2039: 'm_piDiploPeaceMusicScriptIds' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20119): error C2065: 'm_piDiploWarIntroMusicScriptIds' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20119): error C2039: 'm_piDiploWarIntroMusicScriptIds' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20120): error C2065: 'm_piDiploWarMusicScriptIds' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20120): error C2039: 'm_piDiploWarMusicScriptIds' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20122): error C2065: 'm_piCivicAIWeights' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20122): error C2039: 'm_piCivicAIWeights' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20124): error C2065: 'm_piSexistAttitudeChanges' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20124): error C2039: 'm_piSexistAttitudeChanges' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20126): error C2065: 'm_piRacistAttitudeChanges' : undeclared identifier
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(20126): error C2039: 'm_piRacistAttitudeChanges' : is not a member of 'CvLeaderHeadInfo'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvInfos.h(5625) : see declaration of 'CvLeaderHeadInfo'
1> This diagnostic occurred in the compiler generated function 'CvLeaderHeadInfo::CvLeaderHeadInfo'
1>..\CvInfos.cpp(21019): error C3861: 'm_piSexistAttitudeChanges': identifier not found, even with argument-dependent lookup
1>..\CvInfos.cpp(21022): error C3861: 'm_piSexistAttitudeChanges': identifier not found, even with argument-dependent lookup
1>..\CvInfos.cpp(21302): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21307): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21311): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21314): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21315): error C2039: 'SetVariableListTagPairEnum' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21317): error C2039: 'SetVariableListTagPairEnum' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21318): error C2039: 'SetVariableListTagPairEnum' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21320): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21321): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21322): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21323): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21324): error C2039: 'SetVariableListTagPairInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21326): error C2039: 'SetVariableListTagPairForAudioScriptsInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21327): error C2039: 'SetVariableListTagPairForAudioScriptsInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21328): error C2039: 'SetVariableListTagPairForAudioScriptsInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1>..\CvInfos.cpp(21329): error C2039: 'SetVariableListTagPairForAudioScriptsInfo' : is not a member of 'CvXMLLoadUtility'
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvXMLLoadUtility.h(36) : see declaration of 'CvXMLLoadUtility'
1> CvPlayer.cpp
1> jom: F:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\project\Makefile [temp_files\Release\.\CvInfos.obj] Error 2
1> CvPlayerAI.cpp
1> CvPlot.cpp
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "set TARGET=Release
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake source_list /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake fastdep /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake precompile /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: bin\jom build /NOLOGO" exited with code 2.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



I have zero idea what's wrong when I didn't change anything :cry:
 
[...] ..\CvInfos.cpp(20108): error C2065: 'm_pbTraits' : undeclared identifier [...]
The latest files in Inthegrave's repository no longer have m_pbTraits. It was renamed in this commit. Seems that you've partially merged CvInfos.h/cpp from GitHub with your local version. Had you made any changes of your own to your local CvInfos before attempting the merge? To other source files of the DLL? If you have no local changes or very few – and know where to find them – then the easiest way to update to the latest remote version on GitHub should be to take the remote version as the starting point and then reapply your local changes. If you don't want to do the merge after all, well ... I don't suppose you made a backup copy of your files before starting to merge? If you only have a (slight) mess, then it might be better to go through with the update. Can always use WinMerge to check how your current local code differs from the latest downloaded from GitHub (remote) and then go with the remote version except for code that you know you've changed locally.
 
I don't suppose you made a backup copy of your files before starting to merge?
:blush:
Well... fortunately I uploaded them all to Github a few moths ago and I made no changes ever since, so :D
But it was a lesson to do it the next time.

A weird thing tho: I seem to be able to compile a dll but it is created with an older date:
1671124748265.png

At first it got me really confused, seeing VS finishing with a success but not finding a dll with a fresh date :lol:
That's a bit odd but okay.

I'll get back to bug hunting and merging soon...

(Thanks for all the help already :thumbsup:)
 
Call the inquisition! I'm fed up with this black magic! [pissed]

Changed nothing but doesn't work anymore again!
Spoiler :

1>------ Build started: Project: CvGameCoreDLL, Configuration: Release-fast Win32 ------
1> Building source list
1> Running fastdep
1> CvPlayer.cpp
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(18): error C2011: 'CvPathGeneratorBase' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(18) : see declaration of 'CvPathGeneratorBase'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(34): error C2011: 'CvPath' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(34) : see declaration of 'CvPath'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(185): error C2953: 'CvAllocationPool' : template class has already been defined
1> f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(185) : see declaration of 'CvAllocationPool'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(191): error C2371: 'priorityQueueEntry' : redefinition; different basic types
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(191) : see declaration of 'priorityQueueEntry'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(203): error C2011: 'CvNodeCostInfo' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(203) : see declaration of 'CvNodeCostInfo'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(223): error C2371: 'CvPathContext' : redefinition; different basic types
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(223) : see declaration of 'CvPathContext'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(225): error C2011: 'CvPathGeneratorMT' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(225) : see declaration of 'CvPathGeneratorMT'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPathGenerator.h(314): error C2011: 'CvPathGenerator' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPathGenerator.h(314) : see declaration of 'CvPathGenerator'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(15): error C2365: 'WORKITEM_STATE_NONE' : redefinition; previous definition was a 'enumerator'
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(15) : see declaration of 'WORKITEM_STATE_NONE'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(16): error C2365: 'WORKITEM_STATE_QUEUED' : redefinition; previous definition was a 'enumerator'
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(16) : see declaration of 'WORKITEM_STATE_QUEUED'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(17): error C2365: 'WORKITEM_STATE_PROCESSING' : redefinition; previous definition was a 'enumerator'
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(17) : see declaration of 'WORKITEM_STATE_PROCESSING'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(18): error C2371: 'PipelineWorkItemState' : redefinition; different basic types
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(18) : see declaration of 'PipelineWorkItemState'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(24): error C2011: 'CvPipelineWorkItem' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(24) : see declaration of 'CvPipelineWorkItem'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(77): error C2011: 'CvPipelineStage' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(77) : see declaration of 'CvPipelineStage'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(137): error C2011: 'CvPipeline' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(137) : see declaration of 'CvPipeline'
1>f:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\CvPipeline.h(172): error C2011: 'CvPipelineSyncPointStage' : 'class' type redefinition
1> f:\games\civilization 4\beyond the sword\mods\chronicles of mankind 1.3\cvgamecoredll\CvPipeline.h(172) : see declaration of 'CvPipelineSyncPointStage'
1> jom: F:\Games\Civilization 4\Beyond the Sword\Mods\Chronicles of Mankind\CvGameCoreDLL\project\Makefile [temp_files\Release\.\CvPlayer.obj] Error 2
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: The command "set TARGET=Release
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake source_list /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake fastdep /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: nmake precompile /NOLOGO
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.MakeFile.Targets(38,5): error MSB3073: bin\jom build /NOLOGO" exited with code 2.
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



Please note, that it refers to "chronicles of mankind 1.3" but my working library is now (and for some time) is "chronicles of mankind".
I cannot find where VS is referring to those folders.


EDIT: Okay, deleting the project/temp_files seem to have solved the issue...
 
Last edited:
Maybe, just to make sure we're not chasing ghosts, you could comment out that last FAssertMsg in isBuildingClassMaxedOut, recompile the debug DLL and see where the crash occurs then.
Okay, I tried that.
1671128461775.png

Now I only get this:
1671128391620.png

I guess that's what you expected, didn't you?
 
Back
Top Bottom