diff options
author | Nay <dnpd.dd@gmail.com> | 2012-08-27 00:13:23 +0100 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2012-08-27 00:13:23 +0100 |
commit | 3fd52c4736a61d1bd32b444429db24b2781f2704 (patch) | |
tree | b933d8da569d91317918751c7028d8da0f5d9667 | |
parent | 974310ffe6a4ea75fa474cb146be6b5cf66c7f9c (diff) | |
parent | 30e41724e43c9669d10771836eebd79743c56518 (diff) |
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts:
src/server/game/Handlers/GroupHandler.cpp
-rw-r--r-- | sql/updates/world/2012_08_26_01_world_creature.sql | 1 | ||||
-rw-r--r-- | sql/updates/world/2012_08_26_02_world_spell_area.sql | 3 | ||||
-rw-r--r-- | sql/updates/world/2012_08_26_03_world_spell_area.sql | 3 | ||||
-rw-r--r-- | src/server/game/Spells/SpellMgr.cpp | 20 | ||||
-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 |
8 files changed, 47 insertions, 0 deletions
diff --git a/sql/updates/world/2012_08_26_01_world_creature.sql b/sql/updates/world/2012_08_26_01_world_creature.sql new file mode 100644 index 00000000000..af14886850d --- /dev/null +++ b/sql/updates/world/2012_08_26_01_world_creature.sql @@ -0,0 +1 @@ +UPDATE `creature` SET `phaseMask`=256 WHERE `id`=34300; diff --git a/sql/updates/world/2012_08_26_02_world_spell_area.sql b/sql/updates/world/2012_08_26_02_world_spell_area.sql new file mode 100644 index 00000000000..c4eae68e3c4 --- /dev/null +++ b/sql/updates/world/2012_08_26_02_world_spell_area.sql @@ -0,0 +1,3 @@ +DELETE FROM `spell_area` WHERE spell=58045; +INSERT INTO `spell_area` (`spell`,`area`,`quest_start`,`quest_start_active`,`quest_end`,`aura_spell`,`racemask`,`gender`,`autocast`) VALUES +(58045,4197,0,0,0,0,0,2,1); 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 5c2b007493c..c160673ae66 100644 --- 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/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 08b554ff696..76dc7206bd7 100755 --- a/src/server/shared/Database/PreparedStatement.cpp +++ b/src/server/shared/Database/PreparedStatement.cpp @@ -445,6 +445,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; |