diff options
| author | megamage <none@none> | 2009-05-11 03:17:13 -0500 |
|---|---|---|
| committer | megamage <none@none> | 2009-05-11 03:17:13 -0500 |
| commit | f9f5d078fda410c0551f1376197094bc4a7bfe08 (patch) | |
| tree | 3abb3147c83938b1aee627add7b4f97f0af37e8b /src/bindings/scripts | |
| parent | 4fef015112f7bc5fd114c116a384515859b95e9d (diff) | |
*Update instance script functions.
--HG--
branch : trunk
Diffstat (limited to 'src/bindings/scripts')
18 files changed, 35 insertions, 32 deletions
diff --git a/src/bindings/scripts/include/sc_creature.h b/src/bindings/scripts/include/sc_creature.h index 26bf5fb400b..444b16e6cdf 100644 --- a/src/bindings/scripts/include/sc_creature.h +++ b/src/bindings/scripts/include/sc_creature.h @@ -221,13 +221,13 @@ struct TRINITY_DLL_DECL NullCreatureAI : public ScriptedAI struct TRINITY_DLL_DECL BossAI : public ScriptedAI { BossAI(Creature *c, uint32 id) : ScriptedAI(c), bossId(id) - , summons(me), instance((ScriptedInstance*)c->GetInstanceData()) + , summons(me), instance(c->GetInstanceData()) {} uint32 bossId; EventMap events; SummonList summons; - ScriptedInstance *instance; + InstanceData *instance; void JustSummoned(Creature *summon); void SummonedCreatureDespawn(Creature *summon); diff --git a/src/bindings/scripts/include/sc_instance.h b/src/bindings/scripts/include/sc_instance.h index cdf0e03aa37..0620e89af07 100644 --- a/src/bindings/scripts/include/sc_instance.h +++ b/src/bindings/scripts/include/sc_instance.h @@ -17,20 +17,7 @@ class TRINITY_DLL_DECL ScriptedInstance : public InstanceData { public: - ScriptedInstance(Map *map) : InstanceData(map) {} - ~ScriptedInstance() {} - - //All-purpose data storage 64 bit - virtual uint64 GetData64(uint32 Data) { return 0; } - virtual void SetData64(uint32 Data, uint64 Value) { } - - // Called every instance update - virtual void Update(uint32) {} - - // Save and Load instance data to the database - const char* Save() { return NULL; } - void Load(const char* in) { } }; #endif diff --git a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp index 3cfb0af2fa1..37194a89b21 100644 --- a/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp +++ b/src/bindings/scripts/scripts/zone/aunchindoun/shadow_labyrinth/instance_shadow_labyrinth.cpp @@ -191,7 +191,7 @@ struct TRINITY_DLL_DECL instance_shadow_labyrinth : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/instance_ahnkahet.cpp b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/instance_ahnkahet.cpp index 41cb91f86b7..595a05a727f 100644 --- a/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/instance_ahnkahet.cpp +++ b/src/bindings/scripts/scripts/zone/azjol_nerub/ahnkahet/instance_ahnkahet.cpp @@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL instance_ahnkahet : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; diff --git a/src/bindings/scripts/scripts/zone/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp b/src/bindings/scripts/scripts/zone/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp index bd3fccd98d9..7e0252f2009 100644 --- a/src/bindings/scripts/scripts/zone/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp +++ b/src/bindings/scripts/scripts/zone/azjol_nerub/azjol_nerub/instance_azjol_nerub.cpp @@ -117,7 +117,7 @@ struct TRINITY_DLL_DECL instance_azjol_nerub : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; diff --git a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp index 43646746505..bf5d62a7b86 100644 --- a/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp +++ b/src/bindings/scripts/scripts/zone/black_temple/instance_black_temple.cpp @@ -303,7 +303,7 @@ struct TRINITY_DLL_DECL instance_black_temple : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/blackrock_depths/instance_blackrock_depths.cpp b/src/bindings/scripts/scripts/zone/blackrock_depths/instance_blackrock_depths.cpp index 6e26f3a0c03..d9f3ecd808a 100644 --- a/src/bindings/scripts/scripts/zone/blackrock_depths/instance_blackrock_depths.cpp +++ b/src/bindings/scripts/scripts/zone/blackrock_depths/instance_blackrock_depths.cpp @@ -265,7 +265,7 @@ struct TRINITY_DLL_DECL instance_blackrock_depths : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp index 0dfa99198ac..cdcd6cb6b66 100644 --- a/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp +++ b/src/bindings/scripts/scripts/zone/caverns_of_time/hyjal/instance_hyjal.cpp @@ -279,7 +279,7 @@ struct TRINITY_DLL_DECL instance_mount_hyjal : public ScriptedInstance }else debug_log("TSCR: Instance Hyjal: UpdateWorldState, but PlayerList is empty!"); } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp index 6c4ae72aec1..8aa759a87c8 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/serpent_shrine/instance_serpent_shrine.cpp @@ -236,7 +236,7 @@ struct TRINITY_DLL_DECL instance_serpentshrine_cavern : public ScriptedInstance } return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; std::ostringstream stream; diff --git a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp index 6d01da7f625..d375d073c35 100644 --- a/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp +++ b/src/bindings/scripts/scripts/zone/coilfang_resevoir/steam_vault/instance_steam_vault.cpp @@ -209,7 +209,7 @@ struct TRINITY_DLL_DECL instance_steam_vault : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; std::ostringstream stream; diff --git a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp index 34943449b1e..4c90fdf49a8 100644 --- a/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp +++ b/src/bindings/scripts/scripts/zone/gruuls_lair/instance_gruuls_lair.cpp @@ -144,7 +144,7 @@ struct TRINITY_DLL_DECL instance_gruuls_lair : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; std::ostringstream stream; diff --git a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp index e8dccdd62a4..62ad6fcf42c 100644 --- a/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp +++ b/src/bindings/scripts/scripts/zone/karazhan/instance_karazhan.cpp @@ -247,7 +247,7 @@ struct TRINITY_DLL_DECL instance_karazhan : public ScriptedInstance } } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp b/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp index 4dc189723f3..23f44f5daf8 100644 --- a/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp +++ b/src/bindings/scripts/scripts/zone/naxxramas/instance_naxxramas.cpp @@ -77,9 +77,9 @@ inline uint32 GetEruptionSection(float x, float y) return 3; } -struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance +struct TRINITY_DLL_DECL instance_naxxramas : public InstanceData { - instance_naxxramas(Map *map) : ScriptedInstance(map) + instance_naxxramas(Map *map) : InstanceData(map) , Sapphiron(NULL) { SetBossNumber(MAX_BOSS_NUMBER); @@ -88,12 +88,14 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance std::set<GameObject*> HeiganEruption[4]; Creature *Sapphiron; + std::set<Creature*> Worshipper; void OnCreatureCreate(Creature *creature, bool add) { switch(creature->GetEntry()) { case 15989: Sapphiron = add ? creature : NULL; break; + case 16506: if(add) Worshipper.insert(creature); else Worshipper.erase(creature); break; } } @@ -117,6 +119,20 @@ struct TRINITY_DLL_DECL instance_naxxramas : public ScriptedInstance AddDoor(go, add); } + void SetBossState(uint32 id, EncounterState state) + { + InstanceData::SetBossState(id, state); + switch(id) + { + case BOSS_FAERLINA: + if(state == NOT_STARTED) + for(std::set<Creature*>::iterator itr = Worshipper.begin(); itr != Worshipper.end(); ++itr) + if(!(*itr)->isAlive()) + (*itr)->Respawn(); + break; + } + } + void SetData(uint32 id, uint32 value) { switch(id) diff --git a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp index caf18778abb..30f843badb0 100644 --- a/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp +++ b/src/bindings/scripts/scripts/zone/shadowfang_keep/instance_shadowfang_keep.cpp @@ -185,7 +185,7 @@ struct TRINITY_DLL_DECL instance_shadowfang_keep : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { return str_data.c_str(); } diff --git a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp index f8bba5acf21..597103b62cf 100644 --- a/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp +++ b/src/bindings/scripts/scripts/zone/sunwell_plateau/instance_sunwell_plateau.cpp @@ -236,7 +236,7 @@ struct TRINITY_DLL_DECL instance_sunwell_plateau : public ScriptedInstance { } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; std::ostringstream stream; diff --git a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp index 66e595ab729..55ef8c60bbd 100644 --- a/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp +++ b/src/bindings/scripts/scripts/zone/tempest_keep/the_eye/instance_the_eye.cpp @@ -129,7 +129,7 @@ struct TRINITY_DLL_DECL instance_the_eye : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; std::ostringstream stream; diff --git a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/instance_utgarde_keep.cpp b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/instance_utgarde_keep.cpp index d6f5828d295..d483006642d 100644 --- a/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/instance_utgarde_keep.cpp +++ b/src/bindings/scripts/scripts/zone/utgarde_keep/utgarde_keep/instance_utgarde_keep.cpp @@ -231,7 +231,7 @@ struct TRINITY_DLL_DECL instance_utgarde_keep : public ScriptedInstance return 0; } - const char* Save() + std::string GetSaveData() { OUT_SAVE_INST_DATA; diff --git a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp index 4ebf541515b..8ff01927908 100644 --- a/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp +++ b/src/bindings/scripts/scripts/zone/zulaman/instance_zulaman.cpp @@ -179,7 +179,7 @@ struct TRINITY_DLL_DECL instance_zulaman : public ScriptedInstance instance->SendToPlayers(&data); } - const char* Save() + std::string GetSaveData() { std::ostringstream ss; ss << "S " << BossKilled << " " << ChestLooted << " " << QuestMinute; |
