View Full Version : Warlords 2.08 - modding impact?


Wyz_sub10
Oct 31, 2006, 06:10 PM
Has anyone had the chance to download this yet and see how much it's going to kill us?

We just finished the Warlords conversion for CIV Gold, now we have to do it all over again...:crazyeye:

ohcrapitsnico
Oct 31, 2006, 06:13 PM
I'm wondering that too, I"m new to modding what exactly do you have to do to update your mod to be compatible with the new patch?

Grave
Oct 31, 2006, 06:16 PM
Every mod and modcomp I have for Warlords makes a CTD everytime I fire up the game with 2.08 installed. I don't even get to the Main Menu. :(

strategyonly
Oct 31, 2006, 06:16 PM
Mine works great, but mine is for Japan only, so it didnt impact it, PHEW!!!!

Dont like the new barracks sound when a barbarian unit approaches EACH and EVERYTIME!!

Grave
Oct 31, 2006, 06:18 PM
How does the patch affect the SDK files? When I installed it, all the "Last Modified" dates for the actual C++ files remain unchanged. It was all the Python sub-folders, etc that seem to be updated?

ohcrapitsnico
Oct 31, 2006, 06:25 PM
xml too, for example the qin/kublai swap

Wyz_sub10
Oct 31, 2006, 06:36 PM
I'm wondering that too, I"m new to modding what exactly do you have to do to update your mod to be compatible with the new patch?

Just add the Firaxis changes to your modified files. For CIV Gold, I'll have to modify any XML files they may change related to Leaderheads, Civilizations, Buildings or Units.

The Qin/Khan swap was probably at the Art folder level, so that should be fine. But I'm sure there are other changes - just don't know what they are yet. I'll probably just install it and run the mod, checking for XML errors. The problem is, it won't catch changes in values, so I'll have to do an XML compare to see what's changed in that regard.

Déja
Oct 31, 2006, 07:19 PM
makes me so happy that I stuck with vanilla :)

Also, the installer seems to have unpacked some .cpp and .h files, so perhaps there were SOME changes

strategyonly
Oct 31, 2006, 08:00 PM
i tried adding the changes to some files and THAT made my MOD crash, i seen that they had replaced some nif with kfm?? dont know why?? btw how do i get my normal barbarian advancing back rather than the barracks sound??

Drtad
Oct 31, 2006, 08:37 PM
All the mods I have made are compatible, I guess that your mods like CivGold and Canada Mod should be compatible since they only add new civs.

Aussie_Lurker
Oct 31, 2006, 08:50 PM
Have they added any new XML tags we should be aware of? I doubt it as they usually save this kind of thing for the expansion but.....you never know.

Aussie_Lurker.

strategyonly
Oct 31, 2006, 09:06 PM
The crash that i get is from the Civ4ArtDefines_Interface.xml file, i tried twice now and that is so far is the only crash i get from the main menu path that they changed from nif to kfm?? still dont know why they did this??

I am going thru all xml files.

EDIT: Yeppers this is the only one that gives me any problems with my MOD?

PeteT
Nov 01, 2006, 03:12 AM
Also, the installer seems to have unpacked some .cpp and .h files, so perhaps there were SOME changes

Well, for example, they incorporated quite a few of Blake's changes from here:

http://apolyton.net/forums/showthread.php?s=&threadid=157780

MatzeHH
Nov 01, 2006, 04:12 AM
Have they added any new XML tags we should be aware of? I doubt it as they usually save this kind of thing for the expansion but.....you never know.

There are no new XML tags read by the dll and only very few changes were made to the python API. So, in most cases, you just have to merge the C++ files and recompile it. Your XML files and python files should work as before.

Matze

TAfirehawk
Nov 01, 2006, 03:25 PM
Doing a WinMerge on the Warlords directory:

3 Mehmed art files changed
13 Pythons changed
19 XML changed
30 SDK changed
12 Scenario files changed
1 Map script changed

Kublai_Khan Art\Leaderheads directory new
1 Python new

And of course the DLL and EXE changed as well as the readme.htm

Now what that does to each mod is different depending on the mod....the ViSa Modpack which has quite a few mods all thrown in to one was converted and running within 24 hours and didn't require that many tweaks really.


EDIT
I included the WinMerge report file so each file is listed :)

