Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: Ensure Mido is in the forest to be able to show sword and shield #2384

Merged
merged 2 commits into from
Jan 23, 2023

Conversation

Archez
Copy link
Contributor

@Archez Archez commented Jan 23, 2023

The way we were handling Mido's spawn in rando was not accounting for dungeon entrance randomizer with closed deku/forest.

Dungeon entrance rando requires Mido to see sword & shield for adult Link to have access to the Deku Tree entrance. However, if you found Deku Tree and defeated Ghoma before talking to Mido, then the randomizer inf flag for deku tree clear would be set and Mido would not spawn, softlocking the Deku Tree entrance for adult.

This PR adjusts the logic to keep Mido in the forest until you have shown the sword and shield, and you have either obtained Zelda's letter or the deku tree is dead. This way you can always open the deku tree entrance. A check in his text was also added to bypass the "deku tree is dead" dialog so that the sword and shield dialog can run instead. This also fixes where Mido would not spawn in the forest, or in his house as child.

This matches what N64 and 3ds rando does for Mido.

Build Artifacts

@@ -372,8 +372,8 @@ u16 EnMd_GetTextKokiriForest(PlayState* play, EnMd* this) {
this->unk_208 = 0;
this->unk_209 = TEXT_STATE_NONE;

if ((!gSaveContext.n64ddFlag && CHECK_QUEST_ITEM(QUEST_KOKIRI_EMERALD)) ||
(gSaveContext.n64ddFlag && Flags_GetRandomizerInf(RAND_INF_DUNGEONS_DONE_DEKU_TREE))) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is the idea here to never check for RAND_INF_DUNGEONS_DONE_DEKU_TREE anymore?

Copy link
Contributor Author

@Archez Archez Jan 23, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this spot (the text fetching) the idea is to just never display the "deku tree is dead" dialog, since Mido shouldn't ever be in the forest at this point. This way, if you have the kokiri stone, but haven't open deku yet, you still can.

Regarding the spawn logic. I could see replacing the EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD with RAND_INF_DUNGEONS_DONE_DEKU_TREE instead, since technically EVENTCHKINF_OBTAINED_KOKIRI_EMERALD_DEKU_TREE_DEAD is set on save init for open & closed deku. So the RAND_INF check replicates the same intent (deku tree clear).

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since Mido shouldn't ever be in the forest at this point.

gotcha, if that's the change then this should be all good

@briaguya-ai briaguya-ai merged commit cb5faa1 into HarbourMasters:develop Jan 23, 2023
@Archez Archez deleted the fix-mido-spawn branch January 23, 2023 19:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants