diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Battlefield/Battlefield.cpp | 2 | ||||
| -rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.cpp | 8 | ||||
| -rw-r--r-- | src/server/game/Battlefield/Zones/BattlefieldWG.h | 31 | ||||
| -rwxr-xr-x | src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Handlers/GroupHandler.cpp | 2 | ||||
| -rwxr-xr-x | src/server/game/Spells/SpellMgr.cpp | 20 | ||||
| -rwxr-xr-x | src/server/game/World/World.cpp | 2 | ||||
| -rw-r--r-- | src/server/scripts/Northrend/wintergrasp.cpp | 10 | ||||
| -rwxr-xr-x | src/server/shared/Database/AdhocStatement.cpp | 1 | ||||
| -rwxr-xr-x | src/server/shared/Database/DatabaseWorkerPool.h | 6 | ||||
| -rwxr-xr-x | src/server/shared/Database/PreparedStatement.cpp | 1 | ||||
| -rwxr-xr-x | src/server/shared/Database/QueryHolder.cpp | 12 | ||||
| -rwxr-xr-x | src/server/shared/Logging/Log.cpp | 14 |
13 files changed, 73 insertions, 38 deletions
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index d159580d189..f074975c6a5 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -133,7 +133,7 @@ bool Battlefield::Update(uint32 diff) m_Timer -= diff; // Invite players a few minutes before the battle's beginning - if (!m_StartGrouping && m_Timer <= m_StartGroupingTimer) + if (!IsWarTime() && !m_StartGrouping && m_Timer <= m_StartGroupingTimer) { m_StartGrouping = true; InvitePlayersInZoneToQueue(); diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index b764058cd82..39beb0265c7 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -39,6 +39,12 @@ enum WGVehicles NPC_WG_CATAPULT = 27881, }; +BattlefieldWG::~BattlefieldWG() +{ + for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr) + delete *itr; +} + bool BattlefieldWG::SetupBattlefield() { InitStalker(BATTLEFIELD_WG_NPC_STALKER, WintergraspStalkerPos[0], WintergraspStalkerPos[1], WintergraspStalkerPos[2], WintergraspStalkerPos[3]); @@ -538,7 +544,6 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature) { UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_H, 1); creature->AddAura(SPELL_HORDE_FLAG, creature); - creature->setFaction(WintergraspFaction[team]); m_vehicles[team].insert(creature->GetGUID()); UpdateVehicleCountWG(); } @@ -555,7 +560,6 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature) { UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_A, 1); creature->AddAura(SPELL_ALLIANCE_FLAG, creature); - creature->setFaction(WintergraspFaction[team]); m_vehicles[team].insert(creature->GetGUID()); UpdateVehicleCountWG(); } diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h index be062704b52..5e868b29619 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.h +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h @@ -29,7 +29,7 @@ uint32 const VehNumWorldState[2] = { 3680, 3490 }; uint32 const MaxVehNumWorldState[2] = { 3681, 3491 }; uint32 const ClockWorldState[2] = { 3781, 4354 }; -uint32 const WintergraspFaction[3] = { 1, 2, 35 }; +uint32 const WintergraspFaction[3] = { 1732, 1735, 35 }; float const WintergraspStalkerPos[4] = { 0, 0, 0, 0 }; class BattlefieldWG; @@ -273,6 +273,7 @@ class WintergraspCapturePoint : public BfCapturePoint class BattlefieldWG : public Battlefield { public: + ~BattlefieldWG(); /** * \brief Called when the battle start * - Spawn relic and turret @@ -1473,17 +1474,17 @@ struct BfWGGameObjectBuilding switch (m_Build->GetEntry()) { - case 190221: - case 190373: - case 190377: - case 190378: + case GO_WINTERGRASP_FORTRESS_TOWER_1: + case GO_WINTERGRASP_FORTRESS_TOWER_2: + case GO_WINTERGRASP_FORTRESS_TOWER_3: + case GO_WINTERGRASP_FORTRESS_TOWER_4: { creature->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); break; } - case 190356: - case 190357: - case 190358: + case GO_WINTERGRASP_SHADOWSIGHT_TOWER: + case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: + case GO_WINTERGRASP_FLAMEWATCH_TOWER: { creature->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); break; @@ -1509,17 +1510,17 @@ struct BfWGGameObjectBuilding switch (m_Build->GetEntry()) { - case 190221: - case 190373: - case 190377: - case 190378: + case GO_WINTERGRASP_FORTRESS_TOWER_1: + case GO_WINTERGRASP_FORTRESS_TOWER_2: + case GO_WINTERGRASP_FORTRESS_TOWER_3: + case GO_WINTERGRASP_FORTRESS_TOWER_4: { creature->setFaction(WintergraspFaction[m_WG->GetDefenderTeam()]); break; } - case 190356: - case 190357: - case 190358: + case GO_WINTERGRASP_SHADOWSIGHT_TOWER: + case GO_WINTERGRASP_WINTER_S_EDGE_TOWER: + case GO_WINTERGRASP_FLAMEWATCH_TOWER: { creature->setFaction(WintergraspFaction[m_WG->GetAttackerTeam()]); break; diff --git a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp index ededaf15bb5..8df6f93a082 100755 --- a/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp +++ b/src/server/game/Battlegrounds/Zones/BattlegroundWS.cpp @@ -52,6 +52,8 @@ BattlegroundWS::BattlegroundWS() StartMessageIds[BG_STARTING_EVENT_SECOND] = LANG_BG_WS_START_ONE_MINUTE; StartMessageIds[BG_STARTING_EVENT_THIRD] = LANG_BG_WS_START_HALF_MINUTE; StartMessageIds[BG_STARTING_EVENT_FOURTH] = LANG_BG_WS_HAS_BEGUN; + _flagSpellForceTimer = 0; + _bothFlagsKept = false; _flagDebuffState = 0; } diff --git a/src/server/game/Handlers/GroupHandler.cpp b/src/server/game/Handlers/GroupHandler.cpp index e0ff3933c3a..c11a1cfc2aa 100755 --- a/src/server/game/Handlers/GroupHandler.cpp +++ b/src/server/game/Handlers/GroupHandler.cpp @@ -859,7 +859,7 @@ void WorldSession::BuildPartyMemberStatsChangedPacket(Player* player, WorldPacke { if (auramask & (uint64(1) << i)) { - AuraApplication const* aurApp = player->GetVisibleAura(i); + AuraApplication const* aurApp = pet->GetVisibleAura(i); *data << uint32(aurApp ? aurApp->GetBase()->GetId() : 0); *data << uint8(1); } diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 5493f1a2649..b580c5e2282 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1167,6 +1167,26 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 return spellId == 56617; } break; + case 57940: // Essence of Wintergrasp - Northrend + case 58045: // Essence of Wintergrasp - Wintergrasp + { + if (!player) + return false; + + if (Battlefield* battlefieldWG = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG)) + return battlefieldWG->IsEnabled() && (player->GetTeamId() == battlefieldWG->GetDefenderTeam()) && !battlefieldWG->IsWarTime(); + break; + } + case 74411: // Battleground - Dampening + { + if (!player) + return false; + + if (Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(player->GetZoneId())) + return bf->IsWarTime(); + break; + } + } return true; diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp index f3ff4d79d4a..9814ddf57ad 100755 --- a/src/server/game/World/World.cpp +++ b/src/server/game/World/World.cpp @@ -2928,7 +2928,7 @@ void World::LoadCharacterNameData() QueryResult result = CharacterDatabase.Query("SELECT guid, name, race, gender, class FROM characters WHERE deleteDate IS NULL"); if (!result) { - sLog->outError(LOG_FILTER_SQL, "No character name data loaded, empty query"); + sLog->outInfo(LOG_FILTER_SERVER_LOADING, "No character name data loaded, empty query"); return; } diff --git a/src/server/scripts/Northrend/wintergrasp.cpp b/src/server/scripts/Northrend/wintergrasp.cpp index 2a5dd797c47..5923cfadec7 100644 --- a/src/server/scripts/Northrend/wintergrasp.cpp +++ b/src/server/scripts/Northrend/wintergrasp.cpp @@ -119,8 +119,6 @@ class npc_wg_demolisher_engineer : public CreatureScript if (creature->isQuestGiver()) player->PrepareQuestMenu(creature->GetGUID()); - Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); - if (canBuild(creature)) { if (player->HasAura(SPELL_CORPORAL)) @@ -143,8 +141,6 @@ class npc_wg_demolisher_engineer : public CreatureScript { player->CLOSE_GOSSIP_MENU(); - Battlefield* wintergrasp= sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); - if (canBuild(creature)) { switch (action - GOSSIP_ACTION_INFO_DEF) @@ -169,9 +165,9 @@ class npc_wg_demolisher_engineer : public CreatureScript bool canBuild(Creature* creature) { Battlefield* wintergrasp = sBattlefieldMgr->GetBattlefieldByBattleId(BATTLEFIELD_BATTLEID_WG); - if (!wintergrasp) return false; + switch (creature->GetEntry()) { case NPC_GOBLIN_MECHANIC: @@ -207,7 +203,7 @@ class npc_wg_spirit_guide : public CreatureScript return true; } - bool OnGossipSelect(Player* player, Creature* /*creature*/ , uint32 /*sender */ , uint32 action) + bool OnGossipSelect(Player* player, Creature* /*creature*/, uint32 /*sender*/, uint32 action) { player->CLOSE_GOSSIP_MENU(); @@ -324,7 +320,7 @@ class go_wg_vehicle_teleporter : public GameObjectScript uint32 _checkTimer; }; - GameObjectAI* GetGameObjectAI(GameObject* go) const + GameObjectAI* GetAI(GameObject* go) const { return new go_wg_vehicle_teleporterAI(go); } diff --git a/src/server/shared/Database/AdhocStatement.cpp b/src/server/shared/Database/AdhocStatement.cpp index 9e795ae853a..95dce77e53c 100755 --- a/src/server/shared/Database/AdhocStatement.cpp +++ b/src/server/shared/Database/AdhocStatement.cpp @@ -44,6 +44,7 @@ bool BasicStatementTask::Execute() ResultSet* result = m_conn->Query(m_sql); if (!result || !result->GetRowCount()) { + delete result; m_result.set(QueryResult(NULL)); return false; } diff --git a/src/server/shared/Database/DatabaseWorkerPool.h b/src/server/shared/Database/DatabaseWorkerPool.h index 9d6fabb9dfa..001e74fc6c6 100755 --- a/src/server/shared/Database/DatabaseWorkerPool.h +++ b/src/server/shared/Database/DatabaseWorkerPool.h @@ -224,7 +224,10 @@ class DatabaseWorkerPool ResultSet* result = conn->Query(sql); conn->Unlock(); if (!result || !result->GetRowCount()) + { + delete result; return QueryResult(NULL); + } result->NextRow(); return QueryResult(result); @@ -275,7 +278,10 @@ class DatabaseWorkerPool delete stmt; if (!ret || !ret->GetRowCount()) + { + delete ret; return PreparedQueryResult(NULL); + } return PreparedQueryResult(ret); } diff --git a/src/server/shared/Database/PreparedStatement.cpp b/src/server/shared/Database/PreparedStatement.cpp index a72532e928b..21aef0f1834 100755 --- a/src/server/shared/Database/PreparedStatement.cpp +++ b/src/server/shared/Database/PreparedStatement.cpp @@ -440,6 +440,7 @@ bool PreparedStatementTask::Execute() PreparedResultSet* result = m_conn->Query(m_stmt); if (!result || !result->GetRowCount()) { + delete result; m_result.set(PreparedQueryResult(NULL)); return false; } diff --git a/src/server/shared/Database/QueryHolder.cpp b/src/server/shared/Database/QueryHolder.cpp index 99772c7e323..0908ad410cd 100755 --- a/src/server/shared/Database/QueryHolder.cpp +++ b/src/server/shared/Database/QueryHolder.cpp @@ -116,6 +116,12 @@ PreparedQueryResult SQLQueryHolder::GetPreparedResult(size_t index) void SQLQueryHolder::SetResult(size_t index, ResultSet* result) { + if (result && !result->GetRowCount()) + { + delete result; + result = NULL; + } + /// store the result in the holder if (index < m_queries.size()) m_queries[index].second.qresult = result; @@ -123,6 +129,12 @@ void SQLQueryHolder::SetResult(size_t index, ResultSet* result) void SQLQueryHolder::SetPreparedResult(size_t index, PreparedResultSet* result) { + if (result && !result->GetRowCount()) + { + delete result; + result = NULL; + } + /// store the result in the holder if (index < m_queries.size()) m_queries[index].second.presult = result; diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index 3a24190d8fa..6e17a32c78b 100755 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -260,14 +260,9 @@ void Log::ReadLoggersFromConfig() } while (ss); - LoggerMap::const_iterator it = loggers.begin(); - - while (it != loggers.end() && it->first) - ++it; - // root logger must exist. Marking as disabled as its not configured - if (it == loggers.end()) - loggers[0].Create("root", LOG_FILTER_GENERAL, LOG_LEVEL_DISABLED); + if (loggers.find(LOG_FILTER_GENERAL) == loggers.end()) + loggers[LOG_FILTER_GENERAL].Create("root", LOG_FILTER_GENERAL, LOG_LEVEL_DISABLED); } void Log::EnableDBAppenders() @@ -349,10 +344,7 @@ bool Log::SetLogLevel(std::string const& name, const char* newLevelc, bool isLog bool Log::ShouldLog(LogFilterType type, LogLevel level) const { - LoggerMap::const_iterator it = loggers.begin(); - while (it != loggers.end() && it->second.getType() != type) - ++it; - + LoggerMap::const_iterator it = loggers.find(type); if (it != loggers.end()) { LogLevel loggerLevel = it->second.getLogLevel(); |
