Skip to content

Change Ruto door drop to Big Octo room only#2576

Open
djevangelia wants to merge 1 commit into
OoTRandomizer:Devfrom
djevangelia:rutodoor
Open

Change Ruto door drop to Big Octo room only#2576
djevangelia wants to merge 1 commit into
OoTRandomizer:Devfrom
djevangelia:rutodoor

Conversation

@djevangelia

Copy link
Copy Markdown

When Big Octo room visited, make player only drop Ruto when opening a door to Big Octo room. Fixes #2136.

The original fix hooks the init function of the overlay for Jabu-Jabu BG actors, to force player to drop on actor init. It hooked early, so it pretty much affected doors to any room that has a Jabu-Jabu BG actor. It has now been moved to only the case JABU_OBJECTS_TYPE_BIG_OCTO_PLATFORM.

I think this could be done prettier by doing something in z_door_shutter - check if type is DOORSHUTTER_STYLE_JABU_JABU, which rooms etc, to not let player even try to open the door. If someone wants to try a project.

I also edited the function to kill Demo_Effects actor slightly which is why I have it in the video link.

Disassembly

Matching disassembly for BgBdanObjects_Init here
Decomp code here

Testing

Tested on Ares recent nightly build and Project64 3.0.1.
Looks like this: https://www.youtube.com/watch?v=yuVTWSU08nA

@fenhl fenhl added Type: Bug Something isn't working Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it labels May 16, 2026
@fenhl

fenhl commented May 16, 2026

Copy link
Copy Markdown
Collaborator

I didn't realize the old hack applied to all these doors. What causes it to trigger? I've never noticed Ruto being dropped when going into rooms 1 or 14.

@r0bd0g

r0bd0g commented May 16, 2026

Copy link
Copy Markdown

After thinking about it harder, I mean I've tried, but I still can't think of any way that this could dead-end you in glitchless logic? You might be logically expected to throw Ruto at enemies, but in theory if you've been to Big Octo you should have the Boomerang? (I guess non-repeatable access or some crazy trick to get to Big Octo can still get you into trouble.)

@djevangelia

Copy link
Copy Markdown
Author

I didn't realize the old hack applied to all these doors. What causes it to trigger? I've never noticed Ruto being dropped when going into rooms 1 or 14.

  • Enter a room that loads an ACTOR_BG_BDAN_OBJECTS actor (i.e. background actor of Jabu-Jabu: Big Octo platform, elevator, waterbox height changer, falling platform), which causes check to run
  • Big Octo visited flag is set

So, with this fix, the check is only run in case of Big Octo platform actor type.

I ran around a bit with a visual indicator at the place of the original fix. "jabudoor" means that there is a Jabu actor in the room, i.e. Ruto would have been dropped. https://www.youtube.com/watch?v=x-kSk7u1Vok

@fenhl

fenhl commented May 16, 2026

Copy link
Copy Markdown
Collaborator

I see, I missed the fact that the hack only applies after Big Octo has been visited, thanks for clarifying.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Type: Bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Hack to make Link drop Ruto applies to all doors in that room

3 participants