diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game/MotionMaster.cpp | 63 | ||||
-rw-r--r-- | src/game/SpellEffects.cpp | 2 |
2 files changed, 33 insertions, 32 deletions
diff --git a/src/game/MotionMaster.cpp b/src/game/MotionMaster.cpp index da418c7d713..705cb20053a 100644 --- a/src/game/MotionMaster.cpp +++ b/src/game/MotionMaster.cpp @@ -81,7 +81,7 @@ MotionMaster::~MotionMaster() void MotionMaster::UpdateMotion(uint32 diff) { - if( i_owner->hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED) ) // what about UNIT_STAT_DISTRACTED? Why is this not included? + if (i_owner->hasUnitState(UNIT_STAT_ROOT | UNIT_STAT_STUNNED)) // what about UNIT_STAT_DISTRACTED? Why is this not included? return; assert( !empty() ); m_cleanFlag |= MMCF_UPDATE; @@ -104,9 +104,9 @@ MotionMaster::UpdateMotion(uint32 diff) delete m_expList; m_expList = NULL; - if(empty()) + if (empty()) Initialize(); - else if(needInitTop()) + else if (needInitTop()) InitTop(); else if (m_cleanFlag & MMCF_RESET) top()->Reset(*i_owner); @@ -118,79 +118,80 @@ MotionMaster::UpdateMotion(uint32 diff) void MotionMaster::DirectClean(bool reset) { - while(size() > 1) + while (size() > 1) { MovementGenerator *curr = top(); pop(); if(curr) DirectDelete(curr); } - if(needInitTop()) + if (needInitTop()) InitTop(); - else if(reset) + else if (reset) top()->Reset(*i_owner); } void MotionMaster::DelayedClean() { - while(size() > 1) + while (size() > 1) { MovementGenerator *curr = top(); pop(); - if(curr) DelayedDelete(curr); + if (curr) + DelayedDelete(curr); } } void MotionMaster::DirectExpire(bool reset) { - if(size() > 1 ) + if (size() > 1) { MovementGenerator *curr = top(); pop(); DirectDelete(curr); } - while(!top()) + while (!top()) --i_top; - if(empty()) + if (empty()) Initialize(); - else if(needInitTop()) + else if (needInitTop()) InitTop(); - else if(reset) + else if (reset) top()->Reset(*i_owner); } void MotionMaster::DelayedExpire() { - if(size() > 1 ) + if (size() > 1) { MovementGenerator *curr = top(); pop(); DelayedDelete(curr); } - while(!top()) + while (!top()) --i_top; } void MotionMaster::MoveIdle(MovementSlot slot) { - //if( empty() || !isStatic( top() ) ) - // push( &si_idleMovement ); - if(!isStatic(Impl[slot])) + //if (empty() || !isStatic(top())) + // push(&si_idleMovement); + if (!isStatic(Impl[slot])) Mutate(&si_idleMovement, slot); } void MotionMaster::MoveRandom(float spawndist) { - if(i_owner->GetTypeId()==TYPEID_UNIT) + if (i_owner->GetTypeId() == TYPEID_UNIT) { - DEBUG_LOG("Creature (GUID: %u) start moving random", i_owner->GetGUIDLow() ); + DEBUG_LOG("Creature (GUID: %u) start moving random", i_owner->GetGUIDLow()); Mutate(new RandomMovementGenerator<Creature>(spawndist), MOTION_SLOT_IDLE); } } @@ -198,28 +199,28 @@ MotionMaster::MoveRandom(float spawndist) void MotionMaster::MoveTargetedHome() { - //if(i_owner->hasUnitState(UNIT_STAT_FLEEING)) + //if (i_owner->hasUnitState(UNIT_STAT_FLEEING)) // return; Clear(false); - if(i_owner->GetTypeId() == TYPEID_UNIT) + if (i_owner->GetTypeId() == TYPEID_UNIT) { DEBUG_LOG("Creature (Entry: %u GUID: %u) targeted home", i_owner->GetEntry(), i_owner->GetGUIDLow()); Mutate(new HomeMovementGenerator<Creature>(), MOTION_SLOT_ACTIVE); } else { - sLog.outError("Player (GUID: %u) attempt targeted home", i_owner->GetGUIDLow() ); + sLog.outError("Player (GUID: %u) attempt targeted home", i_owner->GetGUIDLow()); } } void MotionMaster::MoveConfused() { - if(i_owner->GetTypeId() == TYPEID_PLAYER) + if (i_owner->GetTypeId() == TYPEID_PLAYER) { - DEBUG_LOG("Player (GUID: %u) move confused", i_owner->GetGUIDLow() ); + DEBUG_LOG("Player (GUID: %u) move confused", i_owner->GetGUIDLow()); Mutate(new ConfusedMovementGenerator<Player>(), MOTION_SLOT_CONTROLLED); } else @@ -234,7 +235,7 @@ void MotionMaster::MoveChase(Unit* target, float dist, float angle) { // ignore movement request if target not exist - if(!target || target == i_owner) + if (!target || target == i_owner || i_owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE)) return; i_owner->clearUnitState(UNIT_STAT_FOLLOW); @@ -243,7 +244,7 @@ MotionMaster::MoveChase(Unit* target, float dist, float angle) DEBUG_LOG("Player (GUID: %u) chase to %s (GUID: %u)", i_owner->GetGUIDLow(), target->GetTypeId() == TYPEID_PLAYER ? "player" : "creature", - target->GetTypeId() == TYPEID_PLAYER ? i_owner->GetGUIDLow() : ((Creature*)i_owner)->GetDBTableGUIDLow() ); + target->GetTypeId() == TYPEID_PLAYER ? i_owner->GetGUIDLow() : ((Creature*)i_owner)->GetDBTableGUIDLow()); Mutate(new TargetedMovementGenerator<Player>(*target,dist,angle), MOTION_SLOT_ACTIVE); } else @@ -251,7 +252,7 @@ MotionMaster::MoveChase(Unit* target, float dist, float angle) DEBUG_LOG("Creature (Entry: %u GUID: %u) chase to %s (GUID: %u)", i_owner->GetEntry(), i_owner->GetGUIDLow(), target->GetTypeId() == TYPEID_PLAYER ? "player" : "creature", - target->GetTypeId() == TYPEID_PLAYER ? target->GetGUIDLow() : ((Creature*)target)->GetDBTableGUIDLow() ); + target->GetTypeId() == TYPEID_PLAYER ? target->GetGUIDLow() : ((Creature*)target)->GetDBTableGUIDLow()); Mutate(new TargetedMovementGenerator<Creature>(*target,dist,angle), MOTION_SLOT_ACTIVE); } } @@ -260,7 +261,7 @@ void MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slot) { // ignore movement request if target not exist - if(!target || target == i_owner) + if (!target || target == i_owner || i_owner->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE)) return; i_owner->addUnitState(UNIT_STAT_FOLLOW); @@ -268,7 +269,7 @@ MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slo { DEBUG_LOG("Player (GUID: %u) follow to %s (GUID: %u)", i_owner->GetGUIDLow(), target->GetTypeId() == TYPEID_PLAYER ? "player" : "creature", - target->GetTypeId() == TYPEID_PLAYER ? i_owner->GetGUIDLow() : ((Creature*)i_owner)->GetDBTableGUIDLow() ); + target->GetTypeId() == TYPEID_PLAYER ? i_owner->GetGUIDLow() : ((Creature*)i_owner)->GetDBTableGUIDLow()); Mutate(new TargetedMovementGenerator<Player>(*target,dist,angle), slot); } else @@ -276,7 +277,7 @@ MotionMaster::MoveFollow(Unit* target, float dist, float angle, MovementSlot slo DEBUG_LOG("Creature (Entry: %u GUID: %u) follow to %s (GUID: %u)", i_owner->GetEntry(), i_owner->GetGUIDLow(), target->GetTypeId() == TYPEID_PLAYER ? "player" : "creature", - target->GetTypeId() == TYPEID_PLAYER ? target->GetGUIDLow() : ((Creature*)target)->GetDBTableGUIDLow() ); + target->GetTypeId() == TYPEID_PLAYER ? target->GetGUIDLow() : ((Creature*)target)->GetDBTableGUIDLow()); Mutate(new TargetedMovementGenerator<Creature>(*target,dist,angle), slot); } } diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index d7cb8baf0fd..1b84686ae9b 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -5255,7 +5255,7 @@ void Spell::EffectScriptEffect(uint32 effIndex) case 45151: { //Workaround for Range ... should be global for every ScriptEffect - float radius = GetSpellRadius(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[effIndex])); + float radius = GetSpellRadiusForHostile(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[effIndex])); if (unitTarget && unitTarget->GetTypeId() == TYPEID_PLAYER && unitTarget->GetDistance(m_caster) >= radius && !unitTarget->HasAura(46394) && unitTarget != m_caster) unitTarget->CastSpell(unitTarget, 46394, true); |