aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/server/game/Instances/InstanceScript.cpp25
-rwxr-xr-xsrc/server/game/Instances/InstanceScript.h5
2 files changed, 14 insertions, 16 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)
diff --git a/src/server/game/Instances/InstanceScript.h b/src/server/game/Instances/InstanceScript.h
index 3c90364bbfd..b3dcb9525c5 100755
--- a/src/server/game/Instances/InstanceScript.h
+++ b/src/server/game/Instances/InstanceScript.h
@@ -58,8 +58,9 @@ enum EncounterState
enum DoorType
{
- DOOR_TYPE_ROOM = 0,
- DOOR_TYPE_PASSAGE,
+ DOOR_TYPE_ROOM = 0, // Door can open if encounter is not in progress
+ DOOR_TYPE_PASSAGE = 1, // Door can open if encounter is done
+ DOOR_TYPE_SPAWN_HOLE = 2, // Door can open if encounter is in progress, typically used for spawning places
MAX_DOOR_TYPES,
};