From 85357c75c4a202e2b7b72e14fe0d4083f74c87bb Mon Sep 17 00:00:00 2001 From: Rushor Date: Tue, 7 Feb 2017 00:54:32 +0100 Subject: Game/Mapscripts: Implement SCRIPT_COMMAND_MOVEMENT --- src/server/game/Maps/MapScripts.cpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/server/game/Maps/MapScripts.cpp') diff --git a/src/server/game/Maps/MapScripts.cpp b/src/server/game/Maps/MapScripts.cpp index 300c7fa38e5..a4c51246bbc 100644 --- a/src/server/game/Maps/MapScripts.cpp +++ b/src/server/game/Maps/MapScripts.cpp @@ -872,6 +872,28 @@ void Map::ScriptsProcess() player->SendMovieStart(step.script->PlayMovie.MovieID); break; + case SCRIPT_COMMAND_MOVEMENT: + // Source must be Creature. + if (Creature* cSource = _GetScriptCreature(source, true, step.script)) + { + if (!cSource->IsAlive()) + return; + + cSource->GetMotionMaster()->MovementExpired(); + cSource->GetMotionMaster()->MoveIdle(); + + switch (step.script->Movement.MovementType) + { + case RANDOM_MOTION_TYPE: + cSource->GetMotionMaster()->MoveRandom((float)step.script->Movement.MovementDistance); + break; + case WAYPOINT_MOTION_TYPE: + cSource->GetMotionMaster()->MovePath(step.script->Movement.Path, false); + break; + } + } + break; + default: TC_LOG_ERROR("scripts", "Unknown script command %s.", step.script->GetDebugInfo().c_str()); break; -- cgit v1.2.3