aboutsummaryrefslogtreecommitdiff
path: root/src/game/InstanceData.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-05-17 16:37:03 -0500
committermegamage <none@none>2009-05-17 16:37:03 -0500
commitc75e3d526b6f75911214df10eaeba49d57c51216 (patch)
tree67a25ba187f8b2a621cf36917ab0cd6f627c5784 /src/game/InstanceData.cpp
parent424391d7c4175b7baec814e00559a393d7ff1ba1 (diff)
*Update Naxx script. Let boss evade if they are pulled out of room.
--HG-- branch : trunk
Diffstat (limited to 'src/game/InstanceData.cpp')
-rw-r--r--src/game/InstanceData.cpp26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/game/InstanceData.cpp b/src/game/InstanceData.cpp
index 1eff6ba3efe..fcc708e274c 100644
--- a/src/game/InstanceData.cpp
+++ b/src/game/InstanceData.cpp
@@ -76,7 +76,7 @@ void InstanceData::LoadDoorData(const DoorData *data)
while(data->entry)
{
if(data->bossId < bosses.size())
- doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->type)));
+ doors.insert(std::make_pair(data->entry, DoorInfo(&bosses[data->bossId], data->type, BoundaryType(data->boundary))));
++data;
}
@@ -143,7 +143,31 @@ void InstanceData::AddDoor(GameObject *door, bool add)
for(DoorInfoMap::iterator itr = lower; itr != upper; ++itr)
{
if(add)
+ {
itr->second.bossInfo->door[itr->second.type].insert(door);
+ switch(itr->second.boundary)
+ {
+ default:
+ case BOUNDARY_NONE:
+ break;
+ case BOUNDARY_N:
+ case BOUNDARY_S:
+ itr->second.bossInfo->boundary[itr->second.boundary] = door->GetPositionX();
+ break;
+ case BOUNDARY_E:
+ case BOUNDARY_W:
+ itr->second.bossInfo->boundary[itr->second.boundary] = door->GetPositionY();
+ break;
+ case BOUNDARY_NW:
+ case BOUNDARY_SE:
+ itr->second.bossInfo->boundary[itr->second.boundary] = door->GetPositionX() + door->GetPositionY();
+ break;
+ case BOUNDARY_NE:
+ case BOUNDARY_SW:
+ itr->second.bossInfo->boundary[itr->second.boundary] = door->GetPositionX() - door->GetPositionY();
+ break;
+ }
+ }
else
itr->second.bossInfo->door[itr->second.type].erase(door);
}