aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Texts/CreatureTextMgr.h
diff options
context:
space:
mode:
authorRat <none@none>2010-09-26 20:48:25 +0200
committerRat <none@none>2010-09-26 20:48:25 +0200
commitbbf86641a1c35fcc66de30d7a79175c31effde88 (patch)
tree165aa4c561800bf54d7037eb5f1fd7cf5b0f8801 /src/server/game/Texts/CreatureTextMgr.h
parent133ab88f8c43edf6e987649c86ad4f7b684c2886 (diff)
Core/Scripts/SmartAI: removed test code
Core/CreatureTextMgr: added reload command handle text from DB handle grouped texts handle repeatable/single texts based on probability todo: sound/emote, code cleanup --HG-- branch : trunk
Diffstat (limited to 'src/server/game/Texts/CreatureTextMgr.h')
-rw-r--r--src/server/game/Texts/CreatureTextMgr.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/server/game/Texts/CreatureTextMgr.h b/src/server/game/Texts/CreatureTextMgr.h
index 11ba84f691b..70ad8b6f9b0 100644
--- a/src/server/game/Texts/CreatureTextMgr.h
+++ b/src/server/game/Texts/CreatureTextMgr.h
@@ -52,9 +52,14 @@ enum TextRange
-typedef std::vector<CreatureTextEntry> CreatureTextGroup; //texts in a group
-typedef UNORDERED_MAP<uint32, CreatureTextGroup> CreatureTextHolder; //groups for a creature
-typedef UNORDERED_MAP<uint32, CreatureTextHolder> CreatureTextMap; //all creatures
+typedef std::vector<CreatureTextEntry> CreatureTextGroup; //texts in a group
+typedef UNORDERED_MAP<uint8, CreatureTextGroup> CreatureTextHolder; //groups for a creature by groupid
+typedef UNORDERED_MAP<uint32, CreatureTextHolder> CreatureTextMap; //all creatures by entry
+
+//used for handling non-repeatable random texts
+typedef std::vector<uint8> CreatureTextRepeatIds;
+typedef UNORDERED_MAP<uint8, CreatureTextRepeatIds> CreatureTextRepeatGroup;
+typedef UNORDERED_MAP<uint64, CreatureTextRepeatGroup> CreatureTextRepeatMap;//guid based
class CreatureTextMgr
{
@@ -65,12 +70,17 @@ class CreatureTextMgr
void LoadCreatureTexts();
CreatureTextMap const& GetTextMap() const { return mTextMap; }
- void SendChat(WorldObject* source, char const* text, ChatType msgtype = CHAT_TYPE_SAY, Language language = LANG_UNIVERSAL, uint64 whisperGuid = 0, TextRange range = TEXT_RANGE_NORMAL) const;
-
+ void SendChat(Creature* source, uint8 textGroup, uint64 whisperGuid = 0, ChatType msgtype = CHAT_TYPE_SAY, Language language = LANG_UNIVERSAL, TextRange range = TEXT_RANGE_NORMAL);
+ void SendChatString(WorldObject* source, char const* text, ChatType msgtype = CHAT_TYPE_SAY, Language language = LANG_UNIVERSAL, uint64 whisperGuid = 0, TextRange range = TEXT_RANGE_NORMAL) const;
+
private:
- CreatureTextMap mTextMap;
+ CreatureTextRepeatIds GetRepeatGroup(Creature* source, uint8 textGroup);
+ void SetRepeatId(Creature* source, uint8 textGroup, uint8 id);
void BuildMonsterChat(WorldPacket *data, WorldObject* source, ChatType msgtype, char const* text, Language language, uint64 whisperGuid) const;
void SendChatPacket(WorldPacket *data, WorldObject* source, ChatType msgtype, uint64 whisperGuid, TextRange range) const;
+
+ CreatureTextMap mTextMap;
+ CreatureTextRepeatMap mTextRepeatMap;
};
#define sCreatureTextMgr (*ACE_Singleton<CreatureTextMgr, ACE_Null_Mutex>::instance())