Hooks
static bool BeforeCvHandicapInfo_CacheResults(CvHandicapInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static void AfterCvHandicapInfo_CacheResults(CvHandicapInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility, bool& result);static bool ReplaceCvHandicapInfo_CacheResults(bool (*original)(CvHandicapInfo*, Database::Results&, CvDatabaseUtility&), CvHandicapInfo* self, Database::Results& kResults, CvDatabaseUtility& kUtility);CivRegisterBefore<CivHooks::CvHandicapInfo_CacheResults>(host, &BeforeCvHandicapInfo_CacheResults);CivRegisterAfter<CivHooks::CvHandicapInfo_CacheResults>(host, &AfterCvHandicapInfo_CacheResults);CivRegisterReplace<CivHooks::CvHandicapInfo_CacheResults>(host, &ReplaceCvHandicapInfo_CacheResults);
Code
3176bool CvHandicapInfo::CacheResults(Database::Results& kResults, CvDatabaseUtility& kUtility)3177{3178 if(!CvBaseInfo::CacheResults(kResults, kUtility))3179 return false;31803181 m_iStartingLocationPercent = kResults.GetInt("StartingLocPercent");3182 m_iAdvancedStartPointsMod = kResults.GetInt("AdvancedStartPointsMod");3183 m_iStartingPolicyPoints = kResults.GetInt("StartingPolicyPoints");3184 m_iHappinessDefault = kResults.GetInt("HappinessDefault");3185 m_iExtraHappinessPerLuxury = kResults.GetInt("ExtraHappinessPerLuxury");3186 m_iNumCitiesUnhappinessMod = kResults.GetInt("NumCitiesUnhappinessMod");3187 m_iPopulationUnhappinessMod = kResults.GetInt("PopulationUnhappinessMod");3188 m_iStartingGold = kResults.GetInt("Gold");3189 m_iGoldFreeUnits = kResults.GetInt("GoldFreeUnits");3190 m_iProductionFreeUnits = kResults.GetInt("ProductionFreeUnits");3191 m_iProductionFreeUnitsPerCity = kResults.GetInt("ProductionFreeUnitsPerCity");3192 m_iProductionFreeUnitsPopulationPercent = kResults.GetInt("ProductionFreeUnitsPopulationPercent");3193 m_iRouteCostPercent = kResults.GetInt("RouteCostPercent");3194 m_iUnitCostPercent = kResults.GetInt("UnitCostPercent");3195 m_iBuildingCostPercent = kResults.GetInt("BuildingCostPercent");3196 m_iResearchPercent = kResults.GetInt("ResearchPercent");3197 m_iPolicyPercent = kResults.GetInt("PolicyPercent");3198 m_iImprovementCostPercent = kResults.GetInt("ImprovementCostPercent");3199 m_iCityProductionNumOptions = kResults.GetInt("CityProductionNumOptionsConsidered");3200 m_iTechNumOptions = kResults.GetInt("TechNumOptionsConsidered");3201 m_iPolicyNumOptions = kResults.GetInt("PolicyNumOptionsConsidered");3202 m_iInflationPercent = kResults.GetInt("InflationPercent");3203 m_iFreeCulturePerTurn = kResults.GetInt("FreeCulturePerTurn");3204 m_iAttitudeChange = kResults.GetInt("AttitudeChange");3205 m_iNoTechTradeModifier = kResults.GetInt("NoTechTradeModifier");3206 m_iTechTradeKnownModifier = kResults.GetInt("TechTradeKnownModifier");3207 m_iBarbCampGold = kResults.GetInt("BarbCampGold");3208 m_iBarbSpawnMod = kResults.GetInt("BarbSpawnMod");3209 m_iBarbarianCombatModifier = kResults.GetInt("BarbarianBonus");3210 m_iAIBarbarianCombatModifier = kResults.GetInt("AIBarbarianBonus");3211 m_iEarliestBarbarianReleaseTurn = kResults.GetInt("EarliestBarbarianReleaseTurn");3212 m_iBarbarianLandTargetRange = kResults.GetInt("BarbarianLandTargetRange");3213 m_iBarbarianSeaTargetRange = kResults.GetInt("BarbarianSeaTargetRange");3214 m_iStartingDefenseUnits = kResults.GetInt("StartingDefenseUnits");3215 m_iStartingWorkerUnits = kResults.GetInt("StartingWorkerUnits");3216 m_iStartingExploreUnits = kResults.GetInt("StartingExploreUnits");3217 m_iAIStartingUnitMultiplier = kResults.GetInt("AIStartingUnitMultiplier");3218 m_iAIStartingDefenseUnits = kResults.GetInt("AIStartingDefenseUnits");3219 m_iAIStartingWorkerUnits = kResults.GetInt("AIStartingWorkerUnits");3220 m_iAIStartingExploreUnits = kResults.GetInt("AIStartingExploreUnits");3221 m_iAIDeclareWarProb = kResults.GetInt("AIDeclareWarProb");3222 m_iAIWorkRateModifier = kResults.GetInt("AIWorkRateModifier");3223 m_iAIUnhappinessPercent = kResults.GetInt("AIUnhappinessPercent");3224 m_iAIGrowthPercent = kResults.GetInt("AIGrowthPercent");3225 m_iAITrainPercent = kResults.GetInt("AITrainPercent");3226 m_iAIWorldTrainPercent = kResults.GetInt("AIWorldTrainPercent");3227 m_iAIConstructPercent = kResults.GetInt("AIConstructPercent");3228 m_iAIWorldConstructPercent = kResults.GetInt("AIWorldConstructPercent");3229 m_iAICreatePercent = kResults.GetInt("AICreatePercent");3230 m_iAIWorldCreatePercent = kResults.GetInt("AIWorldCreatePercent");3231 m_iAIBuildingCostPercent = kResults.GetInt("AIBuildingCostPercent");3232 m_iAIUnitCostPercent = kResults.GetInt("AIUnitCostPercent");3233 m_iAIUnitSupplyPercent = kResults.GetInt("AIUnitSupplyPercent");3234 m_iAIUnitUpgradePercent = kResults.GetInt("AIUnitUpgradePercent");3235 m_iAIInflationPercent = kResults.GetInt("AIInflationPercent");3236 m_iAIPerEraModifier = kResults.GetInt("AIPerEraModifier");3237 m_iAIAdvancedStartPercent = kResults.GetInt("AIAdvancedStartPercent");3238 m_iAIFreeXP = kResults.GetInt("AIFreeXP");3239 m_iAIFreeXPPercent = kResults.GetInt("AIFreeXPPercent");32403241 //Arrays3242 const char* szHandicapType = GetType();32433244 //Goodies3245 {3246 //First find out how many goodies there are.3247 Database::SingleResult kCount("count(*)");3248 if(DB.SelectAt(kCount, "HandicapInfo_Goodies", "HandicapType", szHandicapType))3249 {3250 m_iNumGoodies = kCount.GetInt(0);32513252 }32533254 m_piGoodies = FNEW(int[m_iNumGoodies], c_eCiv5GameplayDLL, 0);3255 Database::Results kArrayResults;3256 char szSQL[512];3257 sprintf_s(szSQL, "select GoodyHuts.ID from HandicapInfo_Goodies inner join GoodyHuts on GoodyType = GoodyHuts.Type where HandicapType = '%s';", szHandicapType);32583259 if(DB.Execute(kArrayResults, szSQL))3260 {3261 int i = 0;3262 while(kArrayResults.Step())3263 {3264 m_piGoodies[i++] = kArrayResults.GetInt(0);3265 }3266 }32673268 }32693270 kUtility.PopulateArrayByExistence(m_pbFreeTechs, "Technologies", "HandicapInfo_FreeTechs", "TechType", "HandicapType", szHandicapType);3271 kUtility.PopulateArrayByExistence(m_pbAIFreeTechs, "Technologies", "HandicapInfo_AIFreeTechs", "TechType", "HandicapType", szHandicapType);32723273 return true;3274}