ohcrapitsnico
Nov 01, 2006, 03:50 PM
Thanks. When I installed the patch and loaded my mod it crashed before loading. I think it may have been my cvgamecoredll which was customized for 24 civs.

TAfirehawk
Nov 01, 2006, 06:13 PM
Thanks. When I installed the patch and loaded my mod it crashed before loading. I think it may have been my cvgamecoredll which was customized for 24 civs.

Yeah, ViSa crashed before loading too....copy/paste SDK, recompile DLL and almost good to go (had to tweak some code too).

Aussie_Lurker
Nov 02, 2006, 03:49 AM
Well, when I attempted to recompile my Expanded Civics mod with the new DLL files, I ran into problems with CvCityAI. Lots of stuff in the .cpp files which are missing from the .h files. Any suggestions on what might be wrong?

Aussie_Lurker.

Aussie_Lurker
Nov 02, 2006, 05:25 AM
Hey guys. Well I copied all my changed elements between the old and new CvCity files and I am a bit concerned that the old CvCity was 267kb in size, wheras my new one is only 266kb. Should I be worried, or is this about right given the changes made in 2.08? I just hope I didn't overlook anything.

Aussie_Lurker.

Aussie_Lurker
Nov 02, 2006, 05:44 AM
OK, now I am really annoyed. Thanks to the patch I am getting the following error messages when I try to build a new .dll

error LNK2019: unresolved external symbol "public: int_thiscall CvCity::getBuildingCommerceChange etc etc.

and error LNK1120: 7 unresolved externals

Seriously, what is going on here? This worked perfectly before, but not now :(.

Aussie_Lurker.

NeverMind
Nov 02, 2006, 08:28 AM
Do we need full list of the patch chages in XML? It doesn't look like a big one.

The real problem is .dll.

Thornburgh
Nov 02, 2006, 08:56 PM
After going to all the trouble to make Civ4 so moddable, it sure is a shame the devs didn't take more care that patches don't break mods. Many mod authors seem to have given up, not updating their mods for each new patch. Many of the best can't be used any more.

TAfirehawk
Nov 02, 2006, 09:13 PM
Well there is no way to change the SDK/Python/XML in a Firaxis patch to make it compatible with mods....

And updating a huge mod in ViSa took less than 1 day :)

The best mods will be updated, give the modders some time....and a break :)

Grave
Nov 05, 2006, 02:00 PM
OK, now I am really annoyed. Thanks to the patch I am getting the following error messages when I try to build a new .dll

error LNK2019: unresolved external symbol "public: int_thiscall CvCity::getBuildingCommerceChange etc etc.

and error LNK1120: 7 unresolved externals

