diff options
Diffstat (limited to 'src/bindings/scripts/system/system.h')
-rw-r--r-- | src/bindings/scripts/system/system.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/bindings/scripts/system/system.h b/src/bindings/scripts/system/system.h index 83742a3c329..479f856514a 100644 --- a/src/bindings/scripts/system/system.h +++ b/src/bindings/scripts/system/system.h @@ -1,10 +1,14 @@ /* Copyright (C) 2006 - 2009 ScriptDev2 <https://scriptdev2.svn.sourceforge.net/> * This program is free software licensed under GPL version 2 * Please see the included DOCS/LICENSE.TXT for more information */ + #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 + //TODO: find better namings and definitions. //N=Neutral, A=Alliance, H=Horde. //NEUTRAL or FRIEND = Hostility to player surroundings (not a good definition) @@ -14,16 +18,21 @@ enum eEscortFaction FACTION_ESCORT_A_NEUTRAL_PASSIVE = 10, FACTION_ESCORT_H_NEUTRAL_PASSIVE = 33, FACTION_ESCORT_N_NEUTRAL_PASSIVE = 113, + FACTION_ESCORT_A_NEUTRAL_ACTIVE = 231, FACTION_ESCORT_H_NEUTRAL_ACTIVE = 232, FACTION_ESCORT_N_NEUTRAL_ACTIVE = 250, + FACTION_ESCORT_N_FRIEND_PASSIVE = 290, FACTION_ESCORT_N_FRIEND_ACTIVE = 495, + FACTION_ESCORT_A_PASSIVE = 774, FACTION_ESCORT_H_PASSIVE = 775, + FACTION_ESCORT_N_ACTIVE = 1986, FACTION_ESCORT_H_ACTIVE = 2046 }; + struct ScriptPointMove { uint32 uiCreatureEntry; @@ -33,6 +42,7 @@ struct ScriptPointMove float fZ; uint32 uiWaitTime; }; + struct StringTextData { uint32 uiSoundId; @@ -40,39 +50,53 @@ struct StringTextData uint32 uiLanguage; uint32 uiEmote; }; + #define pSystemMgr SystemMgr::Instance() + class SystemMgr { public: SystemMgr(); ~SystemMgr() {} + static SystemMgr& Instance(); + //Maps and lists typedef UNORDERED_MAP<int32, StringTextData> TextDataMap; typedef UNORDERED_MAP<uint32, std::vector<ScriptPointMove> > 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<ScriptPointMove> const &GetPointMoveList(uint32 uiCreatureEntry) const { static std::vector<ScriptPointMove> 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 |