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}