DLL - Various Mod Components

Is there a way to view all the additional XML tables/columns?

Not easily … but, I tend to add new tables via XML and new columns via SQL and a quick search of the files reveals

XML files that add tables
DB\API\PlotYields.xml
DB\API\UnifiedYields.xml
DB\DIPLOMACY\Stfu.xml - see this post for usage
DB\EVENTS\BattleRoles.xml - see this post for details of the events that use these tables
DB\EVENTS\DiploModifiers.xml
DB\EVENTS\Quests.xml
DB\PROMOTIONS\UnitNaming.xml
DB\RELIGION\PlotYields.xml
DB\RELIGION\PolicyBranchFaithGp.xml

SQL files that add columns
DB\API\Extensions.sql
DB\API\PlotBasedDamage.sql
DB\API\UnifiedYields.sql
DB\BUGFIX\DummyPolicies.sql
DB\BUGFIX\FeatureRemoval.sql
DB\EVENTS\CanMoveInto.sql
DB\GLOBAL\AlpinePasses.sql
DB\GLOBAL\CannotEmbark.sql
DB\GLOBAL\CityAutomatonWorkers.sql
DB\GLOBAL\CityWorking.sql
DB\GLOBAL\ExcludeFromGifts.sql
DB\GLOBAL\GreatworkYieldtypes.sql
DB\GLOBAL\MoveAfterUpgrade.sql
DB\GLOBAL\NoFollowup.sql
DB\GLOBAL\PassableForts.sql
DB\GLOBAL\PromotionClasses.sql
DB\GLOBAL\Relocation.sql
DB\GLOBAL\SeparateGreatAdmiral.sql
DB\GLOBAL\StackingRules.sql
DB\PROMOTIONS\AuraChange.sql
DB\PROMOTIONS\CrossIce.sql
DB\PROMOTIONS\CrossMountains.sql
DB\PROMOTIONS\CrossOceans.sql
DB\PROMOTIONS\DeepWaterEmbarkation.sql
DB\PROMOTIONS\GGfromBarbarians.sql
DB\PROMOTIONS\HalfMove.sql
DB\PROMOTIONS\ImprovementBonus.sql
DB\PROMOTIONS\VariableRecon.sql
DB\RELIGION\ConversionModifiers.sql
DB\RELIGION\LocalReligions.sql
DB\TRADE\RouteScaling.sql
DB\TRAITS\AnyBelief.sql
DB\TRAITS\CrossesIce.sql
DB\TRAITS\ExtraSupply.sql
DB\TRAITS\GGfromBarbarians.sql
DB\TRAITS\OtherPrereqs.sql
DB\TRAITS\TradeRouteBonuses.sql
DB\UNITS\MaxHp.sql
DB\UNITS\NoSupply.sql

So you at least know where to look :)
 
Last edited:
Hi @whoward69 :)

since you know the dll very well:
Do you know if there is somewhere code (in dll or lua) that handles the loading of savegames? Especially from multiplayer (simultanous turns)?

I would like to see if I can solve this issue (vanilla game bug):
https://forums.civfanatics.com/threads/no-action-possible-after-loading-a-game.624591/#post-14975516
So in short: When loading a multiplayer savegame, a random number of us can not move units or do anything, while the rest can. The more human players we are, the more likely it is that we have these 2 different states, resulting in not being able to play the game. As soon one player leaves the game, some new notifications about the game appear (like when a turn was processed) and all other players can now move and continue the game.
I think it might have sth. to do with another phenomen that can happen when loading:
Even if everyone can move their units after loading, the game processes another AI round at the start, although we saved the game within our round of course.
Maybe this also happens randomly and can be different for every player. Therefore the players, that can not move, are in fact waiting to start this "AI round", while at least one player can move their units, which is blocking this AI round from happening. Not sure if it helps when this "moving player" is ending his round.. but I think it does not.

I downloaded your dll source code and also tried to fix the other multiplayer issues, did not found a bug yet. But all the work would be useless anyway, if I can not solve the "loading multiplayer" issue.

If you have an idea how to solve this, it would be great. If not, please just tell me if there is any code in the dll that could be related to this.
 
