New Civilizations

Modding, Map Editor, IES Scripting and Other Questions
Post Reply
User avatar
Gonzalo
Posts: 336
Joined: 24 Aug 2018, 08:56
Been thanked: 3 times

New Civilizations

Post by Gonzalo »

Hi all, I am (unsuccessfully) trying to add new civilizations to EE2 AoS: Spanish, Dutch, Portuguese (Western); Moroccan, Hindi (MiddleEast). In the beginning I added them in EE2X_hdrs (.h files) beside the original civs (i. e., from the Russian downwards) in dbPlayerDefs.h and in dbTechTreeDefs.h, as the file itself warned to do (both files need to match). Then I realized that I could replace eCivs (hardcoded) by an ENUM called ENUM eCivs which included old and new civilizations, and so make extensive the eCivs (to which I added strartÍtem=0 and endItem=22 copying another lines in the same file) which appeared in dbwidget_scenedit.utf8. Of course I didn't achieve my object, for the number of civilizations is hardcoded :roll: Then I thought I could replace older civilizations by new ones, and leave the original replaced civs at the botton of the stack, so perhaps any day I could give them "new life"...Sorry for so crooked a story but eventually I have messed the things so much than even the game don''t understand, and for instance british cities are renamed as greek and german as portuguese. Of course I also modded citynames and territory names (not leader names). Now the new replaced civs, from epoch 1 until epoch 5 most times work, but from 6 onwards they usually crash the game. Now I show the code I added:

(DbPlayerDefs.h):

Code: Select all

//===========================================================================
// Copyright 2003 Mad Doc Software, LLC.  All rights reserved.
// $Header: /EE2X/src/EE2/DbHdrs/DbPlayerDefs.h 22    7/01/05 3:42p Dsproul $
//
// DESCRIPTION:   DbPlayerDefs.h has parser-readable player definitions.
//
// AUTHOR:        Rex Bradford
//
//===========================================================================

#ifndef DBPLAYERDEFS_H
#define DBPLAYERDEFS_H
#pragma once

#include "HdrMacros.h"


//	Player types

ENUM ePlayerType {
	kPlayerType_Human,		// human-controlled player
	kPlayerType_Computer,	// AI-controlled player
	kPlayerType_Observer,	// just watching a game @NOTE this is just a hack to facilitate
							// setup of MP games with observers and is distinct from the
							// game ui being in observer mode
							
	kPlayerType_Invalid = -1,	// invalid player type
};

//	Player civilizations
//  @NOTE: IF THIS CHANGES IN SOME WAY, MAKE THE CORRESPONDING CHANGE IN THE CIV ENUM
//  OF  DbTechTreeDefs.h!!!!!  Also there is a routine called CivilizationToRegion in
//	PlayerDefs which would need to be updated.
ENUM ePlayerCivilization {
	// West region
	kPlayerCivilization_German = 0,	//0
	kPlayerCivilization_English,	//1
	kPlayerCivilization_Roman,		//2
	kPlayerCivilization_Spanish,	//3
	kPlayerCivilization_Dutch,		//4
	
	// FarEast region
	kPlayerCivilization_Chinese,	//5
	kPlayerCivilization_Korean,		//6
	kPlayerCivilization_Japanese,	//7	@NOTE: IF CHANGING THIS, SEE NOTE ABOVE!!!

	// MiddleEast region
	kPlayerCivilization_Moroccan,	//8
	kPlayerCivilization_Turkish,	//9
	kPlayerCivilization_Hindi,	//10
	
	// MesoAmerican region
	kPlayerCivilization_Inca,		//11
	kPlayerCivilization_Aztec,		//12
	kPlayerCivilization_Mayan,		//13

	// African Region
	kPlayerCivilization_Maasai,		//14
	kPlayerCivilization_Zulu,		//15

	//@EE2X part of the West region.  cannot be stuck with the rest of the west region because EE2 would not be correct anymore
	kPlayerCivilization_French,		//16
	kPlayerCivilization_Portuguese,	//17

	kNumPlayerCivilization,
	kPlayerCivilization_Random = -1,	// random; list before unused for settings.cfg readability
	kPlayerCivilization_Unused = -1,

	// @EE2X custom civs are marked thusly
	kPlayerCivilization_Custom = -2,
	
	//CUSTOM CIVS
	kPlayerCivilization_American,	//18
	kPlayerCivilization_Greek,	//19
	kPlayerCivilization_Portuguese,	//20

	//@EE2X part of the MiddleEast region.  cannot be stuck with the rest of the middle east region because EE2 would not be correct anymore
	kPlayerCivilization_Egyptian,	//21
	kPlayerCivilization_Babylonian,	//22
	//Enumerations to mark the first/last civs in each region:
	
	// western
	// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
	kPlayerCivilization_FirstWestern = kPlayerCivilization_German,
	kPlayerCivilization_LastWestern = kPlayerCivilization_Portuguese,
	
	// FarEast
	// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
	kPlayerCivilization_FirstFarEast = kPlayerCivilization_Chinese,
	kPlayerCivilization_LastFarEast = kPlayerCivilization_Japanese,
	
	// MiddleEast
	// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
	kPlayerCivilization_FirstMiddleEast = kPlayerCivilization_Moroccan,
	kPlayerCivilization_LastMiddleEast = kPlayerCivilization_Hindi,
	
	// Meso american
	// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
	kPlayerCivilization_FirstMesoAmer = kPlayerCivilization_Inca,
	kPlayerCivilization_LastMesoAmer = kPlayerCivilization_Mayan,

	// African 
	// @NOTE be careful when iterating, not all civs are contiguous in EE2X!
	kPlayerCivilization_FirstAfrican = kPlayerCivilization_Maasai,
	kPlayerCivilization_LastAfrican = kPlayerCivilization_Zulu,

}; // enum PlayerCivilizatio...

