aboutsummaryrefslogtreecommitdiff
path: root/src/game/BattleGroundEY.h
diff options
context:
space:
mode:
authorNeo2003 <none@none>2008-10-02 16:23:55 -0500
committerNeo2003 <none@none>2008-10-02 16:23:55 -0500
commit9b1c0e006f20091f28f3f468cfcab1feb51286bd (patch)
treeb5d1ba94a656e6679f8737f9ea6bed1239b73b14 /src/game/BattleGroundEY.h
[svn] * Proper SVN structureinit
--HG-- branch : trunk
Diffstat (limited to 'src/game/BattleGroundEY.h')
-rw-r--r--src/game/BattleGroundEY.h372
1 files changed, 372 insertions, 0 deletions
diff --git a/src/game/BattleGroundEY.h b/src/game/BattleGroundEY.h
new file mode 100644
index 00000000000..661f107682d
--- /dev/null
+++ b/src/game/BattleGroundEY.h
@@ -0,0 +1,372 @@
+/*
+ * Copyright (C) 2005-2008 MaNGOS <http://www.mangosproject.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#ifndef __BATTLEGROUNDEY_H
+#define __BATTLEGROUNDEY_H
+
+#include "Language.h"
+
+class BattleGround;
+
+#define EY_MAX_TEAM_SCORE 2000
+#define BG_EY_FLAG_RESPAWN_TIME 10000 //10 seconds
+#define BG_EY_FPOINTS_TICK_TIME 2000 //2 seconds
+
+enum BG_EY_WorldStates
+{
+ EY_ALLIANCE_RESOURCES = 2749,
+ EY_HORDE_RESOURCES = 2750,
+ EY_ALLIANCE_BASE = 2752,
+ EY_HORDE_BASE = 2753,
+ DRAENEI_RUINS_HORDE_CONTROL = 2733,
+ DRAENEI_RUINS_ALLIANCE_CONTROL = 2732,
+ DRAENEI_RUINS_UNCONTROL = 2731,
+ MAGE_TOWER_ALLIANCE_CONTROL = 2730,
+ MAGE_TOWER_HORDE_CONTROL = 2729,
+ MAGE_TOWER_UNCONTROL = 2728,
+ FEL_REAVER_HORDE_CONTROL = 2727,
+ FEL_REAVER_ALLIANCE_CONTROL = 2726,
+ FEL_REAVER_UNCONTROL = 2725,
+ BLOOD_ELF_HORDE_CONTROL = 2724,
+ BLOOD_ELF_ALLIANCE_CONTROL = 2723,
+ BLOOD_ELF_UNCONTROL = 2722,
+ PROGRESS_BAR_PERCENT_GREY = 2720, //100 = empty (only grey), 0 = blue|red (no grey)
+ PROGRESS_BAR_STATUS = 2719, //50 init!, 48 ... hordak bere .. 33 .. 0 = full 100% hordacky , 100 = full alliance
+ PROGRESS_BAR_SHOW = 2718, //1 init, 0 druhy send - bez messagu, 1 = controlled aliance
+ NETHERSTORM_FLAG = 2757,
+ //set to 2 when flag is picked up, and to 1 if it is dropped
+ NETHERSTORM_FLAG_STATE_ALLIANCE = 2769,
+ NETHERSTORM_FLAG_STATE_HORDE = 2770
+};
+
+enum BG_EY_ProgressBarConsts
+{
+ BG_EY_POINT_MAX_CAPTURERS_COUNT = 5,
+ BG_EY_POINT_RADIUS = 70,
+ BG_EY_PROGRESS_BAR_DONT_SHOW = 0,
+ BG_EY_PROGRESS_BAR_SHOW = 1,
+ BG_EY_PROGRESS_BAR_PERCENT_GREY = 40,
+ BG_EY_PROGRESS_BAR_STATE_MIDDLE = 50,
+ BG_EY_PROGRESS_BAR_HORDE_CONTROLLED = 0,
+ BG_EY_PROGRESS_BAR_NEUTRAL_LOW = 30,
+ BG_EY_PROGRESS_BAR_NEUTRAL_HIGH = 70,
+ BG_EY_PROGRESS_BAR_ALI_CONTROLLED = 100
+};
+
+enum BG_EY_Sounds
+{
+ //strange ids, but sure about them
+ BG_EY_SOUND_FLAG_PICKED_UP_ALLIANCE = 8212,
+ BG_EY_SOUND_FLAG_CAPTURED_HORDE = 8213,
+ BG_EY_SOUND_FLAG_PICKED_UP_HORDE = 8174,
+ BG_EY_SOUND_FLAG_CAPTURED_ALLIANCE = 8173,
+ BG_EY_SOUND_FLAG_RESET = 8192
+};
+
+enum BG_EY_Spells
+{
+ BG_EY_NETHERSTORM_FLAG_SPELL = 34976,
+ BG_EY_PLAYER_DROPPED_FLAG_SPELL = 34991
+};
+
+enum EYBattleGroundObjectEntry
+{
+ BG_OBJECT_A_DOOR_EY_ENTRY = 184719, //Alliance door
+ BG_OBJECT_H_DOOR_EY_ENTRY = 184720, //Horde door
+ BG_OBJECT_FLAG1_EY_ENTRY = 184493, //Netherstorm flag (generic)
+ BG_OBJECT_FLAG2_EY_ENTRY = 184141, //Netherstorm flag (flagstand)
+ BG_OBJECT_FLAG3_EY_ENTRY = 184142, //Netherstorm flag (flagdrop)
+ BG_OBJECT_A_BANNER_EY_ENTRY = 184381, //Visual Banner (Alliance)
+ BG_OBJECT_H_BANNER_EY_ENTRY = 184380, //Visual Banner (Horde)
+ BG_OBJECT_N_BANNER_EY_ENTRY = 184382, //Visual Banner (Neutral)
+ BG_OBJECT_BE_TOWER_CAP_EY_ENTRY = 184080, //BE Tower Cap Pt
+ BG_OBJECT_FR_TOWER_CAP_EY_ENTRY = 184081, //Fel Reaver Cap Pt
+ BG_OBJECT_HU_TOWER_CAP_EY_ENTRY = 184082, //Human Tower Cap Pt
+ BG_OBJECT_DR_TOWER_CAP_EY_ENTRY = 184083 //Draenei Tower Cap Pt
+};
+
+enum EYBattleGroundPointsTrigger
+{
+ TR_BLOOD_ELF_POINT = 4476,
+ TR_FEL_REALVER_POINT = 4514,
+ TR_MAGE_TOWER_POINT = 4516,
+ TR_DRAENEI_RUINS_POINT = 4518,
+ TR_BLOOD_ELF_BUFF = 4568,
+ TR_FEL_REALVER_BUFF = 4569,
+ TR_MAGE_TOWER_BUFF = 4570,
+ TR_DRAENEI_RUINS_BUFF = 4571
+};
+
+enum EYBattleGroundGaveyards
+{
+ EY_GRAVEYARD_MAIN_ALLIANCE = 1103,
+ EY_GRAVEYARD_MAIN_HORDE = 1104,
+ EY_GRAVEYARD_FEL_REALVER = 1105,
+ EY_GRAVEYARD_BLOOD_ELF = 1106,
+ EY_GRAVEYARD_DRAENEI_RUINS = 1107,
+ EY_GRAVEYARD_MAGE_TOWER = 1108
+};
+
+enum EYBattleGroundPoints
+{
+ FEL_REALVER = 0,
+ BLOOD_ELF = 1,
+ DRAENEI_RUINS = 2,
+ MAGE_TOWER = 3,
+
+ EY_PLAYERS_OUT_OF_POINTS = 4,
+ EY_POINTS_MAX = 4
+};
+
+enum EYBattleGroundCreaturesTypes
+{
+ EY_SPIRIT_FEL_REALVER = 0,
+ EY_SPIRIT_BLOOD_ELF = 1,
+ EY_SPIRIT_DRAENEI_RUINS = 2,
+ EY_SPIRIT_MAGE_TOWER = 3,
+ EY_SPIRIT_MAIN_ALLIANCE = 4,
+ EY_SPIRIT_MAIN_HORDE = 5,
+
+ BG_EY_CREATURES_MAX = 6
+};
+
+enum EYBattleGroundObjectTypes
+{
+ BG_EY_OBJECT_DOOR_A = 0,
+ BG_EY_OBJECT_DOOR_H = 1,
+ BG_EY_OBJECT_A_BANNER_FEL_REALVER_CENTER = 2,
+ BG_EY_OBJECT_A_BANNER_FEL_REALVER_LEFT = 3,
+ BG_EY_OBJECT_A_BANNER_FEL_REALVER_RIGHT = 4,
+ BG_EY_OBJECT_A_BANNER_BLOOD_ELF_CENTER = 5,
+ BG_EY_OBJECT_A_BANNER_BLOOD_ELF_LEFT = 6,
+ BG_EY_OBJECT_A_BANNER_BLOOD_ELF_RIGHT = 7,
+ BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_CENTER = 8,
+ BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_LEFT = 9,
+ BG_EY_OBJECT_A_BANNER_DRAENEI_RUINS_RIGHT = 10,
+ BG_EY_OBJECT_A_BANNER_MAGE_TOWER_CENTER = 11,
+ BG_EY_OBJECT_A_BANNER_MAGE_TOWER_LEFT = 12,
+ BG_EY_OBJECT_A_BANNER_MAGE_TOWER_RIGHT = 13,
+ BG_EY_OBJECT_H_BANNER_FEL_REALVER_CENTER = 14,
+ BG_EY_OBJECT_H_BANNER_FEL_REALVER_LEFT = 15,
+ BG_EY_OBJECT_H_BANNER_FEL_REALVER_RIGHT = 16,
+ BG_EY_OBJECT_H_BANNER_BLOOD_ELF_CENTER = 17,
+ BG_EY_OBJECT_H_BANNER_BLOOD_ELF_LEFT = 18,
+ BG_EY_OBJECT_H_BANNER_BLOOD_ELF_RIGHT = 19,
+ BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_CENTER = 20,
+ BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_LEFT = 21,
+ BG_EY_OBJECT_H_BANNER_DRAENEI_RUINS_RIGHT = 22,
+ BG_EY_OBJECT_H_BANNER_MAGE_TOWER_CENTER = 23,
+ BG_EY_OBJECT_H_BANNER_MAGE_TOWER_LEFT = 24,
+ BG_EY_OBJECT_H_BANNER_MAGE_TOWER_RIGHT = 25,
+ BG_EY_OBJECT_N_BANNER_FEL_REALVER_CENTER = 26,
+ BG_EY_OBJECT_N_BANNER_FEL_REALVER_LEFT = 27,
+ BG_EY_OBJECT_N_BANNER_FEL_REALVER_RIGHT = 28,
+ BG_EY_OBJECT_N_BANNER_BLOOD_ELF_CENTER = 29,
+ BG_EY_OBJECT_N_BANNER_BLOOD_ELF_LEFT = 30,
+ BG_EY_OBJECT_N_BANNER_BLOOD_ELF_RIGHT = 31,
+ BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_CENTER = 32,
+ BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_LEFT = 33,
+ BG_EY_OBJECT_N_BANNER_DRAENEI_RUINS_RIGHT = 34,
+ BG_EY_OBJECT_N_BANNER_MAGE_TOWER_CENTER = 35,
+ BG_EY_OBJECT_N_BANNER_MAGE_TOWER_LEFT = 36,
+ BG_EY_OBJECT_N_BANNER_MAGE_TOWER_RIGHT = 37,
+ BG_EY_OBJECT_TOWER_CAP_FEL_REALVER = 38,
+ BG_EY_OBJECT_TOWER_CAP_BLOOD_ELF = 39,
+ BG_EY_OBJECT_TOWER_CAP_DRAENEI_RUINS = 40,
+ BG_EY_OBJECT_TOWER_CAP_MAGE_TOWER = 41,
+ BG_EY_OBJECT_FLAG_NETHERSTORM = 42,
+ BG_EY_OBJECT_FLAG_FEL_REALVER = 43,
+ BG_EY_OBJECT_FLAG_BLOOD_ELF = 44,
+ BG_EY_OBJECT_FLAG_DRAENEI_RUINS = 45,
+ BG_EY_OBJECT_FLAG_MAGE_TOWER = 46,
+ //buffs
+ BG_EY_OBJECT_SPEEDBUFF_FEL_REALVER = 47,
+ BG_EY_OBJECT_REGENBUFF_FEL_REALVER = 48,
+ BG_EY_OBJECT_BERSERKBUFF_FEL_REALVER = 49,
+ BG_EY_OBJECT_SPEEDBUFF_BLOOD_ELF = 50,
+ BG_EY_OBJECT_REGENBUFF_BLOOD_ELF = 51,
+ BG_EY_OBJECT_BERSERKBUFF_BLOOD_ELF = 52,
+ BG_EY_OBJECT_SPEEDBUFF_DRAENEI_RUINS = 53,
+ BG_EY_OBJECT_REGENBUFF_DRAENEI_RUINS = 54,
+ BG_EY_OBJECT_BERSERKBUFF_DRAENEI_RUINS = 55,
+ BG_EY_OBJECT_SPEEDBUFF_MAGE_TOWER = 56,
+ BG_EY_OBJECT_REGENBUFF_MAGE_TOWER = 57,
+ BG_EY_OBJECT_BERSERKBUFF_MAGE_TOWER = 58,
+ BG_EY_OBJECT_MAX = 59
+};
+
+enum BG_EY_FlagState
+{
+ BG_EY_FLAG_STATE_ON_BASE = 0,
+ BG_EY_FLAG_STATE_WAIT_RESPAWN = 1,
+ BG_EY_FLAG_STATE_ON_PLAYER = 2,
+ BG_EY_FLAG_STATE_ON_GROUND = 3
+};
+
+enum EYBattleGroundPointState
+{
+ EY_POINT_NO_OWNER = 0,
+ EY_POINT_STATE_UNCONTROLLED = 0,
+ EY_POINT_UNDER_CONTROL = 3
+};
+
+struct BattleGroundEYPointIconsStruct
+{
+ BattleGroundEYPointIconsStruct(uint32 _WorldStateControlIndex, uint32 _WorldStateAllianceControlledIndex, uint32 _WorldStateHordeControlledIndex)
+ : WorldStateControlIndex(_WorldStateControlIndex), WorldStateAllianceControlledIndex(_WorldStateAllianceControlledIndex), WorldStateHordeControlledIndex(_WorldStateHordeControlledIndex) {}
+ uint32 WorldStateControlIndex;
+ uint32 WorldStateAllianceControlledIndex;
+ uint32 WorldStateHordeControlledIndex;
+};
+
+struct BattleGroundEYLoosingPointStruct
+{
+ BattleGroundEYLoosingPointStruct(uint32 _SpawnNeutralObjectType, uint32 _DespawnObjectTypeAlliance, uint32 _MessageIdAlliance, uint32 _DespawnObjectTypeHorde, uint32 _MessageIdHorde)
+ : SpawnNeutralObjectType(_SpawnNeutralObjectType), DespawnObjectTypeAlliance(_DespawnObjectTypeAlliance), MessageIdAlliance(_MessageIdAlliance), DespawnObjectTypeHorde(_DespawnObjectTypeHorde), MessageIdHorde(_MessageIdHorde) {}
+ uint32 SpawnNeutralObjectType;
+ uint32 DespawnObjectTypeAlliance;
+ uint32 DespawnObjectTypeHorde;
+ uint32 MessageIdHorde;
+ uint32 MessageIdAlliance;
+};
+
+struct BattleGroundEYCapturingPointStruct
+{
+ BattleGroundEYCapturingPointStruct(uint32 _DespawnNeutralObjectType, uint32 _SpawnObjectTypeAlliance, uint32 _MessageIdAlliance, uint32 _SpawnObjectTypeHorde, uint32 _MessageIdHorde, uint32 _GraveYardId)
+ : DespawnNeutralObjectType(_DespawnNeutralObjectType), SpawnObjectTypeAlliance(_SpawnObjectTypeAlliance), MessageIdAlliance(_MessageIdAlliance), SpawnObjectTypeHorde(_SpawnObjectTypeHorde), MessageIdHorde(_MessageIdHorde), GraveYardId(_GraveYardId) {}
+ uint32 DespawnNeutralObjectType;
+ uint32 SpawnObjectTypeAlliance;
+ uint32 SpawnObjectTypeHorde;
+ uint32 MessageIdHorde;
+ uint32 MessageIdAlliance;
+ uint32 GraveYardId;
+};
+
+const uint8 BG_EY_TickPoints[EY_POINTS_MAX] = {1, 2, 5, 10};
+const uint32 BG_EY_FlagPoints[EY_POINTS_MAX] = {75, 85, 100, 500};
+
+//constant arrays:
+const BattleGroundEYPointIconsStruct m_PointsIconStruct[EY_POINTS_MAX] =
+{
+ BattleGroundEYPointIconsStruct(FEL_REAVER_UNCONTROL, FEL_REAVER_ALLIANCE_CONTROL, FEL_REAVER_HORDE_CONTROL),
+ BattleGroundEYPointIconsStruct(BLOOD_ELF_UNCONTROL, BLOOD_ELF_ALLIANCE_CONTROL, BLOOD_ELF_HORDE_CONTROL),
+ BattleGroundEYPointIconsStruct(DRAENEI_RUINS_UNCONTROL, DRAENEI_RUINS_ALLIANCE_CONTROL, DRAENEI_RUINS_HORDE_CONTROL),
+ BattleGroundEYPointIconsStruct(MAGE_TOWER_UNCONTROL, MAGE_TOWER_ALLIANCE_CONTROL, MAGE_TOWER_HORDE_CONTROL)
+};
+const BattleGroundEYLoosingPointStruct m_LoosingPointTypes[EY_POINTS_MAX] =
+{
+ 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),
+ 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),
+ 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),
+ 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)
+};
+const BattleGroundEYCapturingPointStruct m_CapturingPointTypes[EY_POINTS_MAX] =
+{
+ 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),
+ 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),
+ 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),
+ 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)
+};
+
+class BattleGroundEYScore : public BattleGroundScore
+{
+ public:
+ BattleGroundEYScore () : FlagCaptures(0) {};
+ virtual ~BattleGroundEYScore() {};
+ uint32 FlagCaptures;
+};
+
+class BattleGroundEY : public BattleGround
+{
+ friend class BattleGroundMgr;
+
+ public:
+ BattleGroundEY();
+ ~BattleGroundEY();
+ void Update(time_t diff);
+
+ /* inherited from BattlegroundClass */
+ virtual void AddPlayer(Player *plr);
+
+ /* BG Flags */
+ uint64 GetFlagPickerGUID() const { return m_FlagKeeper; }
+ void SetFlagPicker(uint64 guid) { m_FlagKeeper = guid; }
+ bool IsFlagPickedup() const { return m_FlagKeeper != 0; }
+ uint8 GetFlagState() const { return m_FlagState; }
+ void RespawnFlag(bool send_message);
+ void RespawnFlagAfterDrop();
+
+ void RemovePlayer(Player *plr,uint64 guid);
+ void HandleBuffUse(uint64 const& buff_guid);
+ void HandleAreaTrigger(Player *Source, uint32 Trigger);
+ void HandleKillPlayer(Player *player, Player *killer);
+ virtual WorldSafeLocsEntry const* GetClosestGraveYard(float x, float y, float z, uint32 team);
+ virtual bool SetupBattleGround();
+ virtual void ResetBGSubclass();
+ void UpdateTeamScore(uint32 Team);
+ void UpdatePlayerScore(Player *Source, uint32 type, uint32 value);
+ virtual void FillInitialWorldStates(WorldPacket& data);
+ void SetDroppedFlagGUID(uint64 guid) { m_DroppedFlagGUID = guid;}
+ uint64 GetDroppedFlagGUID() const { return m_DroppedFlagGUID;}
+
+ /* Battleground Events */
+ virtual void EventPlayerClickedOnFlag(Player *Source, GameObject* target_obj);
+ virtual void EventPlayerDroppedFlag(Player *Source);
+
+ private:
+ void EventPlayerCapturedFlag(Player *Source, uint32 BgObjectType);
+ void EventTeamCapturedPoint(Player *Source, uint32 Point);
+ void EventTeamLostPoint(Player *Source, uint32 Point);
+ void UpdatePointsCount(uint32 Team);
+ void UpdatePointsIcons(uint32 Team, uint32 Point);
+
+ /* Point status updating procedures */
+ void CheckSomeoneLeftPoint();
+ void CheckSomeoneJoinedPoint();
+ void UpdatePointStatuses();
+
+ /* Scorekeeping */
+ uint32 GetTeamScore(uint32 Team) const { return m_TeamScores[GetTeamIndexByTeamId(Team)]; }
+ void AddPoints(uint32 Team, uint32 Points);
+
+ void RemovePoint(uint32 TeamID, uint32 Points = 1) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] -= Points; }
+ void SetTeamPoint(uint32 TeamID, uint32 Points = 0) { m_TeamScores[GetTeamIndexByTeamId(TeamID)] = Points; }
+
+ uint32 m_TeamScores[2];
+ uint32 m_HonorScoreTics[2];
+ uint32 m_TeamPointsCount[2];
+
+ uint32 m_Points_Trigger[EY_POINTS_MAX];
+
+ uint64 m_FlagKeeper; // keepers guid
+ uint64 m_DroppedFlagGUID;
+ uint32 m_FlagCapturedBgObjectType; // type that should be despawned when flag is captured
+ uint8 m_FlagState; // for checking flag state
+ int32 m_FlagsTimer;
+ int32 m_TowerCapCheckTimer;
+
+ uint32 m_PointOwnedByTeam[EY_POINTS_MAX];
+ uint8 m_PointState[EY_POINTS_MAX];
+ int32 m_PointBarStatus[EY_POINTS_MAX];
+ typedef std::vector<uint64> PlayersNearPointType;
+ PlayersNearPointType m_PlayersNearPoint[EY_POINTS_MAX + 1];
+ uint8 m_CurrentPointPlayersCount[2*EY_POINTS_MAX];
+
+ int32 m_PointAddingTimer;
+};
+#endif