Bazaar developer reference

CvPlayerTraits::Reset()

Defined in
CvTraitClasses.cpp, line 2351
Class
CvPlayerTraits
Hook name
CivHooks::CvPlayerTraits_Reset

Hooks

static bool BeforeCvPlayerTraits_Reset(CvPlayerTraits* self);static void AfterCvPlayerTraits_Reset(CvPlayerTraits* self);static void ReplaceCvPlayerTraits_Reset(void (*original)(CvPlayerTraits*), CvPlayerTraits* self);CivRegisterBefore<CivHooks::CvPlayerTraits_Reset>(host, &BeforeCvPlayerTraits_Reset);CivRegisterAfter<CivHooks::CvPlayerTraits_Reset>(host, &AfterCvPlayerTraits_Reset);CivRegisterReplace<CivHooks::CvPlayerTraits_Reset>(host, &ReplaceCvPlayerTraits_Reset);

Code

2350/// Reset data members2351void CvPlayerTraits::Reset()2352{2353	Uninit();23542355	m_iGreatPeopleRateModifier = 0;2356	m_iGreatScientistRateModifier = 0;2357	m_iGreatGeneralRateModifier = 0;2358	m_iGreatGeneralExtraBonus = 0;2359	m_iGreatPersonGiftInfluence = 0;2360	m_iLevelExperienceModifier= 0;2361	m_iMaxGlobalBuildingProductionModifier = 0;2362	m_iMaxTeamBuildingProductionModifier = 0;2363	m_iMaxPlayerBuildingProductionModifier = 0;2364	m_iCityUnhappinessModifier = 0;2365	m_iPopulationUnhappinessModifier = 0;2366	m_iCityStateBonusModifier = 0;2367	m_iCityStateFriendshipModifier = 0;2368	m_iCityStateCombatModifier = 0;2369	m_iLandBarbarianConversionPercent = 0;2370	m_iLandBarbarianConversionExtraUnits = 0;2371	m_iSeaBarbarianConversionPercent = 0;2372	m_iCapitalBuildingModifier = 0;2373	m_iPlotBuyCostModifier = 0;2374#if defined(MOD_TRAITS_CITY_WORKING)2375	m_iCityWorkingChange = 0;2376#endif2377#if defined(MOD_TRAITS_CITY_AUTOMATON_WORKERS)2378	m_iCityAutomatonWorkersChange = 0;2379#endif2380	m_iPlotCultureCostModifier = 0;2381	m_iCultureFromKills = 0;2382	m_iFaithFromKills = 0;2383	m_iCityCultureBonus = 0;2384	m_iCapitalThemingBonusModifier = 0;2385	m_iPolicyCostModifier = 0;2386	m_iCityConnectionTradeRouteChange = 0;2387	m_iWonderProductionModifier = 0;2388	m_iPlunderModifier = 0;2389	m_iImprovementMaintenanceModifier = 0;2390	m_iGoldenAgeDurationModifier = 0;2391	m_iGoldenAgeMoveChange = 0;2392	m_iGoldenAgeCombatModifier = 0;2393	m_iGoldenAgeTourismModifier = 0;2394	m_iGoldenAgeGreatArtistRateModifier = 0;2395	m_iGoldenAgeGreatMusicianRateModifier = 0;2396	m_iGoldenAgeGreatWriterRateModifier = 0;2397	m_iExtraEmbarkMoves = 0;2398	m_iNaturalWonderFirstFinderGold = 0;2399	m_iNaturalWonderSubsequentFinderGold = 0;2400	m_iNaturalWonderYieldModifier = 0;2401	m_iNaturalWonderHappinessModifier = 0;2402	m_iNearbyImprovementCombatBonus = 0;2403	m_iNearbyImprovementBonusRange = 0;2404	m_iCultureBuildingYieldChange = 0;2405	m_iCombatBonusVsHigherTech = 0;2406	m_iCombatBonusVsLargerCiv = 0;2407	m_iLandUnitMaintenanceModifier = 0;2408	m_iNavalUnitMaintenanceModifier = 0;2409	m_iRazeSpeedModifier = 0;2410	m_iDOFGreatPersonModifier = 0;2411	m_iLuxuryHappinessRetention = 0;2412#if defined(MOD_TRAITS_EXTRA_SUPPLY)2413	m_iExtraSupply = 0;2414	m_iExtraSupplyPerCity = 0;2415	m_iExtraSupplyPerPopulation = 0;2416#endif2417	m_iExtraSpies = 0;2418	m_iUnresearchedTechBonusFromKills = 0;2419	m_iExtraFoundedCityTerritoryClaimRange = 0;2420	m_iFreeSocialPoliciesPerEra = 0;2421	m_iNumTradeRoutesModifier = 0;2422	m_iTradeRouteResourceModifier = 0;2423	m_iUniqueLuxuryCities = 0;2424	m_iUniqueLuxuryQuantity = 0;2425	m_iWorkerSpeedModifier = 0;2426	m_iAfraidMinorPerTurnInfluence = 0;2427	m_iLandTradeRouteRangeBonus = 0;2428#if defined(MOD_TRAITS_TRADE_ROUTE_BONUSES)2429	m_iSeaTradeRouteRangeBonus = 0;2430#endif2431	m_iTradeReligionModifier = 0;2432	m_iTradeBuildingModifier = 0;24332434	m_bFightWellDamaged = false;2435	m_bMoveFriendlyWoodsAsRoad = false;2436	m_bFasterAlongRiver = false;2437	m_bFasterInHills = false;2438	m_bEmbarkedAllWater = false;2439	m_bEmbarkedToLandFlatCost = false;2440	m_bNoHillsImprovementMaintenance = false;2441	m_bTechBoostFromCapitalScienceBuildings = false;2442	m_bStaysAliveZeroCities = false;2443	m_bFaithFromUnimprovedForest = false;2444#if defined(MOD_TRAITS_ANY_BELIEF)2445	m_bAnyBelief = false;2446#endif2447	m_bBonusReligiousBelief = false;2448	m_bAbleToAnnexCityStates = false;2449	m_bCrossesMountainsAfterGreatGeneral = false;2450#if defined(MOD_TRAITS_CROSSES_ICE)2451	m_bCrossesIce = false;2452#endif2453#if defined(MOD_TRAITS_GG_FROM_BARBARIANS)2454	m_bGGFromBarbarians = false;2455#endif2456	m_bMayaCalendarBonuses = false;2457	m_bNoAnnexing = false;2458	m_bTechFromCityConquer = false;2459	m_bUniqueLuxuryRequiresNewArea = false;2460	m_bRiverTradeRoad = false;2461	m_bAngerFreeIntrusionOfCityStates = false;24622463	m_eCampGuardType = NO_UNIT;2464	m_eCombatBonusImprovement = NO_IMPROVEMENT;24652466	m_ppaaiImprovementYieldChange.clear();2467	m_ppaaiImprovementYieldChange.resize(GC.getNumImprovementInfos());2468#if defined(MOD_API_UNIFIED_YIELDS) && defined(MOD_API_PLOT_YIELDS)2469	m_ppiPlotYieldChange.clear();2470	m_ppiPlotYieldChange.resize(GC.getNumPlotInfos());2471#endif2472#if defined(MOD_API_UNIFIED_YIELDS)2473	m_ppiBuildingClassYieldChange.clear();2474	m_ppiBuildingClassYieldChange.resize(GC.getNumBuildingClassInfos());2475	m_ppiFeatureYieldChange.clear();2476	m_ppiFeatureYieldChange.resize(GC.getNumFeatureInfos());2477	m_ppiResourceYieldChange.clear();2478	m_ppiResourceYieldChange.resize(GC.getNumResourceInfos());2479	m_ppiTerrainYieldChange.clear();2480	m_ppiTerrainYieldChange.resize(GC.getNumTerrainInfos());2481	m_ppiTradeRouteYieldChange.clear();2482	m_ppiTradeRouteYieldChange.resize(NUM_DOMAIN_TYPES);2483#endif2484	m_ppaaiSpecialistYieldChange.clear();2485	m_ppaaiSpecialistYieldChange.resize(GC.getNumSpecialistInfos());2486#if defined(MOD_API_UNIFIED_YIELDS)2487	m_ppiGreatPersonExpendedYield.clear();2488	m_ppiGreatPersonExpendedYield.resize(GC.getNumGreatPersonInfos());2489	m_ppiCityYieldFromUnimprovedFeature.clear();2490	m_ppiCityYieldFromUnimprovedFeature.resize(GC.getNumFeatureInfos());2491#endif2492	m_ppaaiUnimprovedFeatureYieldChange.clear();2493	m_ppaaiUnimprovedFeatureYieldChange.resize(GC.getNumFeatureInfos());24942495	Firaxis::Array< int, NUM_YIELD_TYPES > yield;2496	for(unsigned int j = 0; j < NUM_YIELD_TYPES; ++j)2497	{2498		yield[j] = 0;2499	}25002501	for(int iYield = 0; iYield < NUM_YIELD_TYPES; iYield++)2502	{2503		m_iExtraYieldThreshold[iYield] = 0;2504		m_iFreeCityYield[iYield] = 0;2505		m_iYieldChangeStrategicResources[iYield] = 0;2506		m_iYieldChangeNaturalWonder[iYield] = 0;2507		m_iYieldChangePerTradePartner[iYield] = 0;2508		m_iYieldChangeIncomingTradeRoute[iYield] = 0;2509		m_iYieldRateModifier[iYield] = 0;25102511		for(int iImprovement = 0; iImprovement < GC.getNumImprovementInfos(); iImprovement++)2512		{2513			m_ppaaiImprovementYieldChange[iImprovement] = yield;2514		}2515#if defined(MOD_API_UNIFIED_YIELDS) && defined(MOD_API_PLOT_YIELDS)2516		for(int iPlot = 0; iPlot < GC.getNumPlotInfos(); iPlot++)2517		{2518			m_ppiPlotYieldChange[iPlot] = yield;2519		}2520#endif2521#if defined(MOD_API_UNIFIED_YIELDS)2522		for(int iBuildingClass = 0; iBuildingClass < GC.getNumBuildingClassInfos(); iBuildingClass++)2523		{2524			m_ppiBuildingClassYieldChange[iBuildingClass] = yield;2525		}2526		m_iCapitalYieldChanges[iYield] = 0;2527		m_iCityYieldChanges[iYield] = 0;2528		m_iCoastalCityYieldChanges[iYield] = 0;2529		m_iGreatWorkYieldChanges[iYield] = 0;2530		for(int iFeature = 0; iFeature < GC.getNumFeatureInfos(); iFeature++)2531		{2532			m_ppiFeatureYieldChange[iFeature] = yield;2533		}2534		for(int iResource = 0; iResource < GC.getNumResourceInfos(); iResource++)2535		{2536			m_ppiResourceYieldChange[iResource] = yield;2537		}2538		for(int iTerrain = 0; iTerrain < GC.getNumTerrainInfos(); iTerrain++)2539		{2540			m_ppiTerrainYieldChange[iTerrain] = yield;2541		}2542		m_iYieldFromKills[iYield] = 0;2543		m_iYieldFromBarbarianKills[iYield] = 0;2544		m_iYieldChangeTradeRoute[iYield] = 0;2545		m_iYieldChangeWorldWonder[iYield] = 0;2546		for(int iDomain = 0; iDomain < NUM_DOMAIN_TYPES; iDomain++)2547		{2548			m_ppiTradeRouteYieldChange[iDomain] = yield;2549		}2550		for(int iGreatPerson = 0; iGreatPerson < GC.getNumGreatPersonInfos(); iGreatPerson++)2551		{2552			m_ppiGreatPersonExpendedYield[iGreatPerson] = yield;2553		}2554#endif2555		for(int iSpecialist = 0; iSpecialist < GC.getNumSpecialistInfos(); iSpecialist++)2556		{2557			m_ppaaiSpecialistYieldChange[iSpecialist] = yield;2558		}2559		for(int iFeature = 0; iFeature < GC.getNumFeatureInfos(); iFeature++)2560		{2561#if defined(MOD_API_UNIFIED_YIELDS)2562			m_ppiCityYieldFromUnimprovedFeature[iFeature] = yield;2563#endif2564			m_ppaaiUnimprovedFeatureYieldChange[iFeature] = yield;2565		}2566	}25672568#if defined(MOD_API_UNIFIED_YIELDS)2569	m_piGoldenAgeGreatPersonRateModifier.clear();2570	m_piGoldenAgeGreatPersonRateModifier.resize(GC.getNumGreatPersonInfos());25712572	for(int iGreatPerson = 0; iGreatPerson < GC.getNumGreatPersonInfos(); iGreatPerson++)2573	{2574		m_piGoldenAgeGreatPersonRateModifier[iGreatPerson] = 0;2575	}2576#endif25772578	for(int iTerrain = 0; iTerrain < GC.getNumTerrainInfos(); iTerrain++)2579	{2580		m_iStrategicResourceQuantityModifier[iTerrain] = 0;2581	}25822583	m_aiResourceQuantityModifier.clear();2584	m_aiResourceQuantityModifier.resize(GC.getNumResourceInfos());25852586	for(int iResource = 0; iResource < GC.getNumResourceInfos(); iResource++)2587	{2588		m_aiResourceQuantityModifier[iResource] = 0;2589	}25902591	m_abNoTrain.clear();2592	m_abNoTrain.resize(GC.getNumUnitClassInfos());2593	for (int iUnitClass = 0; iUnitClass < GC.getNumUnitClassInfos(); iUnitClass++)2594	{2595		m_abNoTrain[iUnitClass] = false;2596	}25972598	m_aFreeTraitUnits.clear();25992600	int iNumUnitCombatClassInfos = GC.getNumUnitCombatClassInfos();2601	CvAssertMsg((0 < iNumUnitCombatClassInfos),  "GC.getNumUnitCombatClassInfos() is not greater than zero but an array is being allocated in CvPlayerTraits::Reset");2602	m_paiMovesChangeUnitCombat.clear();2603	m_paiMaintenanceModifierUnitCombat.clear();2604	m_paiMovesChangeUnitCombat.resize(iNumUnitCombatClassInfos);2605	m_paiMaintenanceModifierUnitCombat.resize(iNumUnitCombatClassInfos);2606	for(int iI = 0; iI < iNumUnitCombatClassInfos; iI++)2607	{2608		m_paiMovesChangeUnitCombat[iI] = 0;2609		m_paiMaintenanceModifierUnitCombat[iI] = 0;2610	}26112612	int iResourceLoop;2613	for(iResourceLoop = 0; iResourceLoop < GC.getNumResourceInfos(); iResourceLoop++)2614	{2615		FreeResourceXCities temp;2616		m_aFreeResourceXCities.push_back(temp);2617	}2618}

Calls

Called by