Seriously, what is going on here? This worked perfectly before, but not now :(.

Aussie_Lurker.

I'm running into the exact same problem.

It happens right at the very end of compiling, right before the CvGameCoreDLL file is actually created. It's really frustrating... :mad:


Project : CvGameCoreDLL
Compiler : Microsoft Visual C++ Toolkit 2003 (called directly)
Directory : D:\Games\Sid Meier's Civilization IV\Warlords\CvGameCoreDLL\
--------------------------------------------------------------------------------
Switching to target: Final Release
CvArea.cpp
CvArtFileMgr.cpp
CvCity.cpp
CvCityAI.cpp
CvDLLButtonPopup.cpp
CvDLLEntity.cpp
CvDLLPython.cpp
CvDLLWidgetData.cpp
CvDeal.cpp
CvDiploParameters.cpp
CvFractal.cpp
CvGame.cpp
CvGameAI.cpp
CvGameCoreDLL.cpp
CvGameCoreUtils.cpp
CvGameTextMgr.cpp
CvGlobals.cpp
CvHallOfFameInfo.cpp
CvInfoWater.cpp
CvInfos.cpp
CvInitCore.cpp
CvMap.cpp
CvMapGenerator.cpp
CvPlayer.cpp
CvPlayer.cpp(6203) : warning C4244: '=' : conversion from 'float' to 'int', possible loss of data
CvPlayerAI.cpp
CvPlot.cpp
CvPlotGroup.cpp
CvPopupInfo.cpp
CvPopupReturn.cpp
CvRandom.cpp
CvReplayInfo.cpp
CvReplayMessage.cpp
CvSelectionGroup.cpp
CvSelectionGroupAI.cpp
CvStructs.cpp
CvTalkingHeadMessage.cpp
CvTeam.cpp
CvTeamAI.cpp
CvUnit.cpp
CvUnitAI.cpp
CvXMLLoadUtility.cpp
CvXMLLoadUtilityGet.cpp
CvXMLLoadUtilityInit.cpp
CvXMLLoadUtilitySet.cpp
CyArea.cpp
CyAreaInterface.cpp
CyArgsList.cpp
CyArtFileMgr.cpp
CyArtFileMgrInterface.cpp
CyCity.cpp
CyCityInterface1.cpp
CyDeal.cpp
CyEnumsInterface.cpp
CyGame.cpp
CyGameCoreUtils.cpp
CyGameCoreUtilsInterface.cpp
CyGameInterface.cpp
CyGameTextMgr.cpp
CyGameTextMgrInterface.cpp
CyGlobalContext.cpp
CyGlobalContextInterface1.cpp
CyGlobalContextInterface2.cpp
CyGlobalContextInterface3.cpp
CyGlobalContextInterface4.cpp
CyHallOfFameInfo.cpp
CyHallOfFameInterface.cpp
CyInfoInterface1.cpp
CyInfoInterface2.cpp
CyInfoInterface3.cpp
CyMap.cpp
CyMapGenerator.cpp
CyMapGeneratorInterface.cpp
CyMapInterface.cpp
CyPlayer.cpp
CyPlayerInterface1.cpp
CyPlot.cpp
CyPlotInterface1.cpp
CyRandomInterface.cpp
CyReplayInfo.cpp
CySelectionGroup.cpp
CySelectionGroupInterface.cpp
CyStructsInterface1.cpp
CyTeam.cpp
CyTeamInterface.cpp
CyUnit.cpp
CyUnitInterface1.cpp
FAssert.cpp
FDialogTemplate.cpp
_precompile.cpp
Linking dynamic library: ..\Warlords\Assets\CvGameCoreDLL.dll
Creating library ..\Warlords\Assets\CvGameCoreDLL.lib and object ..\Warlords\Assets\CvGameCoreDLL.exp
CvDLLWidgetData.obj : error LNK2019: unresolved external symbol "public: int __thiscall CvUnit::getHurryProduction(class CvPlot const *)const " (?getHurryProduction@CvUnit@@QBEHPBVCvPlot@@@Z) referenced in function "public: void __thiscall CvDLLWidgetData::parseActionHelp(struct CvWidgetDataStruct &,class CvWString &)" (?parseActionHelp@CvDLLWidgetData@@QAEXAAUCvWidget DataStruct@@AAVCvWString@@@Z)
CvUnit.obj : error LNK2001: unresolved external symbol "public: int __thiscall CvUnit::getHurryProduction(class CvPlot const *)const " (?getHurryProduction@CvUnit@@QBEHPBVCvPlot@@@Z)
CyUnit.obj : error LNK2001: unresolved external symbol "public: int __thiscall CvUnit::getHurryProduction(class CvPlot const *)const " (?getHurryProduction@CvUnit@@QBEHPBVCvPlot@@@Z)
CvDLLWidgetData.obj : error LNK2019: unresolved external symbol "public: int __thiscall CvUnit::getDiscoverResearch(enum TechTypes)const " (?getDiscoverResearch@CvUnit@@QBEHW4TechTypes@@@Z) referenced in function "public: void __thiscall CvDLLWidgetData::parseActionHelp(struct CvWidgetDataStruct &,class CvWString &)" (?parseActionHelp@CvDLLWidgetData@@QAEXAAUCvWidget DataStruct@@AAVCvWString@@@Z)
CvUnitAI.obj : error LNK2001: unresolved external symbol "public: int __thiscall CvUnit::getDiscoverResearch(enum TechTypes)const " (?getDiscoverResearch@CvUnit@@QBEHW4TechTypes@@@Z)
CyUnit.obj : error LNK2001: unresolved external symbol "public: int __thiscall CvUnit::getDiscoverResearch(enum TechTypes)const " (?getDiscoverResearch@CvUnit@@QBEHW4TechTypes@@@Z)
CvDLLWidgetData.obj : error LNK2019: unresolved external symbol "public: enum TechTypes __thiscall CvUnit::getDiscoveryTech(void)const " (?getDiscoveryTech@CvUnit@@QBE?AW4TechTypes@@XZ) referenced in function "public: void __thiscall CvDLLWidgetData::parseActionHelp(struct CvWidgetDataStruct &,class CvWString &)" (?parseActionHelp@CvDLLWidgetData@@QAEXAAUCvWidget DataStruct@@AAVCvWString@@@Z)
CvUnitAI.obj : error LNK2001: unresolved external symbol "public: enum TechTypes __thiscall CvUnit::getDiscoveryTech(void)const " (?getDiscoveryTech@CvUnit@@QBE?AW4TechTypes@@XZ)
CyUnit.obj : error LNK2001: unresolved external symbol "public: enum TechTypes __thiscall CvUnit::getDiscoveryTech(void)const " (?getDiscoveryTech@CvUnit@@QBE?AW4TechTypes@@XZ)
CvDLLWidgetData.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::canDiscover(class CvPlot const *)const " (?canDiscover@CvUnit@@QBE_NPBVCvPlot@@@Z) referenced in function "public: void __thiscall CvDLLWidgetData::parseActionHelp(struct CvWidgetDataStruct &,class CvWString &)" (?parseActionHelp@CvDLLWidgetData@@QAEXAAUCvWidget DataStruct@@AAVCvWString@@@Z)
CvSelectionGroup.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CvUnit::canDiscover(class CvPlot const *)const " (?canDiscover@CvUnit@@QBE_NPBVCvPlot@@@Z)
CvUnitAI.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CvUnit::canDiscover(class CvPlot const *)const " (?canDiscover@CvUnit@@QBE_NPBVCvPlot@@@Z)
CyUnit.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CvUnit::canDiscover(class CvPlot const *)const " (?canDiscover@CvUnit@@QBE_NPBVCvPlot@@@Z)
CvSelectionGroup.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::canConstruct(class CvPlot const *,enum BuildingTypes,bool)const " (?canConstruct@CvUnit@@QBE_NPBVCvPlot@@W4BuildingT ypes@@_N@Z) referenced in function "public: bool __thiscall CvSelectionGroup::canStartMission(int,int,int,clas s CvPlot *,bool)" (?canStartMission@CvSelectionGroup@@QAE_NHHHPAVCvP lot@@_N@Z)
CvUnitAI.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::canConstruct(class CvPlot const *,enum BuildingTypes,bool)const " (?canConstruct@CvUnit@@QBE_NPBVCvPlot@@W4BuildingT ypes@@_N@Z) referenced in function __ehhandler$??$?5DU?$char_traits@D@std@@V?$allocat or@D@1@@std@@YAAAV?$basic_istream@DU?$char_traits@ D@std@@@0@AAV10@AAV?$basic_string@DU?$char_traits@ D@std@@V?$allocator@D@2@@0@@Z
CyUnit.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CvUnit::canConstruct(class CvPlot const *,enum BuildingTypes,bool)const " (?canConstruct@CvUnit@@QBE_NPBVCvPlot@@W4BuildingT ypes@@_N@Z)
CvSelectionGroup.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::canJoin(class CvPlot const *,enum SpecialistTypes)const " (?canJoin@CvUnit@@QBE_NPBVCvPlot@@W4SpecialistType s@@@Z) referenced in function "public: bool __thiscall CvSelectionGroup::canStartMission(int,int,int,clas s CvPlot *,bool)" (?canStartMission@CvSelectionGroup@@QAE_NHHHPAVCvP lot@@_N@Z)
CvUnitAI.obj : error LNK2001: unresolved external symbol "public: bool __thiscall CvUnit::canJoin(class CvPlot const *,enum SpecialistTypes)const " (?canJoin@CvUnit@@QBE_NPBVCvPlot@@W4SpecialistType s@@@Z)
CvSelectionGroup.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::discover(void)" (?discover@CvUnit@@QAE_NXZ) referenced in function "public: void __thiscall CvSelectionGroup::startMission(void)" (?startMission@CvSelectionGroup@@QAEXXZ)
CvSelectionGroup.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::construct(enum BuildingTypes)" (?construct@CvUnit@@QAE_NW4BuildingTypes@@@Z) referenced in function "public: void __thiscall CvSelectionGroup::startMission(void)" (?startMission@CvSelectionGroup@@QAEXXZ)
CvSelectionGroup.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CvUnit::join(enum SpecialistTypes)" (?join@CvUnit@@QAE_NW4SpecialistTypes@@@Z) referenced in function "public: void __thiscall CvSelectionGroup::startMission(void)" (?startMission@CvSelectionGroup@@QAEXXZ)
CvUnitAI.obj : error LNK2019: unresolved external symbol "public: int __thiscall CvUnit::getMaxHurryProduction(class CvCity *)const " (?getMaxHurryProduction@CvUnit@@QBEHPAVCvCity@@@Z) referenced in function "protected: bool __thiscall CvUnitAI::AI_switchHurry(void)" (?AI_switchHurry@CvUnitAI@@IAE_NXZ)
CyUnit.obj : error LNK2001: unresolved external symbol "public: int __thiscall CvUnit::getMaxHurryProduction(class CvCity *)const " (?getMaxHurryProduction@CvUnit@@QBEHPAVCvCity@@@Z)
..\Warlords\Assets\CvGameCoreDLL.dll : fatal error LNK1120: 10 unresolved externals
Process terminated with status 1 (24 minutes, 25 seconds)24 errors, 1 warnings


How do I work around this?

MatzeHH
Nov 05, 2006, 02:11 PM
Try to do a full recompile instead a compile of only the changed files.

Matze

Grave
Nov 05, 2006, 02:15 PM
I did... same result. :(

ohcrapitsnico
Nov 05, 2006, 03:23 PM
Are the only parts we really have to change the dll files, or some things in the xml or python? If so could someone make me a cvgamecoredll that allows for 24 civs?

Ploeperpengel
Nov 05, 2006, 08:20 PM
Are the only parts we really have to change the dll files, or some things in the xml or python? If so could someone make me a cvgamecoredll that allows for 24 civs?
If the dll won't compile nobody will do you one obviously. Also this doesn't seem to be a thread for modrequests.

Dale
Nov 05, 2006, 08:40 PM
Did you just copy your dll files over the top of the dll files, or did you cut your code again from a fresh dll code base?

You can't just copy your edited 2.00 files into a 2.08 dll code base.

Dale

Aussie_Lurker
Nov 06, 2006, 04:51 AM
So, hang on Dale. You mean that I need to delete any existing .dll files for my mod, and rebuild an entirely new one?
If so, then hopefully that will be really easy ;).

EDIT: Nope, that didn't do the trick. Problems with canHurry code throughout the CvCityAI.cpp file.
Dammit, why won't this WORK :(!!

Aussie_Lurker.

Grave
Nov 06, 2006, 12:13 PM
So, hang on Dale. You mean that I need to delete any existing .dll files for my mod, and rebuild an entirely new one?
If so, then hopefully that will be really easy ;).

