Bazaar developer reference

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

Called by