aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bindings/scripts/scripts/northrend/wintergrasp.cpp2
-rw-r--r--src/game/BattleGroundHandler.cpp6
-rw-r--r--src/game/CMakeLists.txt4
-rw-r--r--src/game/Level2.cpp18
-rw-r--r--src/game/OutdoorPvP.h2
-rw-r--r--src/game/OutdoorPvPMgr.cpp4
-rw-r--r--src/game/OutdoorPvPWG.cpp (renamed from src/game/Wintergrasp.cpp)223
-rw-r--r--src/game/OutdoorPvPWG.h (renamed from src/game/Wintergrasp.h)100
-rw-r--r--win/VC80/game.vcproj4
-rw-r--r--win/VC90/game.vcproj4
10 files changed, 175 insertions, 192 deletions
diff --git a/src/bindings/scripts/scripts/northrend/wintergrasp.cpp b/src/bindings/scripts/scripts/northrend/wintergrasp.cpp
index 53e6fca2af7..89b886083a5 100644
--- a/src/bindings/scripts/scripts/northrend/wintergrasp.cpp
+++ b/src/bindings/scripts/scripts/northrend/wintergrasp.cpp
@@ -15,7 +15,7 @@
*/
#include "precompiled.h"
-#include "Wintergrasp.h"
+#include "OutdoorPvPWG.h"
#define GOSSIP_HELLO_DEMO1 "Build catapult."
#define GOSSIP_HELLO_DEMO2 "Build demolisher."
diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp
index bcd446cadfa..8413198272e 100644
--- a/src/game/BattleGroundHandler.cpp
+++ b/src/game/BattleGroundHandler.cpp
@@ -36,7 +36,7 @@
#include "Opcodes.h"
// Temporal fix to wintergrasp spirit guides till 3.2
-#include "Wintergrasp.h"
+#include "OutdoorPvPWG.h"
#include "OutdoorPvPMgr.h"
// WG end
@@ -601,7 +601,7 @@ void WorldSession::HandleAreaSpiritHealerQueryOpcode( WorldPacket & recv_data )
{ // Wintergrasp Hack till 3.2 and it's implemented as BG
if (GetPlayer()->GetZoneId() == 4197)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (pvpWG && pvpWG->isWarTime())
pvpWG->SendAreaSpiritHealerQueryOpcode(_player, guid);
}
@@ -632,7 +632,7 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
{ // Wintergrasp Hack till 3.2 and it's implemented as BG
if (GetPlayer()->GetZoneId() == 4197)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (pvpWG && pvpWG->isWarTime())
pvpWG->AddPlayerToResurrectQueue(guid, _player->GetGUID());
}
diff --git a/src/game/CMakeLists.txt b/src/game/CMakeLists.txt
index a657bb99c50..663e827812b 100644
--- a/src/game/CMakeLists.txt
+++ b/src/game/CMakeLists.txt
@@ -192,6 +192,8 @@ SET(game_STAT_SRCS
OutdoorPvPTF.h
OutdoorPvPZM.cpp
OutdoorPvPZM.h
+ OutdoorPvPWG.cpp
+ OutdoorPvPWG.h
Path.h
PetAI.cpp
PetAI.h
@@ -290,8 +292,6 @@ SET(game_STAT_SRCS
GroupReference.h
GroupRefManager.h
OutdoorPvPImpl.h
- Wintergrasp.h
- Wintergrasp.cpp
ZoneScript.h
)
add_definitions(-fopenmp)
diff --git a/src/game/Level2.cpp b/src/game/Level2.cpp
index 836acbb3174..3c2a7bf8f1d 100644
--- a/src/game/Level2.cpp
+++ b/src/game/Level2.cpp
@@ -40,7 +40,7 @@
#include <fstream>
#include <map>
#include "GlobalEvents.h"
-#include "Wintergrasp.h"
+#include "OutdoorPvPWG.h"
#include "OutdoorPvPMgr.h"
#include "TargetedMovementGenerator.h" // for HandleNpcUnFollowCommand
@@ -4240,7 +4240,7 @@ bool ChatHandler::HandleNpcSetLinkCommand(const char* args)
bool ChatHandler::HandleWintergraspStatusCommand(const char* args)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG || !sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
{
@@ -4250,7 +4250,7 @@ bool ChatHandler::HandleWintergraspStatusCommand(const char* args)
}
PSendSysMessage(LANG_BG_WG_STATUS, objmgr.GetTrinityStringForDBCLocale(
- pvpWG->GetTeam() == TEAM_ALLIANCE ? LANG_BG_AB_ALLY : LANG_BG_AB_HORDE),
+ pvpWG->getDefenderTeam() == TEAM_ALLIANCE ? LANG_BG_AB_ALLY : LANG_BG_AB_HORDE),
secsToTimeString(pvpWG->GetTimer(), true).c_str(),
pvpWG->isWarTime() ? "Yes" : "No",
pvpWG->GetNumPlayersH(),
@@ -4260,7 +4260,7 @@ bool ChatHandler::HandleWintergraspStatusCommand(const char* args)
bool ChatHandler::HandleWintergraspStartCommand(const char* args)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG || !sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
{
@@ -4275,7 +4275,7 @@ bool ChatHandler::HandleWintergraspStartCommand(const char* args)
bool ChatHandler::HandleWintergraspStopCommand(const char* args)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG || !sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
{
@@ -4293,7 +4293,7 @@ bool ChatHandler::HandleWintergraspEnableCommand(const char* args)
if(!*args)
return false;
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG || !sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
{
@@ -4335,7 +4335,7 @@ bool ChatHandler::HandleWintergraspTimerCommand(const char* args)
if(!*args)
return false;
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG)
{
@@ -4367,7 +4367,7 @@ bool ChatHandler::HandleWintergraspTimerCommand(const char* args)
bool ChatHandler::HandleWintergraspSwitchTeamCommand(const char* args)
{
- OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ OutdoorPvPWG *pvpWG = (OutdoorPvPWG*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
if (!pvpWG)
{
@@ -4378,6 +4378,6 @@ bool ChatHandler::HandleWintergraspSwitchTeamCommand(const char* args)
uint32 timer = pvpWG->GetTimer();
pvpWG->forceChangeTeam();
pvpWG->setTimer(timer);
- PSendSysMessage(LANG_BG_WG_SWITCH_FACTION, GetTrinityString(pvpWG->GetTeam() == TEAM_ALLIANCE ? LANG_BG_AB_ALLY : LANG_BG_AB_HORDE));
+ PSendSysMessage(LANG_BG_WG_SWITCH_FACTION, GetTrinityString(pvpWG->getDefenderTeam() == TEAM_ALLIANCE ? LANG_BG_AB_ALLY : LANG_BG_AB_HORDE));
return true;
}
diff --git a/src/game/OutdoorPvP.h b/src/game/OutdoorPvP.h
index 99f97451728..a68f0b84cf8 100644
--- a/src/game/OutdoorPvP.h
+++ b/src/game/OutdoorPvP.h
@@ -33,7 +33,7 @@ enum OutdoorPvPTypes
OUTDOOR_PVP_ZM,
OUTDOOR_PVP_SI,
OUTDOOR_PVP_EP,
- OPVP_WINTERGRASP,
+ OUTDOOR_PVP_WG,
OUTDOOR_PVP_NR,
};
diff --git a/src/game/OutdoorPvPMgr.cpp b/src/game/OutdoorPvPMgr.cpp
index 4df07914b36..75f08e04e4e 100644
--- a/src/game/OutdoorPvPMgr.cpp
+++ b/src/game/OutdoorPvPMgr.cpp
@@ -23,7 +23,7 @@
#include "OutdoorPvPZM.h"
#include "OutdoorPvPSI.h"
#include "OutdoorPvPEP.h"
-#include "Wintergrasp.h"
+#include "OutdoorPvPWG.h"
#include "Player.h"
#include "Policies/SingletonImp.h"
@@ -125,7 +125,7 @@ void OutdoorPvPMgr::InitOutdoorPvP()
sLog.outDebug("OutdoorPvP : EP successfully initiated.");
}
- pOP = new OPvPWintergrasp;
+ pOP = new OutdoorPvPWG;
// respawn, init variables
if(!pOP->SetupOutdoorPvP())
{
diff --git a/src/game/Wintergrasp.cpp b/src/game/OutdoorPvPWG.cpp
index 81f3f600426..28cf16645e6 100644
--- a/src/game/Wintergrasp.cpp
+++ b/src/game/OutdoorPvPWG.cpp
@@ -16,7 +16,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#include "Wintergrasp.h"
+#include "OutdoorPvPWG.h"
#include "SpellAuras.h"
#include "Vehicle.h"
#include "ObjectMgr.h"
@@ -24,41 +24,7 @@
#include "Chat.h"
#include "MapManager.h"
-typedef uint32 TeamPair[2];
-
-enum WintergraspQuest
-{
- A_VICTORY_IN_WG = 13181,
- H_VICTORY_IN_WG = 13183,
- CRE_PVP_KILL = 31086, //Quest Objective
- CRE_PVP_KILL_V = 31093, //Quest Objective
-};
-
-enum CreatureEntry
-{
- CRE_ENG_A = 30499,
- CRE_ENG_H = 30400,
- CRE_SPI_A = 31842,
- CRE_SPI_H = 31841,
-};
-
-const TeamPair CreatureEntryPair[] =
-{
- {32307, 32308}, // Guards
- {30739, 30740}, // Champions
- {32296, 32294}, // Quartermaster
- {32615, 32626}, // Warbringer & Brigadier General
- {0,0} // Do not delete Used in LoadTeamPair
-};
-
-const TeamPair GODisplayPair[] =
-{
- {5651, 5652},
- {8256, 8257},
- {0,0} // Do not delete Used in LoadTeamPair
-};
-
-void LoadTeamPair(TeamPairMap &pairMap, const TeamPair *pair)
+void _LoadTeamPair(TeamPairMap &pairMap, const TeamPair *pair)
{
while((*pair)[0])
{
@@ -68,7 +34,7 @@ void LoadTeamPair(TeamPairMap &pairMap, const TeamPair *pair)
}
}
-void RespawnCreatureIfNeeded(Creature *cr, uint32 entry)
+void _RespawnCreatureIfNeeded(Creature *cr, uint32 entry)
{
if (cr)
{
@@ -79,25 +45,14 @@ void RespawnCreatureIfNeeded(Creature *cr, uint32 entry)
}
}
-#define REMOVE_WARTIME_AURAS(p) (p)->RemoveAura(SPELL_RECRUIT);\
- (p)->RemoveAura(SPELL_CORPORAL);(p)->RemoveAura(SPELL_LIEUTENANT);\
- (p)->RemoveAura(SPELL_TOWER_CONTROL);\
- (p)->RemoveAura(SPELL_SPIRITUAL_IMMUNITY)
-
-// Visual defines, easier to understand code
-#define getDefenderTeam() m_defender
-#define getAttackerTeam() OTHER_TEAM(m_defender)
-
-typedef std::list<const AreaPOIEntry *> AreaPOIList;
-
-OPvPWintergrasp::OPvPWintergrasp()
+OutdoorPvPWG::OutdoorPvPWG()
{
- m_TypeId = OPVP_WINTERGRASP;
+ m_TypeId = OUTDOOR_PVP_WG;
m_LastResurrectTime = 0; // Temporal copy of BG system till 3.2
}
-bool OPvPWintergrasp::SetupOutdoorPvP()
+bool OutdoorPvPWG::SetupOutdoorPvP()
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
{
@@ -340,7 +295,7 @@ bool OPvPWintergrasp::SetupOutdoorPvP()
}
// Inside fortress won't be capturable
- SiegeWorkshop *workshop = new SiegeWorkshop(this, m_buildingStates[guid]);
+ OPvPCapturePointWG *workshop = new OPvPCapturePointWG(this, m_buildingStates[guid]);
if (goData->posX < POS_X_CENTER && !workshop->SetCapturePointData(capturePointEntry, goData->mapid, goData->posX + 40 * cos(goData->orientation + M_PI / 2), goData->posY + 40 * sin(goData->orientation + M_PI / 2), goData->posZ))
{
delete workshop;
@@ -429,16 +384,11 @@ bool OPvPWintergrasp::SetupOutdoorPvP()
++itr;
}
- //for (AreaPOIList::iterator itr = areaPOIs.begin(); itr != areaPOIs.end(); ++itr)
- // sLog.outError("not assigned %u %f %f", (*itr)->id, (*itr)->x, (*itr)->y);
-
- //gameeventmgr.StartInternalEvent(GameEventWintergraspDefender[getDefenderTeam()]);
-
- //Titan Relic eventid = 19982
+ //Titan Relic
objmgr.AddGOData(192829, 571, 5440, 2840.8, 420.43 + 10, 0);
- LoadTeamPair(m_goDisplayPair, GODisplayPair);
- LoadTeamPair(m_creEntryPair, CreatureEntryPair);
+ _LoadTeamPair(m_goDisplayPair, OutdoorPvPWGGODisplayPair);
+ _LoadTeamPair(m_creEntryPair, OutdoorPvPWGCreEntryPair);
m_wartime = false;
m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_START_TIME) * MINUTE * IN_MILISECONDS;
@@ -454,9 +404,9 @@ bool OPvPWintergrasp::SetupOutdoorPvP()
return true;
}
-void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId)
+void OutdoorPvPWG::ProcessEvent(GameObject *obj, uint32 eventId)
{
- if (obj->GetEntry() == 192829)
+ if (obj->GetEntry() == 192829) // Titan Relic
{
if (obj->GetGOInfo()->goober.eventId == eventId && isWarTime() && m_gate && m_gate->damageState == DAMAGE_DESTROYED)
{
@@ -589,14 +539,14 @@ void OPvPWintergrasp::ProcessEvent(GameObject *obj, uint32 eventId)
}
}
-void OPvPWintergrasp::RemoveOfflinePlayerWGAuras()
+void OutdoorPvPWG::RemoveOfflinePlayerWGAuras()
{
// if server crashed while in battle there could be players with rank or tenacity
CharacterDatabase.PExecute("DELETE FROM character_aura WHERE spell IN (%u, %u, %u, %u, %u)",
SPELL_RECRUIT, SPELL_CORPORAL, SPELL_LIEUTENANT, SPELL_TENACITY, SPELL_TOWER_CONTROL);
}
-void OPvPWintergrasp::ModifyWorkshopCount(TeamId team, bool add)
+void OutdoorPvPWG::ModifyWorkshopCount(TeamId team, bool add)
{
if (team == TEAM_NEUTRAL)
return;
@@ -606,12 +556,12 @@ void OPvPWintergrasp::ModifyWorkshopCount(TeamId team, bool add)
else if (m_workshopCount[team])
--m_workshopCount[team];
else
- sLog.outError("OPvPWintergrasp::ModifyWorkshopCount: negative workshop count!");
+ sLog.outError("OutdoorPvPWG::ModifyWorkshopCount: negative workshop count!");
SendUpdateWorldState(MaxVehNumWorldState[team], m_workshopCount[team] * MAX_VEHICLE_PER_WORKSHOP);
}
-uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, const CreatureData *data)
+uint32 OutdoorPvPWG::GetCreatureEntry(uint32 guidlow, const CreatureData *data)
{
if (getDefenderTeam() == TEAM_ALLIANCE)
{
@@ -625,7 +575,7 @@ uint32 OPvPWintergrasp::GetCreatureEntry(uint32 guidlow, const CreatureData *dat
return data->id;
}
-WintergraspCreType OPvPWintergrasp::GetCreatureType(uint32 entry) const
+OutdoorPvPWGCreType OutdoorPvPWG::GetCreatureType(uint32 entry) const
{
// VEHICLES, GUARDS and TURRETS gives kill credit
// OTHER Not in wartime
@@ -671,7 +621,7 @@ WintergraspCreType OPvPWintergrasp::GetCreatureType(uint32 entry) const
}
}
-void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
+void OutdoorPvPWG::OnCreatureCreate(Creature *creature, bool add)
{
uint32 entry = creature->GetEntry();
switch(GetCreatureType(entry))
@@ -693,7 +643,7 @@ void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
if (uint32 engLowguid = GUID_LOPART(((TempSummon*)creature)->GetSummonerGUID()))
{
- if (SiegeWorkshop *workshop = GetWorkshopByEngGuid(engLowguid))
+ if (OPvPCapturePointWG *workshop = GetWorkshopByEngGuid(engLowguid))
{
if (CanBuildVehicle(workshop))
{
@@ -733,7 +683,7 @@ void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
case CREATURE_ENGINEER:
for (OutdoorPvP::OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
{
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
if (workshop->m_engGuid == creature->GetDBTableGUIDLow())
{
workshop->m_engineer = add ? creature : NULL;
@@ -744,7 +694,7 @@ void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
case CREATURE_SPIRIT_GUIDE:
for (OutdoorPvP::OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
{
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
if (workshop->m_spiGuid == creature->GetDBTableGUIDLow())
{
workshop->m_spiritguide = add ? creature : NULL;
@@ -766,7 +716,7 @@ void OPvPWintergrasp::OnCreatureCreate(Creature *creature, bool add)
}
}
-void OPvPWintergrasp::OnGameObjectCreate(GameObject *go, bool add)
+void OutdoorPvPWG::OnGameObjectCreate(GameObject *go, bool add)
{
OutdoorPvP::OnGameObjectCreate(go, add);
@@ -798,7 +748,7 @@ void OPvPWintergrasp::OnGameObjectCreate(GameObject *go, bool add)
}
}
-void OPvPWintergrasp::UpdateAllWorldObject()
+void OutdoorPvPWG::UpdateAllWorldObject()
{
// update cre and go factions
for (GameObjectSet::iterator itr = m_gobjects.begin(); itr != m_gobjects.end(); ++itr)
@@ -813,11 +763,11 @@ void OPvPWintergrasp::UpdateAllWorldObject()
// update capture points
for (OPvPCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
workshop->SetTeamByBuildingState();
}
-void OPvPWintergrasp::RebuildAllBuildings()
+void OutdoorPvPWG::RebuildAllBuildings()
{
for (BuildingStateMap::const_iterator itr = m_buildingStates.begin(); itr != m_buildingStates.end(); ++itr)
{
@@ -845,7 +795,7 @@ void OPvPWintergrasp::RebuildAllBuildings()
m_towerDestroyedCount[TEAM_HORDE] = 0;
}
-void OPvPWintergrasp::SendInitWorldStatesTo(Player *player) const
+void OutdoorPvPWG::SendInitWorldStatesTo(Player *player) const
{
WorldPacket data(SMSG_INIT_WORLD_STATES, (4+4+4+2+(m_buildingStates.size()*8)));
data << uint32(571);
@@ -875,7 +825,7 @@ void OPvPWintergrasp::SendInitWorldStatesTo(Player *player) const
BroadcastPacket(data);
}
-void OPvPWintergrasp::BroadcastStateChange(BuildingState *state) const
+void OutdoorPvPWG::BroadcastStateChange(BuildingState *state) const
{
if (m_sendUpdate)
for (uint32 team = 0; team < 2; ++team)
@@ -884,7 +834,7 @@ void OPvPWintergrasp::BroadcastStateChange(BuildingState *state) const
}
// Called at Start and Battle End
-bool OPvPWintergrasp::UpdateCreatureInfo(Creature *creature)
+bool OutdoorPvPWG::UpdateCreatureInfo(Creature *creature)
{
if (!creature)
return false;
@@ -946,7 +896,7 @@ bool OPvPWintergrasp::UpdateCreatureInfo(Creature *creature)
if (itr != m_creEntryPair.end())
{
entry = getDefenderTeam() == TEAM_ALLIANCE ? itr->second : itr->first;
- RespawnCreatureIfNeeded(creature, entry);
+ _RespawnCreatureIfNeeded(creature, entry);
}
return false;
}
@@ -955,7 +905,7 @@ bool OPvPWintergrasp::UpdateCreatureInfo(Creature *creature)
}
}
-bool OPvPWintergrasp::UpdateQuestGiverPosition(uint32 guid, Creature *creature)
+bool OutdoorPvPWG::UpdateQuestGiverPosition(uint32 guid, Creature *creature)
{
assert(guid);
Position pos = m_qgPosMap[std::pair<uint32, bool>(guid, getDefenderTeam() == TEAM_HORDE)];
@@ -989,7 +939,7 @@ bool OPvPWintergrasp::UpdateQuestGiverPosition(uint32 guid, Creature *creature)
// Return false = Need to rebuild at battle End/Start
// true = no need to rebuild (ie: Banners or teleporters)
-bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go) const
+bool OutdoorPvPWG::UpdateGameObjectInfo(GameObject *go) const
{
uint32 attFaction = 35;
uint32 defFaction = 35;
@@ -1020,7 +970,7 @@ bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go) const
go->SetUInt32Value(GAMEOBJECT_FACTION, attFaction);
return false;
case 8208: // Goblin Workshop
- SiegeWorkshop *workshop = GetWorkshopByGOGuid(go->GetGUID());
+ OPvPCapturePointWG *workshop = GetWorkshopByGOGuid(go->GetGUID());
if (workshop)
go->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[workshop->m_buildingState->GetTeam()]);
return false;
@@ -1037,7 +987,7 @@ bool OPvPWintergrasp::UpdateGameObjectInfo(GameObject *go) const
return false;
}
-void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
+void OutdoorPvPWG::HandlePlayerEnterZone(Player * plr, uint32 zone)
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
return;
@@ -1068,7 +1018,7 @@ void OPvPWintergrasp::HandlePlayerEnterZone(Player * plr, uint32 zone)
}
// Reapply Auras if needed
-void OPvPWintergrasp::HandlePlayerResurrects(Player * plr, uint32 zone)
+void OutdoorPvPWG::HandlePlayerResurrects(Player * plr, uint32 zone)
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
return;
@@ -1106,7 +1056,7 @@ void OPvPWintergrasp::HandlePlayerResurrects(Player * plr, uint32 zone)
OutdoorPvP::HandlePlayerResurrects(plr, zone);
}
-void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
+void OutdoorPvPWG::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
return;
@@ -1115,14 +1065,18 @@ void OPvPWintergrasp::HandlePlayerLeaveZone(Player * plr, uint32 zone)
{
if (plr->GetVehicle()) // dismiss in change zone case
plr->GetVehicle()->Dismiss();
- REMOVE_WARTIME_AURAS(plr);
+ plr->RemoveAurasDueToSpell(SPELL_RECRUIT);
+ plr->RemoveAurasDueToSpell(SPELL_CORPORAL);
+ plr->RemoveAurasDueToSpell(SPELL_LIEUTENANT);
+ plr->RemoveAurasDueToSpell(SPELL_TOWER_CONTROL);
+ plr->RemoveAurasDueToSpell(SPELL_SPIRITUAL_IMMUNITY);
}
plr->RemoveAurasDueToSpell(SPELL_TENACITY);
OutdoorPvP::HandlePlayerLeaveZone(plr, zone);
UpdateTenacityStack();
}
-void OPvPWintergrasp::PromotePlayer(Player *killer) const
+void OutdoorPvPWG::PromotePlayer(Player *killer) const
{
Aura *aur;
if (aur = killer->GetAura(SPELL_RECRUIT))
@@ -1149,7 +1103,7 @@ void OPvPWintergrasp::PromotePlayer(Player *killer) const
}
}
-void OPvPWintergrasp::HandleKill(Player *killer, Unit *victim)
+void OutdoorPvPWG::HandleKill(Player *killer, Unit *victim)
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED) || !isWarTime())
return;
@@ -1193,7 +1147,7 @@ void OPvPWintergrasp::HandleKill(Player *killer, Unit *victim)
}
// Recalculates Tenacity and applies it to Players / Vehicles
-void OPvPWintergrasp::UpdateTenacityStack()
+void OutdoorPvPWG::UpdateTenacityStack()
{
if (!isWarTime())
return;
@@ -1258,7 +1212,7 @@ void OPvPWintergrasp::UpdateTenacityStack()
}
}
-void OPvPWintergrasp::UpdateClockDigit(uint32 &timer, uint32 digit, uint32 mod)
+void OutdoorPvPWG::UpdateClockDigit(uint32 &timer, uint32 digit, uint32 mod)
{
uint32 value = timer%mod;
timer /= mod;
@@ -1269,7 +1223,7 @@ void OPvPWintergrasp::UpdateClockDigit(uint32 &timer, uint32 digit, uint32 mod)
}
}
-void OPvPWintergrasp::UpdateClock()
+void OutdoorPvPWG::UpdateClock()
{
uint32 timer = m_timer / 1000;
UpdateClockDigit(timer, 0, 10);
@@ -1280,7 +1234,7 @@ void OPvPWintergrasp::UpdateClock()
UpdateClockDigit(timer, 4, 10);
}
-bool OPvPWintergrasp::Update(uint32 diff)
+bool OutdoorPvPWG::Update(uint32 diff)
{
if (!sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_ENABLED))
return false;
@@ -1387,7 +1341,7 @@ bool OPvPWintergrasp::Update(uint32 diff)
return false;
}
-void OPvPWintergrasp::forceStartBattle()
+void OutdoorPvPWG::forceStartBattle()
{ // Uptime will do all the work
m_wartime = false;
@@ -1398,7 +1352,7 @@ void OPvPWintergrasp::forceStartBattle()
}
}
-void OPvPWintergrasp::forceStopBattle()
+void OutdoorPvPWG::forceStopBattle()
{ // Uptime will do all the work.
if (!isWarTime())
@@ -1411,7 +1365,7 @@ void OPvPWintergrasp::forceStopBattle()
}
}
-void OPvPWintergrasp::forceChangeTeam()
+void OutdoorPvPWG::forceChangeTeam()
{
m_changeDefender = true;
m_timer = 1;
@@ -1423,7 +1377,7 @@ void OPvPWintergrasp::forceChangeTeam()
}
// Can be forced by gm's while in battle so have to reset in case it was wartime
-void OPvPWintergrasp::StartBattle()
+void OutdoorPvPWG::StartBattle()
{
m_wartime = true;
m_timer = sWorld.getConfig(CONFIG_OUTDOORPVP_WINTERGRASP_BATTLE_TIME) * MINUTE * IN_MILISECONDS;
@@ -1446,7 +1400,11 @@ void OPvPWintergrasp::StartBattle()
// Remove All Wintergrasp auras. Add Recruit rank and Tower Control
for (PlayerSet::iterator itr = m_players[getAttackerTeam()].begin(); itr != m_players[getAttackerTeam()].end(); ++itr)
{
- REMOVE_WARTIME_AURAS(*itr);
+ (*itr)->RemoveAurasDueToSpell(SPELL_RECRUIT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_CORPORAL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_LIEUTENANT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_TOWER_CONTROL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_SPIRITUAL_IMMUNITY);
if ((*itr)->getLevel() > 69)
{
(*itr)->SetAuraStack(SPELL_TOWER_CONTROL, (*itr), 3);
@@ -1457,14 +1415,18 @@ void OPvPWintergrasp::StartBattle()
// Remove All Wintergrasp auras. Add Recruit rank
for (PlayerSet::iterator itr = m_players[getDefenderTeam()].begin(); itr != m_players[getDefenderTeam()].end(); ++itr)
{
- REMOVE_WARTIME_AURAS(*itr);
+ (*itr)->RemoveAurasDueToSpell(SPELL_RECRUIT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_CORPORAL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_LIEUTENANT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_TOWER_CONTROL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_SPIRITUAL_IMMUNITY);
if ((*itr)->getLevel() > 69)
(*itr)->CastSpell(*itr, SPELL_RECRUIT, true);
}
UpdateTenacityStack();
}
-void OPvPWintergrasp::EndBattle()
+void OutdoorPvPWG::EndBattle()
{
// Cast Essence of Wintergrasp to all players (CheckCast will determine who to cast)
sWorld.setState(WORLDSTATE_WINTERGRASP_CONTROLING_FACTION, getDefenderTeam());
@@ -1500,7 +1462,11 @@ void OPvPWintergrasp::EndBattle()
{
for (PlayerSet::iterator itr = m_players[team].begin(); itr != m_players[team].end(); ++itr)
{
- REMOVE_WARTIME_AURAS(*itr);
+ (*itr)->RemoveAurasDueToSpell(SPELL_RECRUIT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_CORPORAL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_LIEUTENANT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_TOWER_CONTROL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_SPIRITUAL_IMMUNITY);
}
continue;
}
@@ -1509,7 +1475,7 @@ void OPvPWintergrasp::EndBattle()
uint32 intactNum = 0;
uint32 damagedNum = 0;
for (OutdoorPvP::OPvPCapturePointMap::const_iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
if (workshop->m_buildingState->GetTeam() == team)
if (workshop->m_buildingState->damageState == DAMAGE_DAMAGED)
++damagedNum;
@@ -1613,7 +1579,11 @@ void OPvPWintergrasp::EndBattle()
(*itr)->AreaExploredOrEventHappens(H_VICTORY_IN_WG);
}
}
- REMOVE_WARTIME_AURAS(*itr);
+ (*itr)->RemoveAurasDueToSpell(SPELL_RECRUIT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_CORPORAL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_LIEUTENANT);
+ (*itr)->RemoveAurasDueToSpell(SPELL_TOWER_CONTROL);
+ (*itr)->RemoveAurasDueToSpell(SPELL_SPIRITUAL_IMMUNITY);
}
}
@@ -1623,14 +1593,7 @@ void OPvPWintergrasp::EndBattle()
RemoveOfflinePlayerWGAuras();
}
-void OPvPWintergrasp::SetData(uint32 id, uint32 value)
-{
- //if (id == DATA_ENGINEER_DIE)
- // if (SiegeWorkshop *workshop = GetWorkshopByEngGuid(value))
- // workshop->DespawnAllVehicles();
-}
-
-bool OPvPWintergrasp::CanBuildVehicle(SiegeWorkshop *workshop) const
+bool OutdoorPvPWG::CanBuildVehicle(OPvPCapturePointWG *workshop) const
{
TeamId team = workshop->m_buildingState->GetTeam();
if (team == TEAM_NEUTRAL)
@@ -1641,16 +1604,16 @@ bool OPvPWintergrasp::CanBuildVehicle(SiegeWorkshop *workshop) const
&& m_vehicles[team].size() < m_workshopCount[team] * MAX_VEHICLE_PER_WORKSHOP;
}
-uint32 OPvPWintergrasp::GetData(uint32 id)
+uint32 OutdoorPvPWG::GetData(uint32 id)
{
// if can build more vehicles
- if (SiegeWorkshop *workshop = GetWorkshopByEngGuid(id))
+ if (OPvPCapturePointWG *workshop = GetWorkshopByEngGuid(id))
return CanBuildVehicle(workshop) ? 1 : 0;
return 0;
}
-void OPvPWintergrasp::RewardMarkOfHonor(Player *plr, uint32 count)
+void OutdoorPvPWG::RewardMarkOfHonor(Player *plr, uint32 count)
{
// 'Inactive' this aura prevents the player from gaining honor points and battleground tokens
if (plr->HasAura(SPELL_AURA_PLAYER_INACTIVE))
@@ -1676,7 +1639,7 @@ void OPvPWintergrasp::RewardMarkOfHonor(Player *plr, uint32 count)
plr->SendNewItem(item, count, true, false);
}
-void OPvPWintergrasp::LoadQuestGiverMap(uint32 guid, Position posHorde, Position posAlli)
+void OutdoorPvPWG::LoadQuestGiverMap(uint32 guid, Position posHorde, Position posAlli)
{
m_qgPosMap[std::pair<uint32, bool>(guid, true)] = posHorde,
m_qgPosMap[std::pair<uint32, bool>(guid, false)] = posAlli,
@@ -1685,26 +1648,26 @@ void OPvPWintergrasp::LoadQuestGiverMap(uint32 guid, Position posHorde, Position
objmgr.MoveCreData(guid, 571, posAlli);
}
-SiegeWorkshop *OPvPWintergrasp::GetWorkshop(uint32 lowguid) const
+OPvPCapturePointWG *OutdoorPvPWG::GetWorkshop(uint32 lowguid) const
{
if (OPvPCapturePoint *cp = GetCapturePoint(lowguid))
- return dynamic_cast<SiegeWorkshop*>(cp);
+ return dynamic_cast<OPvPCapturePointWG*>(cp);
return NULL;
}
-SiegeWorkshop *OPvPWintergrasp::GetWorkshopByEngGuid(uint32 lowguid) const
+OPvPCapturePointWG *OutdoorPvPWG::GetWorkshopByEngGuid(uint32 lowguid) const
{
for (OutdoorPvP::OPvPCapturePointMap::const_iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
if (workshop->m_engGuid == lowguid)
return workshop;
return NULL;
}
-SiegeWorkshop *OPvPWintergrasp::GetWorkshopByGOGuid(uint32 lowguid) const
+OPvPCapturePointWG *OutdoorPvPWG::GetWorkshopByGOGuid(uint32 lowguid) const
{
for (OutdoorPvP::OPvPCapturePointMap::const_iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr)
- if (SiegeWorkshop *workshop = dynamic_cast<SiegeWorkshop*>(itr->second))
+ if (OPvPCapturePointWG *workshop = dynamic_cast<OPvPCapturePointWG*>(itr->second))
if (workshop->m_workshopGuid == lowguid)
return workshop;
return NULL;
@@ -1713,7 +1676,7 @@ SiegeWorkshop *OPvPWintergrasp::GetWorkshopByGOGuid(uint32 lowguid) const
/*########################################################
* Copy of Battleground system to make Spirit Guides Work
*#######################################################*/
-void OPvPWintergrasp::SendAreaSpiritHealerQueryOpcode(Player *pl, const uint64& guid)
+void OutdoorPvPWG::SendAreaSpiritHealerQueryOpcode(Player *pl, const uint64& guid)
{
WorldPacket data(SMSG_AREA_SPIRIT_HEALER_TIME, 12);
uint32 time_ = 30000 - GetLastResurrectTime(); // resurrect every 30 seconds
@@ -1723,7 +1686,7 @@ void OPvPWintergrasp::SendAreaSpiritHealerQueryOpcode(Player *pl, const uint64&
pl->GetSession()->SendPacket(&data);
}
-void OPvPWintergrasp::AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid)
+void OutdoorPvPWG::AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_guid)
{
m_ReviveQueue[npc_guid].push_back(player_guid);
@@ -1734,7 +1697,7 @@ void OPvPWintergrasp::AddPlayerToResurrectQueue(uint64 npc_guid, uint64 player_g
plr->CastSpell(plr, SPELL_WAITING_FOR_RESURRECT, true);
}
-void OPvPWintergrasp::RemovePlayerFromResurrectQueue(uint64 player_guid)
+void OutdoorPvPWG::RemovePlayerFromResurrectQueue(uint64 player_guid)
{
for (std::map<uint64, std::vector<uint64> >::iterator itr = m_ReviveQueue.begin(); itr != m_ReviveQueue.end(); ++itr)
{
@@ -1756,7 +1719,7 @@ void OPvPWintergrasp::RemovePlayerFromResurrectQueue(uint64 player_guid)
}
}
-void OPvPWintergrasp::RelocateDeadPlayers(Creature *cr)
+void OutdoorPvPWG::RelocateDeadPlayers(Creature *cr)
{
if (!cr || GetCreatureType(cr->GetEntry()) != CREATURE_SPIRIT_GUIDE)
return;
@@ -1782,16 +1745,16 @@ void OPvPWintergrasp::RelocateDeadPlayers(Creature *cr)
}
/*######
-##SiegeWorkshop
+##OPvPCapturePointWG
######*/
-SiegeWorkshop::SiegeWorkshop(OPvPWintergrasp *opvp, BuildingState *state)
+OPvPCapturePointWG::OPvPCapturePointWG(OutdoorPvPWG *opvp, BuildingState *state)
: OPvPCapturePoint(opvp), m_buildingState(state), m_wintergrasp(opvp)
, m_engineer(NULL), m_engGuid(0), m_spiritguide(NULL), m_spiGuid(0)
{
}
-void SiegeWorkshop::SetTeamByBuildingState()
+void OPvPCapturePointWG::SetTeamByBuildingState()
{
if (m_buildingState->GetTeam() == TEAM_ALLIANCE)
{
@@ -1819,7 +1782,7 @@ void SiegeWorkshop::SetTeamByBuildingState()
SendChangePhase();
}
-void SiegeWorkshop::ChangeTeam(TeamId oldTeam)
+void OPvPCapturePointWG::ChangeTeam(TeamId oldTeam)
{
uint32 entry = 0;
uint32 guide_entry = 0;
@@ -1849,12 +1812,12 @@ void SiegeWorkshop::ChangeTeam(TeamId oldTeam)
if (m_engGuid)
{
*m_engEntry = entry;
- RespawnCreatureIfNeeded(m_engineer, entry);
+ _RespawnCreatureIfNeeded(m_engineer, entry);
}
if (m_spiGuid)
{
*m_spiEntry = guide_entry;
- RespawnCreatureIfNeeded(m_spiritguide, guide_entry);
+ _RespawnCreatureIfNeeded(m_spiritguide, guide_entry);
m_wintergrasp->RelocateDeadPlayers(m_spiritguide);
}
}
diff --git a/src/game/Wintergrasp.h b/src/game/OutdoorPvPWG.h
index cc34520ae34..63381b15f7b 100644
--- a/src/game/Wintergrasp.h
+++ b/src/game/OutdoorPvPWG.h
@@ -16,8 +16,8 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
-#ifndef TRINITY_WINTERGRASP_H
-#define TRINITY_WINTERGRASP_H
+#ifndef OUTDOOR_PVP_WG_
+#define OUTDOOR_PVP_WG_
#include "OutdoorPvPImpl.h"
@@ -31,7 +31,7 @@ const uint32 VehNumWorldState[2] = {3680,3490};
const uint32 MaxVehNumWorldState[2] = {3681,3491};
const uint32 ClockWorldState[5] = {3785,3784,3782,3976,3975};
-enum WintergraspSpell
+enum OutdoorPvPWGSpell
{
// Wartime auras
SPELL_RECRUIT = 37795,
@@ -85,7 +85,7 @@ enum OutdoorPvP_WG_KeepStatus
};
*/
-enum WintergraspCreType
+enum OutdoorPvPWGCreType
{
CREATURE_OTHER,
CREATURE_SIEGE_VEHICLE,
@@ -98,21 +98,56 @@ enum WintergraspCreType
CREATURE_QUESTGIVER,
};
-enum BuildingType
+enum OutdoorPvPWGBuildingType
{
BUILDING_WALL,
BUILDING_WORKSHOP,
BUILDING_TOWER,
};
-enum DamageState
+enum OutdoorPvPWGDamageState
{ // Do not change order
DAMAGE_INTACT,
DAMAGE_DAMAGED,
DAMAGE_DESTROYED,
};
+typedef uint32 TeamPair[2];
+
+enum OutdoorPvPWGQuest
+{
+ A_VICTORY_IN_WG = 13181,
+ H_VICTORY_IN_WG = 13183,
+ CRE_PVP_KILL = 31086, //Quest Objective - Fixme: this should be handled by DB
+ CRE_PVP_KILL_V = 31093, //Quest Objective - Fixme: this should be handled by DB
+};
+
+enum OutdoorPvPWGCreEntry
+{
+ CRE_ENG_A = 30499,
+ CRE_ENG_H = 30400,
+ CRE_SPI_A = 31842,
+ CRE_SPI_H = 31841,
+};
+
+const TeamPair OutdoorPvPWGCreEntryPair[] =
+{
+ {32307, 32308}, // Guards
+ {30739, 30740}, // Champions
+ {32296, 32294}, // Quartermaster
+ {32615, 32626}, // Warbringer & Brigadier General
+ {0,0} // Do not delete Used in LoadTeamPair
+};
+
+const TeamPair OutdoorPvPWGGODisplayPair[] =
+{
+ {5651, 5652},
+ {8256, 8257},
+ {0,0} // Do not delete Used in LoadTeamPair
+};
+
const uint32 AreaPOIIconId[3][3] = {{7,8,9},{4,5,6},{1,2,3}};
+typedef std::list<const AreaPOIEntry *> AreaPOIList;
struct BuildingState
{
@@ -124,10 +159,10 @@ struct BuildingState
uint32 worldState;
uint32 health;
TeamId defaultTeam;
- DamageState damageState;
+ OutdoorPvPWGDamageState damageState;
GameObject *building;
uint32 *graveTeam;
- BuildingType type;
+ OutdoorPvPWGBuildingType type;
void SendUpdate(Player *player) const
{
@@ -154,9 +189,9 @@ private:
typedef std::map<uint32, uint32> TeamPairMap;
-class SiegeWorkshop;
+class OPvPCapturePointWG;
-class OPvPWintergrasp : public OutdoorPvP
+class OutdoorPvPWG : public OutdoorPvP
{
protected:
typedef std::map<uint32, BuildingState *> BuildingStateMap;
@@ -165,11 +200,10 @@ class OPvPWintergrasp : public OutdoorPvP
typedef std::map<std::pair<uint32, bool>, Position> QuestGiverPositionMap;
typedef std::map<uint32, Creature*> QuestGiverMap;
public:
- OPvPWintergrasp();
+ OutdoorPvPWG();
bool SetupOutdoorPvP();
uint32 GetCreatureEntry(uint32 guidlow, const CreatureData *data);
- //uint32 GetGameObjectEntry(uint32 guidlow, uint32 entry);
void OnCreatureCreate(Creature *creature, bool add);
void OnGameObjectCreate(GameObject *go, bool add);
@@ -186,26 +220,16 @@ class OPvPWintergrasp : public OutdoorPvP
void BroadcastStateChange(BuildingState *state) const;
uint32 GetData(uint32 id);
- void SetData(uint32 id, uint32 value);
+ void SetData(uint32 id, uint32 value) {};
void ModifyWorkshopCount(TeamId team, bool add);
uint32 GetTimer() const { return m_timer / 1000; };
- TeamId GetTeam() const { return m_defender; };
bool isWarTime() const { return m_wartime; };
- void setTimer(uint32 timer)
- {
- if (timer >= 0)
- m_timer = timer;
- };
- uint32 GetNumPlayersA() const
- {
- return m_players[TEAM_ALLIANCE].size();
- }
-
- uint32 GetNumPlayersH() const
- {
- return m_players[TEAM_HORDE].size();
- }
+ void setTimer(uint32 timer) { if (timer >= 0) m_timer = timer; };
+ uint32 GetNumPlayersA() const { return m_players[TEAM_ALLIANCE].size(); };
+ uint32 GetNumPlayersH() const { return m_players[TEAM_HORDE].size(); };
+ TeamId getDefenderTeam() const { return m_defender; };
+ TeamId getAttackerTeam() const { return OTHER_TEAM(m_defender); };
void forceChangeTeam();
void forceStopBattle();
void forceStartBattle();
@@ -249,9 +273,9 @@ class OPvPWintergrasp : public OutdoorPvP
uint32 m_towerDestroyedCount[2];
uint32 m_towerDamagedCount[2];
- SiegeWorkshop *GetWorkshop(uint32 lowguid) const;
- SiegeWorkshop *GetWorkshopByEngGuid(uint32 lowguid) const;
- SiegeWorkshop *GetWorkshopByGOGuid(uint32 lowguid) const;
+ OPvPCapturePointWG *GetWorkshop(uint32 lowguid) const;
+ OPvPCapturePointWG *GetWorkshopByEngGuid(uint32 lowguid) const;
+ OPvPCapturePointWG *GetWorkshopByGOGuid(uint32 lowguid) const;
void StartBattle();
void EndBattle();
@@ -264,8 +288,8 @@ class OPvPWintergrasp : public OutdoorPvP
bool UpdateCreatureInfo(Creature *creature);
bool UpdateGameObjectInfo(GameObject *go) const;
- bool CanBuildVehicle(SiegeWorkshop *workshop) const;
- WintergraspCreType GetCreatureType(uint32 entry) const;
+ bool CanBuildVehicle(OPvPCapturePointWG *workshop) const;
+ OutdoorPvPWGCreType GetCreatureType(uint32 entry) const;
void RebuildAllBuildings();
@@ -277,16 +301,13 @@ class OPvPWintergrasp : public OutdoorPvP
bool UpdateQuestGiverPosition(uint32 guid, Creature *creature);
};
-class SiegeWorkshop : public OPvPCapturePoint
+class OPvPCapturePointWG : public OPvPCapturePoint
{
public:
- explicit SiegeWorkshop(OPvPWintergrasp *opvp, BuildingState *state);
+ explicit OPvPCapturePointWG(OutdoorPvPWG *opvp, BuildingState *state);
void SetTeamByBuildingState();
void ChangeState() {}
void ChangeTeam(TeamId oldteam);
- //void DespawnAllVehicles();
-
- //bool CanBuildVehicle() const { return m_vehicles.size() < MAX_VEHICLE_PER_WORKSHOP && m_buildingState->damageState != DAMAGE_DESTROYED; }
uint32 *m_spiEntry;
uint32 m_spiGuid;
@@ -296,10 +317,9 @@ class SiegeWorkshop : public OPvPCapturePoint
uint32 m_engGuid;
Creature *m_engineer;
uint32 m_workshopGuid;
- //CreatureSet m_vehicles;
BuildingState *m_buildingState;
protected:
- OPvPWintergrasp *m_wintergrasp;
+ OutdoorPvPWG *m_wintergrasp;
};
#endif
diff --git a/win/VC80/game.vcproj b/win/VC80/game.vcproj
index 2877fb6bd20..aeae52ea1ee 100644
--- a/win/VC80/game.vcproj
+++ b/win/VC80/game.vcproj
@@ -1698,11 +1698,11 @@
>
</File>
<File
- RelativePath="..\..\src\game\Wintergrasp.cpp"
+ RelativePath="..\..\src\game\OutdoorPvPWG.cpp"
>
</File>
<File
- RelativePath="..\..\src\game\Wintergrasp.h"
+ RelativePath="..\..\src\game\OutdoorPvPWG.h"
>
</File>
</Filter>
diff --git a/win/VC90/game.vcproj b/win/VC90/game.vcproj
index 9a58042d9ff..c9f6e1e7c12 100644
--- a/win/VC90/game.vcproj
+++ b/win/VC90/game.vcproj
@@ -1699,11 +1699,11 @@
>
</File>
<File
- RelativePath="..\..\src\game\Wintergrasp.cpp"
+ RelativePath="..\..\src\game\OutdoorPvPWG.cpp"
>
</File>
<File
- RelativePath="..\..\src\game\Wintergrasp.h"
+ RelativePath="..\..\src\game\OutdoorPvPWG.h"
>
</File>
</Filter>