From 81ee07fa2a2ac050e56ed5666892e96997dd17bf Mon Sep 17 00:00:00 2001 From: Kudlaty Date: Sun, 16 Aug 2009 19:38:18 +0200 Subject: Merge [SD2] r1313 Implement new class SystemMgr for storage and management of script data. Move database load to new class and instead use functions in class to retrieve data from storage. --HG-- branch : trunk --- src/bindings/scripts/system/system.h | 70 ++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) (limited to 'src/bindings/scripts/system/system.h') diff --git a/src/bindings/scripts/system/system.h b/src/bindings/scripts/system/system.h index 886f31355a9..a9d35b6f3f0 100644 --- a/src/bindings/scripts/system/system.h +++ b/src/bindings/scripts/system/system.h @@ -5,4 +5,74 @@ #ifndef SC_SYSTEM_H #define SC_SYSTEM_H +extern DatabaseType TScriptDB; + +#define TEXT_SOURCE_RANGE -1000000 //the amount of entries each text source has available + +struct ScriptPointMove +{ + uint32 uiCreatureEntry; + uint32 uiPointId; + float fX; + float fY; + float fZ; + uint32 uiWaitTime; +}; + +struct StringTextData +{ + uint32 uiSoundId; + uint8 uiType; + uint32 uiLanguage; + uint32 uiEmote; +}; + +#define pSystemMgr SystemMgr::Instance() + +class SystemMgr +{ + public: + SystemMgr(); + ~SystemMgr() {} + + static SystemMgr& Instance(); + + //Maps and lists + typedef UNORDERED_MAP TextDataMap; + typedef UNORDERED_MAP > PointMoveMap; + + //Database + void LoadVersion(); + void LoadScriptTexts(); + void LoadScriptTextsCustom(); + void LoadScriptWaypoints(); + + //Retrive from storage + StringTextData const* GetTextData(int32 uiTextId) const + { + TextDataMap::const_iterator itr = m_mTextDataMap.find(uiTextId); + + if (itr == m_mTextDataMap.end()) + return NULL; + + return &itr->second; + } + + std::vector const &GetPointMoveList(uint32 uiCreatureEntry) const + { + static std::vector vEmpty; + + PointMoveMap::const_iterator itr = m_mPointMoveMap.find(uiCreatureEntry); + + if (itr == m_mPointMoveMap.end()) + return vEmpty; + + return itr->second; + } + + protected: + TextDataMap m_mTextDataMap; //additional data for text strings + PointMoveMap m_mPointMoveMap; //coordinates for waypoints +}; + #endif -- cgit v1.2.3