Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Monoliths Mario World] A single fall kills Mario forever. #5275

Closed
Jmousy opened this issue Sep 11, 2021 · 1 comment · Fixed by #9447
Closed

[Monoliths Mario World] A single fall kills Mario forever. #5275

Jmousy opened this issue Sep 11, 2021 · 1 comment · Fixed by #9447
Labels
A-avm1 Area: AVM1 (ActionScript 1 & 2) bug Something isn't working

Comments

@Jmousy
Copy link
Contributor

Jmousy commented Sep 11, 2021

Describe the bug

In the first stage of Monoliths Mario World, when Mario falls off a cliff, his life is reduced to infinity and the game freezes.
There are detailed symptoms in the video below.

monoliths-mario-world.zip

monoliths.mp4

Expected behavior

After Mario dies, the stage should restart after the game over screen appears.

Is the problem with the Ruffle desktop app, extension, or self-hosted version?

Tested on self-hosted & Desktop.

What platform are you using?

  • OS: Windows 10 21H1 x64
  • Browser: Chrome Latest
  • Ruffle: 2021-09-11 Nightly
@Jmousy Jmousy added the bug Something isn't working label Sep 11, 2021
@Toad06
Copy link
Member

Toad06 commented Sep 19, 2021

Thank you for filling an issue. I have investigated it using JPEXS.


When Mario falls off the screen (actually hits an invisible object), the following code is triggered:

if(_root.player.hitTest(this))
{
   _root.die(true);
}

located in \DefineSprite (118: abyss)\frame 2\DoAction.


Here's a part of the function die:

attachMovie("player_die","player_die",2001);
player_die._x = px;
player_die._y = py;
trace(player); // added for debugging
removeMovieClip(player);
trace(player); // added for debugging
power = 1;
have_star = false;
lifes--;
container("empty");

located in \frame 3\DoAction.

The above calls to trace logs the following messages:

  • in Flash: "_level0.player" and an empty string.
  • in Ruffle: "_level0.player" twice.

Because of this, Ruffle kinda gets stuck in a loop.


This issue is probably related to #4404, #3839 or #993.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-avm1 Area: AVM1 (ActionScript 1 & 2) bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants