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}