Bazaar developer reference

CvTeam::reset(TeamTypes, bool)

Defined in
CvTeam.cpp, line 244
Class
CvTeam
Hook name
CivHooks::CvTeam_reset

Hooks

static bool BeforeCvTeam_reset(CvTeam* self, TeamTypes eID, bool bConstructorCall);static void AfterCvTeam_reset(CvTeam* self, TeamTypes eID, bool bConstructorCall);static void ReplaceCvTeam_reset(void (*original)(CvTeam*, TeamTypes, bool), CvTeam* self, TeamTypes eID, bool bConstructorCall);CivRegisterBefore<CivHooks::CvTeam_reset>(host, &BeforeCvTeam_reset);CivRegisterAfter<CivHooks::CvTeam_reset>(host, &AfterCvTeam_reset);CivRegisterReplace<CivHooks::CvTeam_reset>(host, &ReplaceCvTeam_reset);

Code

242// FUNCTION: reset()243// Initializes data members that are serialized.244void CvTeam::reset(TeamTypes eID, bool bConstructorCall)245{246	//--------------------------------247	// Uninit class248	uninit();249250	m_eID = eID;251252	if(!bConstructorCall)253	{254		//Collect sizes255		int numVoteSourceInfos = GC.getNumVoteSourceInfos();256		int numVictoryInfos = GC.getNumVictoryInfos();257		int numSmallAwardInfos = GC.getNumSmallAwardInfos();258		int numRouteInfos = GC.getNumRouteInfos();259		int numBuildInfos = GC.getNumBuildInfos();260		int numProjectInfos = GC.getNumProjectInfos();261		int numUnitClassInfos = GC.getNumUnitClassInfos();262		int numBuildingClassInfos = GC.getNumBuildingClassInfos();263		int numBuildingInfos = GC.getNumBuildingInfos();264#if defined(MOD_API_UNIFIED_YIELDS)265		int numFeatureInfos = GC.getNumFeatureInfos();266#endif267		int numTerrainInfos = GC.getNumTerrainInfos();268		int numImprovementInfos = GC.getNumImprovementInfos();269270		//Perform batch allocation271		AllocData aData[] =272		{273			{&m_aiForceTeamVoteEligibilityCount,	numVoteSourceInfos, 0},274275			{&m_abCanLaunch,						numVictoryInfos, 0},276			{&m_abVictoryAchieved,					numVictoryInfos, 0},277			{&m_abSmallAwardAchieved,				numSmallAwardInfos, 0},278279			{&m_paiRouteChange,						numRouteInfos, 0},280			{&m_paiBuildTimeChange,					numBuildInfos, 0},281282			{&m_paiProjectCount,					numProjectInfos, 0},283			{&m_paiProjectDefaultArtTypes,			numProjectInfos, 0},284			{&m_paiProjectMaking,					numProjectInfos, 0},285286			{&m_paiUnitClassCount,					numUnitClassInfos, 0},287			{&m_paiBuildingClassCount,				numBuildingClassInfos, 0},288			{&m_paiObsoleteBuildingCount,			numBuildingInfos, 0},289			{&m_paiTerrainTradeCount,				numTerrainInfos, 0},290			{&m_aiVictoryCountdown,					numVictoryInfos, 0},291292#if defined(MOD_API_UNIFIED_YIELDS)293			// If adding more entries into this strucure, you also need to update CvTeamData in Cvteam.h to match294			{&m_ppaaiFeatureYieldChange,			numFeatureInfos, NUM_YIELD_TYPES},295			{&m_ppaaiTerrainYieldChange,			numTerrainInfos, NUM_YIELD_TYPES},296#endif297298			{&m_ppaaiImprovementYieldChange,		numImprovementInfos, NUM_YIELD_TYPES},299			{&m_ppaaiImprovementNoFreshWaterYieldChange,numImprovementInfos, NUM_YIELD_TYPES},300			{&m_ppaaiImprovementFreshWaterYieldChange,numImprovementInfos, NUM_YIELD_TYPES}301		};302		m_BatchData.Alloc(aData);303304		//Init the data - it is valid now305		for(int i = 0; i < numVoteSourceInfos; i++)306		{307			m_aiForceTeamVoteEligibilityCount[i] = 0;308		}309		for(int i = 0; i < numVictoryInfos; i++)310		{311			m_abCanLaunch[i] = false;312			m_abVictoryAchieved[i] = false;313			m_aiVictoryCountdown[i] = -1;314		}315		for(int i = 0; i < numSmallAwardInfos; i++)316		{317			m_abSmallAwardAchieved[i] = false;318		}319		for(int i = 0; i < numRouteInfos; i++)320		{321			m_paiRouteChange[i] = 0;322		}323		for (int i = 0; i < numBuildInfos; i++)324		{325			m_paiBuildTimeChange[i] = 0;326		}327		for(int i = 0; i < numProjectInfos; i++)328		{329			m_paiProjectCount[i] = 0;330			m_paiProjectDefaultArtTypes[i] = 0;331			m_paiProjectMaking[i] = 0;332		}333		for(int i = 0; i < numUnitClassInfos; i++)334		{335			m_paiUnitClassCount[i] = 0;336		}337		for(int i = 0; i < numBuildingClassInfos; i++)338		{339			m_paiBuildingClassCount[i] = 0;340		}341		for(int i = 0; i < numBuildingInfos; i++)342		{343			m_paiObsoleteBuildingCount[i] = 0;344		}345		for(int i = 0; i < numTerrainInfos; i++)346		{347			m_paiTerrainTradeCount[i] = 0;348		}349350		for(int i = 0; i < MAX_TEAMS; i++)351		{352			m_aiTurnTeamMet[i] = -1;353			m_aiNumTurnsAtWar[i] = 0;354			m_aiNumTurnsLockedIntoWar[i] = 0;355		}356357#if defined(MOD_API_UNIFIED_YIELDS)358		for(int j = 0; j < NUM_YIELD_TYPES; j++)359		{360			for(int i = 0; i < numFeatureInfos; i++)361			{362				m_ppaaiFeatureYieldChange[i][j] = 0;363			}364365			for(int i = 0; i < numTerrainInfos; i++)366			{367				m_ppaaiTerrainYieldChange[i][j] = 0;368			}369		}370#endif371372		for(int i = 0; i < numImprovementInfos; i++)373		{374			for(int j = 0; j < NUM_YIELD_TYPES; j++)375			{376				m_ppaaiImprovementYieldChange[i][j] = 0;377				m_ppaaiImprovementNoFreshWaterYieldChange[i][j] = 0;378				m_ppaaiImprovementFreshWaterYieldChange[i][j] = 0;379			}380		}381382		m_pTeamTechs->Init(GC.GetGameTechs(), this);383		m_pavProjectArtTypes = FNEW(std::vector<int> [GC.getNumProjectInfos()], c_eCiv5GameplayDLL, 0);384		m_aeRevealedResources.clear();385	}386}

Calls

Called by