Skip to content

New option for Kokiri forest : Deku opens automatically - #2632

Merged
fenhl merged 5 commits into
OoTRandomizer:Devfrom
GSKirox:fast_deku
Sep 27, 2026
Merged

fenhl merged 5 commits into
OoTRandomizer:Devfrom
GSKirox:fast_deku

Conversation

@GSKirox

@GSKirox GSKirox commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator

When selecting this new KF option, Mido will move by himself from blocking the way to Deku Tree when the player finds a Kokiri Sword while already having a Deku Shield in their inventory, or finds a Deku Shield while already having a Kokiri Sword inventory.
Additionally, in Dungeon Entrance shuffle this means the Deku Tree entrance opens automatically when finding the second of these items, without needing to go talk to Mido as child.

This one was not handled by a new GI, and just implementing the relevant functions in item_table instead to display the right textbox and set the flag. There is sadly a case this could not handle and it is buying an unshuffled deku shield from a shop, since this is not handled by the item table routines. The (not great) solution i used is to add a hook to handle the deku shield get directly in the generic get_item function.

As with the Ruto's letter option, there is special code to handle the case where the second item was found in Kokiri Forest to either move Mido or open the Deku tree mouth instantly without needing a scene reload.

Testing

Testing mainly done on Retroarch with Parallel core.

@r0bd0g

r0bd0g commented Sep 19, 2026 •

Copy link
Copy Markdown

"Showed Mido Sword & Shield" is a named event which is allowed to be in more than one region. You don't need to funnel it down like you did with Deliver Letter, which was a location and not an event. (It also doesn't need to be on the root if you don't want it to be since the existing events are reachable from all regions where the event is relevant, but putting the new stuff on the root might be cleaner since you wouldn't need to duplicate the new logic across both sides of Mido.)

@GSKirox

GSKirox commented Sep 19, 2026

Copy link
Copy Markdown
Collaborator Author

And here i thought i was learning from my mistakes :')

@r0bd0g

r0bd0g commented Sep 19, 2026 •

Copy link
Copy Markdown

After thinking about it some more though I think having the event on the root for the new logic makes sense even if it's not entirely necessary to do it like that.
And I guess you can see there's already an event there covering a pretty similar situation with the automatic gate open on Zelda's Letter.

@GSKirox GSKirox added Type: Enhancement New feature or request Component: Logic Non-trivial changes to the JSON logic files Component: ASM/C Changes some internals of the ASM/C libraries Status: Needs Review Someone should be looking at it Component: Setting specific to setting(s) Component: Patching Affects the patching of the ROM labels Sep 19, 2026
@r0bd0g

r0bd0g commented Sep 20, 2026 •

Copy link
Copy Markdown

Okay so it's a little bit strange that we've add an event to the root AND added fast deku to both copies of the event in Kokiri Forest. You gotta pick a side.

@r0bd0g

r0bd0g commented Sep 21, 2026

Copy link
Copy Markdown

That's even MORE code what is happening lol. You don't need to confirm settings on the ones in Kokiri. You know what don't worry about it.

@GSKirox

GSKirox commented Sep 21, 2026 •

Copy link
Copy Markdown
Collaborator Author

Oh i thought you meant fast deku was going to be set by both root and Kokiri forest events, so i just cleanly seperated them so that root take cares of fast deku only, and the KF ones take care of closed deku/forest only.

@flagrama

Copy link
Copy Markdown

I think that is what he meant. But if fast is already handled by root, then you don't need to specify the settings. The event is already True so the contents of it get skipped if fast, or is still False so is read if not fast.

@r0bd0g

r0bd0g commented Sep 21, 2026 •

Copy link
Copy Markdown

We did it!
(At no point in any of this was the logic actually bugged. Like, it still worked in every iteration lol.)

@fenhl fenhl removed the Status: Needs Review Someone should be looking at it label Sep 27, 2026
@fenhl fenhl added this to the next milestone Sep 27, 2026
@fenhl
fenhl merged commit b9291e9 into OoTRandomizer:Dev Sep 27, 2026
6 checks passed
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 Component: Logic Non-trivial changes to the JSON logic files Component: Patching Affects the patching of the ROM Component: Setting specific to setting(s) Type: Enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants