Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Conversation

eternalcode0
Copy link

Added "Open + Ped" goal. Makes the DHC open and requires you to activate pedestal from within the DHC sanctuary.

This probably still has some problems with Pedestal Items and the DHC BK Reward settings. I haven't fully tested them with all 5 goal settings yet.

Added "Open + Ped" goal. Makes the DHC open and requires you to
activate pedestal from within the DHC sanctuary.

This probably still has some problems with Pedestal Items and the DHC
BK Reward settings. I haven't fully tested them with all 5 goal
settings yet.
All_Requirements_Met; `ALLREQUIREMENTS`; requirementPrizeItem:Define:FirstByte, requirementPrizeSub:Define:SecondByte; Helpers.GotSwords `GOTELEMENTS` `DHC_FIG` `DHC_AD`; `REQREWARD`

!ifdef - OPENPED
AccessDHC; Helper;;
Copy link
Author

Choose a reason for hiding this comment

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

Not sure if this is the right way to set the DHC access or if it's the only rule that needs updating

Copy link
Contributor

Choose a reason for hiding this comment

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

It would be better to follow this up with an !else block that handles the stuff from lines 3772 to 3782. Otherwise the AccessDHC would get overwritten. (Or actually I am not sure what would happen, it might somehow add 2 locations with the same name, but in either case this is undesired behavior.)

#ifdef noDHC
String("pull the pedestal.")
#ifdef vaatiWarp
String("pull the pedestal and"); BYTE 0x0A; String("defeat Vaati in sanctuary."); BYTE 0x0A;
Copy link
Author

Choose a reason for hiding this comment

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

Added a clear location for vaati to differentiate between the vaati in sanctuary (vaatiWarp) or regular dhc vaati.

Copy link
Contributor

Choose a reason for hiding this comment

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

We need to be careful with the line breaks at the end of lines 88 and 99 here, they would cause an empty line to be drawn. The texts are good!

BYTE mC81 mC82 mC83 mC84 mC85 mC86 mC87 mC88 mC89 mC8A mC8B mC8C mC8D

dhcGuards:
BYTE 0x02 // move the dhc guards out of the way of the south entrance
Copy link
Author

Choose a reason for hiding this comment

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

Always moved the guards since they don't particularly impact anything except the vaatiWarp and openPed goals

Copy link
Contributor

Choose a reason for hiding this comment

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

Tiny nitpick: With Normal DHC, you can normally see the guards afer pulling the pedestal, and they only disappear after reaching the entrance room (which is the vanilla behavior). It's only visual in Rando, but I think it would be nice to retain that, which could be achieved my putting line 27 inside an #ifdef noDHC.

@eternalcode0
Copy link
Author

I started this branch from my old Fast Vaati branch since the staging branch was giving me logic parse errors at the time that I created it. I'll solve the merge conflict when that's resolved on stanging (unless it's an issue with my environment, in which case I have no idea why)

#undef noDHC
#endif

// Remove the check for already watched the stained glass cutscene so that it's repeatable
Copy link
Contributor

Choose a reason for hiding this comment

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

This is not the best placement for this block, since the code below this can unset openDHC which could lead to unexpected behavior. Could you move this further down?
Additionally, have you made sure this cannot be used to win the game with the Open DHC option where you are supposed to beat Vaati? Either way, I think a define specific to ped goals should be used for the condition here instead of openDHC.

Copy link
Author

Choose a reason for hiding this comment

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

I can move this block to a dedicated #ifdef pedGoal since that's defined for both openDHC and openPed.
This line only removes the check !CheckLocalFlag(0x78) in sub_StateChange_Sanctuary_StainedGlass making the vaati cutscene repeatable after watching it. It's not tied to the triggering the goal itself. The goal code starts at line 70 and is only changed to be applied to when pedGoal is defined (openDHC + openPed).


!ifdef - OPENPED
AccessDHC; Helper;;
!define - DHCBK - Items.Rupee5
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 intention to make Vaati inaccessible by removing the DHC Big Key?
This line only removes the DHC Big Key from the vanilla location if Big Keys are set to Vanilla. With other settings it would still get placed like normal, for that it would have to be removed from the item pool. The Requirement Reward can also still give you the Big Key (and this is used as a small "hack" for Mystery because getting the DHC Big Key in this way may for the first time reveal that the requirements of the seed are met even if the key itself is completely useless, so changing the behavior here would break this trick). And for Removed Big Keys, the DHC door should be excluded (search for !eventdefine - dhcBigDoor).
Unfortunately there are a lot of things to consider here.
Maybe the cleanest solution would be to replace the DHC Big Key door with a permanently closed door, then we could even leave the DHC BK in the game in all settings because it would be useless, just like we do with Removed DHC. The only other needed change then would be the Removed Big Key thing which is an easy change.

Copy link
Author

Choose a reason for hiding this comment

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

Yes, the intention was to make Vaati completely unreachable. I figured removing the DHCBK was the easiest way to do it. My concern was that since DHC would still be open players would still be able to fight vaati and trigger the credits even thought that wasn't their set goal. Personally, I'd prefer to have vaati still fight-able but maybe disable the credits sequence when fighting him. I wasn't sure what the implications of that would be or even whether others would prefer that so I left the solution as it is now.
I agree that there's a lot more to consider. I'll try to play around with other possibilities to see if I can permanently close the door or remove credits on vaati.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think making Vaati fightable without ending the game would cause a lot of confusion, unless there was a very clear indication for this in the game. So I'd prefer if he wasn't fightable in this mode (or maybe only after the game has already been beaten).

@Catobat
Copy link
Contributor

Catobat commented Aug 10, 2025

I started this branch from my old Fast Vaati branch since the staging branch was giving me logic parse errors at the time that I created it. I'll solve the merge conflict when that's resolved on stanging (unless it's an issue with my environment, in which case I have no idea why)

This is unfortunately caused by a recent merge. It will be fixed in #103 . In the meantime for testing, it should be sufficient to set Small Keys to Universal.

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.

2 participants

Morty Proxy This is a proxified and sanitized view of the page, visit original site.