CvPlayerAchievements::StartTurn()
- Defined in
- CvAchievementUnlocker.cpp, line 406
- Class
- CvPlayerAchievements
- Hook name
CivHooks::CvPlayerAchievements_StartTurn
Hooks
static bool BeforeCvPlayerAchievements_StartTurn(CvPlayerAchievements* self);static void AfterCvPlayerAchievements_StartTurn(CvPlayerAchievements* self);static void ReplaceCvPlayerAchievements_StartTurn(void (*original)(CvPlayerAchievements*), CvPlayerAchievements* self);CivRegisterBefore<CivHooks::CvPlayerAchievements_StartTurn>(host, &BeforeCvPlayerAchievements_StartTurn);CivRegisterAfter<CivHooks::CvPlayerAchievements_StartTurn>(host, &AfterCvPlayerAchievements_StartTurn);CivRegisterReplace<CivHooks::CvPlayerAchievements_StartTurn>(host, &ReplaceCvPlayerAchievements_StartTurn);
Code
406void CvPlayerAchievements::StartTurn()407{408#if !defined(NO_ACHIEVEMENTS)409 if(m_kPlayer.GetID() != GC.getGame().getActivePlayer())410 return;411412 if(m_eSwedenType == UNDEFINED_TYPE)413 {414 m_eSwedenType = (CivilizationTypes)GC.getInfoTypeForString("CIVILIZATION_SWEDEN", true);415 }416417 if(m_eGreatGeneralType == UNDEFINED_TYPE)418 {419 m_eGreatGeneralType = (UnitTypes)GC.getInfoTypeForString("UNIT_GREAT_GENERAL", true);420 }421422 if(m_eHakkapelittaType == UNDEFINED_TYPE)423 {424 m_eHakkapelittaType = (UnitTypes)GC.getInfoTypeForString("UNIT_SWEDISH_HAKKAPELIITTA", true);425 }426427 if(m_eSwedenType != NO_CIVILIZATION && m_eGreatGeneralType != NO_UNIT && m_eHakkapelittaType != NO_UNIT)428 {429 if(m_kPlayer.getCivilizationType() == m_eSwedenType)430 {431 int iLoop = 0;432 for(const CvUnit* pUnit = m_kPlayer.firstUnit(&iLoop); pUnit != NULL; pUnit = m_kPlayer.nextUnit(&iLoop))433 {434 if(pUnit->getUnitType() == m_eGreatGeneralType)435 {436 CvPlot* pPlot = pUnit->plot();437 if(pPlot != NULL)438 {439 int iNumUnits = pPlot->getNumUnits();440 for(int i = 0; i < iNumUnits; ++i)441 {442 CvUnit* pStackedUnit = pPlot->getUnitByIndex(i);443 if(pStackedUnit->getUnitType() == m_eHakkapelittaType)444 {445 gDLL->UnlockAchievement(ACHIEVEMENT_XP1_31);446 return;447 }448 }449 } 450 }451 }452 }453 454 }455#endif456}