Open Jmousy opened 9 months ago
The issue occurs when a removed MovieClip
is passed to a function named removeSpider
in DefineSprite 927
. Ruffle mistakenly passes a boxed undefined
instead of the reference to the removed clip. An example that demonstrates this:
var mc = this.createEmptyMovieClip("mc", 1);
removeMovieClip(mc);
f(mc);
function f(a) {
trace(a == undefined); // false in Flash, true in Ruffle
}
There is also an ignored test with the same issue -- string_paths_reference_launder
.
Describe the bug
In the game Clicker Monsters(AVM1), you earn coins every time you defeat a monster. (Coins are generated indefinitely, regardless of whether you clear the stage or not.)
However, after you collect a total of 100 coins, no more coins appear for defeating monsters. If you move to a different stage or purchase an upgrade, the problem persists.
However, after restarting the game to load your saved history, the coins will appear again.
(If the video doesn't play, you can download it to watch)
https://github.com/ruffle-rs/ruffle/assets/75052171/3616b3a2-47df-456f-8785-2c0c09b21900
Expected behavior
You should be able to earn coins every time you defeat a monster.
Content Location
Attached file:
clicker-monsters.zip
Affected platform
Desktop app
Operating system
Windows 10 22H2
Browser
Google Chrome 121
Additional information
No response