Last edited:
With ModTools, I receive this error (specifically Fatal Error > />)
Code:
~/.../My Games/Sid Meier's Civilization 5 >>> java -jar ModTools.jar                                   
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(7b) UI - Promotion Tree for VP/(7b) UI - Promotion Tree for VP.modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(5) More Luxuries/(5) More Luxuries.modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(3) CSD for CBP/(3) CSD for CBP.modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(4) Civ IV Diplomatic Features/(4) Civ IV Diplomatic Features.modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(2) Community Balance Overhaul/(2) Community Balance Overhaul.modinfo (No such file or directory)

[Fatal Error] :22:2: Element type "Mod" must be followed by either attribute specifications, ">" or "/>".
ERROR: Element type "Mod" must be followed by either attribute specifications, ">" or "/>".

ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(7a) Promotion Icons for VP/(7a) Promotion Icons for VP.modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(6a) Community Balance Overhaul - Compatibility Files (EUI)/(6a) Community Balance Overhaul - Compatibility Files (EUI).modinfo (No such file or directory)
ERROR: /home/ryan/Documents/My Games/Sid Meier's Civilization 5/MODS/(1) Community Patch/(1) Community Patch.modinfo (No such file or directory)
However, with running grep on the directory, all mods return the "/":
Code:
~/.../My Games/Sid Meier's Civilization 5 >>> grep -r "</Mod>"
So I cannot find which one is supposely broken, what else could this error be caused by?
 
Last edited:
… somewhere code (in dll or lua) that handles the loading of savegames? Especially from multiplayer (simultanous turns)?

Short answer to your question is "no, it's not in the DLL or Lua codebase"

Longer answer, while the code to serialize/deserialize game objects (players, units, cities, trade deals, etc) is in the DLL codebase (search for the void CvXyz::Read(FDataStream& kStream) and void CvXyz::Write(FDataStream& kStream) const methods), the main code that handles saving/loading games is not - so the code to determine in what order the objects are serialize/deserialize and what happens before/after they are serialize/deserialize is NOT in the codebase we have access to.
 
With ModTools, I receive this error
Code:
[Fatal Error] :22:2: Element type "Mod" must be followed by either attribute specifications, ">" or "/>".
ERROR: Element type "Mod" must be followed by either attribute specifications, ">" or "/>".

It's not complaining about a missing </Mod> tag, but about a mal-formed <Mod> tag. It's expecting <Mod>, <Mod/> or <Mod attr="value"> but getting something different, for example <Mod version=9> (note the missing quotes)[/QUOTE]
 
It's not complaining about a missing </Mod> tag, but about a mal-formed <Mod> tag. It's expecting <Mod>, <Mod/> or <Mod attr="value"> but getting something different, for example <Mod version=9> (note the missing quotes)
How can I identify which one it's talking about? I'm opening up individual files and scanning through I can't find the offending file.
 
Binary chop is your best bet - if you have 200 mods, add 100 first, if no errors, then the problem is in 101 to 200, so add another 50, if now have a problem, remove 25, etc
 
I am having a problem with the "Units - Multiple Upgrades (v 2)" mod. The game just closes when I click on an upgradable unit and then click on the upgrade button or press "U" to upgrade. What info do I need to post and where to try to get help solving this?

Unfortunately, this is one of my mods I don't actually play with! Which version of DLL-VMC are you using? And are you using EUI (if so, all bets are probably off as it alters so much of the UI)
 
Well, I quickly came up with an exported list of the mods:

