diff options
| author | jackpoz <giacomopoz@gmail.com> | 2015-03-21 23:57:49 +0100 |
|---|---|---|
| committer | jackpoz <giacomopoz@gmail.com> | 2015-03-21 23:57:49 +0100 |
| commit | d888e4c7ad5ce48eb1f550b3e142dad16c026d0c (patch) | |
| tree | cd5abe6d78e0242fb098793ae83fa85eaacded07 /src/server/game | |
| parent | 922be41916e10117d35821cb863bffe5dc20144f (diff) | |
Scripts/Ulduar: Fix some Flame Leviathan issues
Fix some Flame Leviathan issues:
- Fix boss evading all the time due to bad Doors check
- Opened "Lightning Door" to other bosses only after boss dies
- Eject players from the vehicles when boss dies, make them untargetable and despawn them after 5 minutes (adjust the time to the blizzlike time of choice)
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Instances/InstanceScript.cpp | 6 | ||||
| -rw-r--r-- | src/server/game/Instances/InstanceScript.h | 8 |
2 files changed, 12 insertions, 2 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index badd151bf4c..42bf61b6e38 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -191,6 +191,12 @@ void InstanceScript::UpdateDoorState(GameObject* door) door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); } +BossInfo* InstanceScript::GetBossInfo(uint32 id) +{ + ASSERT(id < bosses.size()); + return &bosses[id]; +} + void InstanceScript::AddObject(Creature* obj, bool add) { ObjectInfoMap::const_iterator j = _creatureInfo.find(obj->GetEntry()); diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h index 3089a4193c9..41a9e9d0be1 100644 --- a/src/server/game/Instances/InstanceScript.h +++ b/src/server/game/Instances/InstanceScript.h @@ -254,12 +254,16 @@ class InstanceScript : public ZoneScript void AddObject(GameObject* obj, bool add); void AddObject(WorldObject* obj, uint32 type, bool add); - void AddDoor(GameObject* door, bool add); + virtual void AddDoor(GameObject* door, bool add); void AddMinion(Creature* minion, bool add); - void UpdateDoorState(GameObject* door); + virtual void UpdateDoorState(GameObject* door); void UpdateMinionState(Creature* minion, EncounterState state); + // Exposes private data that should never be modified unless exceptional cases. + // Pay very much attention at how the returned BossInfo data is modified to avoid issues. + BossInfo* GetBossInfo(uint32 id); + // Instance Load and Save bool ReadSaveDataHeaders(std::istringstream& data); void ReadSaveDataBossStates(std::istringstream& data); |
