Duke176
Warlord
doesn't work always the same.
oki thx.
here you are.
http://forums.civfanatics.com/downloads.php?do=file&id=4593 (hope they don't delete it, I'll do it once we solved prb)
To the Stuff: pls dont' delete that file just for the time needed to Kael to download. The prb I've encountered could be suffered by anyone and if we don't find a way to solve it, it will get harder to dev mods. Thx.
Step 4 (optional): Making your adjustments show up on the diplo screen:
Thanks to Chalid for showing me where to do this. CvGameTextMgr.cpp controls the game text. Making the following addition to CvGameTextMgr::getAttitudeString will allow your attitude adjustments on the diplomacy screen.
CvGameTextMgr.cpp
Very odd. I dont see any isues with the code you posted. Could you post your entire CvGameTextMgr::getAttitudeString function so I can check it out, that sounds to be where your issue is occuring.
void CvGameTextMgr::getAttitudeString(CvWStringBuffer& szBuffer, PlayerTypes ePlayer, PlayerTypes eTargetPlayer)
{
CvWString szTempBuffer;
int iAttitudeChange;
int iPass;
int iI;
CvPlayerAI& kPlayer = GET_PLAYER(ePlayer);
TeamTypes eTeam = (TeamTypes) kPlayer.getTeam();
CvTeamAI& kTeam = GET_TEAM(eTeam);
szBuffer.append(gDLL->getText("TXT_KEY_ATTITUDE_TOWARDS", GC.getAttitudeInfo(GET_PLAYER(ePlayer).AI_getAttitude(eTargetPlayer)).getTextKeyWide(), GET_PLAYER(eTargetPlayer).getNameKey()));
for (int iTeam = 0; iTeam < MAX_TEAMS; iTeam++)
{
CvTeam& kLoopTeam = GET_TEAM((TeamTypes)iTeam);
if (kLoopTeam.isAlive())
{
if (NO_PLAYER != eTargetPlayer)
{
CvTeam& kTargetTeam = GET_TEAM(GET_PLAYER(eTargetPlayer).getTeam());
if (kTargetTeam.isHasMet((TeamTypes)iTeam))
{
if (kTeam.isVassal((TeamTypes)iTeam))
{
szBuffer.append(NEWLINE);
szBuffer.append(gDLL->getText("TXT_KEY_ATTITUDE_VASSAL_OF", kLoopTeam.getName().GetCString()));
setVassalRevoltHelp(szBuffer, (TeamTypes)iTeam, kTeam.getID());
}
else if (kLoopTeam.isVassal(kTeam.getID()))
{
szBuffer.append(NEWLINE);
szBuffer.append(gDLL->getText("TXT_KEY_ATTITUDE_MASTER_OF", kLoopTeam.getName().GetCString()));
}
}
}
}
}
for (iPass = 0; iPass < 2; iPass++)
{
iAttitudeChange = GET_PLAYER(ePlayer).AI_getAlignmentAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
if (GC.getLeaderHeadInfo(GET_PLAYER(eTargetPlayer).getPersonalityType()).getAlignment() > 0)
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_GOOD_ALIGNMENT", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
else if (GC.getLeaderHeadInfo(GET_PLAYER(eTargetPlayer).getPersonalityType()).getAlignment() < 0)
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_EVIL_ALIGNMENT", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
else
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_NEUTRAL_ALIGNMENT" , iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
}
iAttitudeChange = kPlayer.AI_getCloseBordersAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_LAND_TARGET", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getWarAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_WAR", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getPeaceAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_PEACE", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getSameReligionAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_SAME_RELIGION", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getDifferentReligionAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_DIFFERENT_RELIGION", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getBonusTradeAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_BONUS_TRADE", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getOpenBordersAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_OPEN_BORDERS", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getDefensivePactAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_DEFENSIVE_PACT", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getRivalDefensivePactAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_RIVAL_DEFENSIVE_PACT", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getRivalVassalAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_RIVAL_VASSAL", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getShareWarAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_SHARE_WAR", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getFavoriteCivicAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_FAVORITE_CIVIC", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getTradeAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_TRADE", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = kPlayer.AI_getRivalTradeAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_RIVAL_TRADE", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = GET_PLAYER(ePlayer).AI_getColonyAttitude(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_FREEDOM", iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
iAttitudeChange = GET_PLAYER(ePlayer).AI_getAttitudeExtra(eTargetPlayer);
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText(((iAttitudeChange > 0) ? "TXT_KEY_MISC_ATTITUDE_EXTRA_GOOD" : "TXT_KEY_MISC_ATTITUDE_EXTRA_BAD"), iAttitudeChange).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
for (iI = 0; iI < NUM_MEMORY_TYPES; ++iI)
{
iAttitudeChange = kPlayer.AI_getMemoryAttitude(eTargetPlayer, ((MemoryTypes)iI));
if ((iPass == 0) ? (iAttitudeChange > 0) : (iAttitudeChange < 0))
{
szTempBuffer.Format(SETCOLR L"%s" ENDCOLR, TEXT_COLOR((iAttitudeChange > 0) ? "COLOR_POSITIVE_TEXT" : "COLOR_NEGATIVE_TEXT"), gDLL->getText("TXT_KEY_MISC_ATTITUDE_MEMORY", iAttitudeChange, GC.getMemoryInfo((MemoryTypes)iI).getDescription()).GetCString());
szBuffer.append(NEWLINE);
szBuffer.append(szTempBuffer);
}
}
}
if (NO_PLAYER != eTargetPlayer)
{
int iWarWeariness = GET_PLAYER(eTargetPlayer).getModifiedWarWearinessPercentAnger(GET_TEAM(GET_PLAYER(eTargetPlayer).getTeam()).getWarWeariness(eTeam) * max(0, 100 + kTeam.getEnemyWarWearinessModifier()));
if (iWarWeariness / 10000 > 0)
{
szBuffer.append(NEWLINE);
szBuffer.append(gDLL->getText("TXT_KEY_WAR_WEAR_HELP", iWarWeariness / 10000));
}
}
}
//get buildings oil consumption per turn
int CvCity::OilConsumptionPerBuildings()
{
int iAirportCons = 0;
int iDryDockCons = 0;
int iHospitalCons = 0;
int iHydroplantCons = 0;
int iNuclearPlantCons = 0;
int iRecyclingCenterCons = 0;
int iTotalConsumption = 0;
// basic city consumptio BCC from Define INT
int iBCC = 0;
// int iMedCitiesConsumption = 0;
// int iBigCitiesConsumption = 0;
// int iEnormousCitiesConsumption = 0;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_AIRPORT")))
{
iAirportCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_AIRPORT"))).getOilConsumption();
}
return iAirportCons;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_DRYDOCK")))
{
iDryDockCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_DRYDOCK"))).getOilConsumption();
}
return iDryDockCons;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_HOSPITAL")))
{
iHospitalCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_HOSPITAL"))).getOilConsumption();
}
return iHospitalCons;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_HYDROPLANT")))
{
iHydroplantCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_HYDROPLANT"))).getOilConsumption();
}
return iHydroplantCons;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_NUCLEAR_PLANT")))
{
iNuclearPlantCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_NUCLEAR_PLANT"))).getOilConsumption();
}
return iNuclearPlantCons;
if (hasActiveBuilding((BuildingTypes)GC.getInfoTypeForString("BUILDING_RECYCLING_CENTER")))
{
iRecyclingCenterCons = GC.getBuildingInfo(BuildingTypes (GC.getInfoTypeForString("BUILDING_RECYCLING_CENTER"))).getOilConsumption();
}
return iRecyclingCenterCons;
// let's go for population
if ((getPopulation() >= 1) && (getPopulation() <= 5))
{
iBCC = (GC.getDefineINT("LITTLE_CITIES_CONSUMPTION"));
}
else if ((getPopulation() >= 6) && (getPopulation() <= 10))
{
iBCC = (GC.getDefineINT("MED_CITIES_CONSUMPTION"));
}
else if ((getPopulation() >= 11) && (getPopulation() <= 15))
{
iBCC = (GC.getDefineINT("BIG_CITIES_CONSUMPTION"));
}
else if (getPopulation() >= 16)
{
iBCC = (GC.getDefineINT("ENORMOUS_CITIES_CONSUMPTION"));
}
return iBCC;
iTotalConsumption = ((iBCC * getPopulation()) + ((iBCC * iAirportCons) / 100) + ((iBCC * iDryDockCons) / 100) + ((iBCC * iHospitalCons) / 100) + ((iBCC * iHydroplantCons) / 100) + ((iBCC * iNuclearPlantCons) / 100) + ((iBCC * iRecyclingCenterCons) / 100));
return iTotalConsumption;
}
<BuildingClass>BUILDINGCLASS_RECYCLING_CENTER</BuildingClass>
<Type>BUILDING_RECYCLING_CENTER</Type>
<SpecialBuildingType>NONE</SpecialBuildingType>
<Description>TXT_KEY_BUILDING_RECYCLING_CENTER</Description>
<Civilopedia>TXT_KEY_BUILDING_RECYCLING_CENTER_PEDIA</Civilopedia>
<Strategy>TXT_KEY_BUILDING_RECYCLING_CENTER_STRATEGY</Strategy>
<Advisor>ADVISOR_GROWTH</Advisor>
<ArtDefineTag>ART_DEF_BUILDING_RECYCLING_CENTER</ArtDefineTag>
<MovieDefineTag>NONE</MovieDefineTag>
<HolyCity>NONE</HolyCity>
<ReligionType>NONE</ReligionType>
<StateReligion>NONE</StateReligion>
<PrereqReligion>NONE</PrereqReligion>
<GlobalReligionCommerce>NONE</GlobalReligionCommerce>
<VictoryPrereq>NONE</VictoryPrereq>
<FreeStartEra>NONE</FreeStartEra>
<MaxStartEra>NONE</MaxStartEra>
<ObsoleteTech>NONE</ObsoleteTech>
<PrereqTech>TECH_ECOLOGY</PrereqTech>
<TechTypes/>
<Bonus>NONE</Bonus>
<PrereqBonuses/>
<ProductionTraits/>
<HappinessTraits/>
<PowerBonus>NONE</PowerBonus>
<FreeBonus>NONE</FreeBonus>
<iNumFreeBonuses>0</iNumFreeBonuses>
<FreeBuilding>NONE</FreeBuilding>
<FreePromotion>NONE</FreePromotion>
<CivicOption>NONE</CivicOption>
<GreatPeopleUnitClass>NONE</GreatPeopleUnitClass>
<iGreatPeopleRateChange>0</iGreatPeopleRateChange>
<iHurryAngerModifier>0</iHurryAngerModifier>
<bBorderObstacle>0</bBorderObstacle>
<bTeamShare>0</bTeamShare>
<bWater>0</bWater>
<bRiver>0</bRiver>
<bPower>0</bPower>
<bDirtyPower>0</bDirtyPower>
<bAreaCleanPower>0</bAreaCleanPower>
<bDiploVote>0</bDiploVote>
<bForceTeamVoteEligible>0</bForceTeamVoteEligible>
<bCapital>0</bCapital>
<bGovernmentCenter>0</bGovernmentCenter>
<bGoldenAge>0</bGoldenAge>
<bMapCentering>0</bMapCentering>
<bNoUnhappiness>0</bNoUnhappiness>
<bNoUnhealthyPopulation>0</bNoUnhealthyPopulation>
<bBuildingOnlyHealthy>1</bBuildingOnlyHealthy>
<bNeverCapture>0</bNeverCapture>
<bNukeImmune>0</bNukeImmune>
<bPrereqReligion>0</bPrereqReligion>
<bCenterInCity>0</bCenterInCity>
<iAIWeight>0</iAIWeight>
<iCost>300</iCost>
<iHurryCostModifier>0</iHurryCostModifier>
<iMinAreaSize>-1</iMinAreaSize>
<iConquestProb>66</iConquestProb>
<iCitiesPrereq>0</iCitiesPrereq>
<iTeamsPrereq>0</iTeamsPrereq>
<iLevelPrereq>0</iLevelPrereq>
<iMinLatitude>0</iMinLatitude>
<iMaxLatitude>90</iMaxLatitude>
<iGreatPeopleRateModifier>0</iGreatPeopleRateModifier>
<iGreatGeneralRateModifier>0</iGreatGeneralRateModifier>
<iDomesticGreatGeneralRateModifier>0</iDomesticGreatGeneralRateModifier>
<iGlobalGreatPeopleRateModifier>0</iGlobalGreatPeopleRateModifier>
<iAnarchyModifier>0</iAnarchyModifier>
<iGlobalHurryModifier>0</iGlobalHurryModifier>
<iExperience>0</iExperience>
<iGlobalExperience>0</iGlobalExperience>
<iFoodKept>0</iFoodKept>
<!-- OIL CONSUMPTION -->
<iOilConsumption>-40</iOilConsumption>
<!-- END -->
<iAirlift>0</iAirlift>
<iAirModifier>0</iAirModifier>
<iNukeModifier>0</iNukeModifier>
<iNukeExplosionRand>0</iNukeExplosionRand>
<iFreeSpecialist>0</iFreeSpecialist>
<iAreaFreeSpecialist>0</iAreaFreeSpecialist>
<iGlobalFreeSpecialist>0</iGlobalFreeSpecialist>
<iMaintenanceModifier>0</iMaintenanceModifier>
<iWarWearinessModifier>0</iWarWearinessModifier>
<iGlobalWarWearinessModifier>0</iGlobalWarWearinessModifier>
<iHealRateChange>0</iHealRateChange>
<iHealth>0</iHealth>
<iAreaHealth>0</iAreaHealth>
<iGlobalHealth>0</iGlobalHealth>
<iHappiness>0</iHappiness>
<iAreaHappiness>0</iAreaHappiness>
<iGlobalHappiness>0</iGlobalHappiness>
<iStateReligionHappiness>0</iStateReligionHappiness>
<iWorkerSpeedModifier>0</iWorkerSpeedModifier>
<iMilitaryProductionModifier>0</iMilitaryProductionModifier>
<iSpaceProductionModifier>0</iSpaceProductionModifier>
<iGlobalSpaceProductionModifier>0</iGlobalSpaceProductionModifier>
<iTradeRoutes>0</iTradeRoutes>
<iCoastalTradeRoutes>0</iCoastalTradeRoutes>
<iGlobalTradeRoutes>0</iGlobalTradeRoutes>
<iTradeRouteModifier>0</iTradeRouteModifier>
<iGlobalPopulationChange>0</iGlobalPopulationChange>
<iFreeTechs>0</iFreeTechs>
<iDefense>0</iDefense>
<iBombardDefense>0</iBombardDefense>
<iAllCityDefense>0</iAllCityDefense>
<iAsset>6</iAsset>
<iPower>0</iPower>
<fVisibilityPriority>1.0</fVisibilityPriority>
<SeaPlotYieldChanges/>
<GlobalSeaPlotYieldChanges/>
<YieldChanges/>
<CommerceChanges/>
<ObsoleteSafeCommerceChanges/>
<CommerceChangeDoubleTimes/>
<CommerceModifiers/>
<GlobalCommerceModifiers/>
<SpecialistExtraCommerces/>
<StateReligionCommerces/>
<CommerceHappinesses/>
<ReligionChanges/>
<SpecialistCounts/>
<FreeSpecialistCounts/>
<CommerceFlexibles/>
<CommerceChangeOriginalOwners/>
<ConstructSound>AS2D_BUILD_RECYCLING_CENTER</ConstructSound>
<BonusHealthChanges/>
<BonusHappinessChanges/>
<BonusProductionModifiers/>
<UnitCombatFreeExperiences/>
<DomainFreeExperiences/>
<DomainProductionModifiers/>
<BuildingHappinessChanges/>
<PrereqBuildingClasses/>
<BuildingClassNeededs/>
<SpecialistYieldChanges/>
<BonusYieldModifiers/>
<Flavors>
<Flavor>
<FlavorType>FLAVOR_GROWTH</FlavorType>
<iFlavor>10</iFlavor>
</Flavor>
</Flavors>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
</BuildingInfo>
<Flavors>
<Flavor>
<FlavorType>FLAVOR_GROWTH</FlavorType>
<iFlavor>10</iFlavor>
</Flavor>
</Flavors>
<HotKey/>
<bAltDown>0</bAltDown>
<bShiftDown>0</bShiftDown>
<bCtrlDown>0</bCtrlDown>
<iHotKeyPriority>0</iHotKeyPriority>
[B][U]HERE[/U][/B]
</BuildingInfo>
<element type="iAlignment" [B]minOccurs="0"[/B]/>
or
insert your new attribute fro each Civ you find.