diff options
Diffstat (limited to 'src/server')
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.cpp | 13 | ||||
| -rw-r--r-- | src/server/game/AI/SmartScripts/SmartScript.h | 2 | 
2 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp index 680c0815c6b..c0f844825f5 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.cpp +++ b/src/server/game/AI/SmartScripts/SmartScript.cpp @@ -46,7 +46,7 @@ SmartScript::SmartScript()      mLastTextID = 0;      mTextGUID = 0;      mUseTextTimer = false; -    talker = NULL; +    mTalkerEntry = 0;      mTemplate = SMARTAI_TEMPLATE_BASIC;      meOrigGUID = 0;      goOrigGUID = 0; @@ -138,7 +138,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u                  return;              ObjectList* targets = GetTargets(e, unit); -            talker = me; +            Creature* talker = me;              if (targets)              {                  for (ObjectList::const_iterator itr = targets->begin(); itr != targets->end(); ++itr) @@ -153,6 +153,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u                  delete targets;              } +            mTalkerEntry = talker->GetEntry();              mLastTextID = e.action.talk.textGroupID;              mTextTimer = e.action.talk.duration;              mTextGUID = IsPlayer(GetLastInvoker()) ? GetLastInvoker()->GetGUID() : 0;//invoker, used for $vars in texts @@ -2705,13 +2706,13 @@ void SmartScript::OnUpdate(uint32 const diff)      {          if (mTextTimer < diff)          { -            uint32 temp = mLastTextID; +            uint32 textID = mLastTextID;              mLastTextID = 0; +            uint32 entry = mTalkerEntry; +            mTalkerEntry = 0;              mTextTimer = 0;              mUseTextTimer = false; -            uint32 tempEntry = talker?talker->GetEntry():0; -            talker = NULL; -            ProcessEventsFor(SMART_EVENT_TEXT_OVER, NULL, temp, tempEntry); +            ProcessEventsFor(SMART_EVENT_TEXT_OVER, NULL, textID, entry);          } else mTextTimer -= diff;      }  } diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h index 62855154c8a..aa4eeb602c0 100644 --- a/src/server/game/AI/SmartScripts/SmartScript.h +++ b/src/server/game/AI/SmartScripts/SmartScript.h @@ -248,7 +248,7 @@ class SmartScript          uint32 mTextTimer;          uint32 mLastTextID;          uint64 mTextGUID; -        Creature* talker; +        uint32 mTalkerEntry;          bool mUseTextTimer;          SMARTAI_TEMPLATE mTemplate;  | 
