aboutsummaryrefslogtreecommitdiff
path: root/src/game/InstanceData.h
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.h
parent424391d7c4175b7baec814e00559a393d7ff1ba1 (diff)
*Update Naxx script. Let boss evade if they are pulled out of room.
--HG-- branch : trunk
Diffstat (limited to 'src/game/InstanceData.h')
-rw-r--r--src/game/InstanceData.h27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/game/InstanceData.h b/src/game/InstanceData.h
index 9f7d4521fd1..43042a7f914 100644
--- a/src/game/InstanceData.h
+++ b/src/game/InstanceData.h
@@ -51,10 +51,30 @@ enum DoorType
MAX_DOOR_TYPES,
};
+enum BoundaryType
+{
+ BOUNDARY_NONE = 0,
+ BOUNDARY_N,
+ BOUNDARY_S,
+ BOUNDARY_E,
+ BOUNDARY_W,
+ BOUNDARY_NE,
+ BOUNDARY_NW,
+ BOUNDARY_SE,
+ BOUNDARY_SW,
+ BOUNDARY_MAX_X = BOUNDARY_N,
+ BOUNDARY_MIN_X = BOUNDARY_S,
+ BOUNDARY_MAX_Y = BOUNDARY_W,
+ BOUNDARY_MIN_Y = BOUNDARY_E,
+};
+
+typedef std::map<BoundaryType, float> BossBoundaryMap;
+
struct DoorData
{
uint32 entry, bossId;
DoorType type;
+ uint32 boundary;
};
struct MinionData
@@ -68,14 +88,16 @@ struct BossInfo
EncounterState state;
DoorSet door[MAX_DOOR_TYPES];
MinionSet minion;
+ BossBoundaryMap boundary;
};
struct DoorInfo
{
- explicit DoorInfo(BossInfo *_bossInfo, DoorType _type)
- : bossInfo(_bossInfo), type(_type) {}
+ explicit DoorInfo(BossInfo *_bossInfo, DoorType _type, BoundaryType _boundary)
+ : bossInfo(_bossInfo), type(_type), boundary(_boundary) {}
BossInfo *bossInfo;
DoorType type;
+ BoundaryType boundary;
};
struct MinionInfo
@@ -137,6 +159,7 @@ class TRINITY_DLL_SPEC InstanceData
void HandleGameObject(uint64 GUID, bool open, GameObject *go = NULL);
virtual void SetBossState(uint32 id, EncounterState state);
+ const BossBoundaryMap * GetBossBoundary(uint32 id) const { return id < bosses.size() ? &bosses[id].boundary : NULL; }
protected:
void SetBossNumber(uint32 number) { bosses.resize(number); }
void LoadDoorData(const DoorData *data);