Only allow script actor to move when script is running
@@ -519,6 +519,32 @@ void SceneUpdateActors_b()
ptr = actors;
len = scene_num_actors;
+ if (script_ptr != 0)
+ {
+ for (i = 0; i != script_actor; ++i)
+ {
+ ptr += jump;
+ }
+ // Move actors
+ if (ACTOR_MOVING(ptr))
+ {
+ if (ACTOR_MOVE_SPEED(ptr) == 0)
+ {
+ if (IS_FRAME_2)
+ {
+ ACTOR_X(ptr) = ACTOR_X(ptr) + ACTOR_DX(ptr);
+ ACTOR_Y(ptr) = ACTOR_Y(ptr) + ACTOR_DY(ptr);
+ }
+ }
+ else
+ {
+ ACTOR_X(ptr) = ACTOR_X(ptr) + ACTOR_DX(ptr) * ACTOR_MOVE_SPEED(ptr);
+ ACTOR_Y(ptr) = ACTOR_Y(ptr) + ACTOR_DY(ptr) * ACTOR_MOVE_SPEED(ptr);
+ }
+ }
+ }
+ else
+ {
for (i = 0; i != len; ++i)
{
// Move actors
@@ -540,6 +566,7 @@ void SceneUpdateActors_b()
}
ptr += jump;
}
+ }
// Cycle through animation frames
if (IS_FRAME_8)