Code:
rowid,modid,version,installed,enabled,modname
1,"d1b6328c-ff44-4b0d-aad7-c657f83610cd",89,1,0,"(1) Community Patch"
123,"daf6f887-3614-4169-a0e5-3ac9bd4ef82b",1,1,0,"1066: Year of Viking Destiny"
3,"d61c53f4-5991-4709-9b1b-c0100d34639f",1,1,1,"AI - Great People Choices"
4,"ce861906-6f6d-45e7-a097-c4de3dfe828d",1,1,0,"AI - MP Diplomacy"
5,"d9b2b125-5ceb-4fb4-93fd-b3c5076f734b",1,1,1,"AI - No Zero Value Trade Items"
6,"19cefee6-d2bb-40ad-a06f-2fe93205aebd",1,1,1,"AI - Smart V3"
7,"1affa841-1513-4e4a-8d5f-de4baa054aa4",4,1,1,"AI - Warmonger Adjustments"
130,"55fd836a-72e5-4aba-bbcf-3395b05a0e70",1,1,0,"American Civil War"
8,"2dec3dd9-f21f-4659-afdc-dd64085cd01d",2,1,1,"Barbarians - Unlimited Exp"
9,"2d3747f4-70c8-4027-8dc8-d31a505edd0c",1,1,1,"Buildings - Hydro Plant Near River"
10,"461c1bee-33c1-4c16-bcd9-f9769a11c28f",2,1,1,"Buildings - Lighthouse Near Sea"
11,"406a00f8-4479-4af6-86d1-435ed27834d7",6,1,1,"Buildings - Mill Changes"
12,"292510fb-21c5-45fe-9fb5-fc5e62e67e5d",1,1,1,"Buildings - Watermill Near River"
13,"31df5e77-6a9e-4312-8e74-980fffdd5848",1,1,1,"Buildings - Windmill Near Flat"
14,"e59d5d3a-dcf6-4f9a-be26-5541e5fa7943",1,1,1,"Caravans Build Roads"
133,"4417d4b0-fba7-4fe0-97ab-d4ac1c358a31",1,1,1,"Citadel Mod"
15,"0deb399a-a0ad-44da-90a2-cd364c91bfc2",3,1,1,"Cities 6 Hexes Away"
16,"34aea78c-9211-4ceb-b426-51f5222e82dd",7,1,0,"City Limits"
119,"df3333a4-44be-4fc3-9143-21706ff451d5",1,1,0,"Civilization Tutorials"
121,"02453135-2694-47f8-9690-29cca6cce199",1,1,0,"Conquest of the New World"
126,"34fb6c19-10dd-4b65-b143-fd00b2c0826f",1,1,0,"Conquest of the New World Deluxe"
17,"adbc3334-367b-4435-a584-fd783b712865",5,1,1,"Custom Advanced Setup Screen"
18,"f1830fcf-5e1b-4acb-aed7-c923e1f49562",1,1,1,"Diplomacy - Auto-Denounce"
19,"2abb7a20-000e-4904-907c-93a671f516d7",1,1,1,"Diplomacy - By Numbers"
20,"cee818e4-8535-43d4-aa5f-a6c5d8f0e5e8",1,1,1,"Diplomacy - No Pointless Dialogs"
21,"d1b6328c-ff44-4b0d-aad7-c657f83610cd",94,1,1,"DLL - Various Mod Components"
129,"b103d2e0-3aab-40d7-a2f3-375d2eabfcaf",1,1,0,"Empires of the Smoky Skies"
22,"3fd2736f-7233-48e6-8554-09e3a2f4b184",14,1,0,"Eras - Ancient Age"
23,"fe4937f4-eb6e-4197-b0ff-2c53cc1b34e6",13,1,0,"Eras - Atomic Age"
24,"b10ed4f5-486c-4dbd-a3a3-7032e8fe44ed",33,1,0,"Eras - Classical Age"
25,"83f148e9-77ef-4e36-a8f8-0827991f92a2",16,1,0,"Eras - Industrial Age"
26,"85ffdb54-be53-4c4d-8541-bbba4c71d16b",19,1,0,"Eras - Medieval Age"
27,"c470adf0-0971-43e8-9103-4ef512fa0f53",12,1,0,"Eras - Modern Age"
28,"d2f07abe-6db1-4ba0-83fa-f88212eb4d4b",12,1,1,"Eras - Renaissance"
127,"76d702e9-8b28-429b-a97d-f84388f548c5",1,1,0,"Fall of Rome"
29,"29240659-7ed2-4392-a648-772c31c949fd",2,1,0,"Fortress Borders"
30,"69a59cfc-6df8-4e46-9d81-de551804925d",101,1,1,"Gibraltar, Reef, and Krakatoa Fixes"
31,"44b7cffb-9c0a-42df-b0f8-5037780e60cb",2,1,1,"Global - Archaeologist Dig Sites"
32,"0f96f649-aaf6-45f3-9b5c-65010eac2669",2,1,1,"Global - Capture Great People"
33,"d61b698a-539e-411c-a65b-dcf176a38b35",4,1,1,"Global - City State Airbases"
34,"c90ec87e-219a-40b8-a000-e03b54574e3e",5,1,1,"Global - City States Gifts"
35,"15cd975d-7d94-4845-be4a-4e34bcd3fa1b",1,1,1,"Global - City States No Allied Skirmishes"
36,"82cb55e0-d041-4fa6-a231-d219ac7137f5",1,1,0,"Global - City States Overseas Territory"
37,"72e3495c-054e-4a15-9c49-70e2ca197621",7,1,1,"Global - City Working Distance"
38,"290fa859-b8d1-4d35-ba71-5deae61f0da7",2,1,1,"Global - Civilians Move After Purchase"
39,"a0b24721-f9be-4f8d-b528-557b5eb5d334",2,1,1,"Global - Counter Religion"
40,"fd38e244-180e-494e-a966-87054f2817b1",1,1,1,"Global - CS Liberate After Buyout"
41,"63e9b3d3-939b-40b7-9b14-8d37ddd29aaa",2,1,1,"Global - CS Raze Rarely"
42,"eec833f0-530e-4478-943b-a199f696c8c0",2,1,1,"Global - CS Unit Upgrades"
43,"2d00d048-8df2-4ced-8a38-ae4e8d55baa2",4,1,1,"Global - Grateful Settlers"
44,"f48e14fc-ac0b-429e-a142-ba1ccbf4c7e2",1,1,1,"Global - Jungle Production"
45,"a526e077-5066-4268-a23f-95a562e709e1",2,1,1,"Global - Local Generals"
46,"eba7d61d-b6ea-428c-bd36-c5fcb2f68981",1,1,1,"Global - National Wonders  Exclude Razing"
47,"e4cc6d22-502f-4c55-bc44-a3da5b4d7021",2,1,1,"Global - Naval Nearest Water"
48,"52f3dc29-6f76-4c1b-a692-491e7c774763",4,1,1,"Global - No Followup From Cities"
49,"288691cc-ec7c-455a-aab5-46e2d91725e3",1,1,1,"Global - No More Civilian Traffic Jams"
50,"d6dd2d43-f73d-4608-82f2-881898413eb3",1,1,1,"Global - No Ocean Plundering"
51,"b13be4e0-8afa-4474-a2ec-29b011f5a5cf",3,1,1,"Global - Passable Forts"
52,"1fba7746-73d4-43d2-bcdf-6ceed31cc011",2,1,1,"Global - Pro-rata Buildings Purchase"
53,"34d9746b-2f1e-4ac1-ab24-6f1ad4a6acbd",1,1,1,"Global - Religious Settlers"
54,"e33535d4-4736-4dca-ad4f-101bbed425b4",1,1,1,"Global - Truly Free Great People"
55,"4b73bad3-edad-405e-8529-ac8ad7160b6e",2,1,0,"Global - Units Awake In Danger"
56,"536ad89c-8962-42de-8a12-1ecf4702cb33",1,1,1,"Global - Venice Keeps Resources"
57,"2890f440-93a7-4227-ab6f-5c5c1ba175cf",2,1,1,"Global - XP For Scouting"
58,"48d98c35-8396-44c2-b45b-ed48cf6d3eff",2,1,1,"Goody Huts - No Auto-Mapping"
59,"0a2d1a47-cd9d-47a0-b3ed-9fc36c4edb5b",7,1,1,"Goody Huts - Tech Refund"
60,"aec5d10d-f00f-4fc7-b330-c3a1e86c91c3",22,1,1,"InfoAddict"
128,"8f9d820d-e336-4208-891d-50fdd968cc40",1,1,0,"Into the Renaissance Scenario"
61,"5e0f89be-5d1f-4415-a4f2-34e7369e4a7b",2,1,1,"Lake Victoria Fix"
62,"5f15c2a1-6baf-4e2b-b54e-52c8a70bc29d",1,1,0,"Lancers to cavalry"
63,"2a904f73-4d28-4d2a-ac57-a1ac3cc42ddc",1,1,1,"Late Game Range BNW"
64,"facba1b7-c00a-4698-86da-157e119dfff1",6,1,1,"Maps - Improved CS Luxuries"
120,"d565342c-f7b5-495e-9c1d-c05c2d55c8a3",1,1,0,"Mongol Scenario"
65,"da8c32bc-23a5-436d-a51a-c572c402da12",5,1,0,"One City Civs"
122,"a028d675-1f4d-45b5-bd6e-869b77079405",1,1,0,"Paradise Found"
66,"e9ead585-4f3b-4087-bcfa-9dc21453fe0b",1,1,1,"PerfectWorld3"
67,"afe4cfd0-971a-438c-be16-25b76edc819e",10,1,1,"Policy - Free Warrior"
68,"99506232-2c32-4800-8beb-305f3240f169",2,1,1,"Promotions - All Siege Units Indirect Fire"
69,"6f5baa06-d988-4f14-82db-62863b989492",2,1,1,"Promotions - Ancient Ruins Choice"
70,"3b67ee7b-d238-4c33-a5bc-7253e2793cbe",4,1,1,"Promotions - AntiAir Only Defensive"
71,"a6e2d8b9-4675-4409-aa06-b9a9469d3cef",2,1,1,"Promotions - AntiAir Specialisations"
72,"c01be061-a3aa-4937-8548-9cf9c23ec59e",2,1,1,"Promotions - Flagship"
73,"8d95f4be-e175-4537-b47d-bef610959c94",3,1,1,"Promotions - No InstaHeal"
74,"f066373b-6aa0-46a6-9a99-21cbf27cc204",2,1,1,"Promotions - Siege Defensive Terrain"
75,"4f184876-e029-4aad-98a4-10e5334ce52e",3,1,1,"Promotions - Terrain Crossing"
76,"0410e638-98da-4d02-930a-daf4c3a120ef",10,1,1,"Quick Turns"
77,"ffc5f55f-1cf2-4263-bfde-a339c477b9a6",3,1,0,"R.E.D. HotFix"
78,"8670da15-d435-44ea-9758-7438cb321411",27,1,0,"R.E.D. Modpack"
79,"b3ae4a21-6f9f-47aa-b4e0-34ede1fda0ab",27,1,0,"R.E.D. Xtreme"
80,"5f36d178-6435-4a05-897b-4224ed58a079",25,1,0,"Reform and Rule (BNW)"
81,"b4e8428d-3eae-4511-a8de-daa268fdbf22",1,1,1,"Religion - Bonus Beliefs"
82,"442ece72-22d1-4692-943f-da520ae90c60",1,1,1,"Religion - Early Piety"
83,"db6d0ead-b436-4764-857b-5a3a64be32d6",2,1,1,"Religion - Fixed Prophets"
84,"0fe65d15-fc91-4a8d-b3a7-a33090c13008",15,1,1,"Religion - Improved Customization"
85,"960e4924-8e48-4e12-b123-49c6b605bc79",1,1,1,"Religion - No AI Free Pottery"
86,"cb40b6f3-ebee-468d-902d-6f5a5ffc59f3",3,1,1,"Resource - Granary Includes Bison"
87,"3ccda7fd-a229-4e42-a9cb-e2ea9a39e243",1,1,1,"Resources - Copper buff"
124,"24081928-4703-4845-8b9c-c1468a8cacf2",1,1,0,"Samurai Invasion of Korea"
131,"f2eb1642-3334-4d2c-8db1-08e6aede3532",1,1,0,"Scramble for Africa"
88,"72faea6d-0c72-4f10-bf0d-c6240f11afa0",2,1,1,"Terrain - Poor Tiles Tweak"
89,"d77f9a36-6186-470d-aad3-cb78426f004d",15,1,1,"UI - City Production"
90,"00b0d2c5-31ec-4e8b-b5c9-df28c1c10b64",6,1,1,"UI - City Production Queue Enhancements"
91,"761aea79-2c11-4c3e-95e5-9b4b1879c4e5",4,1,1,"UI - City Religions"
92,"7e9c1bbc-6184-490d-8d6f-c400c7e708bd",15,1,1,"UI - Condensed Promotions"
93,"eab3f33b-c711-49d5-a1c1-98e47ceb190c",4,1,1,"UI - Destination"
94,"d568a67b-5c03-488f-a389-8f2581f1b6df",7,1,1,"UI - Improved City Banner"
95,"96b31a10-8777-442f-9e6b-0f8fa969b86f",17,1,1,"UI - Map Pins"
96,"868e845c-a185-4e00-b0f9-f0c971e0ec1c",2,1,1,"UI - Overlay Antiquities"
97,"a685c6da-bc8f-445f-9e83-5d606b136887",8,1,1,"UI - Overlay Barbarians"
98,"ef3f23d4-a288-4c50-9937-0934dd2ed07e",3,1,1,"UI - Overlay Luxuries"
99,"f2968890-fe71-41d4-b609-805097365935",11,1,1,"UI - Overlay Resources"
100,"e915c6ee-16bc-44cf-9a2f-15746f414c63",7,1,1,"UI - Overlay Wonders"
101,"1f0a153b-26ae-4496-a2c0-a106d9b43c95",15,1,1,"UI - Promotion Tree"
102,"4ad8de1c-a52a-4752-8e61-e73edcecf8dd",13,1,1,"UI - Religion Spread"
103,"0089a636-4a65-4b2b-867b-0957d0ef426f",2,1,1,"UI - Summary Antiquities"
104,"493a0044-1219-4c3c-a1b1-6f61495b53ab",9,1,1,"UI - Summary Barbarians"
105,"99c7ff56-008c-4129-bca2-b251b6ef4cfd",13,1,1,"UI - Summary Luxuries"
106,"0ea82317-02f7-40df-a4d0-7ff94a6bcd9c",1,1,1,"UI - Tech Enhancement Icons"
107,"aa833572-1129-4b5c-9bfa-7cc2419212a2",28,1,1,"UI - Trade Opportunities"
108,"9bfe702c-19fd-4592-9f53-7eb2a6ca23ac",7,1,1,"UI - Trade Routes Enhancements"
109,"7f4b17cb-4a1f-4ef0-8b27-8dbc809590a3",11,1,1,"UI - Unit List Enhancements"
110,"4b658069-2986-462a-9b47-f66b7418f83d",2,1,1,"UI for Unit Stacking"
111,"803ead4b-c1b0-4f7d-9949-44f1b5a7d735",3,1,0,"Units - Airship and Land Ironclad"
112,"3d3437b1-1df5-4e7e-b4c0-ca6e7607db00",2,1,1,"Units - Multiple Upgrades"
113,"705d2254-692e-43fa-a502-dec5ed7ecb94",10,1,1,"Units - Scout to Explorer"
114,"206490e3-31ed-493a-a2fb-af645a42bed8",3,1,1,"Units - Scouts And Explorers Ignore Borders"
115,"00a28291-c503-4edf-8d76-0da4f86669d2",1,1,1,"Units - Starting Scout"
116,"3c90cf1d-7ff4-4277-a1bf-bec4c431fdfc",3,1,1,"Units - Subs Ignore Borders"
117,"75d92b9d-b908-45fe-b492-5955eab82b78",3,1,1,"War - Less Damaged Captured Cities"
118,"726cd01f-8ea2-4438-8085-21ee14bd9500",7,1,1,"Wonder Race"
125,"2968ab37-29a3-4de7-8b84-ece688231e40",1,1,0,"Wonders of the Ancient World"
 
