Guide: How to add a Civilization to DoC

I think I will give it a try soon. My holiday start in 3 weeks, so then I will have plenty of time to.

We should make a list of all civs everyone is creating. So people can get exited about the release. (And to avoid people working on the same civ. Everyone would design a civ with different details, but the major part of a civ will be the same for everyone.)
 
Well unfortunately I failed at adding Australia. So count me out.
 
I 'll have to check what can I do to the backyard XP. Can I do it through windows 7?
VS 2008 should be XP compatible at least. Win7 should support the newest version.
 
Sorry, but I have another quesetion.

How can I open and compile to DLL with CvGameCoreDLL.sln without CvGameCoreDLL.vcxproj file? Am I need to download it from somewhere else?
 
You have to create it yourself by creating a project in whatever your IDE is.
 
(Sorry, I usually assume that you have read one of the guides on setting up a DLL compiler when I answer a more specific question on that subject.)
 
I think I will give it a try soon. My holiday start in 3 weeks, so then I will have plenty of time to.

We should make a list of all civs everyone is creating. So people can get exited about the release. (And to avoid people working on the same civ. Everyone would design a civ with different details, but the major part of a civ will be the same for everyone.)

Venice is already done for me.
 
(Sorry, I usually assume that you have read one of the guides on setting up a DLL compiler when I answer a more specific question on that subject.)

I read the guide used VS 2012 Express edition at first, and now I'm trying with VS 2008 Express edition.

Well it still gives me warning messages but I'm trying to figure out what the problem is :confused:
 
(Sorry, I usually assume that you have read one of the guides on setting up a DLL compiler when I answer a more specific question on that subject.)

I think it's very useful if that link is added in the guide. So they don't have to search for it when they read the guide.
 
Maybe it would be nice to have some Siberian civilization added, more specifically one of the Khanats that was later conquered during Russians conquest of the Siberia. But truth to be told, they weren't very much successful civilizations (historically significant).
 
Haha good idea, there's still a slot left for Babylonian re-spawn.
On a similar topic, I rarely saw Saudi Arabia (Arab respawn) now in Industrial/Modern era compared to previous version.
 
Time to make my unified islands,Iraq (Babylonian re-spawn) and Canada
Edit:how do i create dynamic names?
 
Searching for every teamnumber in the scenario is very tedious. Here a small guide on how to do that a lot quicker. (10000+ numbers have to be changed in just 1 scenario, there are 3 of them)

First of all, make sure you have done these steps.
Spoiler :
Adding a team: as I said, every player needs its own team, so you first have to add a new team. You can do this by adding another
Code:
BeginTeam
EndTeam
to the long list of identical statements right at the beginning of the file. You don't have to set anything else for teams (don't worry about techs, we're going to do that in Python later).

Adding a player: Just replicate the pattern from the other players:
Code:
BeginPlayer
        LeaderType=[The leader you have added to the XML]
        CivType=[The civilization you have added to the XML]
        Team=[The position of this player entry in the list of player entries]
        PlayableCiv=1
        Handicap=HANDICAP_PRINCE
EndPlayer
The position of this entry is very important because the order of entries determines the order of players in the selection screen of the scenario. This order has to be identical to the order of spawn dates, and must be the same in all scenarios (don't worry if this civ is already alive at the beginning of one of the scenarios). The Team variable has to be ascending for all entries. That means you must increment this value for all players that come after your new one.
The following numbers need to be changed:
Owners of the units, owners of cities, owner of the culture in a city, revealed tiles for civs

You can't just use the text replace option straightforward, that will mess up the coordinates as well. But with a little trick, it can be used.

We start with the unitowner and cityowners. Both can be changed at the same time. Open the "replace text" option in the text editor. (Ctrl+h)
Code:
Search for: Owner=[U]45[/U]
Replace with: Owner=[U]46[/U]
Click the "Replace all" button. Now, all units and cities which belonged to civ 45 now belong to civ 46. Lower the numbers (underlined) by 1 and repeat this step. Repeat this step until the number in "search for" equals the teamnumber of the newly added civ. (So if you added a civ with teamnumber 36, "Owner=36" is the last one you should replace)

NOTE: It's important you start with the highest number. (Which is 45) Otherwise you will change all numbers to 46.
Spoiler :
I have a Dutch version of Notepad++. I translated the important things. The buttons should be in the same place in other versions.
attachment.php


Next we will change the cultureowner. This is done the same way as the unitowners and cityowners. Open the replace text option again.
Code:
Search for: Player[U]45[/U]Culture
Replace with: Player[U]46[/U]Culture
Replace all. Lower the numbers (underlined) by 1 and repeat this step. The number you new civ has should be the last number you replace.

Last, we will change the teamrevealed plots. These are by far the most numerous numbers. It is done the same way as above.
Code:
Search for: TeamReveal=[U]45[/U],
Replace with: TeamReveal=[U]46[/U],
Note the comma after the number.
Replace all, lower underlined numbers by 1 and repeat until the number of the new civ is the number in "search for".

Also search and replace what's below. (Note the commas before and after the number)
Code:
Search for: ,[U]45[/U],
Replace with: ,[U]46[/U],

This should do it.
 
Yeah, that's how I'm doing it too, didn't feel like elaborating on this too at the time. Thanks for writing it up.
 
Using regexes, you can save a lot of time.

Code:
Search for: (Owner=|Reveal=|Player|,)46
Replace with: $145
 
Back
Top Bottom