Commit name: Add flying check to MoveSmoothPath

By Malcrom
This commit is contained in:
Aokromes
2017-04-12 23:21:58 +02:00
parent ab59c475d1
commit 43aecc42aa
5 changed files with 12 additions and 11 deletions

View File

@@ -515,25 +515,26 @@ void MotionMaster::MoveCirclePath(float x, float y, float z, float radius, bool
init.Launch();
}
void MotionMaster::MoveSmoothPath(uint32 pointId, G3D::Vector3 const* pathPoints, size_t pathSize, bool walk)
void MotionMaster::MoveSmoothPath(uint32 pointId, G3D::Vector3 const* pathPoints, size_t pathSize, bool walk, bool fly)
{
Movement::PointsArray path(pathPoints, pathPoints + pathSize);
MoveSmoothPath(pointId, path, walk);
MoveSmoothPath(pointId, path, walk, fly);
}
void MotionMaster::MoveSmoothPath(uint32 pointId, Movement::PointsArray const& path, bool walk)
void MotionMaster::MoveSmoothPath(uint32 pointId, Movement::PointsArray const& path, bool walk, bool fly)
{
Movement::MoveSplineInit init(_owner);
if (_owner->CanFly())
if (fly)
{
init.SetFly();
init.SetUncompressed();
}
init.MovebyPath(path);
init.SetSmooth();
init.SetWalk(walk);
init.Launch();
// This code is not correct
// EffectMovementGenerator does not affect UNIT_STATE_ROAMING | UNIT_STATE_ROAMING_MOVE
// need to call PointMovementGenerator with various pointIds

View File

@@ -146,8 +146,8 @@ class TC_GAME_API MotionMaster
}
void MoveJump(float x, float y, float z, float o, float speedXY, float speedZ, uint32 id = EVENT_JUMP, bool hasOrientation = false);
void MoveCirclePath(float x, float y, float z, float radius, bool clockwise, uint8 stepCount);
void MoveSmoothPath(uint32 pointId, G3D::Vector3 const* pathPoints, size_t pathSize, bool walk);
void MoveSmoothPath(uint32 pointId, Movement::PointsArray const& points, bool walk);
void MoveSmoothPath(uint32 pointId, G3D::Vector3 const* pathPoints, size_t pathSize, bool walk, bool fly);
void MoveSmoothPath(uint32 pointId, Movement::PointsArray const& points, bool walk, bool fly);
// Walk along spline chain stored in DB (script_spline_chain_meta and script_spline_chain_waypoints)
void MoveAlongSplineChain(uint32 pointId, uint16 dbChainId, bool walk);
void MoveAlongSplineChain(uint32 pointId, SplineChain const& chain, bool walk);

View File

@@ -215,7 +215,7 @@ public:
endPoint = campPathSize;
break;
case NPC_SHARPBEAK_JINTHAALOR:
me->GetMotionMaster()->MoveSmoothPath(jinthaalorPathSize, jinthaalorPath, jinthaalorPathSize, false);
me->GetMotionMaster()->MoveSmoothPath(jinthaalorPathSize, jinthaalorPath, jinthaalorPathSize, false, true);
endPoint = jinthaalorPathSize;
break;
}

View File

@@ -54,7 +54,7 @@ public:
if (!apply)
return;
me->GetMotionMaster()->MoveSmoothPath(EagleSpiritflightPathSize, EagleSpiritflightPath, EagleSpiritflightPathSize, false);
me->GetMotionMaster()->MoveSmoothPath(EagleSpiritflightPathSize, EagleSpiritflightPath, EagleSpiritflightPathSize, false, true);
me->CastSpell(me, SPELL_SPIRIT_FORM);
}

View File

@@ -35,7 +35,7 @@ enum MageSpells
SPELL_ARCANCE_POTENCY_RANK_2 = 31572,
SPELL_ARCANCE_POTENCY_TRIGGER_RANK_1 = 57529,
SPELL_ARCANCE_POTENCY_TRIGGER_RANK_2 = 57531,
SPELL_MAGE_ARCANE_MISSILES = 79808
SPELL_MAGE_ARCANE_MISSILES = 79808,
SPELL_MAGE_BLAZING_SPEED = 31643,
SPELL_MAGE_BURNOUT = 29077,
SPELL_MAGE_COLD_SNAP = 11958,