From e4e903ba951871927a36526d88da10de04eddb14 Mon Sep 17 00:00:00 2001 From: jackpoz Date: Sun, 14 Jun 2015 18:34:11 +0200 Subject: Merge pull request #14728 from kelno/fixes Core/SAI: Fixed a math error overflow in SmartScript::DecPhase(int32) (cherry picked from commit 6d7339e7a3daf302d6bed1c8c0a4584a69a9316b) --- src/server/game/AI/SmartScripts/SmartScript.h | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h index c5cc5aedb43..e1a61438194 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.h +++ b/src/server/game/AI/SmartScripts/SmartScript.h @@ -246,7 +246,14 @@ class SmartScript DecPhase(abs(p)); } - void DecPhase(int32 p = 1) { mEventPhase -= (mEventPhase < (uint32)p ? (uint32)p - mEventPhase : (uint32)p); } + void DecPhase(int32 p = 1) + { + if(mEventPhase > (uint32)p) + mEventPhase -= (uint32)p; + else + mEventPhase = 0; + } + bool IsInPhase(uint32 p) const { return ((1 << (mEventPhase - 1)) & p) != 0; } void SetPhase(uint32 p = 0) { mEventPhase = p; } -- cgit v1.2.3