Isn't "(1) Community Patch" also a DLL mod? You can't have two DLL mods active.
 
My mistake, I did not describe the list I posted. The first row of the list is the names of the columns. Only the mods with enabled=1 are enabled. The mods with enabled=0 are installed but not enabled. I just did a quick sql select/join of a couple of sqlite tables to get the list. Anyway I will try to do more testing to try to narrow down the problem.
 
Short answer to your question is "no, it's not in the DLL or Lua codebase"
Longer answer, while the code to serialize/deserialize game objects (players, units, cities, trade deals, etc) is in the DLL codebase (search for the void CvXyz::Read(FDataStream& kStream) and void CvXyz::Write(FDataStream& kStream) const methods), the main code that handles saving/loading games is not - so the code to determine in what order the objects are serialize/deserialize and what happens before/after they are serialize/deserialize is NOT in the codebase we have access to.
I just found out that the community patch fixes this loading issue, at least it add a workaround in the dll, see "MOD_BUGFIX_AI_DOUBLE_TURN_MP_LOAD" , just in case you are interested or even know a better solution, he wrotes as comment in CvPlayer.cpp:
// DN: There is a strange issue with players missing their turns after loading a game, with the AI getting two turns in a row.
// It seems *to me* that Civ is incorrectly thinking telling us that the players have already indicated they have finished their turns
// A hacky solution to this is to tell Civ to cancel the player turn complete state.
// Otherwise they get their turn ended in the next call to updateMoves after the condition (!player.isEndTurn() && gDLL->HasReceivedTurnComplete(player.GetID()) && player.isHuman())
// R: the function CancelActivePlayerEndTurn() does not help with this issue, because player.isEndTurn() == False, only gDLL->HasReceivedTurnComplete(player.GetID()) seems to catch this issue, was there a wrong gDLL->sendTurnComplete() somewhere?
// in addition, this bug does not advance the turn count
// also, the players do not really miss their turns, what actually happens is that the AI plays twice in one turn