// @EE2X not all civs in a region are contiguous, doh!
// how many civs in each region?
static const int kNumWesternCivs = 10;
static const int kNumFarEastCivs = 3;
static const int kNumMiddleEastCivs = 5;
static const int kNumMesoAmericanCivs = 3;
static const int kNumAfricanCivs = 2;

ENUM eCivs {
	German, 
	English,
	Roman,
	Spanish,
	Dutch,
	Chinese,	
	Korean,
	Japanese,
	Moroccan,
	Turkish,
	Hindi,
	Inca,
	Aztec,
	Mayan,
	Maasai,
	Zulu,
	French,
	Portuguese,
	American,
	Greek,
	Russian,
	Egyptian,
	Babylonian,
}; //
//---------------------------------------------------------------------------------------------
//@NOTE if someone add a region, do not forget to add a initial for that particular region in:
// SRC\EE2\PLAYER\PlayerCivilisation.h under the function GetRegionalPostFix()
//
ENUM eCivilizationRegion {
	kCivilizationRegion_West = 0,
	kCivilizationRegion_FarEast,
	kCivilizationRegion_MiddleEast,
	kCivilizationRegion_MesoAmerican,
	kCivilizationRegion_African,

	kNumCivilizationRegion,

	// invalid region!
	// putting this last so we don't screw things up
	kCivilizationRegion_Invalid = -1,
};

//	Player colors

ENUM ePlayerColor {
	kPlayerColor_Blue,
	kPlayerColor_Red,
	kPlayerColor_Green,
	kPlayerColor_Orange,
	kPlayerColor_Magenta,
	kPlayerColor_Cyan,
	kPlayerColor_Yellow,
	kPlayerColor_Lavender,
	kPlayerColor_Purple,
	kPlayerColor_Gold,

	kPlayerColor_LastAvailableToNonWorldPlayer = 9,		// should be same as previous entry

	kPlayerColor_Grey,
	kPlayerColor_WorldPlayerColor = 10,		// should be same as previous entry
	
	kPlayerColor_NativeTribePlayerColor = 10,

	kPlayerColor_Num,
};



#endif // DBPLAYERDEFS_H
(DbTechTreeDefs.h):

Code: Select all

//===========================================================================
// Copyright 2003 Mad Doc Software, LLC.  All rights reserved.
// $Header: /EE2X/src/EE2/DbHdrs/DbTechTreeDefs.h 69    10/05/05 2:53p Tteich $
//
// DESCRIPTION:	DbTechTreeDef.h holds the enum and dataclass defs
//				related to the tech tree
//
// AUTHOR:      Rex E. Bradford
//
//===========================================================================

#ifndef DBTECHTREEDEF_H
#define DBTECHTREEDEF_H
#pragma once

#include "HdrMacros.h"
#include "LSizedArray.h"
#include "DbResourceDefs.h"
#include "DbPlayerDefs.h"
#include "LDbText.h"

class LDataObj;		// forward refs
class LStrUTF8;
class Player;

//	-------------------------------------------------------------------
//		TECH TREE EPOCHS
//	-------------------------------------------------------------------

//Epoch Name enumeration table
ENUM eTechTreeEpoch{
	kTechTreeEpoch_None = 0,

	kTechTreeEpoch_Stone = 1,
	kTechTreeEpoch_Copper,
	kTechTreeEpoch_Bronze,
	kTechTreeEpoch_Iron,
	kTechTreeEpoch_Dark,
	kTechTreeEpoch_Middle,
	kTechTreeEpoch_Renaissance,
	kTechTreeEpoch_Imperial,
	kTechTreeEpoch_Enlightenment,
	kTechTreeEpoch_Industrial,
	kTechTreeEpoch_Modern,
	kTechTreeEpoch_Atomic,
	kTechTreeEpoch_Digital,
	kTechTreeEpoch_Genetic,
	kTechTreeEpoch_Synthetic = 15,

	kNumTechTreeEpochs = 15,
	
	kTechTreeEpoch_Random = -1,
};

