CvPlayer::changeBuildingClassMaking(BuildingClassTypes, int)
- Defined in
- CvPlayer.cpp, line 20598
- Class
- CvPlayer
- Hook name
CivHooks::CvPlayer_changeBuildingClassMaking
Hooks
static bool BeforeCvPlayer_changeBuildingClassMaking(CvPlayer* self, BuildingClassTypes eIndex, int iChange);static void AfterCvPlayer_changeBuildingClassMaking(CvPlayer* self, BuildingClassTypes eIndex, int iChange);static void ReplaceCvPlayer_changeBuildingClassMaking(void (*original)(CvPlayer*, BuildingClassTypes, int), CvPlayer* self, BuildingClassTypes eIndex, int iChange);CivRegisterBefore<CivHooks::CvPlayer_changeBuildingClassMaking>(host, &BeforeCvPlayer_changeBuildingClassMaking);CivRegisterAfter<CivHooks::CvPlayer_changeBuildingClassMaking>(host, &AfterCvPlayer_changeBuildingClassMaking);CivRegisterReplace<CivHooks::CvPlayer_changeBuildingClassMaking>(host, &ReplaceCvPlayer_changeBuildingClassMaking);
Code
20598void CvPlayer::changeBuildingClassMaking(BuildingClassTypes eIndex, int iChange)20599{20600 CvAssertMsg(eIndex >= 0, "eIndex is expected to be non-negative (invalid Index)");20601 CvAssertMsg(eIndex < GC.getNumBuildingClassInfos(), "eIndex is expected to be within maximum bounds (invalid Index)");2060220603 if(iChange != 0)20604 {20605 m_paiBuildingClassMaking.setAt(eIndex, m_paiBuildingClassMaking[eIndex] + iChange);20606 CvAssert(getBuildingClassMaking(eIndex) >= 0);2060720608 const BuildingTypes eBuilding = (BuildingTypes) getCivilizationInfo().getCivilizationBuildings(eIndex);20609 CvBuildingEntry* pkBuildingInfo = GC.getBuildingInfo(eBuilding);20610 if(pkBuildingInfo)20611 {20612 // Update the amount of a Resource used up by Buildings in Production20613 for(int iResourceLoop = 0; iResourceLoop < GC.getNumResourceInfos(); iResourceLoop++)20614 {20615 const ResourceTypes eResource = static_cast<ResourceTypes>(iResourceLoop);20616 CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eResource);20617 if(pkResourceInfo)20618 {20619 if(pkBuildingInfo->GetResourceQuantityRequirement(iResourceLoop) > 0)20620 {20621 changeNumResourceUsed(eResource, iChange * pkBuildingInfo->GetResourceQuantityRequirement(iResourceLoop));20622 }20623 }2062420625 }20626 }206272062820629 if(GetID() == GC.getGame().getActivePlayer())20630 {20631 GC.GetEngineUserInterface()->setDirty(Help_DIRTY_BIT, true);20632 }20633 }20634}
Calls
- CvBuildingEntry::GetResourceQuantityRequirement(int) const
- CvCivilizationInfo::getCivilizationBuildings(int) const
- CvGame::getActivePlayer() const
- CvGlobals::getBuildingInfo(BuildingTypes)
- CvGlobals::GetEngineUserInterface()
- CvGlobals::getGame()
- CvGlobals::getNumResourceInfos()
- CvGlobals::getResourceInfo(ResourceTypes)
- CvPlayer::changeNumResourceUsed(ResourceTypes, int)
- CvPlayer::getCivilizationInfo() const
- CvPlayer::GetID() const
FAutoVariable::operator[]FAutoVariable::setAtICvUserInterface1::setDirty