diff options
| author | Nay <dnpd.dd@gmail.com> | 2013-08-27 16:10:11 +0100 |
|---|---|---|
| committer | Nay <dnpd.dd@gmail.com> | 2013-08-27 16:10:11 +0100 |
| commit | 14d80d269dd7f9624983bc5a610e511f31ed33f0 (patch) | |
| tree | f4dafe85b046d91506ec345516aa8e82d4ec38f6 /src/server/game/Scripting | |
| parent | b2134dbbe300f6b0ff55d551295a56a67748056f (diff) | |
| parent | cc14e18664f50983e52398ec02c9f6b2b770ef85 (diff) | |
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts:
src/server/game/AI/EventAI/CreatureEventAI.cpp
src/server/game/Globals/ObjectMgr.cpp
Diffstat (limited to 'src/server/game/Scripting')
| -rw-r--r-- | src/server/game/Scripting/ScriptLoader.cpp | 39 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.cpp | 32 |
2 files changed, 54 insertions, 17 deletions
diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp index 3c1ec5db0a8..437638da16d 100644 --- a/src/server/game/Scripting/ScriptLoader.cpp +++ b/src/server/game/Scripting/ScriptLoader.cpp @@ -536,20 +536,31 @@ void AddSC_zuldrak(); void AddSC_crystalsong_forest(); void AddSC_isle_of_conquest(); -//outland -void AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts +// Outland + +// Auchindoun - Auchenai Crypts void AddSC_boss_shirrak_the_dead_watcher(); -void AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs +void AddSC_boss_exarch_maladaar(); +void AddSC_instance_auchenai_crypts(); + +// Auchindoun - Mana Tombs void AddSC_boss_pandemonius(); -void AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls +void AddSC_boss_nexusprince_shaffar(); +void AddSC_instance_mana_tombs(); + +// Auchindoun - Sekketh Halls +void AddSC_boss_darkweaver_syth(); void AddSC_boss_talon_king_ikiss(); void AddSC_boss_anzu(); void AddSC_instance_sethekk_halls(); -void AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth + +// Auchindoun - Shadow Labyrinth void AddSC_boss_ambassador_hellmaw(); void AddSC_boss_blackheart_the_inciter(); void AddSC_boss_grandmaster_vorpil(); void AddSC_boss_murmur(); +void AddSC_instance_shadow_labyrinth(); + void AddSC_black_temple(); //Black Temple void AddSC_boss_illidan(); void AddSC_boss_shade_of_akama(); @@ -1054,19 +1065,29 @@ void AddKalimdorScripts() void AddOutlandScripts() { #ifdef SCRIPTS - AddSC_boss_exarch_maladaar(); //Auchindoun Auchenai Crypts + // Auchindoun - Auchenai Crypts AddSC_boss_shirrak_the_dead_watcher(); - AddSC_boss_nexusprince_shaffar(); //Auchindoun Mana Tombs + AddSC_boss_exarch_maladaar(); + AddSC_instance_auchenai_crypts(); + + // Auchindoun - Mana Tombs AddSC_boss_pandemonius(); - AddSC_boss_darkweaver_syth(); //Auchindoun Sekketh Halls + AddSC_boss_nexusprince_shaffar(); + AddSC_instance_mana_tombs(); + + // Auchindoun - Sekketh Halls + AddSC_boss_darkweaver_syth(); AddSC_boss_talon_king_ikiss(); AddSC_boss_anzu(); AddSC_instance_sethekk_halls(); - AddSC_instance_shadow_labyrinth(); //Auchindoun Shadow Labyrinth + + // Auchindoun - Shadow Labyrinth AddSC_boss_ambassador_hellmaw(); AddSC_boss_blackheart_the_inciter(); AddSC_boss_grandmaster_vorpil(); AddSC_boss_murmur(); + AddSC_instance_shadow_labyrinth(); + AddSC_black_temple(); //Black Temple AddSC_boss_illidan(); AddSC_boss_shade_of_akama(); diff --git a/src/server/game/Scripting/ScriptMgr.cpp b/src/server/game/Scripting/ScriptMgr.cpp index 3272498662b..65ddb3a8d05 100644 --- a/src/server/game/Scripting/ScriptMgr.cpp +++ b/src/server/game/Scripting/ScriptMgr.cpp @@ -29,10 +29,16 @@ #include "SpellInfo.h" #include "SpellScript.h" #include "GossipDef.h" -#include "CreatureAI.h" +#include "CreatureAIImpl.h" #include "Player.h" #include "WorldPacket.h" +namespace +{ + typedef std::set<ScriptObject*> ExampleScriptContainer; + ExampleScriptContainer ExampleScripts; +} + // This is the global static registry of scripts. template<class TScript> class ScriptRegistry @@ -104,6 +110,9 @@ class ScriptRegistry if (script->GetName().find("example") == std::string::npos && script->GetName().find("Smart") == std::string::npos) TC_LOG_ERROR(LOG_FILTER_SQL, "Script named '%s' does not have a script name assigned in database.", script->GetName().c_str()); + + // These scripts don't get stored anywhere so throw them into this to avoid leaking memory + ExampleScripts.insert(script); } } else @@ -160,7 +169,11 @@ class ScriptRegistry if (!V) \ return R; - +struct TSpellSummary +{ + uint8 Targets; // set of enum SelectTarget + uint8 Effects; // set of enum SelectEffect +} *SpellSummary; ScriptMgr::ScriptMgr() : _scriptCount(0), _scheduledScripts(0) @@ -220,6 +233,13 @@ void ScriptMgr::Unload() SCR_CLEAR(UnitScript); #undef SCR_CLEAR + + for (ExampleScriptContainer::iterator itr = ExampleScripts.begin(); itr != ExampleScripts.end(); ++itr) + delete *itr; + ExampleScripts.clear(); + + delete[] SpellSummary; + delete[] UnitAI::AISpellInfo; } void ScriptMgr::LoadDatabase() @@ -227,14 +247,10 @@ void ScriptMgr::LoadDatabase() sScriptSystemMgr->LoadScriptWaypoints(); } -struct TSpellSummary -{ - uint8 Targets; // set of enum SelectTarget - uint8 Effects; // set of enum SelectEffect -} *SpellSummary; - void ScriptMgr::FillSpellSummary() { + UnitAI::FillAISpellInfo(); + SpellSummary = new TSpellSummary[sSpellMgr->GetSpellInfoStoreSize()]; SpellInfo const* pTempSpell; |