// meta epochs
const int kMetaEpoch_1 = 5;
const int kMetaEpoch_2 = 10;

//
// EpochToMetaEpoch() -- stupid helper func maps epoch to meta-epoch
//
inline int EpochToMetaEpoch(int in_iEpoch)
{
	ASSERT(in_iEpoch >= 1 && in_iEpoch <= 15);

	if(in_iEpoch <= kMetaEpoch_1)
	{
		return 1;
	}
	else if(in_iEpoch <= kMetaEpoch_2)
	{
		return 2;
	}
	else
	{
		return 3;
	}
}

//Epoch Names
static const char *s_EpochNames[] = { "", "tx_enum_eTechTreeEpoch_1", "tx_enum_eTechTreeEpoch_2",
										"tx_enum_eTechTreeEpoch_3",	"tx_enum_eTechTreeEpoch_4",
										"tx_enum_eTechTreeEpoch_5",	"tx_enum_eTechTreeEpoch_6",
										"tx_enum_eTechTreeEpoch_7",	"tx_enum_eTechTreeEpoch_8",
										"tx_enum_eTechTreeEpoch_9",	"tx_enum_eTechTreeEpoch_10",
										"tx_enum_eTechTreeEpoch_11",	"tx_enum_eTechTreeEpoch_12",
										"tx_enum_eTechTreeEpoch_13",	"tx_enum_eTechTreeEpoch_14",
										"tx_enum_eTechTreeEpoch_15"};


inline const char *GetEpochName(eTechTreeEpoch inEpoch)
{
	ASSERT(inEpoch >= 0 && inEpoch <= kNumTechTreeEpochs);
	if(inEpoch >= 0 && inEpoch <= kNumTechTreeEpochs)
		return g_pDbTextTable->GetText(s_EpochNames[inEpoch]);
	else
		return NULL;
}

//	-------------------------------------------------------------------
//		TECH TREE NODES
//	-------------------------------------------------------------------

// Tech Tree branch
ENUM eTechTreeBranch {
	kTechTreeBranch_None,			// none, shouldn't be used in visible tech tree
	kTechTreeBranch_Main,			// main trunk
	kTechTreeBranch_Military,		// military branch
	kTechTreeBranch_Economic,		// economic branch
	kTechTreeBranch_Imperial,		// imperial branch
	kTechTreeBranch_Improvement,	// unit type improvement
	kNumTechTreeBranches,
};

//EE2X
//Enum table to designate civ specific tech tree nodes
//@NOTE: THIS MUST TO CORESPOND TO THE GAME'S CIV ENUM IN DBPLAYERDEFS.H, BUT HAVE THE "ALL" CIV 
//  ENUM IN THE 0 SPACE!
ENUM eTechTreeCiv {
	kTechTreeCiv_All,	//0
	kTechTreeCiv_German,	//1
	kTechTreeCiv_English,
	kTechTreeCiv_Roman,
	kTechTreeCiv_Spanish,
	kTechTreeCiv_Dutch,
	kTechTreeCiv_Chinese,
	kTechTreeCiv_Korean,
	kTechTreeCiv_Japanese,
	kTechTreeCiv_Moroccan,
	kTechTreeCiv_Turkish,
	kTechTreeCiv_Hindi,
	kTechTreeCiv_Inca,
	kTechTreeCiv_Aztec,
	kTechTreeCiv_Mayan,
	kTechTreeCiv_Maasai,
	kTechTreeCiv_Zulu,
	kTechTreeCiv_French,
	kTechTreeCiv_Portuguese, // 18


	kTechTreeCiv_Western, //19
	kTechTreeCiv_FarEast,
	kTechTreeCiv_MiddleEast,
	kTechTreeCiv_MesoAmer,
	kTechTreeCiv_African,  //28

	kTechTreeCiv_Regions = 19,
		//The value of the first region enum
	kTechTreeCiv_American, //19
	kTechTreeCiv_Greek,	//20
	kTechTreeCiv_Russian,	//21
	kTechTreeCiv_Egyptian,//22
	kTechTreeCiv_Babylonian,	//23
};

