phungus420
Deity
- Joined
- Mar 1, 2003
- Messages
- 6,296
This is code I've written for LoR that would be nice to incorporate into RevDCM.
Highly recommended addition for core mod. RevDCM could really use this:
Challenge- Barbarian World.
Adds starting game option where as many barbarian cities as starting players begin on the map.
CvEnums.h
CvGame.h
CvGame.cpp
CyEnumsInterface.cpp
XML
CIV4GameOptionInfos
Civic Rev effects Exposing.
Exposes Revolution effects of Civics in the Civilopdedia.
CvGameTextMgr.cpp
XML
RevolutionText_CIV4GameText.xml
Highly recommended addition for core mod. RevDCM could really use this:
Challenge- Barbarian World.
Adds starting game option where as many barbarian cities as starting players begin on the map.
Spoiler :
CvEnums.h
Code:
enum GameOptionTypes // Exposed to Python
{
NO_GAMEOPTION = -1,
...
GAMEOPTION_NO_ESPIONAGE,
//Ass: Added by Kael 07/02/2008
[B]GAMEOPTION_CHALLENGE_BARBARIAN_WORLD,[/B]
//Ass: End Add
CvGame.h
Code:
public:
...
//Ass: Added by Kael 10/13/2008
[B]void foundBarbarianCity();[/B]
//FfH: End Add
CvGame.cpp
Code:
void CvGame::setInitialItems()
{
PROFILE_FUNC();
...
//FfH: Added by Kael 09/16/2008
[B] if (isOption(GAMEOPTION_CHALLENGE_BARBARIAN_WORLD))
{
for (int iI = 0; iI < MAX_PLAYERS; iI++)
{
if (GET_PLAYER((PlayerTypes)iI).isAlive() && iI != BARBARIAN_PLAYER)
{
foundBarbarianCity();
}
}
}[/B]
//FfH: End Add
...
//Ass: Added by Kael 10/13/2008void CvGame::foundBarbarianCity()
[B]void CvGame::foundBarbarianCity()
{
bool bValid = true;
int iBestValue = 0;
int iDist = 0;
int iValue = 0;
CvPlot* pPlotI = NULL;
CvPlot* pBestPlot = NULL;
CvPlot* pLoopPlot = NULL;
for (int iPlot = 0; iPlot < GC.getMapINLINE().numPlotsINLINE(); iPlot++)
{
pLoopPlot = GC.getMapINLINE().plotByIndexINLINE(iPlot);
bValid = true;
iValue = 0;
if (pLoopPlot->isWater())
{
bValid = false;
}
else if (pLoopPlot->isImpassable())
{
bValid = false;
}
else if (pLoopPlot->isCity())
{
bValid = false;
}
else if (pLoopPlot->getImprovementType() != NO_IMPROVEMENT)
{
bValid = false;
}
else for (int iI = 0; iI < MAX_CIV_PLAYERS; iI++)
{
if (GET_PLAYER((PlayerTypes)iI).isAlive())
{
pPlotI = GET_PLAYER((PlayerTypes)iI).getStartingPlot();
if (pPlotI != NULL)
{
iDist = GC.getMapINLINE().calculatePathDistance(pPlotI, pLoopPlot);
if (iDist == -1)
{
iValue += 100;
}
else if (iDist < 5)
{
bValid = false;
}
else
{
iValue += iDist * 10;
}
}
}
}
if (bValid)
{
iValue += GET_PLAYER(BARBARIAN_PLAYER).AI_foundValue(pLoopPlot->getX_INLINE(), pLoopPlot->getY_INLINE(), GC.getDefineINT("MIN_BARBARIAN_CITY_STARTING_DISTANCE"));
iValue += pLoopPlot->area()->getNumOwnedTiles() + 10;
iValue += getSorenRandNum(250, "Barb City Found");
if (iValue > iBestValue)
{
iBestValue = iValue;
pBestPlot = pLoopPlot;
}
}
}
if (pBestPlot != NULL)
{
GET_PLAYER(BARBARIAN_PLAYER).found(pBestPlot->getX_INLINE(), pBestPlot->getY_INLINE());
}
}[/B]
//Ass: End Add
CyEnumsInterface.cpp
Code:
void CyEnumsPythonInterface()
{
OutputDebugString("Python Extension Module - CyEnumsPythonInterface\n");
...
python::enum_<GameOptionTypes>("GameOptionTypes")
...
.value("GAMEOPTION_NO_ESPIONAGE", GAMEOPTION_NO_ESPIONAGE)
//Ass: Added by Kael 07/02/2008
[B].value("GAMEOPTION_CHALLENGE_BARBARIAN_WORLD", GAMEOPTION_CHALLENGE_BARBARIAN_WORLD)[/B]
//Ass: End
XML
CIV4GameOptionInfos
Code:
<GameOptionInfo>
<Type>GAMEOPTION_CHALLENGE_BARBARIAN_WORLD</Type>
<Description>TXT_KEY_GAME_OPTION_CHALLENGE_BARBARIAN_WORLD</Description>
<Help>TXT_KEY_GAME_OPTION_CHALLENGE_BARBARIAN_WORLD_HELP</Help>
<bDefault>0</bDefault>
<bVisible>1</bVisible>
</GameOptionInfo>
Civic Rev effects Exposing.
Exposes Revolution effects of Civics in the Civilopdedia.
Spoiler :
CvGameTextMgr.cpp
Code:
void CvGameTextMgr::parseCivicInfo(CvWStringBuffer &szHelpText, CivicTypes eCivic, bool bCivilopediaText, bool bPlayerContext, bool bSkipName)
{
PROFILE_FUNC();
...
// Start Revolution Civic Expose
// Revolution Local Civic Index Modifiers
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxLocal())
{
if ( GC.getCivicInfo(eCivic).getRevIdxLocal() > 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_INDEX_LOCAL_PENALTY", GC.getCivicInfo(eCivic).getRevIdxLocal()));
}
if ( GC.getCivicInfo(eCivic).getRevIdxLocal() < 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_INDEX_LOCAL_BONUS", 0 - GC.getCivicInfo(eCivic).getRevIdxLocal()));
}
}[/B]
// Revolution National Civic Index Modifiers
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxNational())
{
if ( GC.getCivicInfo(eCivic).getRevIdxNational() > 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_INDEX_NATIONAL_PENALTY", GC.getCivicInfo(eCivic).getRevIdxNational()));
}
if ( GC.getCivicInfo(eCivic).getRevIdxNational() < 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_INDEX_NATIONAL_BONUS", 0 - GC.getCivicInfo(eCivic).getRevIdxNational()));
}
}[/B]
// Revolution Good Holy City Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxHolyCityGood())
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_GOOD_HOLY_CITY", GC.getCivicInfo(eCivic).getRevIdxHolyCityGood()));
}[/B]
// Revolution Bad Holy City Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxHolyCityBad())
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_BAD_HOLY_CITY", GC.getCivicInfo(eCivic).getRevIdxHolyCityBad()));
}[/B]
// Revolution Switch to Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxSwitchTo())
{
if (GC.getCivicInfo(eCivic).getRevIdxSwitchTo() < 0)
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_SWITCH_TO_BONUS", GC.getCivicInfo(eCivic).getRevIdxSwitchTo()));
}
if (GC.getCivicInfo(eCivic).getRevIdxSwitchTo() > 0)
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_SWITCH_TO_PENALTY", GC.getCivicInfo(eCivic).getRevIdxSwitchTo()));
}
}[/B]
// Revolution Nationality Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxNationalityMod())
{
if ( GC.getCivicInfo(eCivic).getRevIdxNationalityMod() < 0)
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxNationalityMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_NATIONALITY_REDUCTION_MOD", szTempBuffer.GetCString()));
}
if ( GC.getCivicInfo(eCivic).getRevIdxNationalityMod() > 0)
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxNationalityMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_NATIONALITY_INCREASE_MOD", szTempBuffer.GetCString()));
}
}[/B]
// Revolution Bad Religion Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxBadReligionMod())
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxBadReligionMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_BAD_RELIGION_MOD", szTempBuffer.GetCString()));
}[/B]
// Revolution Good Religion Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxGoodReligionMod())
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxGoodReligionMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_GOOD_RELIGION_MOD", szTempBuffer.GetCString()));
}[/B]
// Revolution City Distance Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevIdxDistanceMod())
{
if ( GC.getCivicInfo(eCivic).getRevIdxDistanceMod() < 0 )
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxDistanceMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_CITY_DISTANCE_GOOD_MOD", szTempBuffer.GetCString()));
}
if ( GC.getCivicInfo(eCivic).getRevIdxDistanceMod() > 0 )
{
szHelpText.append(NEWLINE);
CvWString szTempBuffer;
szTempBuffer.Format(L"%.0f", 100 * GC.getCivicInfo(eCivic).getRevIdxDistanceMod());
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_CITY_DISTANCE_BAD_MOD", szTempBuffer.GetCString()));
}
}[/B]
// Revolution Religious Freedom Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevReligiousFreedom())
{
if ( GC.getCivicInfo(eCivic).getRevReligiousFreedom() < 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_RELIGION_OPRESSION", GC.getCivicInfo(eCivic).getRevReligiousFreedom()));
}
if ( GC.getCivicInfo(eCivic).getRevReligiousFreedom() > 0 )
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_RELIGION_FREEDOM", GC.getCivicInfo(eCivic).getRevReligiousFreedom()));
}
}[/B]
// Revolution Labor Modifier
[B] if (0 != GC.getCivicInfo(eCivic).getRevLaborFreedom())
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_LABOR", GC.getCivicInfo(eCivic).getRevLaborFreedom()));
}
// Revolution Environment Modifier
if (0 != GC.getCivicInfo(eCivic).getRevEnvironmentalProtection())
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_ENVIRONMENT", GC.getCivicInfo(eCivic).getRevEnvironmentalProtection()));
}
// Revolution Democracy Modifier
if (0 != GC.getCivicInfo(eCivic).getRevDemocracyLevel())
{
szHelpText.append(NEWLINE);
szHelpText.append(gDLL->getText("TXT_KEY_CIVIC_REV_DEMOCRACY", GC.getCivicInfo(eCivic).getRevDemocracyLevel()));
}[/B]
// End Revolution Civic Expose
XML
RevolutionText_CIV4GameText.xml
Code:
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_INDEX_LOCAL_PENALTY</Tag>
<English>[ICON_BULLET]%D1 Local RevIdx Penalty</English>
<French>[ICON_BULLET]%D1 Local RevIdx Penalty</French>
<German>[ICON_BULLET]%D1 Local RevIdx Penalty</German>
<Italian>[ICON_BULLET]%D1 Local RevIdx Penalty</Italian>
<Spanish>[ICON_BULLET]%D1 Local RevIdx Penalty</Spanish>
<Finnish>[ICON_BULLET]%D1 Local RevIdx Penalty</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_INDEX_LOCAL_BONUS</Tag>
<English>[ICON_BULLET]%D1 Local RevIdx Bonus</English>
<French>[ICON_BULLET]%D1 Local RevIdx Bonus</French>
<German>[ICON_BULLET]%D1 Local RevIdx Bonus</German>
<Italian>[ICON_BULLET]%D1 Local RevIdx Bonus</Italian>
<Spanish>[ICON_BULLET]%D1 Local RevIdx Bonus</Spanish>
<Finnish>[ICON_BULLET]%D1 Local RevIdx Bonus</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_INDEX_NATIONAL_PENALTY</Tag>
<English>[ICON_BULLET]%D1 National RevIdx Instability Penalty</English>
<French>[ICON_BULLET]%D1 National RevIdx Instability Penalty</French>
<German>[ICON_BULLET]%D1 National RevIdx Instability Penalty</German>
<Italian>[ICON_BULLET]%D1 National RevIdx Instability Penalty</Italian>
<Spanish>[ICON_BULLET]%D1 National RevIdx Instability Penalty</Spanish>
<Finnish>[ICON_BULLET]%D1 National RevIdx Instability Penalty</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_INDEX_NATIONAL_BONUS</Tag>
<English>[ICON_BULLET]%D1 National RevIdx Stability Bonus</English>
<French>[ICON_BULLET]%D1 National RevIdx Stability Bonus</French>
<German>[ICON_BULLET]%D1 National RevIdx Stability Bonus</German>
<Italian>[ICON_BULLET]%D1 National RevIdx Stability Bonus</Italian>
<Spanish>[ICON_BULLET]%D1 National RevIdx Stability Bonus</Spanish>
<Finnish>[ICON_BULLET]%D1 National RevIdx Stability Bonus</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_GOOD_HOLY_CITY</Tag>
<English>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</English>
<French>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</French>
<German>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</German>
<Italian>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</Italian>
<Spanish>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</Spanish>
<Finnish>[ICON_BULLET]%D1 RevIdx Bonus from State [ICON_RELIGION] Holy City</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_BAD_HOLY_CITY</Tag>
<English>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</English>
<French>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</French>
<German>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</German>
<Italian>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</Italian>
<Spanish>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</Spanish>
<Finnish>[ICON_BULLET]%D1 RevIdx Penalty from Non State [ICON_RELIGION] Holy City</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_SWITCH_TO_BONUS</Tag>
<English>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</English>
<French>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</French>
<German>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</German>
<Italian>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</Italian>
<Spanish>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</Spanish>
<Finnish>[ICON_BULLET]%D1 Temperary RevIdx bonus for adopting civic.</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_SWITCH_TO_PENALTY</Tag>
<English>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</English>
<French>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</French>
<German>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</German>
<Italian>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</Italian>
<Spanish>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</Spanish>
<Finnish>[ICON_BULLET]%D1 Temperary RevIdx penalty for adopting civic.</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_NATIONALITY_REDUCTION_MOD</Tag>
<English>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</English>
<French>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</French>
<German>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</German>
<Italian>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</Italian>
<Spanish>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</Spanish>
<Finnish>[ICON_BULLET]%s1% Revolutionary sentiment (Patriotism).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_NATIONALITY_INCREASE_MOD</Tag>
<English>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</English>
<French>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</French>
<German>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</German>
<Italian>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</Italian>
<Spanish>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</Spanish>
<Finnish>[ICON_BULLET]+%s1% Revolutionary sentiment (alienation).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_BAD_RELIGION_MOD</Tag>
<English>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</English>
<French>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</French>
<German>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</German>
<Italian>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</Italian>
<Spanish>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</Spanish>
<Finnish>[ICON_BULLET]+%s1% Revolution penalty from Non State [ICON_RELIGION].</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_GOOD_RELIGION_MOD</Tag>
<English>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</English>
<French>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</French>
<German>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</German>
<Italian>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</Italian>
<Spanish>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</Spanish>
<Finnish>[ICON_BULLET]+%s1% Revolution bonus from State [ICON_RELIGION].</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_CITY_DISTANCE_GOOD_MOD</Tag>
<English>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</English>
<French>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</French>
<German>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</German>
<Italian>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</Italian>
<Spanish>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</Spanish>
<Finnish>[ICON_BULLET]%s1% to City Distance RevIdx penalty.</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_CITY_DISTANCE_BAD_MOD</Tag>
<English>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</English>
<French>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</French>
<German>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</German>
<Italian>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</Italian>
<Spanish>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</Spanish>
<Finnish>[ICON_BULLET]+%s1% to City Distance RevIdx penalty.</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_RELIGION_FREEDOM</Tag>
<English>[ICON_BULLET]%D1% National Stability (religious freedom).</English>
<French>[ICON_BULLET]%D1% National Stability (religious freedom).</French>
<German>[ICON_BULLET]%D1% National Stability (religious freedom).</German>
<Italian>[ICON_BULLET]%D1% National Stability (religious freedom).</Italian>
<Spanish>[ICON_BULLET]%D1% National Stability (religious freedom).</Spanish>
<Finnish>[ICON_BULLET]%D1% National Stability (religious freedom).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_RELIGION_OPRESSION</Tag>
<English>[ICON_BULLET]%D1% National Stability (religious opression).</English>
<French>[ICON_BULLET]%D1% National Stability (religious opression).</French>
<German>[ICON_BULLET]%D1% National Stability (religious opression).</German>
<Italian>[ICON_BULLET]%D1% National Stability (religious opression).</Italian>
<Spanish>[ICON_BULLET]%D1% National Stability (religious opression).</Spanish>
<Finnish>[ICON_BULLET]%D1% National Stability (religious opression).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_LABOR</Tag>
<English>[ICON_BULLET]%D1% National Stability (labor).</English>
<French>[ICON_BULLET]%D1% National Stability (labor).</French>
<German>[ICON_BULLET]%D1% National Stability (labor).</German>
<Italian>[ICON_BULLET]%D1% National Stability (labor).</Italian>
<Spanish>[ICON_BULLET]%D1% National Stability (labor).</Spanish>
<Finnish>[ICON_BULLET]%D1% National Stability (labor).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_ENVIRONMENT</Tag>
<English>[ICON_BULLET]%D1% National Stability (Health and Safety).</English>
<French>[ICON_BULLET]%D1% National Stability (Health and Safety).</French>
<German>[ICON_BULLET]%D1% National Stability (Health and Safety).</German>
<Italian>[ICON_BULLET]%D1% National Stability (Health and Safety).</Italian>
<Spanish>[ICON_BULLET]%D1% National Stability (Health and Safety).</Spanish>
<Finnish>[ICON_BULLET]%D1% National Stability (Health and Safety).</Finnish>
</TEXT>
<TEXT>
<Tag>TXT_KEY_CIVIC_REV_DEMOCRACY</Tag>
<English>[ICON_BULLET]%D1% National Stability (Suffrage).</English>
<French>[ICON_BULLET]%D1% National Stability (Suffrage).</French>
<German>[ICON_BULLET]%D1% National Stability (Suffrage).</German>
<Italian>[ICON_BULLET]%D1% National Stability (Suffrage).</Italian>
<Spanish>[ICON_BULLET]%D1% National Stability (Suffrage).</Spanish>
<Finnish>[ICON_BULLET]%D1% National Stability (Suffrage).</Finnish>
</TEXT>