Bazaar developer reference

CvFlavorRecipient::ChangeFlavors(int *, bool)

Defined in
CvFlavorManager.cpp, line 74
Class
CvFlavorRecipient
Hook name
CivHooks::CvFlavorRecipient_ChangeFlavors

Hooks

static bool BeforeCvFlavorRecipient_ChangeFlavors(CvFlavorRecipient* self, int* piDeltaFlavorValues, bool bDontLog);static void AfterCvFlavorRecipient_ChangeFlavors(CvFlavorRecipient* self, int* piDeltaFlavorValues, bool bDontLog);static void ReplaceCvFlavorRecipient_ChangeFlavors(void (*original)(CvFlavorRecipient*, int*, bool), CvFlavorRecipient* self, int* piDeltaFlavorValues, bool bDontLog);CivRegisterBefore<CivHooks::CvFlavorRecipient_ChangeFlavors>(host, &BeforeCvFlavorRecipient_ChangeFlavors);CivRegisterAfter<CivHooks::CvFlavorRecipient_ChangeFlavors>(host, &AfterCvFlavorRecipient_ChangeFlavors);CivRegisterReplace<CivHooks::CvFlavorRecipient_ChangeFlavors>(host, &ReplaceCvFlavorRecipient_ChangeFlavors);

Code

73/// Public function that other classes can call to change this recipient's flavors74void CvFlavorRecipient::ChangeFlavors(int* piDeltaFlavorValues, bool bDontLog)75{7677	CvAssertMsg(piDeltaFlavorValues != NULL, "Invalid array of flavor deltas passed to flavor recipient");7879	if(!piDeltaFlavorValues) return;8081	int iFlavorMinValue = /*-1000*/ GC.getFLAVOR_MIN_VALUE();82	int iFlavorMaxValue = /*1000*/ GC.getFLAVOR_MAX_VALUE();8384	int iNumFlavors = GC.getNumFlavorTypes();85	for(int iI = 0; iI < iNumFlavors; iI++)86	{87		if(piDeltaFlavorValues[iI] != 0)88		{89			m_piLatestFlavorValues[iI] += piDeltaFlavorValues[iI];9091			// Make sure within range92			if(m_piLatestFlavorValues[iI] < iFlavorMinValue)93			{94				m_piLatestFlavorValues[iI] = iFlavorMinValue;95			}96			else if(m_piLatestFlavorValues[iI] > iFlavorMaxValue)97			{98				m_piLatestFlavorValues[iI] = iFlavorMaxValue;99			}100101			if(!bDontLog)102			{103				LogFlavors((FlavorTypes) iI);104			}105		}106	}107108	FlavorUpdate();109}

Calls

Called by