From 6acb7f85f438437db3f625e695c1086a1116e215 Mon Sep 17 00:00:00 2001 From: Nay Date: Mon, 3 Sep 2012 17:15:32 +0100 Subject: [PATCH 1/8] DB/GOs: Correct flags of GO 186371 Thanks Joshh Closes #6846 --- sql/updates/world/2012_09_03_01_world_gameobject_template.sql | 1 + 1 file changed, 1 insertion(+) create mode 100644 sql/updates/world/2012_09_03_01_world_gameobject_template.sql diff --git a/sql/updates/world/2012_09_03_01_world_gameobject_template.sql b/sql/updates/world/2012_09_03_01_world_gameobject_template.sql new file mode 100644 index 00000000000..ff0907eee6e --- /dev/null +++ b/sql/updates/world/2012_09_03_01_world_gameobject_template.sql @@ -0,0 +1 @@ +UPDATE `gameobject_template` SET `flags`=40 WHERE `entry`=186371; -- Zeppelin From 511beb8c196a6a00375541d82c72494c9a4ccf62 Mon Sep 17 00:00:00 2001 From: nelegalno Date: Mon, 3 Sep 2012 17:18:38 +0100 Subject: [PATCH 2/8] DB/Quests: Fix required races for quest 9719 Closes #7604 --- sql/updates/world/2012_09_03_02_world_quest_template.sql | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 sql/updates/world/2012_09_03_02_world_quest_template.sql diff --git a/sql/updates/world/2012_09_03_02_world_quest_template.sql b/sql/updates/world/2012_09_03_02_world_quest_template.sql new file mode 100644 index 00000000000..0c0a7ce4e40 --- /dev/null +++ b/sql/updates/world/2012_09_03_02_world_quest_template.sql @@ -0,0 +1,2 @@ +-- Stalk the Stalker (9719) quest requirements fix +UPDATE `quest_template` SET `RequiredRaces` = 0 WHERE `Id` = 9719; From 2fe8c2f41e2da6d543d9a22bfc1e8c9335f2eda2 Mon Sep 17 00:00:00 2001 From: Nay Date: Mon, 3 Sep 2012 18:24:35 +0100 Subject: [PATCH 3/8] Dependencies/G3D: Fix build on x64 (change already included in TC's diff) --- dep/g3dlite/source/RegistryUtil.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dep/g3dlite/source/RegistryUtil.cpp b/dep/g3dlite/source/RegistryUtil.cpp index 28ff6955d9b..fc4cebc2ee5 100644 --- a/dep/g3dlite/source/RegistryUtil.cpp +++ b/dep/g3dlite/source/RegistryUtil.cpp @@ -257,7 +257,7 @@ bool RegistryUtil::writeString(const std::string& key, const std::string& value, // static helpers -static HKEY getRootKeyFromString(const char* str, uint32 length) { +static HKEY getRootKeyFromString(const char* str, size_t length) { debugAssert(str); if (str) { From 153e88a16b33bedfd28273030e26914844d60aff Mon Sep 17 00:00:00 2001 From: Gacko Date: Mon, 3 Sep 2012 20:08:17 +0200 Subject: [PATCH 4/8] Core: Blood Furnace - Broggok event Move prisoners back in cages after respawn. They didn't reset correctly for players which were still in the instance after wipe --- .../HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index 893f97fe711..629df924ea1 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -316,6 +316,7 @@ class instance_blood_furnace : public InstanceMapScript if (!prisoner->isAlive()) prisoner->Respawn(true); prisoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); + prisoner->GetMotionMaster()->MoveTargetedHome(); } void StorePrisoner(Creature* creature) From 913645d5c7301a5d323f98e16a1e4baa972c685a Mon Sep 17 00:00:00 2001 From: Gacko Date: Mon, 3 Sep 2012 22:25:26 +0200 Subject: [PATCH 5/8] Core: Blood furnace - Update method header to lastest rev --- .../HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index 629df924ea1..ebc7af26aae 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -133,7 +133,7 @@ class instance_blood_furnace : public InstanceMapScript } } - void OnCreatureDeath(Creature* unit) + void OnUnitDeath(Unit* unit) { if (unit && unit->GetTypeId() == TYPEID_UNIT && unit->GetEntry() == 17398) PrisonerDied(unit->GetGUID()); From 76be70a4dc225bbcbce3c5d427585aededef37b6 Mon Sep 17 00:00:00 2001 From: kaelima Date: Tue, 4 Sep 2012 00:37:21 +0200 Subject: [PATCH 6/8] Core/Battlefield: Fix some memory leaks --- src/server/game/Battlefield/Battlefield.cpp | 7 +++++++ src/server/game/Battlefield/Zones/BattlefieldWG.cpp | 3 +++ 2 files changed, 10 insertions(+) diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index ffc5e48290b..c0cf64ead58 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -60,6 +60,13 @@ Battlefield::Battlefield() Battlefield::~Battlefield() { + for (BfCapturePointMap::iterator itr = m_capturePoints.begin(); itr != m_capturePoints.end(); ++itr) + delete itr->second; + + for (GraveyardVect::const_iterator itr = m_GraveyardList.begin(); itr != m_GraveyardList.end(); ++itr) + delete *itr; + + m_capturePoints.clear(); } // Called when a player enters the zone diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp index 09783176094..233dbeca077 100644 --- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp +++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp @@ -37,6 +37,9 @@ BattlefieldWG::~BattlefieldWG() { for (Workshop::const_iterator itr = WorkshopsList.begin(); itr != WorkshopsList.end(); ++itr) delete *itr; + + for (GameObjectBuilding::const_iterator itr = BuildingsInZone.begin(); itr != BuildingsInZone.end(); ++itr) + delete *itr; } bool BattlefieldWG::SetupBattlefield() From a47ad2f5e174588587d621ab2216197a7993054f Mon Sep 17 00:00:00 2001 From: Mik43l Date: Tue, 4 Sep 2012 00:51:26 +0200 Subject: [PATCH 7/8] Core/Auras: Added minimal delay before Rapture cooldown takes effect to allow all bubbles broken by a single damage source proc mana return Closes #7443 Signed-off-by: Shauren --- src/server/game/Spells/Auras/SpellAuras.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp index 9ee05b9a2a4..1eb771dc500 100755 --- a/src/server/game/Spells/Auras/SpellAuras.cpp +++ b/src/server/game/Spells/Auras/SpellAuras.cpp @@ -1414,10 +1414,16 @@ void Aura::HandleAuraSpecificMods(AuraApplication const* aurApp, Unit* caster, b if (caster->GetTypeId() == TYPEID_PLAYER) { if (caster->ToPlayer()->HasSpellCooldown(aura->GetId())) - break; - // and add if needed - caster->ToPlayer()->AddSpellCooldown(aura->GetId(), 0, uint32(time(NULL) + 12)); + { + // This additional check is needed to add a minimal delay before cooldown in in effect + // to allow all bubbles broken by a single damage source proc mana return + if (caster->ToPlayer()->GetSpellCooldownDelay(aura->GetId()) <= 11) + break; + } + else // and add if needed + caster->ToPlayer()->AddSpellCooldown(aura->GetId(), 0, uint32(time(NULL) + 12)); } + // effect on caster if (AuraEffect const* aurEff = aura->GetEffect(0)) { From b2bcc52fdaaef8752e72dbff9e300f168bf9a110 Mon Sep 17 00:00:00 2001 From: Nay Date: Tue, 4 Sep 2012 01:03:06 +0100 Subject: [PATCH 8/8] Revert "Core: Blood Furnace - Broggok event" This reverts commit 153e88a16b33bedfd28273030e26914844d60aff. --- .../HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp index ebc7af26aae..156581e8cd2 100644 --- a/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp +++ b/src/server/scripts/Outland/HellfireCitadel/BloodFurnace/instance_blood_furnace.cpp @@ -316,7 +316,6 @@ class instance_blood_furnace : public InstanceMapScript if (!prisoner->isAlive()) prisoner->Respawn(true); prisoner->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_IMMUNE_TO_PC | UNIT_FLAG_IMMUNE_TO_NPC | UNIT_FLAG_NON_ATTACKABLE); - prisoner->GetMotionMaster()->MoveTargetedHome(); } void StorePrisoner(Creature* creature)