root/trunk/src/game/BattleGroundEY.h @ 102

Revision 102, 16.9 kB (checked in by yumileroy, 17 years ago)

[svn] Fixed copyright notices to comply with GPL.

Original author: w12x
Date: 2008-10-23 03:29:52-05:00

Line 
1/*
2 * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
3 *
4 * Copyright (C) 2008 Trinity <http://www.trinitycore.org/>
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
20
21#ifndef __BATTLEGROUNDEY_H
22#define __BATTLEGROUNDEY_H
23
24#include "Language.h"
25
26class BattleGround;
27
28#define EY_MAX_TEAM_SCORE         2000
29#define BG_EY_FLAG_RESPAWN_TIME   10000                     //10 seconds
30#define BG_EY_FPOINTS_TICK_TIME   2000                      //2 seconds
31
32enum BG_EY_WorldStates
33{
34    EY_ALLIANCE_RESOURCES           = 2749,
35    EY_HORDE_RESOURCES              = 2750,
36    EY_ALLIANCE_BASE                = 2752,
37    EY_HORDE_BASE                   = 2753,
38    DRAENEI_RUINS_HORDE_CONTROL     = 2733,
39    DRAENEI_RUINS_ALLIANCE_CONTROL  = 2732,
40    DRAENEI_RUINS_UNCONTROL         = 2731,
41    MAGE_TOWER_ALLIANCE_CONTROL     = 2730,
42    MAGE_TOWER_HORDE_CONTROL        = 2729,
43    MAGE_TOWER_UNCONTROL            = 2728,
44    FEL_REAVER_HORDE_CONTROL        = 2727,
45    FEL_REAVER_ALLIANCE_CONTROL     = 2726,
46    FEL_REAVER_UNCONTROL            = 2725,
47    BLOOD_ELF_HORDE_CONTROL         = 2724,
48    BLOOD_ELF_ALLIANCE_CONTROL      = 2723,
49    BLOOD_ELF_UNCONTROL             = 2722,
50    PROGRESS_BAR_PERCENT_GREY       = 2720,                 //100 = empty (only grey), 0 = blue|red (no grey)
51    PROGRESS_BAR_STATUS             = 2719,                 //50 init!, 48 ... hordak bere .. 33 .. 0 = full 100% hordacky , 100 = full alliance
52    PROGRESS_BAR_SHOW               = 2718,                 //1 init, 0 druhy send - bez messagu, 1 = controlled aliance
53    NETHERSTORM_FLAG                = 2757,
54    //set to 2 when flag is picked up, and to 1 if it is dropped
55    NETHERSTORM_FLAG_STATE_ALLIANCE = 2769,
56    NETHERSTORM_FLAG_STATE_HORDE    = 2770
57};
58
59enum BG_EY_ProgressBarConsts
60{
61    BG_EY_POINT_MAX_CAPTURERS_COUNT     = 5,
62    BG_EY_POINT_RADIUS                  = 70,
63    BG_EY_PROGRESS_BAR_DONT_SHOW        = 0,
64    BG_EY_PROGRESS_BAR_SHOW             = 1,
65    BG_EY_PROGRESS_BAR_PERCENT_GREY     = 40,
66    BG_EY_PROGRESS_BAR_STATE_MIDDLE     = 50,
67    BG_EY_PROGRESS_BAR_HORDE_CONTROLLED = 0,
68    BG_EY_PROGRESS_BAR_NEUTRAL_LOW      = 30,
69    BG_EY_PROGRESS_BAR_NEUTRAL_HIGH     = 70,
70    BG_EY_PROGRESS_BAR_ALI_CONTROLLED   = 100
71};
72
73enum BG_EY_Sounds
74{
75    //strange ids, but sure about them
76    BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE   = 8212,
77    BG_EY_SOUND_FLAG_CAPTURED_HORDE       = 8213,
78    BG_EY_SOUND_FLAG_PICKED_UP_HORDE      = 8174,
79    BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE    = 8173,
80    BG_EY_SOUND_FLAG_RESET                = 8192
81};
82
83enum BG_EY_Spells
84{
85    BG_EY_NETHERSTORM_FLAG_SPELL        = 34976,
86    BG_EY_PLAYER_DROPPED_FLAG_SPELL     = 34991
87};
88
89enum EYBattleGroundObjectEntry
90{
91    BG_OBJECT_A_DOOR_EY_ENTRY         = 184719,             //Alliance door
92    BG_OBJECT_H_DOOR_EY_ENTRY         = 184720,             //Horde door
93    BG_OBJECT_FLAG1_EY_ENTRY          = 184493,             //Netherstorm flag (generic)
94    BG_OBJECT_FLAG2_EY_ENTRY          = 184141,             //Netherstorm flag (flagstand)
95    BG_OBJECT_FLAG3_EY_ENTRY          = 184142,             //Netherstorm flag (flagdrop)
96    BG_OBJECT_A_BANNER_EY_ENTRY       = 184381,             //Visual Banner (Alliance)
97    BG_OBJECT_H_BANNER_EY_ENTRY       = 184380,             //Visual Banner (Horde)
98    BG_OBJECT_N_BANNER_EY_ENTRY       = 184382,             //Visual Banner (Neutral)
99    BG_OBJECT_BE_TOWER_CAP_EY_ENTRY   = 184080,             //BE Tower Cap Pt
100    BG_OBJECT_FR_TOWER_CAP_EY_ENTRY   = 184081,             //Fel Reaver Cap Pt
101    BG_OBJECT_HU_TOWER_CAP_EY_ENTRY   = 184082,             //Human Tower Cap Pt
102    BG_OBJECT_DR_TOWER_CAP_EY_ENTRY   = 184083              //Draenei Tower Cap Pt
103};
104
105enum EYBattleGroundPointsTrigger
106{
107    TR_BLOOD_ELF_POINT        = 4476,
108    TR_FEL_REALVER_POINT      = 4514,
109    TR_MAGE_TOWER_POINT       = 4516,
110    TR_DRAENEI_RUINS_POINT    = 4518,
111    TR_BLOOD_ELF_BUFF         = 4568,
112    TR_FEL_REALVER_BUFF       = 4569,
113    TR_MAGE_TOWER_BUFF        = 4570,
114    TR_DRAENEI_RUINS_BUFF     = 4571
115};
116
117enum EYBattleGroundGaveyards
118{
119    EY_GRAVEYARD_MAIN_ALLIANCE     = 1103,
120    EY_GRAVEYARD_MAIN_HORDE        = 1104,
121    EY_GRAVEYARD_FEL_REALVER       = 1105,
122    EY_GRAVEYARD_BLOOD_ELF         = 1106,
123    EY_GRAVEYARD_DRAENEI_RUINS     = 1107,
124    EY_GRAVEYARD_MAGE_TOWER        = 1108
125};
126
127enum EYBattleGroundPoints
128{
129    FEL_REALVER     = 0,
130    BLOOD_ELF       = 1,
131    DRAENEI_RUINS   = 2,
132    MAGE_TOWER      = 3,
133
134    EY_PLAYERS_OUT_OF_POINTS = 4,
135    EY_POINTS_MAX             = 4
136};
137
138enum EYBattleGroundCreaturesTypes
139{
140    EY_SPIRIT_FEL_REALVER      = 0,
141    EY_SPIRIT_BLOOD_ELF        = 1,
142    EY_SPIRIT_DRAENEI_RUINS    = 2,
143    EY_SPIRIT_MAGE_TOWER       = 3,
144    EY_SPIRIT_MAIN_ALLIANCE    = 4,
145    EY_SPIRIT_MAIN_HORDE       = 5,
146
147    BG_EY_CREATURES_MAX        = 6
148};
149
150enum EYBattleGroundObjectTypes
151{
152    BG_EY_OBJECT_DOOR_A                         = 0,
153    BG_EY_OBJECT_DOOR_H                         = 1,
154    BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER    = 2,
155    BG_EY_OBJECT_A_BANNER_FEL_REALVER_LEFT      = 3,
156    BG_EY_OBJECT_A_BANNER_FEL_REALVER_RIGHT     = 4,
157    BG_EY_OBJECT_A_BANNER_BLOOD_ELF_CENTER      = 5,
158    BG_EY_OBJECT_A_BANNER_BLOOD_ELF_LEFT        = 6,
159    BG_EY_OBJECT_A_BANNER_BLOOD_ELF_RIGHT       = 7,
160    BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_CENTER  = 8,
161    BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_LEFT    = 9,
162    BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_RIGHT   = 10,
163    BG_EY_OBJECT_A_BANNER_MAGE_TOWER_CENTER     = 11,
164    BG_EY_OBJECT_A_BANNER_MAGE_TOWER_LEFT       = 12,
165    BG_EY_OBJECT_A_BANNER_MAGE_TOWER_RIGHT      = 13,
166    BG_EY_OBJECT_H_BANNER_FEL_REALVER_CENTER    = 14,
167    BG_EY_OBJECT_H_BANNER_FEL_REALVER_LEFT      = 15,
168    BG_EY_OBJECT_H_BANNER_FEL_REALVER_RIGHT     = 16,
169    BG_EY_OBJECT_H_BANNER_BLOOD_ELF_CENTER      = 17,
170    BG_EY_OBJECT_H_BANNER_BLOOD_ELF_LEFT        = 18,
171    BG_EY_OBJECT_H_BANNER_BLOOD_ELF_RIGHT       = 19,
172    BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_CENTER  = 20,
173    BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_LEFT    = 21,
174    BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_RIGHT   = 22,
175    BG_EY_OBJECT_H_BANNER_MAGE_TOWER_CENTER     = 23,
176    BG_EY_OBJECT_H_BANNER_MAGE_TOWER_LEFT       = 24,
177    BG_EY_OBJECT_H_BANNER_MAGE_TOWER_RIGHT      = 25,
178    BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER    = 26,
179    BG_EY_OBJECT_N_BANNER_FEL_REALVER_LEFT      = 27,
180    BG_EY_OBJECT_N_BANNER_FEL_REALVER_RIGHT     = 28,
181    BG_EY_OBJECT_N_BANNER_BLOOD_ELF_CENTER      = 29,
182    BG_EY_OBJECT_N_BANNER_BLOOD_ELF_LEFT        = 30,
183    BG_EY_OBJECT_N_BANNER_BLOOD_ELF_RIGHT       = 31,
184    BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_CENTER  = 32,
185    BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_LEFT    = 33,
186    BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_RIGHT   = 34,
187    BG_EY_OBJECT_N_BANNER_MAGE_TOWER_CENTER     = 35,
188    BG_EY_OBJECT_N_BANNER_MAGE_TOWER_LEFT       = 36,
189    BG_EY_OBJECT_N_BANNER_MAGE_TOWER_RIGHT      = 37,
190    BG_EY_OBJECT_TOWER_CAP_FEL_REALVER          = 38,
191    BG_EY_OBJECT_TOWER_CAP_BLOOD_ELF            = 39,
192    BG_EY_OBJECT_TOWER_CAP_DRAENEI_RUINS        = 40,
193    BG_EY_OBJECT_TOWER_CAP_MAGE_TOWER           = 41,
194    BG_EY_OBJECT_FLAG_NETHERSTORM               = 42,
195    BG_EY_OBJECT_FLAG_FEL_REALVER               = 43,
196    BG_EY_OBJECT_FLAG_BLOOD_ELF                 = 44,
197    BG_EY_OBJECT_FLAG_DRAENEI_RUINS             = 45,
198    BG_EY_OBJECT_FLAG_MAGE_TOWER                = 46,
199    //buffs
200    BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER          = 47,
201    BG_EY_OBJECT_REGENBUFF_FEL_REALVER          = 48,
202    BG_EY_OBJECT_BERSERKBUFF_FEL_REALVER        = 49,
203    BG_EY_OBJECT_SPEEDBUFF_BLOOD_ELF            = 50,
204    BG_EY_OBJECT_REGENBUFF_BLOOD_ELF            = 51,
205    BG_EY_OBJECT_BERSERKBUFF_BLOOD_ELF          = 52,
206    BG_EY_OBJECT_SPEEDBUFF_DRAENEI_RUINS        = 53,
207    BG_EY_OBJECT_REGENBUFF_DRAENEI_RUINS        = 54,
208    BG_EY_OBJECT_BERSERKBUFF_DRAENEI_RUINS      = 55,
209    BG_EY_OBJECT_SPEEDBUFF_MAGE_TOWER           = 56,
210    BG_EY_OBJECT_REGENBUFF_MAGE_TOWER           = 57,
211    BG_EY_OBJECT_BERSERKBUFF_MAGE_TOWER         = 58,
212    BG_EY_OBJECT_MAX                            = 59
213};
214
215enum BG_EY_FlagState
216{
217    BG_EY_FLAG_STATE_ON_BASE      = 0,
218    BG_EY_FLAG_STATE_WAIT_RESPAWN = 1,
219    BG_EY_FLAG_STATE_ON_PLAYER    = 2,
220    BG_EY_FLAG_STATE_ON_GROUND    = 3
221};
222
223enum EYBattleGroundPointState
224{
225    EY_POINT_NO_OWNER           = 0,
226    EY_POINT_STATE_UNCONTROLLED = 0,
227    EY_POINT_UNDER_CONTROL      = 3
228};
229
230struct BattleGroundEYPointIconsStruct
231{
232    BattleGroundEYPointIconsStruct(uint32 _WorldStateControlIndex, uint32 _WorldStateAllianceControlledIndex, uint32 _WorldStateHordeControlledIndex)
233        : WorldStateControlIndex(_WorldStateControlIndex), WorldStateAllianceControlledIndex(_WorldStateAllianceControlledIndex), WorldStateHordeControlledIndex(_WorldStateHordeControlledIndex) {}
234    uint32 WorldStateControlIndex;
235    uint32 WorldStateAllianceControlledIndex;
236    uint32 WorldStateHordeControlledIndex;
237};
238
239struct BattleGroundEYLoosingPointStruct
240{
241    BattleGroundEYLoosingPointStruct(uint32 _SpawnNeutralObjectType, uint32 _DespawnObjectTypeAlliance, uint32 _MessageIdAlliance, uint32 _DespawnObjectTypeHorde, uint32 _MessageIdHorde)
242        : SpawnNeutralObjectType(_SpawnNeutralObjectType), DespawnObjectTypeAlliance(_DespawnObjectTypeAlliance), MessageIdAlliance(_MessageIdAlliance), DespawnObjectTypeHorde(_DespawnObjectTypeHorde), MessageIdHorde(_MessageIdHorde) {}
243    uint32 SpawnNeutralObjectType;
244    uint32 DespawnObjectTypeAlliance;
245    uint32 DespawnObjectTypeHorde;
246    uint32 MessageIdHorde;
247    uint32 MessageIdAlliance;
248};
249
250struct BattleGroundEYCapturingPointStruct
251{
252    BattleGroundEYCapturingPointStruct(uint32 _DespawnNeutralObjectType, uint32 _SpawnObjectTypeAlliance, uint32 _MessageIdAlliance, uint32 _SpawnObjectTypeHorde, uint32 _MessageIdHorde, uint32 _GraveYardId)
253        : DespawnNeutralObjectType(_DespawnNeutralObjectType), SpawnObjectTypeAlliance(_SpawnObjectTypeAlliance), MessageIdAlliance(_MessageIdAlliance), SpawnObjectTypeHorde(_SpawnObjectTypeHorde), MessageIdHorde(_MessageIdHorde), GraveYardId(_GraveYardId) {}
254    uint32 DespawnNeutralObjectType;
255    uint32 SpawnObjectTypeAlliance;
256    uint32 SpawnObjectTypeHorde;
257    uint32 MessageIdHorde;
258    uint32 MessageIdAlliance;
259    uint32 GraveYardId;
260};
261
262const uint8  BG_EY_TickPoints[EY_POINTS_MAX] = {1, 2, 5, 10};
263const uint32 BG_EY_FlagPoints[EY_POINTS_MAX] = {75, 85, 100, 500};
264
265//constant arrays:
266const BattleGroundEYPointIconsStruct m_PointsIconStruct[EY_POINTS_MAX] =
267{
268    BattleGroundEYPointIconsStruct(FEL_REAVER_UNCONTROL, FEL_REAVER_ALLIANCE_CONTROL, FEL_REAVER_HORDE_CONTROL),
269    BattleGroundEYPointIconsStruct(BLOOD_ELF_UNCONTROL, BLOOD_ELF_ALLIANCE_CONTROL, BLOOD_ELF_HORDE_CONTROL),
270    BattleGroundEYPointIconsStruct(DRAENEI_RUINS_UNCONTROL, DRAENEI_RUINS_ALLIANCE_CONTROL, DRAENEI_RUINS_HORDE_CONTROL),
271    BattleGroundEYPointIconsStruct(MAGE_TOWER_UNCONTROL, MAGE_TOWER_ALLIANCE_CONTROL, MAGE_TOWER_HORDE_CONTROL)
272};
273const BattleGroundEYLoosingPointStruct m_LoosingPointTypes[EY_POINTS_MAX] =
274{
275    BattleGroundEYLoosingPointStruct(BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER, BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER, LANG_BG_EY_HAS_LOST_A_F_RUINS, BG_EY_OBJECT_H_BANNER_FEL_REALVER_CENTER, LANG_BG_EY_HAS_LOST_H_F_RUINS),
276    BattleGroundEYLoosingPointStruct(BG_EY_OBJECT_N_BANNER_BLOOD_ELF_CENTER, BG_EY_OBJECT_A_BANNER_BLOOD_ELF_CENTER, LANG_BG_EY_HAS_LOST_A_B_TOWER, BG_EY_OBJECT_H_BANNER_BLOOD_ELF_CENTER, LANG_BG_EY_HAS_LOST_H_B_TOWER),
277    BattleGroundEYLoosingPointStruct(BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_CENTER, BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_CENTER, LANG_BG_EY_HAS_LOST_A_D_RUINS, BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_CENTER, LANG_BG_EY_HAS_LOST_H_D_RUINS),
278    BattleGroundEYLoosingPointStruct(BG_EY_OBJECT_N_BANNER_MAGE_TOWER_CENTER, BG_EY_OBJECT_A_BANNER_MAGE_TOWER_CENTER, LANG_BG_EY_HAS_LOST_A_M_TOWER, BG_EY_OBJECT_H_BANNER_MAGE_TOWER_CENTER, LANG_BG_EY_HAS_LOST_H_M_TOWER)
279};
280const BattleGroundEYCapturingPointStruct m_CapturingPointTypes[EY_POINTS_MAX] =
281{
282    BattleGroundEYCapturingPointStruct(BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER, BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER, LANG_BG_EY_HAS_TAKEN_A_F_RUINS, BG_EY_OBJECT_H_BANNER_FEL_REALVER_CENTER, LANG_BG_EY_HAS_TAKEN_H_F_RUINS, EY_GRAVEYARD_FEL_REALVER),
283    BattleGroundEYCapturingPointStruct(BG_EY_OBJECT_N_BANNER_BLOOD_ELF_CENTER, BG_EY_OBJECT_A_BANNER_BLOOD_ELF_CENTER, LANG_BG_EY_HAS_TAKEN_A_B_TOWER, BG_EY_OBJECT_H_BANNER_BLOOD_ELF_CENTER, LANG_BG_EY_HAS_TAKEN_H_B_TOWER, EY_GRAVEYARD_BLOOD_ELF),
284    BattleGroundEYCapturingPointStruct(BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_CENTER, BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_CENTER, LANG_BG_EY_HAS_TAKEN_A_D_RUINS, BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_CENTER, LANG_BG_EY_HAS_TAKEN_H_D_RUINS, EY_GRAVEYARD_DRAENEI_RUINS),
285    BattleGroundEYCapturingPointStruct(BG_EY_OBJECT_N_BANNER_MAGE_TOWER_CENTER, BG_EY_OBJECT_A_BANNER_MAGE_TOWER_CENTER, LANG_BG_EY_HAS_TAKEN_A_M_TOWER, BG_EY_OBJECT_H_BANNER_MAGE_TOWER_CENTER, LANG_BG_EY_HAS_TAKEN_H_M_TOWER, EY_GRAVEYARD_MAGE_TOWER)
286};
287
288class BattleGroundEYScore : public BattleGroundScore
289{
290    public:
291        BattleGroundEYScore () : FlagCaptures(0) {};
292        virtual ~BattleGroundEYScore() {};
293        uint32 FlagCaptures;
294};
295
296class BattleGroundEY : public BattleGround
297{
298    friend class BattleGroundMgr;
299
300    public:
301        BattleGroundEY();
302        ~BattleGroundEY();
303        void Update(time_t diff);
304
305        /* inherited from BattlegroundClass */
306        virtual void AddPlayer(Player *plr);
307
308        /* BG Flags */
309        uint64 GetFlagPickerGUID() const    { return m_FlagKeeper; }
310        void SetFlagPicker(uint64 guid)     { m_FlagKeeper = guid; }
311        bool IsFlagPickedup() const         { return m_FlagKeeper != 0; }
312        uint8 GetFlagState() const          { return m_FlagState; }
313        void RespawnFlag(bool send_message);
314        void RespawnFlagAfterDrop();
315
316        void RemovePlayer(Player *plr,uint64 guid);
317        void HandleBuffUse(uint64 const& buff_guid);
318        void HandleAreaTrigger(Player *Source, uint32 Trigger);
319        void HandleKillPlayer(Player *player, Player *killer);
320        virtual WorldSafeLocsEntry const* GetClosestGraveYard(float x, float y, float z, uint32 team);
321        virtual bool SetupBattleGround();
322        virtual void ResetBGSubclass();
323        void UpdateTeamScore(uint32 Team);
324        void UpdatePlayerScore(Player *Source, uint32 type, uint32 value);
325        virtual void FillInitialWorldStates(WorldPacket& data);
326        void SetDroppedFlagGUID(uint64 guid)       { m_DroppedFlagGUID = guid;}
327        uint64 GetDroppedFlagGUID() const          { return m_DroppedFlagGUID;}
328
329        /* Battleground Events */
330        virtual void EventPlayerClickedOnFlag(Player *Source, GameObject* target_obj);
331        virtual void EventPlayerDroppedFlag(Player *Source);
332
333    private:
334        void EventPlayerCapturedFlag(Player *Source, uint32 BgObjectType);
335        void EventTeamCapturedPoint(Player *Source, uint32 Point);
336        void EventTeamLostPoint(Player *Source, uint32 Point);
337        void UpdatePointsCount(uint32 Team);
338        void UpdatePointsIcons(uint32 Team, uint32 Point);
339
340        /* Point status updating procedures */
341        void CheckSomeoneLeftPoint();
342        void CheckSomeoneJoinedPoint();
343        void UpdatePointStatuses();
344
345        /* Scorekeeping */
346        uint32 GetTeamScore(uint32 Team) const { return m_TeamScores[GetTeamIndexByTeamId(Team)]; }
347        void AddPoints(uint32 Team, uint32 Points);
348
349        void RemovePoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; }
350        void SetTeamPoint(uint32 TeamID, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] = Points; }
351
352        uint32 m_TeamScores[2];
353        uint32 m_HonorScoreTics[2];
354        uint32 m_TeamPointsCount[2];
355
356        uint32 m_Points_Trigger[EY_POINTS_MAX];
357
358        uint64 m_FlagKeeper;                                // keepers guid
359        uint64 m_DroppedFlagGUID;
360        uint32 m_FlagCapturedBgObjectType;                  // type that should be despawned when flag is captured
361        uint8 m_FlagState;                                  // for checking flag state
362        int32 m_FlagsTimer;
363        int32 m_TowerCapCheckTimer;
364
365        uint32 m_PointOwnedByTeam[EY_POINTS_MAX];
366        uint8 m_PointState[EY_POINTS_MAX];
367        int32 m_PointBarStatus[EY_POINTS_MAX];
368        typedef std::vector<uint64> PlayersNearPointType;
369        PlayersNearPointType m_PlayersNearPoint[EY_POINTS_MAX + 1];
370        uint8 m_CurrentPointPlayersCount[2*EY_POINTS_MAX];
371
372        int32 m_PointAddingTimer;
373};
374#endif
Note: See TracBrowser for help on using the browser.