Yeah I can imagine. That's why I do not want to rush it. My biggest concern is to keep the code readable. For starters, I'd suggest to switch the civ-attribute behind the name.
So instead of:
Code:
<Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI" Area="0"/>
<Replace MapName="PlayEuropeAgain" X="50" Y="31" Civilization="CIVILIZATION_GREECE" CityLocaleName="LOC_CITY_NAME_BARI_GR" Area="0" />
<Replace MapName="PlayEuropeAgain" X="50" Y="31" Civilization="CIVILIZATION_ROME" CityLocaleName="LOC_CITY_NAME_BARI_RM" Area="0" />
write it down this way:
Code:
<Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI" Area="0"/>
<Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI_GR" Area="0" Civilization="CIVILIZATION_GREECE" />
<Replace MapName="PlayEuropeAgain" X="50" Y="31" CityLocaleName="LOC_CITY_NAME_BARI_RM" Area="0" Civilization="CIVILIZATION_ROME" />
Also, you said something about splitting it up in different files. Like making a city map xml for every civ? so instead of having the three lines above in the map.xml, we would end up with the default mapping in the map xml and the _GR and _RM mappings in seperate files?
The result of my thinking : better use both methods, I'll adapt the code.
First method is the one already existing, using the <Civilization> tag in the <CityMap> table, the order of the attributes can be changed there without any problem. And yes, you can have separate files for each Civilization, they just need to be correctly referenced in the .modinfo file to update the database.
The main advantage of this method is to allow someone to create a CityMap for any Civilization he want (including custom civilizations) by just looking at the map coordinate without having to cross-reference with the default city name, which may not exist in some cases.
We can use any convention for city naming here like "LOC_CITY_NAME_BARI_GR" and "LOC_CITY_NAME_BARI_RM", but we may want to follow the naming of the other method.
The other method is to simply append the complete Civilization suffix to the "default" city name (in your example that would mean "LOC_CITY_NAME_BARI_GREECE") in a new translation entry in the localization table. But please let me test the code before, I don't know ATM if it could work as intended.
It's big advantage is that anyone knowing the standard CityMap can create a Civilization-specific CityMap relatively fast, and that if the city position has to be moved because of a change on the map or to correct a misplacement, only one entry will have to be modified.
yeah, we should probably move Arabia somewhere to the middle east at some point... I will add this to the to do list of the project status (post not done yet).
I've already moved Arabia TSL to Mecca in a previous update on GitHub, because Egypt hadn't enough room for a second city.