diff options
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rwxr-xr-x | src/server/game/Instances/InstanceScript.cpp | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index e468e29c70c..2281caf4e74 100755 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -111,28 +111,25 @@ void InstanceScript::UpdateDoorState(GameObject *door) return; bool open = true; - for (DoorInfoMap::iterator itr = lower; itr != upper; ++itr) + for (DoorInfoMap::iterator itr = lower; itr != upper && open; ++itr) { - if (itr->second.type == DOOR_TYPE_ROOM) + switch (itr->second.type) { - if (itr->second.bossInfo->state == IN_PROGRESS) - { - open = false; + case DOOR_TYPE_ROOM: + open = (itr->second.bossInfo->state != IN_PROGRESS); break; - } - } - else if (itr->second.type == DOOR_TYPE_PASSAGE) - { - if (itr->second.bossInfo->state != DONE) - { - open = false; + case DOOR_TYPE_PASSAGE: + open = (itr->second.bossInfo->state == DONE); + break; + case DOOR_TYPE_SPAWN_HOLE: + open = (itr->second.bossInfo->state == IN_PROGRESS); + break; + default: break; - } } } door->SetGoState(open ? GO_STATE_ACTIVE : GO_STATE_READY); - //sLog->outError("Door %u is %s.", door->GetEntry(), open ? "opened" : "closed"); } void InstanceScript::AddDoor(GameObject *door, bool add) |