//The following two inline function are used for converting from this tech tree enum
//to the play civ enum and regions
inline int TechTreeCivToRegion(int inTTCiv)
{
	ASSERT(inTTCiv >= kTechTreeCiv_Western && inTTCiv <= kTechTreeCiv_African);
	return inTTCiv - kTechTreeCiv_Regions;
}
inline int TechTreeCivToPlayerCiv(int inTTCiv)
{
	ASSERT(inTTCiv >= 0 && inTTCiv < kTechTreeCiv_Regions);
	return inTTCiv - 1;
}

//flags for special units
FLAGS(kSpecialFlag)
	const uint32 kSpecialFlag_None = 0x0000;
//The leader flags use the three right most bits
	const uint32 kSpecialFlag_Leader = 0x0001;	//rightmost bit if the node is a leader
	const uint32 kSpecialFlag_LeaderMilitary = 0x0001;	//001
	const uint32 kSpecialFlag_LeaderEconomic = 0x0003;	//011
	const uint32 kSpecialFlag_LeaderImperial = 0x0005;	//101
	
	
	etc


From Civilizations/Western:

Code: Select all

////////////////////////
// Roman

Civilization Roman
{
	CityNames = [
		tx_ms_cityname_Aquilonia
		tx_ms_cityname_Arpinum
		tx_ms_cityname_Brundisium
		tx_ms_cityname_Caerleon
		tx_ms_cityname_Capua
		tx_ms_cityname_Cividale
		tx_ms_cityname_Colossae
		tx_ms_cityname_Constantinople
		tx_ms_cityname_Ephesus
		tx_ms_cityname_Epirus
		tx_ms_cityname_Glanum
		tx_ms_cityname_Herculaneum
		tx_ms_cityname_Lanivium
		tx_ms_cityname_Londinium
		tx_ms_cityname_Lutetia
		tx_ms_cityname_Ostia
		tx_ms_cityname_Philippi
		tx_ms_cityname_Pompeii
		tx_ms_cityname_Puteoli
		tx_ms_cityname_Ravenna
		tx_ms_cityname_Rome
		tx_ms_cityname_Saguntum
		tx_ms_cityname_Sutri
		tx_ms_cityname_Taranto
		tx_ms_cityname_Thapsus
		tx_ms_cityname_Thurii
		tx_ms_cityname_Tiberias
		tx_ms_cityname_Tripontium
		tx_ms_cityname_Verulamium
		tx_ms_cityname_Viroconium
	]
	
	TerritoryNames = [
		tx_terr_roman_0
		tx_terr_roman_1
		tx_terr_roman_2
		tx_terr_roman_3
		tx_terr_roman_4
		tx_terr_roman_5
		tx_terr_roman_6
		tx_terr_roman_7
		tx_terr_roman_8
		tx_terr_roman_9			
		tx_terr_roman_10
		tx_terr_roman_11
		tx_terr_roman_12
		tx_terr_roman_13
		tx_terr_roman_14
		tx_terr_roman_15
		tx_terr_roman_16
		tx_terr_roman_17
	]
	
	PlayerNames = [
		tx_player_Roman_0
		tx_player_Roman_1
		tx_player_Roman_2
		tx_player_Roman_3
		tx_player_Roman_4
		tx_player_Roman_5
		tx_player_Roman_6
		tx_player_Roman_7
		tx_player_Roman_8
	]
	
	LeaderNames = [
		{ Name = tx_leader_Roman_0    crown = Military  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_Roman_1    crown = Imperial  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_Roman_2    crown = Economic  startEpoch = 1  endEpoch = 15 }
	]
	
	UniqueUnits = [
		UniqueUnitRoman1
		UniqueUnitRoman2
		UniqueUnitRoman3
	]
	
	CivAttributes = [
		CivAtt_BarrWkshp_Cost
		CivAtt_HInf_Dmg
	]
	
	AutoResearchedTechs = [
		{ 	
			Epoch = 1
			Techs = [ 	Military1_3 
					  	Economic1_1 Economic1_2 Economic1_4 
					  	Imperial1_1 Imperial1_3
			]
		}
		{ 	
			Epoch = 2
			Techs = [ 	Military2_2 Military2_3 
					  	Economic2_1 Economic2_3 
					  	Imperial2_2 Imperial2_3 
			]
		}
		{ 	
			Epoch = 3
			Techs = [ 	Military3_4
					  	Economic3_1 Economic3_3  
					  	Imperial3_1 Imperial3_2 Imperial3_4
			]
		}
		{ 	
			Epoch = 4
			Techs = [ 	Military4_4 
					  	Economic4_2 Economic4_3 Economic4_4 
					  	Imperial4_1 Imperial4_4
			]
		}
		{ 	
			Epoch = 5
			Techs = [ 	Military5_3 Military5_4 
					  	Economic5_2 Economic5_3 
						Imperial5_1 Imperial5_2
			]
		}
		{ 	
			Epoch = 6
			Techs = [ 	Military6_1 Military6_4
					  	Economic6_1 Economic6_2  
					  	Imperial6_2 Imperial6_3 
			]
		}
		{ 	
			Epoch = 7
			Techs = [ 	Military7_1 Military7_2 Military7_4 
					  	Economic7_2 Economic7_4 
					  	Imperial7_1
			]
		}
		{ 	
			Epoch = 8
			Techs = [ 	Military8_3 Military8_4 
					  	Economic8_3 Economic8_4 
					  	Imperial8_1 Imperial8_2
			]
		}
		{ 	
			Epoch = 9
			Techs = [ 	Military9_4 
					  	Economic9_2 Economic9_3  
					  	Imperial9_1 Imperial9_3 Imperial9_4
			]
		}
		{ 	
			Epoch = 10
			Techs = [ 	Military10_2 Military10_3 Military10_4 
					  	Economic10_1 Economic10_3
					  	Imperial10_2
			]
		}
		{ 	
			Epoch = 11
			Techs = [ 	Military11_3 
					  	Economic11_2 Economic11_3 Economic11_4 
					  	Imperial11_2 Imperial11_3 
			]
		}
		{ 	
			Epoch = 12
			Techs = [ 	Military12_1 Military12_2 Military12_3
					  	Economic12_1 Economic12_4 
					  	Imperial12_1
			]
		}
		{ 	
			Epoch = 13
			Techs = [ 	Military13_1 Military13_2 Military13_3 
					  	Economic13_2 Economic13_3
					  	Imperial13_1
			]
		}
		{ 	
			Epoch = 14
			Techs = [ 	Military14_1 Military14_3
					  	Economic14_2 Economic14_4 
					  	Imperial14_1 Imperial14_3 
			]
		}
	]
}

////////////////////////
// Spanish

Civilization Spanish
{
	CityNames = [
		tx_ms_cityname_Madrid
		tx_ms_cityname_Valladolid
		tx_ms_cityname_Zaragoza
		tx_ms_cityname_Almeria
		tx_ms_cityname_Barcelona
		tx_ms_cityname_Sevilla
		tx_ms_cityname_Salamanca
		tx_ms_cityname_Valencia
		tx_ms_cityname_Albacete
		tx_ms_cityname_Granada
		tx_ms_cityname_Malaga
		tx_ms_cityname_Vitoria
		tx_ms_cityname_Vigo
		tx_ms_cityname_Finisterre
		tx_ms_cityname_Santiago
	]
	
	TerritoryNames = [
		tx_terr_spanish_0
		tx_terr_spanish_1
		tx_terr_spanish_2
		tx_terr_spanish_3
		tx_terr_spanish_4
		tx_terr_spanish_5
		tx_terr_spanish_6
		tx_terr_spanish_7
		tx_terr_spanish_8
		tx_terr_spanish_9
		tx_terr_spanish_10
		tx_terr_spanish_11
		tx_terr_spanish_12
		tx_terr_spanish_13
		tx_terr_spanish_14
	]
	
	PlayerNames = [
		tx_player_German_0
		tx_player_German_1
		tx_player_German_2
		tx_player_German_3
		tx_player_German_4
		tx_player_German_5
		tx_player_German_6
		tx_player_German_7
		tx_player_German_8
	]
	
	LeaderNames = [
		{ Name = tx_leader_German_0    crown = Military  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_1    crown = Imperial  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_2    crown = Economic  startEpoch = 1  endEpoch = 15 }
	]
	
	UniqueUnits = [
		UniqueUnitGerman1
		UniqueUnitGerman2
		UniqueUnitGerman3
	]
	
	CivAttributes = [
		CivAtt_SpecRes_Cost
		CivAtt_Hinf_Health
	]
	
	AutoResearchedTechs = [
		{ 	
			Epoch = 1
			Techs = [ 	Military1_1 Military1_3 
					  	Economic1_2 Economic1_4 
					  	Imperial1_1 Imperial1_3
			]
		}
		{ 	
			Epoch = 2
			Techs = [ 	Military2_1 Military2_2 Military2_3 
					  	Economic2_2 Economic2_3 
					  	Imperial2_2 
			]
		}
		{ 	
			Epoch = 3
			Techs = [ 	Military3_1
					  	Economic3_1 Economic3_3 Economic3_4 
					  	Imperial3_1 Imperial3_4
			]
		}
		{ 	
			Epoch = 4
			Techs = [ 	Military4_4 
					  	Economic4_2 Economic4_3  
					  	Imperial4_1 Imperial4_3 Imperial4_4
			]
		}
		{ 	
			Epoch = 5
			Techs = [ 	Military5_2 Military5_4 
					  	Economic5_2 Economic5_3
						Imperial5_1 Imperial5_3 
			]
		}
		{ 	
			Epoch = 6
			Techs = [ 	Military6_1 Military6_3
					  	Economic6_1 Economic6_2  
					  	Imperial6_2 Imperial6_3 
			]
		}
		{ 	
			Epoch = 7
			Techs = [ 	Military7_2 Military7_3 Military7_4 
					  	Economic7_3 Economic7_4 
					  	Imperial7_1
			]
		}
		{ 	
			Epoch = 8
			Techs = [ 	Military8_1 Military8_3 
					  	Economic8_3 Economic8_4 
					  	Imperial8_1 Imperial8_2
			]
		}
		{ 	
			Epoch = 9
			Techs = [ 	Military9_3 Military9_4 
					  	Economic9_2 Economic9_3  
					  	Imperial9_1 Imperial9_4
			]
		}
		{ 	
			Epoch = 10
			Techs = [ 	Military10_3 Military10_4 
					  	Economic10_2 Economic10_3
					  	Imperial10_1 Imperial10_2
			]
		}
		{ 	
			Epoch = 11
			Techs = [ 	Military11_1 Military11_3 
					  	Economic11_2 Economic11_3  
					  	Imperial11_2 Imperial11_3 
			]
		}
		{ 	
			Epoch = 12
			Techs = [ 	Military12_1 Military12_2 Military12_4
					  	Economic12_1 Economic12_4 
					  	Imperial12_1
			]
		}
		{ 	
			Epoch = 13
			Techs = [ 	Military13_1 Military13_3 Military13_4 
					  	Economic13_2 
					  	Imperial13_1 Imperial13_2
			]
		}
		{ 	
			Epoch = 14
			Techs = [ 	Military14_1 Military14_2
					  	Economic14_1 Economic14_2  
					  	Imperial14_1 Imperial14_4
			]
		}
	]
}


