Dessyreqt / alttprandomizer

The Legend of Zelda: A Link to the Past Randomizer
178 stars 30 forks source link

Bug Fixes #285

Closed BlueViper85 closed 7 years ago

BlueViper85 commented 7 years ago

Looking at the bug fixes, I created a fork of the project and coded a few of the fixes myself, at the very least as a means to learn more about the project and improve my on C# skills and in case anyone found any use from it.

-Fixed crash caused by using or in a folder name for the ROM File (Issue #279 -Fixed the logic for the chests in the Eye bridge room at the end of Turtle Rock to prevent the Lamp from spawning here (Issue #274) -Added CanLiftLightRocks(have) as a requirement for the BumperCave, since CanAccessNorthwestDarkWorld(have) can evaluate to true without having the ability to lift light rocks (as it should) (Issue #281) -Updated CanDefeatHera(have) so that it will check if you can light torches if the big key is in the 1F chest, this will help with issues where Moldorm could have the Fire Rod (or possibly the Lamp) which could prevent you from reaching him. (Issue #266) -Updated the logic for the Big Chest in Swamp Palace to cover a more broad spectrum of big key locations than it originally covered to help ensure it can be opened. (Issue #267)

BlueViper85 commented 7 years ago

I've made a number of changes to this code to address additional issues, in addition to the above I've added the following fixes. Some of these I've mentioned in other comments, but at this point should probably be specified here as well:

-Moved the FilePath variable to be created before the If statement that checks if the path exists so it can use the corrected path when evaluating if it exists or not. -I failed to add the Lamp to the check for Trinexx as well, so I added it as a requirement to CanDefeatTurtleRock(have) -I also added the Light World region to Magic Bat so it will appear in the Spoiler Log properly -Added a function that finds the Magic Upgrade in the seed, and outputs which magic upgrade was chosen (1/2 or 1/4 magic) and specifies which at the bottom of the spoiler log (without specifying where it is)chosen Magic Upgrade to the bottom of the spoiler log (without specifying where it is). This and adding the Magic Bat back to the spoiler log address issue #290 -Updated the CanGetGoldSword logic to confirm that the player can take the Super Bomb to the Pyramid. This includes a check for the moon pearl for when Crystals can be in the Light World. I ran a seed through before and after changing the code and it didn't change item placements at all for that seed to ensure no unintended side effects came out of this change.

I also completely re-did how I handled the logic for the Hookshot being in the Big Chest in Swamp Palace. I wasn't comfortable with it as it was since I couldn't confirm if the Hookshot would still spawn in the Big Chest.

These are the changes I made: -Removed the additional checks on the Big Chest in swamp palace and restored it to it's original logic from v7 -Added a "CanAccessLateSwampPalace" function which does the following: -Associated the new "CanAccessLateSwampPalace(have)" to the requirements for the two chests in the flooded room, and the one in the hidden waterfall door room.

This new function performs the following checks: -Checks that you have the hammer -Then it checks for the big key in any of the other chests in Swamp Palace that don't require the hookshot. If they have it, it proceeds. If the big key isn't there, then: -If none of them have the big key THEN it checks if you have the hookshot -If you have access to the hookshot it then makes sure that it's not in the big chest.

I took this new function and chest associations and put them into the original v7 code (instead of my fork) and regenerated the original seed (C5532622) with this being the ONLY modification to the code from v7 and the hookshot was still in the big chest but the Big Key moved to the Big Key chest. I created 100 more seeds, all of which created without any Randomization Exceptions and the big key was all over Swamp Palace, including the three late-dungeon chests. This should be a more solid fix for Issue #267