aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Battlegrounds/Battleground.cpp
diff options
context:
space:
mode:
authorSubv <subv2112@gmail.com>2014-07-13 16:52:38 -0500
committerSubv <subv2112@gmail.com>2014-07-13 16:52:38 -0500
commitdfdc19f3bc57757965d1d3b760a27622e411eb05 (patch)
tree08025cfd4bbdef881149291e926eaf1d4676f441 /src/server/game/Battlegrounds/Battleground.cpp
parentf14399d7887b221eb61378863c9c314adbcdebc1 (diff)
Merge branch `master` into `boost`
Conflicts: BattlegroundMgr.h
Diffstat (limited to 'src/server/game/Battlegrounds/Battleground.cpp')
-rw-r--r--src/server/game/Battlegrounds/Battleground.cpp36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp
index 4e077979b3e..a0d35d4c742 100644
--- a/src/server/game/Battlegrounds/Battleground.cpp
+++ b/src/server/game/Battlegrounds/Battleground.cpp
@@ -152,18 +152,6 @@ Battleground::Battleground()
m_StartMaxDist = 0.0f;
ScriptId = 0;
- m_TeamStartLocX[TEAM_ALLIANCE] = 0;
- m_TeamStartLocX[TEAM_HORDE] = 0;
-
- m_TeamStartLocY[TEAM_ALLIANCE] = 0;
- m_TeamStartLocY[TEAM_HORDE] = 0;
-
- m_TeamStartLocZ[TEAM_ALLIANCE] = 0;
- m_TeamStartLocZ[TEAM_HORDE] = 0;
-
- m_TeamStartLocO[TEAM_ALLIANCE] = 0;
- m_TeamStartLocO[TEAM_HORDE] = 0;
-
m_ArenaTeamIds[TEAM_ALLIANCE] = 0;
m_ArenaTeamIds[TEAM_HORDE] = 0;
@@ -300,16 +288,15 @@ inline void Battleground::_CheckSafePositions(uint32 diff)
{
m_ValidStartPositionTimer = 0;
- float x, y, z, o;
for (BattlegroundPlayerMap::const_iterator itr = GetPlayers().begin(); itr != GetPlayers().end(); ++itr)
if (Player* player = ObjectAccessor::FindPlayer(itr->first))
{
Position pos = player->GetPosition();
- GetTeamStartLoc(player->GetBGTeam(), x, y, z, o);
- if (pos.GetExactDistSq(x, y, z) > maxDist)
+ Position const* startPos = GetTeamStartPosition(Battleground::GetTeamIndexByTeamId(player->GetBGTeam()));
+ if (pos.GetExactDistSq(startPos) > maxDist)
{
TC_LOG_DEBUG("bg.battleground", "BATTLEGROUND: Sending %s back to start location (map: %u) (possible exploit)", player->GetName().c_str(), GetMapId());
- player->TeleportTo(GetMapId(), x, y, z, o);
+ player->TeleportTo(GetMapId(), startPos->GetPositionX(), startPos->GetPositionY(), startPos->GetPositionZ(), startPos->GetOrientation());
}
}
}
@@ -550,7 +537,7 @@ inline void Battleground::_ProcessJoin(uint32 diff)
}
// Announce BG starting
if (sWorld->getBoolConfig(CONFIG_BATTLEGROUND_QUEUE_ANNOUNCER_ENABLE))
- sWorld->SendWorldText(LANG_BG_STARTED_ANNOUNCE_WORLD, GetName(), GetMinLevel(), GetMaxLevel());
+ sWorld->SendWorldText(LANG_BG_STARTED_ANNOUNCE_WORLD, GetName().c_str(), GetMinLevel(), GetMaxLevel());
}
}
}
@@ -614,13 +601,16 @@ inline Player* Battleground::_GetPlayerForTeam(uint32 teamId, BattlegroundPlayer
return player;
}
-void Battleground::SetTeamStartLoc(uint32 TeamID, float X, float Y, float Z, float O)
+void Battleground::SetTeamStartPosition(TeamId teamId, Position const& pos)
+{
+ ASSERT(teamId < TEAM_NEUTRAL);
+ StartPosition[teamId] = pos;
+}
+
+Position const* Battleground::GetTeamStartPosition(TeamId teamId) const
{
- TeamId idx = GetTeamIndexByTeamId(TeamID);
- m_TeamStartLocX[idx] = X;
- m_TeamStartLocY[idx] = Y;
- m_TeamStartLocZ[idx] = Z;
- m_TeamStartLocO[idx] = O;
+ ASSERT(teamId < TEAM_NEUTRAL);
+ return &StartPosition[teamId];
}
void Battleground::SendPacketToAll(WorldPacket* packet)