Also there is no desync with the shoshone pathfinder and no problem with trading screen between humans in multiplayer (unlike with your DLL), although I was not able yet to find out what exactly is causing these problems in your DLL...
 
Is there any way to set the limit of civs above 62? Maybe we can raise the limit until 80, with changing max_major_civs in source code of DLL-VMC.
See reply on your other thread
 
Hi whoward,
now that I'm finally able to change dll-code, do you allow users to contribute to your dll? Or will you only pick slected features that you like? Or are you not interested in any new code?

My main goal is of course to fix some multiplayer bugs, I will code and test a bit and as soon as I have a valid result, I will tell you. I guess you are interested in bugfixes.
But I also may add new features, therefore I ask about contribution.
Eg. I added at the end of CvPlot::changeVisibilityCount in CvPlot.cpp the following event:
Code:
#if defined(MOD_EVENTS_VISCOUNT_CHANGED)
    if (MOD_EVENTS_VISCOUNT_CHANGED)
    {
        GAMEEVENTINVOKE_HOOK(GAMEEVENT_VisibilityCountChanged, eTeam, iChange, eSeeInvisible, bInformExplorationTracking, bAlwaysSeeInvisible, (pUnit ? pUnit->GetID() : -1), getX(), getY(), (pUnit ? pUnit->getOwner() : NO_PLAYER));
    }
