Bazaar developer reference

CvFlavorManager::ChangeFlavors(int *, bool)

Defined in
CvFlavorManager.cpp, line 331
Class
CvFlavorManager
Hook name
CivHooks::CvFlavorManager_ChangeFlavors

Hooks

static bool BeforeCvFlavorManager_ChangeFlavors(CvFlavorManager* self, int* piDeltaFlavorValues, bool bPlayerLevelUpdate);static void AfterCvFlavorManager_ChangeFlavors(CvFlavorManager* self, int* piDeltaFlavorValues, bool bPlayerLevelUpdate);static void ReplaceCvFlavorManager_ChangeFlavors(void (*original)(CvFlavorManager*, int*, bool), CvFlavorManager* self, int* piDeltaFlavorValues, bool bPlayerLevelUpdate);CivRegisterBefore<CivHooks::CvFlavorManager_ChangeFlavors>(host, &BeforeCvFlavorManager_ChangeFlavors);CivRegisterAfter<CivHooks::CvFlavorManager_ChangeFlavors>(host, &AfterCvFlavorManager_ChangeFlavors);CivRegisterReplace<CivHooks::CvFlavorManager_ChangeFlavors>(host, &ReplaceCvFlavorManager_ChangeFlavors);

Code

330/// Update to a new set of flavors331void CvFlavorManager::ChangeFlavors(int* piDeltaFlavorValues, bool	bPlayerLevelUpdate)332{333	CvAssertMsg(piDeltaFlavorValues != NULL, "Invalid array of flavor deltas passed to flavor manager");334335	if(!piDeltaFlavorValues) return;336337	if (bPlayerLevelUpdate)338	{339		int iFlavorMinValue = /*-1000*/ GC.getFLAVOR_MIN_VALUE();340		int iFlavorMaxValue = /*1000*/ GC.getFLAVOR_MAX_VALUE();341342		int iNumFlavors = GC.getNumFlavorTypes();343		for(int iI = 0; iI < iNumFlavors; iI++)344		{345			if(piDeltaFlavorValues[iI] != 0)346			{347				m_piActiveFlavor[iI] += piDeltaFlavorValues[iI];348349				// Make sure within range350				if(m_piActiveFlavor[iI] < iFlavorMinValue)351				{352					m_piActiveFlavor[iI] =iFlavorMinValue;353				}354				else if(m_piActiveFlavor[iI] > iFlavorMaxValue)355				{356					m_piActiveFlavor[iI] = iFlavorMaxValue;357				}358359				LogFlavors((FlavorTypes) iI);360			}361		}362	}363364	BroadcastFlavors(piDeltaFlavorValues, bPlayerLevelUpdate);365}

Calls

Called by