From 5d076cfe291980bc5be9d44ffbae887e3dd5ad59 Mon Sep 17 00:00:00 2001 From: Chaouki Dhib Date: Thu, 23 Mar 2017 00:43:04 +0100 Subject: Core/Spells: fix wrong distance calculations in AoE spells [Needs testing] (#16290) Core/Spells: Fix wrong distance calculations in AoE spells. Pull request #16290 by chaodhib. God bless, finally. (cherry picked from commit a1f2f30c145f6ad9c4baeffeff32618e71ff537c) --- src/server/scripts/Commands/cs_debug.cpp | 2 +- src/server/scripts/Commands/cs_group.cpp | 2 +- src/server/scripts/Commands/cs_misc.cpp | 2 +- src/server/scripts/Commands/cs_npc.cpp | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) (limited to 'src/server/scripts/Commands') diff --git a/src/server/scripts/Commands/cs_debug.cpp b/src/server/scripts/Commands/cs_debug.cpp index 3cd797d5e00..11417b305a5 100644 --- a/src/server/scripts/Commands/cs_debug.cpp +++ b/src/server/scripts/Commands/cs_debug.cpp @@ -918,7 +918,7 @@ public: uint32 entry = atoul(e); float x, y, z, o = handler->GetSession()->GetPlayer()->GetOrientation(); - handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, handler->GetSession()->GetPlayer()->GetObjectSize()); + handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, handler->GetSession()->GetPlayer()->GetCombatReach()); if (!i) return handler->GetSession()->GetPlayer()->SummonCreature(entry, x, y, z, o) != nullptr; diff --git a/src/server/scripts/Commands/cs_group.cpp b/src/server/scripts/Commands/cs_group.cpp index afe3b3c2645..f6866734a7c 100644 --- a/src/server/scripts/Commands/cs_group.cpp +++ b/src/server/scripts/Commands/cs_group.cpp @@ -143,7 +143,7 @@ public: // before GM float x, y, z; - gmPlayer->GetClosePoint(x, y, z, player->GetObjectSize()); + gmPlayer->GetClosePoint(x, y, z, player->GetCombatReach()); player->TeleportTo(gmPlayer->GetMapId(), x, y, z, player->GetOrientation()); } diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index 1067283431d..d5bb43c9607 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -591,7 +591,7 @@ public: // before GM float x, y, z; - handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, target->GetObjectSize()); + handler->GetSession()->GetPlayer()->GetClosePoint(x, y, z, target->GetCombatReach()); target->TeleportTo(handler->GetSession()->GetPlayer()->GetMapId(), x, y, z, target->GetOrientation()); PhasingHandler::InheritPhaseShift(target, handler->GetSession()->GetPlayer()); target->UpdateObjectVisibility(); diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index ac4d8abb366..7a2e6cff30e 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -1457,7 +1457,7 @@ public: // place pet before player float x, y, z; - player->GetClosePoint (x, y, z, creatureTarget->GetObjectSize(), CONTACT_DISTANCE); + player->GetClosePoint (x, y, z, creatureTarget->GetCombatReach(), CONTACT_DISTANCE); pet->Relocate(x, y, z, float(M_PI) - player->GetOrientation()); // set pet to defensive mode by default (some classes can't control controlled pets in fact). -- cgit v1.2.3 From f135b7aea15e06f4d85ed453da8989f738c5537d Mon Sep 17 00:00:00 2001 From: ccrs Date: Sat, 25 Mar 2017 13:17:29 +0100 Subject: Core/Movement: 96f4c7c followup (cherry picked from commit 9be7f5f57b897888983a9ca6f441479f3571513c) --- .../master/2020_04_16_01_world_2017_03_25_00_world.sql | 1 + src/server/game/Miscellaneous/Language.h | 2 +- src/server/game/Movement/MotionMaster.cpp | 16 +++++++++++----- src/server/game/Movement/MotionMaster.h | 2 +- src/server/scripts/Commands/cs_misc.cpp | 3 --- 5 files changed, 14 insertions(+), 10 deletions(-) create mode 100644 sql/updates/world/master/2020_04_16_01_world_2017_03_25_00_world.sql (limited to 'src/server/scripts/Commands') diff --git a/sql/updates/world/master/2020_04_16_01_world_2017_03_25_00_world.sql b/sql/updates/world/master/2020_04_16_01_world_2017_03_25_00_world.sql new file mode 100644 index 00000000000..1e678704466 --- /dev/null +++ b/sql/updates/world/master/2020_04_16_01_world_2017_03_25_00_world.sql @@ -0,0 +1 @@ +DELETE FROM `trinity_string` WHERE `entry`=530; diff --git a/src/server/game/Miscellaneous/Language.h b/src/server/game/Miscellaneous/Language.h index 283b0b42fc7..4355789458a 100644 --- a/src/server/game/Miscellaneous/Language.h +++ b/src/server/game/Miscellaneous/Language.h @@ -547,7 +547,7 @@ enum TrinityStrings LANG_MOVEGENS_IDLE = 527, LANG_MOVEGENS_RANDOM = 528, LANG_MOVEGENS_WAYPOINT = 529, - LANG_MOVEGENS_ANIMAL_RANDOM = 530, + // = 530, not used LANG_MOVEGENS_CONFUSED = 531, LANG_MOVEGENS_CHASE_PLAYER = 532, LANG_MOVEGENS_CHASE_CREATURE = 533, diff --git a/src/server/game/Movement/MotionMaster.cpp b/src/server/game/Movement/MotionMaster.cpp index b9efa1cf273..3e775d238a4 100644 --- a/src/server/game/Movement/MotionMaster.cpp +++ b/src/server/game/Movement/MotionMaster.cpp @@ -43,10 +43,16 @@ MotionMaster::~MotionMaster() // clear ALL movement generators (including default) while (!empty()) { - MovementGenerator *curr = top(); + MovementGenerator* movement = top(); pop(); - if (curr && !IsStatic(curr)) - delete curr; // Skip finalizing on delete, it might launch new movement + if (movement && !IsStatic(movement)) + delete movement; + } + + while (!_expireList.empty()) + { + delete _expireList.back(); + _expireList.pop_back(); } } @@ -117,8 +123,8 @@ void MotionMaster::Clear(bool reset /*= true*/) void MotionMaster::ClearExpireList() { - for (auto itr = _expireList.begin(); itr != _expireList.end(); itr++) - DirectDelete(*itr); + for (auto itr : _expireList) + DirectDelete(itr); _expireList.clear(); diff --git a/src/server/game/Movement/MotionMaster.h b/src/server/game/Movement/MotionMaster.h index ca81c65c8a1..09efe7d3188 100644 --- a/src/server/game/Movement/MotionMaster.h +++ b/src/server/game/Movement/MotionMaster.h @@ -99,7 +99,7 @@ struct JumpArrivalCastArgs class TC_GAME_API MotionMaster { public: - explicit MotionMaster(Unit* unit) : _expireList(nullptr), _top(-1), _owner(unit), _cleanFlag(MMCF_NONE) + explicit MotionMaster(Unit* unit) : _top(-1), _owner(unit), _cleanFlag(MMCF_NONE) { for (uint8 i = 0; i < MAX_MOTION_SLOT; ++i) { diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp index d5bb43c9607..23dbd8e3d1a 100644 --- a/src/server/scripts/Commands/cs_misc.cpp +++ b/src/server/scripts/Commands/cs_misc.cpp @@ -2201,9 +2201,6 @@ public: case WAYPOINT_MOTION_TYPE: handler->SendSysMessage(LANG_MOVEGENS_WAYPOINT); break; - case ANIMAL_RANDOM_MOTION_TYPE: - handler->SendSysMessage(LANG_MOVEGENS_ANIMAL_RANDOM); - break; case CONFUSED_MOTION_TYPE: handler->SendSysMessage(LANG_MOVEGENS_CONFUSED); break; -- cgit v1.2.3