I'm working on a RFC modmod with a historical accuracy theme. One of my first ideas was to move the Indian start date forward to about 2000-1500 BC to reflect the start of the Vedic/Aryan civilization. This turned out to be quite involved, with changes made to the python, WBS (worldbuilder save) and C++ /DLL. Thanks to Asaf, embryodead and Jarkov, I eventually succeeded. Here's what I did: (note in this example the Indian spawn is changed to 2250 BC, I can't remember why I chose that date, but it does make one more change necessary since they become the 1st new civ to spawn after the game start. Also note that I made this change for the 3000 BC only scenario and I started from an unmodded RFCEpic/Marathon copy)
1. Python changes.
2. WBS changes. (note these changes are made by opening the WBS with a text editor)
3. C++/DLL changes
First you need to be able to compile the C++ files into a new DLL. Thankfully there's a great up-to-date method from Asaf here: http://forums.civfanatics.com/showthread.php?t=405444 . It worked for me the first time I tried it, after many failures with older tutorials. Once you have the compiler working, make the following changes in the C++ files:
After making these changes, recompile the DLL.
And thats it. I hope this was relatively clear. Please let me know if you have problems with it. Also as you can see I have not posted much and don't know much about forum protocols and such so I hope I'm posting this properly and in the right place. Apologies if I'm not.
1. Python changes.
Code:
In Assets/Python/Consts:
line 166: tBirth for India changed from "-3000" to "-2250"
Code:
In Assets/Python/RiseAndFall:
line 733 change:
iFirstSpawn = iGreece
to:
iFirstSpawn = iIndia
line 2627 add:
if (iCiv == iIndia):
utils.makeUnit(con.iSettler, iCiv, tPlot, 2)
utils.makeUnit(con.iArcher, iCiv, tPlot, 2)
utils.makeUnit(con.iChariot, iCiv, tPlot, 2)
lines 2996-7 (after the above change is made) remove:
utils.makeUnit(iSettler, iIndia, tCapitals[iIndia], 1)
utils.makeUnit(iWarrior, iIndia, tCapitals[iIndia], 1)
line 3002 (after the above changes are made) add:
if ( pIndia.isHuman() ):
utils.makeUnit(iSettler, iIndia, tCapitals[iIndia], 1)
utils.makeUnit(iScout, iIndia, tCapitals[iIndia], 1)
2. WBS changes. (note these changes are made by opening the WBS with a text editor)
Code:
delete lines 32-33, the Indian team reference.
3. C++/DLL changes
First you need to be able to compile the C++ files into a new DLL. Thankfully there's a great up-to-date method from Asaf here: http://forums.civfanatics.com/showthread.php?t=405444 . It worked for me the first time I tried it, after many failures with older tutorials. Once you have the compiler working, make the following changes in the C++ files:
Code:
In CvGameCoreDLL/CvRhyes:
line 13:
startingTurnYear for India changed to -2250
lines 16-21: other changes to make the scenario launcher display the correct starting date and estimated loading time, hard to describe but easy to figure out by looking at it.
Code:
In CvGame:
line 2233:
move "case INDIA:" down below all the civs with "break;" after them, just above Greece, and delete the "break;" line following it
After making these changes, recompile the DLL.
And thats it. I hope this was relatively clear. Please let me know if you have problems with it. Also as you can see I have not posted much and don't know much about forum protocols and such so I hope I'm posting this properly and in the right place. Apologies if I'm not.