////////////////////////
// Dutch

Civilization Dutch
{
	CityNames = [
		tx_ms_cityname_Amsterdam
		tx_ms_cityname_Lahague
		tx_ms_cityname_Rotterdam
		tx_ms_cityname_Delft
		tx_ms_cityname_Gouda
		tx_ms_cityname_Utrecht
		tx_ms_cityname_Maastricht
		tx_ms_cityname_Eindhoven
		tx_ms_cityname_Groningen
		tx_ms_cityname_Deventer
		tx_ms_cityname_Haarlem
		tx_ms_cityname_Alkmaar
		tx_ms_cityname_Hoorn
		tx_ms_cityname_Einkhuizen
		tx_ms_cityname_Dordrecht
		tx_ms_cityname_Amersfoort
		tx_ms_cityname_Marken
		tx_ms_cityname_Volendam
		tx_ms_cityname_ZaanseSchans
		tx_ms_cityname_Limbourg
		tx_ms_cityname_Luxembourg
		tx_ms_cityname_Breda
	]
	
	TerritoryNames = [
		tx_terr_dutch_0
		tx_terr_dutch_1
		tx_terr_dutch_2
		tx_terr_dutch_3
		tx_terr_dutch_4
		tx_terr_dutch_5
		tx_terr_dutch_6
		tx_terr_dutch_7
		tx_terr_dutch_8
		tx_terr_dutch_9
		tx_terr_dutch_10
		tx_terr_dutch_11
		tx_terr_dutch_12
		tx_terr_dutch_13
		tx_terr_dutch_14
		tx_terr_dutch_15
	]
	
	PlayerNames = [
		tx_player_German_0
		tx_player_German_1
		tx_player_German_2
		tx_player_German_3
		tx_player_German_4
		tx_player_German_5
		tx_player_German_6
		tx_player_German_7
		tx_player_German_8
	]
	
	LeaderNames = [
		{ Name = tx_leader_German_0    crown = Military  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_1    crown = Imperial  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_2    crown = Economic  startEpoch = 1  endEpoch = 15 }
	]
	
	UniqueUnits = [
		UniqueUnitGerman1
		UniqueUnitGerman2
		UniqueUnitGerman3
	]
	
	CivAttributes = [
		CivAtt_SpecRes_Cost
		CivAtt_Hinf_Health
	]
	
	AutoResearchedTechs = [
		{ 	
			Epoch = 1
			Techs = [ 	Military1_1 Military1_3 
					  	Economic1_2 Economic1_4 
					  	Imperial1_1 Imperial1_3
			]
		}
		{ 	
			Epoch = 2
			Techs = [ 	Military2_1 Military2_2 Military2_3 
					  	Economic2_2 Economic2_3 
					  	Imperial2_2 
			]
		}
		{ 	
			Epoch = 3
			Techs = [ 	Military3_1
					  	Economic3_1 Economic3_3 Economic3_4 
					  	Imperial3_1 Imperial3_4
			]
		}
		{ 	
			Epoch = 4
			Techs = [ 	Military4_4 
					  	Economic4_2 Economic4_3  
					  	Imperial4_1 Imperial4_3 Imperial4_4
			]
		}
		{ 	
			Epoch = 5
			Techs = [ 	Military5_2 Military5_4 
					  	Economic5_2 Economic5_3
						Imperial5_1 Imperial5_3 
			]
		}
		{ 	
			Epoch = 6
			Techs = [ 	Military6_1 Military6_3
					  	Economic6_1 Economic6_2  
					  	Imperial6_2 Imperial6_3 
			]
		}
		{ 	
			Epoch = 7
			Techs = [ 	Military7_2 Military7_3 Military7_4 
					  	Economic7_3 Economic7_4 
					  	Imperial7_1
			]
		}
		{ 	
			Epoch = 8
			Techs = [ 	Military8_1 Military8_3 
					  	Economic8_3 Economic8_4 
					  	Imperial8_1 Imperial8_2
			]
		}
		{ 	
			Epoch = 9
			Techs = [ 	Military9_3 Military9_4 
					  	Economic9_2 Economic9_3  
					  	Imperial9_1 Imperial9_4
			]
		}
		{ 	
			Epoch = 10
			Techs = [ 	Military10_3 Military10_4 
					  	Economic10_2 Economic10_3
					  	Imperial10_1 Imperial10_2
			]
		}
		{ 	
			Epoch = 11
			Techs = [ 	Military11_1 Military11_3 
					  	Economic11_2 Economic11_3  
					  	Imperial11_2 Imperial11_3 
			]
		}
		{ 	
			Epoch = 12
			Techs = [ 	Military12_1 Military12_2 Military12_4
					  	Economic12_1 Economic12_4 
					  	Imperial12_1
			]
		}
		{ 	
			Epoch = 13
			Techs = [ 	Military13_1 Military13_3 Military13_4 
					  	Economic13_2 
					  	Imperial13_1 Imperial13_2
			]
		}
		{ 	
			Epoch = 14
			Techs = [ 	Military14_1 Military14_2
					  	Economic14_1 Economic14_2  
					  	Imperial14_1 Imperial14_4
			]
		}
	]
}
////////////////////////
// Portuguese

