Bazaar developer reference

CvPlot::setResourceType(ResourceTypes, int, bool)

Defined in
CvPlot.cpp, line 6417
Class
CvPlot
Hook name
CivHooks::CvPlot_setResourceType

Hooks

static bool BeforeCvPlot_setResourceType(CvPlot* self, ResourceTypes eNewValue, int iResourceNum, bool bForMinorCivPlot);static void AfterCvPlot_setResourceType(CvPlot* self, ResourceTypes eNewValue, int iResourceNum, bool bForMinorCivPlot);static void ReplaceCvPlot_setResourceType(void (*original)(CvPlot*, ResourceTypes, int, bool), CvPlot* self, ResourceTypes eNewValue, int iResourceNum, bool bForMinorCivPlot);CivRegisterBefore<CivHooks::CvPlot_setResourceType>(host, &BeforeCvPlot_setResourceType);CivRegisterAfter<CivHooks::CvPlot_setResourceType>(host, &AfterCvPlot_setResourceType);CivRegisterReplace<CivHooks::CvPlot_setResourceType>(host, &ReplaceCvPlot_setResourceType);

Code

6417void CvPlot::setResourceType(ResourceTypes eNewValue, int iResourceNum, bool bForMinorCivPlot)6418{6419#if defined(MOD_BUGFIX_PLOT_VALIDATION)6420	if (eNewValue < NO_RESOURCE) return;6421	if (eNewValue > NO_RESOURCE && GC.getResourceInfo(eNewValue) == NULL) return;6422#endif64236424	if(m_eResourceType != eNewValue)6425	{6426		if (eNewValue != -1)6427		{6428			CvResourceInfo* pkResourceInfo = GC.getResourceInfo(eNewValue);6429			if (pkResourceInfo)6430			{6431				if (pkResourceInfo->isOnlyMinorCivs())6432				{6433					if (!bForMinorCivPlot)6434					{6435						CvAssertMsg(false, "Tried to place a city-state unique luxury when not allowed.  PLEASE send Anton your save game, settings, and version!");6436						return;6437					}6438				}6439			}6440		}64416442		if(m_eResourceType != NO_RESOURCE)6443		{6444			if(area())6445			{6446				area()->changeNumResources((ResourceTypes)m_eResourceType, -1);6447			}6448			GC.getMap().changeNumResources((ResourceTypes)m_eResourceType, -1);64496450			if(!isWater())6451			{6452				GC.getMap().changeNumResourcesOnLand((ResourceTypes)m_eResourceType, -1);6453			}64546455		}64566457		m_eResourceType = eNewValue; // !!! Here is where we actually change the value64586459		setNumResource(iResourceNum);64606461		if(m_eResourceType != NO_RESOURCE)6462		{6463			if(area())6464			{6465				area()->changeNumResources((ResourceTypes)m_eResourceType, 1);6466			}6467			GC.getMap().changeNumResources((ResourceTypes)m_eResourceType, 1);64686469			if(!isWater())6470			{6471				GC.getMap().changeNumResourcesOnLand((ResourceTypes)m_eResourceType, 1);6472			}6473		}64746475		updateYield();64766477		if(GC.IsGraphicsInitialized())6478		{6479			setLayoutDirty(true);6480		}6481	}6482}

Calls

Called by