diff options
Diffstat (limited to 'src/server/game/Globals/ObjectMgr.cpp')
-rw-r--r-- | src/server/game/Globals/ObjectMgr.cpp | 54 |
1 files changed, 53 insertions, 1 deletions
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index 65f7b3575d7..e60fc55250b 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -89,6 +89,57 @@ ScriptMapMap* GetScriptsMapByType(ScriptsType type) return res; } +std::string GetScriptCommandName(ScriptCommands command) +{ + std::string res = ""; + switch (command) + { + case SCRIPT_COMMAND_TALK: res = "SCRIPT_COMMAND_TALK"; break; + case SCRIPT_COMMAND_EMOTE: res = "SCRIPT_COMMAND_EMOTE"; break; + case SCRIPT_COMMAND_FIELD_SET: res = "SCRIPT_COMMAND_FIELD_SET"; break; + case SCRIPT_COMMAND_MOVE_TO: res = "SCRIPT_COMMAND_MOVE_TO"; break; + case SCRIPT_COMMAND_FLAG_SET: res = "SCRIPT_COMMAND_FLAG_SET"; break; + case SCRIPT_COMMAND_FLAG_REMOVE: res = "SCRIPT_COMMAND_FLAG_REMOVE"; break; + case SCRIPT_COMMAND_TELEPORT_TO: res = "SCRIPT_COMMAND_TELEPORT_TO"; break; + case SCRIPT_COMMAND_QUEST_EXPLORED: res = "SCRIPT_COMMAND_QUEST_EXPLORED"; break; + case SCRIPT_COMMAND_KILL_CREDIT: res = "SCRIPT_COMMAND_KILL_CREDIT"; break; + case SCRIPT_COMMAND_RESPAWN_GAMEOBJECT: res = "SCRIPT_COMMAND_RESPAWN_GAMEOBJECT"; break; + case SCRIPT_COMMAND_TEMP_SUMMON_CREATURE: res = "SCRIPT_COMMAND_TEMP_SUMMON_CREATURE"; break; + case SCRIPT_COMMAND_OPEN_DOOR: res = "SCRIPT_COMMAND_OPEN_DOOR"; break; + case SCRIPT_COMMAND_CLOSE_DOOR: res = "SCRIPT_COMMAND_CLOSE_DOOR"; break; + case SCRIPT_COMMAND_ACTIVATE_OBJECT: res = "SCRIPT_COMMAND_ACTIVATE_OBJECT"; break; + case SCRIPT_COMMAND_REMOVE_AURA: res = "SCRIPT_COMMAND_REMOVE_AURA"; break; + case SCRIPT_COMMAND_CAST_SPELL: res = "SCRIPT_COMMAND_CAST_SPELL"; break; + case SCRIPT_COMMAND_PLAY_SOUND: res = "SCRIPT_COMMAND_PLAY_SOUND"; break; + case SCRIPT_COMMAND_CREATE_ITEM: res = "SCRIPT_COMMAND_CREATE_ITEM"; break; + case SCRIPT_COMMAND_DESPAWN_SELF: res = "SCRIPT_COMMAND_DESPAWN_SELF"; break; + case SCRIPT_COMMAND_LOAD_PATH: res = "SCRIPT_COMMAND_LOAD_PATH"; break; + case SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT: res = "SCRIPT_COMMAND_CALLSCRIPT_TO_UNIT"; break; + case SCRIPT_COMMAND_KILL: res = "SCRIPT_COMMAND_KILL"; break; + // TrinityCore only + case SCRIPT_COMMAND_ORIENTATION: res = "SCRIPT_COMMAND_ORIENTATION"; break; + case SCRIPT_COMMAND_EQUIP: res = "SCRIPT_COMMAND_EQUIP"; break; + case SCRIPT_COMMAND_MODEL: res = "SCRIPT_COMMAND_MODEL"; break; + case SCRIPT_COMMAND_CLOSE_GOSSIP: res = "SCRIPT_COMMAND_CLOSE_GOSSIP"; break; + case SCRIPT_COMMAND_PLAYMOVIE: res = "SCRIPT_COMMAND_PLAYMOVIE"; break; + default: + { + char sz[32]; + sprintf(sz, "Unknown command: %u", command); + res = sz; + break; + } + } + return res; +} + +std::string ScriptInfo::GetDebugInfo() const +{ + char sz[256]; + sprintf(sz, "%s ('%s' script id: %u)", GetScriptCommandName(command).c_str(), GetScriptsTableNameByType(type).c_str(), id); + return std::string(sz); +} + bool normalizePlayerName(std::string& name) { if (name.empty()) @@ -4565,7 +4616,7 @@ void ObjectMgr::LoadScripts(ScriptsType type) if (isSpellScriptTable) tmp.id |= fields[10].GetUInt8() << 24; tmp.delay = fields[1].GetUInt32(); - tmp.command = fields[2].GetUInt32(); + tmp.command = ScriptCommands(fields[2].GetUInt32()); tmp.datalong = fields[3].GetUInt32(); tmp.datalong2 = fields[4].GetUInt32(); tmp.dataint = fields[5].GetInt32(); @@ -4573,6 +4624,7 @@ void ObjectMgr::LoadScripts(ScriptsType type) tmp.y = fields[7].GetFloat(); tmp.z = fields[8].GetFloat(); tmp.o = fields[9].GetFloat(); + tmp.type = type; // generic command args check switch (tmp.command) |