Civilization Portuguese
{
	CityNames = [
		tx_ms_cityname_Lisboa
		tx_ms_cityname_Oporto
		tx_ms_cityname_Coimbra
		tx_ms_cityname_Braga
		tx_ms_cityname_Evora
		tx_ms_cityname_Setubal
		tx_ms_cityname_Braganca
		tx_ms_cityname_Vianadocastelo
		tx_ms_cityname_Guimaraes
		tx_ms_cityname_Santarem
	]
	
	TerritoryNames = [
		tx_terr_portuguese_0
		tx_terr_portuguese_1
		tx_terr_portuguese_2
		tx_terr_portuguese_3
		tx_terr_portuguese_4
		tx_terr_portuguese_5
		tx_terr_portuguese_6
		tx_terr_portuguese_7
	]
	
	PlayerNames = [
		tx_player_German_0
		tx_player_German_1
		tx_player_German_2
		tx_player_German_3
		tx_player_German_4
		tx_player_German_5
		tx_player_German_6
		tx_player_German_7
		tx_player_German_8
	]
	
	LeaderNames = [
		{ Name = tx_leader_German_0    crown = Military  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_1    crown = Imperial  startEpoch = 1  endEpoch = 15 }
		{ Name = tx_leader_German_2    crown = Economic  startEpoch = 1  endEpoch = 15 }
	]
	
	UniqueUnits = [
		UniqueUnitGerman1
		UniqueUnitGerman2
		UniqueUnitGerman3
	]
	
	CivAttributes = [
		CivAtt_SpecRes_Cost
		CivAtt_Hinf_Health
	]
	
	AutoResearchedTechs = [
		{ 	
			Epoch = 1
			Techs = [ 	Military1_1 Military1_3 
					  	Economic1_2 Economic1_4 
					  	Imperial1_1 Imperial1_3
			]
		}
		{ 	
			Epoch = 2
			Techs = [ 	Military2_1 Military2_2 Military2_3 
					  	Economic2_2 Economic2_3 
					  	Imperial2_2 
			]
		}
		{ 	
			Epoch = 3
			Techs = [ 	Military3_1
					  	Economic3_1 Economic3_3 Economic3_4 
					  	Imperial3_1 Imperial3_4
			]
		}
		{ 	
			Epoch = 4
			Techs = [ 	Military4_4 
					  	Economic4_2 Economic4_3  
					  	Imperial4_1 Imperial4_3 Imperial4_4
			]
		}
		{ 	
			Epoch = 5
			Techs = [ 	Military5_2 Military5_4 
					  	Economic5_2 Economic5_3
						Imperial5_1 Imperial5_3 
			]
		}
		{ 	
			Epoch = 6
			Techs = [ 	Military6_1 Military6_3
					  	Economic6_1 Economic6_2  
					  	Imperial6_2 Imperial6_3 
			]
		}
		{ 	
			Epoch = 7
			Techs = [ 	Military7_2 Military7_3 Military7_4 
					  	Economic7_3 Economic7_4 
					  	Imperial7_1
			]
		}
		{ 	
			Epoch = 8
			Techs = [ 	Military8_1 Military8_3 
					  	Economic8_3 Economic8_4 
					  	Imperial8_1 Imperial8_2
			]
		}
		{ 	
			Epoch = 9
			Techs = [ 	Military9_3 Military9_4 
					  	Economic9_2 Economic9_3  
					  	Imperial9_1 Imperial9_4
			]
		}
		{ 	
			Epoch = 10
			Techs = [ 	Military10_3 Military10_4 
					  	Economic10_2 Economic10_3
					  	Imperial10_1 Imperial10_2
			]
		}
		{ 	
			Epoch = 11
			Techs = [ 	Military11_1 Military11_3 
					  	Economic11_2 Economic11_3  
					  	Imperial11_2 Imperial11_3 
			]
		}
		{ 	
			Epoch = 12
			Techs = [ 	Military12_1 Military12_2 Military12_4
					  	Economic12_1 Economic12_4 
					  	Imperial12_1
			]
		}
		{ 	
			Epoch = 13
			Techs = [ 	Military13_1 Military13_3 Military13_4 
					  	Economic13_2 
					  	Imperial13_1 Imperial13_2
			]
		}
		{ 	
			Epoch = 14
			Techs = [ 	Military14_1 Military14_2
					  	Economic14_1 Economic14_2  
					  	Imperial14_1 Imperial14_4
			]
		}
	]
}


