aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/MapScripts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/MapScripts.cpp')
-rw-r--r--src/server/game/Maps/MapScripts.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/server/game/Maps/MapScripts.cpp b/src/server/game/Maps/MapScripts.cpp
index e322cdfc09d..c6eb2068165 100644
--- a/src/server/game/Maps/MapScripts.cpp
+++ b/src/server/game/Maps/MapScripts.cpp
@@ -886,6 +886,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;
+
case SCRIPT_COMMAND_PLAY_ANIMKIT:
// Source must be Creature.
if (Creature* cSource = _GetScriptCreature(source, true, step.script))