EDIT: Nope, that didn't do the trick. Problems with canHurry code throughout the CvCityAI.cpp file.
Dammit, why won't this WORK :(!!

Aussie_Lurker.

Yes, if what I'm thinking you're doing is so... then you will need to delete the .dll file in your mod folder, and recompile from scratch. You'll need to copy over your mod codes from the v2.00 C++ files over to the v2.08 files, then recompile. That's what I had to do.

Aussie, can you post the error code you're getting? Because I recompiled my v2.08 C++ files (with your mod in it) and it compiled just fine.

(BTW.. the problem I had a couple posts above is all taken care of. I was able to sucessfully re-compile my v2.08 files).

Mexico
Nov 08, 2006, 03:04 AM
incorporate 2.08 patch to TR source code (based on 2.0) took about 4 hours
compiling was without problem

problem mentioned above look like you don't fully integrate changes from 2.08 patch - there was lots of API changes (changed number of parameters for function)

Aussie_Lurker
Nov 08, 2006, 03:19 AM
So the question is, how do you fully integrate the patch into your mods? Sorry, but I am a newbie!

Aussie_Lurker.

Teg_Navanis
Nov 08, 2006, 06:16 PM
So, hang on Dale. You mean that I need to delete any existing .dll files for my mod, and rebuild an entirely new one?
If so, then hopefully that will be really easy ;).

I think you misunderstood Dale. He doesn't ask if you deleted the CvGameCoreDLL.dll, but if you manually re-integrated all your changes into the new cpp files (instead of copying whole files you used with earlier versions into the SDK-folder).

TheLopez
Nov 09, 2006, 07:28 AM
Well, I finally finished updating all of my Warlords mods to be compatible with the v2.0.8.0 patch. It wasn't too bad...