#endif
And made a lua mod with help of that event, to share complete vision with another non-team player (eg. for everyone always, or after tech, or if firends, or if spy). I did code this mod in lua (not in dll), so every "normal modder" is able to change or use this.

And I added information to the notification of wondermodifier from ressources (marble) in CvCity.cpp, because if I saw it correct, one can already assign a Wondermod and Obsolote Era via xml to any ressource, but the notification you get when you got that ressource, will always tell you "for wonders from ancient or classic". So I added the Era information. This dll change has no negative effect, if the Translation string does not include the new parameter yet.

If you are interested in that, should I post it here like I did, or should I do a pull request at github? (although I have to figure out first, how this works :D)
 
While testing I received crashes. Thanks to the debuggin with VS I now found out why :D
I test currently without settling a capital, and as soon as I got faith (from visiting city states) and then triy to found a pantheon (because the game forces me), the game crashes.

It seems to be a vanilla bug, in line 939 CvReligionClasses.cpp of your dll:
args->Push(GET_PLAYER(ePlayer).getCapitalCity()->GetID());
this crashes, if the player has no capital. (or if "MOD_EVENTS_FOUND_RELIGION" is enabled it will most likey already crash few lines above)

It is not that unlikely that this also happens to default players, so I think we should fix it.
Not sure though, how we should fix it. Should we decalre a new local variable CvCity *pCapital = GET_PLAYER(ePlayer)->getCapitalCity(); before these lines and use it, also in the original code after we checked nil?
Or should we replace it with (GET_PLAYER(ePlayer).getCapitalCity() ? GET_PLAYER(ePlayer).getCapitalCity()->GetID() : -1) in your and the original line?
Or should we simply forbid to choose a pantheon, until the player found a capital? (can a player loose the capital and then has none or will it change to another one ?)

And we should check if the same crash can happen if a religion is founded without captial... but I see no check for capital in foundreligion code for now..
 
Last edited:
Is there a way to get the CE table to work with the Various Components mod? I really want to use the extended workable tiles mod but the changed DLL is causing conflicts in the table.
 
Back
Top Bottom