diff options
author | megamage <none@none> | 2009-05-06 00:06:38 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-05-06 00:06:38 -0500 |
commit | 3f6f15e34b11586d4b819cd89261fb03f690bb9f (patch) | |
tree | d058b290537c5cea2e3300c5af71d5449227c341 /src/game/InstanceData.cpp | |
parent | f4e86543377c9e4e3746b579106cb4d72d099fa1 (diff) |
*Update instance script functions.
--HG--
branch : trunk
Diffstat (limited to 'src/game/InstanceData.cpp')
-rw-r--r-- | src/game/InstanceData.cpp | 57 |
1 files changed, 28 insertions, 29 deletions
diff --git a/src/game/InstanceData.cpp b/src/game/InstanceData.cpp index e79a91dc345..4fcdc0e4195 100644 --- a/src/game/InstanceData.cpp +++ b/src/game/InstanceData.cpp @@ -49,47 +49,47 @@ bool InstanceData::IsEncounterInProgress() const return false; } -void InstanceData::AddBossRoomDoor(uint32 id, GameObject *door) +//This will be removed in the future, just compitiable with Mangos +void InstanceData::OnCreatureCreate(Creature *creature, bool add) { - if(id < bosses.size()) - { - BossInfo *bossInfo = &bosses[id]; - bossInfo->roomDoor.insert(door); - // Room door is only closed when encounter is in progress - if(bossInfo->state == IN_PROGRESS) - door->SetGoState(GO_STATE_READY); - else - door->SetGoState(GO_STATE_ACTIVE); - } + OnCreatureCreate(creature, creature->GetEntry(), add); } -void InstanceData::AddBossPassageDoor(uint32 id, GameObject *door) +void InstanceData::SetBossRoomDoor(uint32 id, GameObject *door, bool add) { if(id < bosses.size()) { - BossInfo *bossInfo = &bosses[id]; - bossInfo->passageDoor.insert(door); - // Passage door is only opened when boss is defeated - if(bossInfo->state == DONE) - door->SetGoState(GO_STATE_ACTIVE); + if(add) + { + BossInfo *bossInfo = &bosses[id]; + bossInfo->roomDoor.insert(door); + // Room door is only closed when encounter is in progress + if(bossInfo->state == IN_PROGRESS) + door->SetGoState(GO_STATE_READY); + else + door->SetGoState(GO_STATE_ACTIVE); + } else - door->SetGoState(GO_STATE_READY); - } -} - -void InstanceData::RemoveBossRoomDoor(uint32 id, GameObject *door) -{ - if(id < bosses.size()) - { - bosses[id].roomDoor.erase(door); + bosses[id].roomDoor.erase(door); } } -void InstanceData::RemoveBossPassageDoor(uint32 id, GameObject *door) +void InstanceData::SetBossPassageDoor(uint32 id, GameObject *door, bool add) { if(id < bosses.size()) { - bosses[id].passageDoor.erase(door); + if(add) + { + BossInfo *bossInfo = &bosses[id]; + bossInfo->passageDoor.insert(door); + // Passage door is only opened when boss is defeated + if(bossInfo->state == DONE) + door->SetGoState(GO_STATE_ACTIVE); + else + door->SetGoState(GO_STATE_READY); + } + else + bosses[id].passageDoor.erase(door); } } @@ -98,7 +98,6 @@ void InstanceData::SetBossState(uint32 id, EncounterState state) if(id < bosses.size()) { BossInfo *bossInfo = &bosses[id]; - bossInfo->state = state; switch(state) { |