mchlnix / SMB3-Foundry

SMB3 Level Editor in Python
GNU General Public License v3.0
93 stars 12 forks source link

Foundry: Bug: Level jumps are broken #165

Closed opsodps closed 1 year ago

opsodps commented 1 year ago

Version: 1.3 Kawaguchiko

Process to reproduce the issue from a fresh ROM:

  1. Enable level parsing.
  2. Open World 1-1.
  3. Set World 1-2 as the jump location.
  4. Set World 1-1 as the jump location from 1-2.
  5. World 1-1 now jumps to a corrupted level. Repoint it to World 1-2.
  6. Now World 1-2 will jump to its original bonus room instead of 1-1, and trying to repoint it again will cause the process to repeat from Step 4, making the levels impossible to link to each other.

Depending on the level, both jumps might become corrupted permanently, or one of the jumps only gets corrupted once and then is fixed after repointing it. Sadly, I don't know what's causing it, but it's preventing me from linking the levels I made.

opsodps commented 1 year ago

Update: nightly 55a2019

This bug is quite frustrating as the level I made and replaced World 1-1 with keeps getting its jump location set to the original bonus room whenever I save literally anything else in the ROM.

mchlnix commented 1 year ago

It seems that, when the jump destination changes, we take care of the level jumped from, the level now jumped to, but forget to remove the reference of the original bonus level to the jumped-from level. So the next time levels are moved around, it still thinks it is jumped to from there and reasserts itself.

Oversight.