From 1ad861a95efc1d47af649a8c64987f7dc23e0893 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sun, 26 Aug 2012 16:46:25 +0200 Subject: Core/Battlefield: Fix Essence of Wintergrasp --- src/server/game/Spells/SpellMgr.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src') diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 5493f1a2649..2633fd8ea30 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1167,6 +1167,16 @@ 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; + } } return true; -- cgit v1.2.3 From fcd48335e8efc194d8c731eaf7fe39d7166dce52 Mon Sep 17 00:00:00 2001 From: Vincent-Michael Date: Sun, 26 Aug 2012 19:38:05 +0200 Subject: Core/Spells: Implement Battleground - Dampening for wintergrasp --- sql/updates/world/2012_08_26_03_world_spell_area.sql | 3 +++ src/server/game/Spells/SpellMgr.cpp | 10 ++++++++++ 2 files changed, 13 insertions(+) create mode 100644 sql/updates/world/2012_08_26_03_world_spell_area.sql (limited to 'src') diff --git a/sql/updates/world/2012_08_26_03_world_spell_area.sql b/sql/updates/world/2012_08_26_03_world_spell_area.sql new file mode 100644 index 00000000000..65072d2b4a7 --- /dev/null +++ b/sql/updates/world/2012_08_26_03_world_spell_area.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_area` WHERE spell=74411 AND `area`=4197; +INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES +(74411,4197,0,0,0,0,0,2,1); diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp index 2633fd8ea30..b580c5e2282 100755 --- a/src/server/game/Spells/SpellMgr.cpp +++ b/src/server/game/Spells/SpellMgr.cpp @@ -1177,6 +1177,16 @@ bool SpellArea::IsFitToRequirements(Player const* player, uint32 newZone, uint32 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; -- cgit v1.2.3 From 43cbb1e10589bed2dadea85caac88e8193bcb7a5 Mon Sep 17 00:00:00 2001 From: Shauren Date: Sun, 26 Aug 2012 21:24:15 +0200 Subject: Core/DBLayer: Fixed memory leaks when query returned empty result set --- src/server/shared/Database/AdhocStatement.cpp | 1 + src/server/shared/Database/DatabaseWorkerPool.h | 6 ++++++ src/server/shared/Database/PreparedStatement.cpp | 1 + src/server/shared/Database/QueryHolder.cpp | 12 ++++++++++++ 4 files changed, 20 insertions(+) (limited to 'src') 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; -- cgit v1.2.3 From 30e41724e43c9669d10771836eebd79743c56518 Mon Sep 17 00:00:00 2001 From: Nay Date: Mon, 27 Aug 2012 00:41:02 +0200 Subject: Core/Groups: Fix a typo when sending pet auras --- src/server/game/Handlers/GroupHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src') 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); } -- cgit v1.2.3