////////////////////////
// French

Civilization French
{
	CityNames = [
		tx_ms_cityname_Paris
		tx_ms_cityname_Marseille
		tx_ms_cityname_Lyon
		
		
		
		etc

I hope it's not so boring to read so much code, and apologize for the same reason.


Thanks, in advance,
Gonzalo

User avatar
Loewenherz
Posts: 244
Joined: 23 Sep 2017, 17:26
Has thanked: 7 times
Been thanked: 21 times

Re: New Civilizations

Post by Loewenherz »

I think, is not a good idea to add new civs, if that are hard coded. Mostly you can with good ideas and modding, work good enough with the existing civs. ;)
Last edited by Loewenherz on 12 Jan 2019, 21:01, edited 1 time in total.
List of tutorials, useful threads and utilities (look here before posting): Here

Add Pics to Map: viewtopic.php?f=54&p=25184#p25184

Loews Work: viewtopic.php?f=54&t=5160
User avatar
Gonzalo
Posts: 336
Joined: 24 Aug 2018, 08:56
Been thanked: 3 times

Re: New Civilizations

Post by Gonzalo »

Yes you are right Loew I will not try to add new civs but replace existing ones...gt Backup
User avatar
Dr.MonaLisa
High Representative
Posts: 8697
Joined: 17 Jun 2010, 11:21
Location: Poland
Has thanked: 49 times
Been thanked: 108 times

Re: New Civilizations

Post by Dr.MonaLisa »

Maybe bad order in civilizations utf8 file?
Best regards,
Dr.MonaLisa
Ministry of Game Affairs
Department of Control and Complains
User avatar
Gonzalo
Posts: 336
Joined: 24 Aug 2018, 08:56
Been thanked: 3 times

Re: New Civilizations

Post by Gonzalo »

Yes Dear Leader, also many mistakes with listing these days...but the problem was more difficult to catch than that...just I forgot to be exact and scientific modder and only stuck in trial and error without reflecting every time something changed.
User avatar
Dr.MonaLisa
High Representative
Posts: 8697
Joined: 17 Jun 2010, 11:21
Location: Poland
Has thanked: 49 times
Been thanked: 108 times

Re: New Civilizations

Post by Dr.MonaLisa »

Wat8.jpg
Wat8.jpg (37.69 KiB) Viewed 1721 times
Best regards,
Dr.MonaLisa
Ministry of Game Affairs
Department of Control and Complains
User avatar
Gonzalo
Posts: 336
Joined: 24 Aug 2018, 08:56
Been thanked: 3 times

Re: New Civilizations

Post by Gonzalo »

lol.
Post Reply

Return to “Questions”