Is this code:
animate.obj(alien2);
load.view(8);
set.view(alien2,8);
position(alien2,15,80);
release.loop(alien2);
stop.cycling(alien2);
draw(alien2);
inside of your new room section? If not, then it will get executed every interpreter cycle and the position of your character will continually be reset to (15, 80). If you do this:
if (new_room)
{
// other room initialization stuff here
animate.obj(alien2);
load.view(8);
set.view(alien2,8);
position(alien2,15,80);
release.loop(alien2);
// stop.cycling doesn't belong here -- your
// character will move without looping, giving
// an "ice skating" movement
// stop.cycling(alien2);
draw(alien2);
}
if (f42){
v28 = 3;
set.dir(alien2,v28);
normal.motion(alien2);
print("Then, another man walks on the stage.");
reset(f42);
}
it should work.