Commit Graph
8 Commits
Author SHA1 Message Date
Kevin Cathcart 60eafcaf46 Fix the dark world
Restore fake world fix to previous position

Change how the FixBunnyOnExitToLightworld Code works, and where it is
called from
2018-02-10 22:05:44 -05:00
Kevin Cathcart 0c72ca9e0e Fix not being bunny after defeating aga2 w/o moon Pearl 2018-02-07 01:56:51 -05:00
Kevin Cathcart 16259ce158 Add light world check to more unbunny-ing code
This time the code that tries to unbunny you when leaving a dungeon.This
is needed to make ER's new cross world connects work properly.

Move the fake world fix to happen in time for this.
2018-02-07 01:56:50 -05:00
Kevin Cathcart 3764deb4d3 fix Alt Door frame table
(Apparently trailing commas break things)
2018-02-05 00:11:16 -05:00
Kevin Cathcart b3d8c23d89 Add door frame data for the multi-entrance caves. This will support
mixing single and multi-entrance caves.

I also added the alternate door frame table, which is needed for having
single entrance caves at
Sanctuary and Hyrule castle. (Added as a table rather than hard coding
the ids in order to be more friendly to level editors).

Updated the comments and function name to be clear that we are tracking
the overworld door
id, not the entrance id.

Remove the code that attempts to clear the entrance because the code is
broken (it lacked a needed ".w" suffix, so xkas miscompiled it) meaning
the value was never cleared, which has not caused any issues. Also
having the entrance ID around is generally useful.
2018-01-21 15:31:16 -05:00
Kevin Cathcart 29b44e4167 Create a flag to toggle off Fake Worlds
Add a new rom flag to disable fake Light/Dark worlds from occurring as a
result of underworld travel. (Other methods of fake worlds like YBA Fake
Flute are not changed).

Entrance Randomizer intends to use this flag to fix the Fake Light world
from traveling though sewers when Hyrule Castle is in the dark world, as
well as to implement new shuffle modes that involve deliberate
cross-world caves without needing to grant pearl and mirror like the
current insanity mode does.
2018-01-20 13:42:10 -05:00
Kevin Cathcart 55473a4d01 GT in Kakariko music fix
This fixes music stopping partway up GT when
the player encounters a "PsychoSoldier" (MathOnNapkin's name). Both types
of this sprite sharethe same audio code. They have code to play special
music if chasing link in Kakariko. That is fine in vanilla or item
rando, but if they try to play this music in a dungeon located in
kakariko, this will cause the music to just stop, because that song is
not avaiulable in the dungeon music bank.

This patch fixes this by adding an extra check to make sure we are in
the overworld before playing this song.
2018-01-20 11:21:00 -05:00
Kevin Cathcart bf2b119748 Fix music in Entrance Randomizer
This commit fixes the wrong music when leaving certain caves bug in
Entrance Randomizer.

The vanilla games decides what music to play when re-entering the
overworld in code in `PreOverworld_LoadProperties`. One of the main
things the game uses to decide the correct music is the overworld screen
being loaded. Obviously that is ideal. But it also sometimes bases its
decision on the underworld screen you are leaving.

Why would they do that? Well some screens can be re-entered from
houses/etc that play at half volume. Nintendo did not want to have the
music restart from the begining when leaving those locations, so they
explictly coded the non-half-volume locations to set the music for that
screen, and let the half music volume cases fall though, and get handled
by a special case later in the process.

There is a better apporach though. Simply determine what music should be
playing for this overworld screen, looking only at the overwold screen
index. Then see if "half-volume music" is the last played song command.
If so, check what the actual song playing is. If it matches song for the
overworld screen we are entering, then play the full volume command.
Otherwise play the song for the screen we are entering (which by virtue
of being a new song will always play full volume).

This patch implements that better approach. It basically moves the music
selection code from `PreOverworld_LoadProperties` into the custom code
bank, removes the checks for specific underworld locations, and makes
sure the last bit of code run before actually setting the music is the
one to handle half music, as described above.
2018-01-20 11:20:59 -05:00