From ac298912791642051c3df4d03282f68089758409 Mon Sep 17 00:00:00 2001 From: thenecromancer Date: Mon, 29 Jun 2009 21:16:28 +0200 Subject: [PATCH] Apply movement impairing debuffs to backwards movement --HG-- branch : trunk --- src/game/SpellAuras.cpp | 3 +++ src/game/SpellMgr.cpp | 2 +- src/game/Unit.cpp | 13 ++++++------- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp index aa6db06f4a..5503dce1b3 100644 --- a/src/game/SpellAuras.cpp +++ b/src/game/SpellAuras.cpp @@ -4259,6 +4259,9 @@ void AuraEffect::HandleAuraModDecreaseSpeed(bool /*apply*/, bool Real, bool chan m_target->UpdateSpeed(MOVE_RUN, true); m_target->UpdateSpeed(MOVE_SWIM, true); m_target->UpdateSpeed(MOVE_FLIGHT, true); + m_target->UpdateSpeed(MOVE_RUN_BACK, true); + m_target->UpdateSpeed(MOVE_SWIM_BACK, true); + m_target->UpdateSpeed(MOVE_FLIGHT_BACK, true); } void AuraEffect::HandleAuraModUseNormalSpeed(bool /*apply*/, bool Real, bool changeAmount) diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp index 57f3d6b5ee..c92a75e466 100644 --- a/src/game/SpellMgr.cpp +++ b/src/game/SpellMgr.cpp @@ -576,7 +576,7 @@ bool IsPositiveEffect(uint32 spellId, uint32 effIndex, bool deep) switch(spellId) { - case 46392: // Focused Assault + case 46392: // Focused Assault case 46393: // Brutal Assault case 28441: // not positive dummy spell case 37675: // Chaos Blast diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp index 393137833b..e1ed8cb44b 100644 --- a/src/game/Unit.cpp +++ b/src/game/Unit.cpp @@ -60,7 +60,7 @@ float baseMoveSpeed[MAX_MOVE_TYPE] = { 2.5f, // MOVE_WALK 7.0f, // MOVE_RUN - 1.25f, // MOVE_RUN_BACK + 3.0f, // MOVE_RUN_BACK 4.722222f, // MOVE_SWIM 4.5f, // MOVE_SWIM_BACK 3.141594f, // MOVE_TURN_RATE @@ -10860,6 +10860,11 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) switch(mtype) { + // Only apply debuffs + case MOVE_FLIGHT_BACK: + case MOVE_RUN_BACK: + case MOVE_SWIM_BACK: + break; case MOVE_WALK: return; case MOVE_RUN: @@ -10878,15 +10883,11 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) } break; } - case MOVE_RUN_BACK: - return; case MOVE_SWIM: { main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_SWIM_SPEED); break; } - case MOVE_SWIM_BACK: - return; case MOVE_FLIGHT: { if (GetTypeId()==TYPEID_UNIT && IsControlledByPlayer()) // not sure if good for pet @@ -10918,8 +10919,6 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) vehicle->UpdateSpeed(MOVE_FLIGHT, true); break; } - case MOVE_FLIGHT_BACK: - return; default: sLog.outError("Unit::UpdateSpeed: Unsupported move type (%d)", mtype); return;