Core/Scripts: Implemented DOOR_TYPE_SPAWN_HOLE to use in instance script DoorData, marking doors that are only open if encounter is in progress, typically used with spawning points

This commit is contained in:
Shauren
2011-05-16 13:24:08 +02:00
parent 753718a7b0
commit 9650ba678b
2 changed files with 14 additions and 16 deletions

View File

@@ -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)