Skip to content

Shuffle Dungeon Doors#5105

Draft
serprex wants to merge 1 commit intoHarbourMasters:developfrom
serprex:doorsanity
Draft

Shuffle Dungeon Doors#5105
serprex wants to merge 1 commit intoHarbourMasters:developfrom
serprex:doorsanity

Conversation

@serprex
Copy link
Contributor

@serprex serprex commented Mar 4, 2025

WIP

This implements a mechanism to reroute doors in dungeons. Sliding doors with bars can be weird, need to fix. Lots of jank. Needs testing

Mixing doors between dungeons still needs to sift out some FW like logic. Also gets messy with any cross room temp flags

Build Artifacts

this->dyna.actor.room =
play->transiActorCtx.list[(u16)this->dyna.actor.params >> 0xA].sides[(vec.z < 0.0f) ? 0 : 1].room;
if (room != this->dyna.actor.room) {
/*
Copy link
Contributor Author

Choose a reason for hiding this comment

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

commented this out because doors were reacting to this & unloading the new destination

Need to replace this hack with VB

@serprex serprex force-pushed the doorsanity branch 3 times, most recently from 7dac7a6 to a588848 Compare March 9, 2025 23:51
@serprex serprex changed the title Doorsanity Shuffle Dungeon Doors Mar 10, 2025
@serprex
Copy link
Contributor Author

serprex commented Mar 11, 2025

Logic needs work:

  • bidirectional logic (often comes up in vertical rooms)
  • making sure key requirements are on both sides of door
  • forest temple straightened/twisted
  • Jabu Ruto access (especially mixed)
  • general temp flag jank (especially mixed)
  • water temple water level logic
  • I think fire temple lava room leading to bridge above fire temple lava room causes duplicate actors to load
  • sliding doors with bars have very weird behavior, I think code needs to unbar any sliding doors when leaving room & they can rebar when entering if their trigger is still around
  • void warp reset point
  • sliding doors offsets need to be adjusted, right now if a sliding door is mapped to itself the player teleports too close to the door for it to close immediately, also want player teleported in front of any obstacles blocking door
  • pretty sure at least one forest temple door has wrong data since I experienced voiding after going through a door, general correctness of door table needs to be tested

Ganon's Castle is a bit interesting despite its boring layout because it effectively forces doing a couple trials even when trials skipped based on how many rooms it puts between entrance & lobby. That'll potentially make GC keys valuable outside trials / pots

@serprex serprex force-pushed the doorsanity branch 3 times, most recently from 3b51d1d to 20357c2 Compare March 14, 2025 05:00
@serprex serprex mentioned this pull request Mar 15, 2025
serprex added a commit to serprex/Shipwright that referenced this pull request Mar 16, 2025
Split out a few fixes I've made while working on HarbourMasters#5105
serprex added a commit to serprex/Shipwright that referenced this pull request Mar 16, 2025
Split out a few fixes I've made while working on HarbourMasters#5105
@serprex serprex force-pushed the doorsanity branch 2 times, most recently from a0d687f to 19081f1 Compare March 18, 2025 16:56
serprex added a commit to serprex/Shipwright that referenced this pull request Mar 18, 2025
Split out a few fixes I've made while working on HarbourMasters#5105
aMannus pushed a commit that referenced this pull request Mar 19, 2025
* Some location access fixes

Split out a few fixes I've made while working on #5105

* assert false

* IC feedback
@serprex serprex force-pushed the doorsanity branch 5 times, most recently from 84bb3d5 to 3f2f5bd Compare March 27, 2025 03:26
@serprex serprex force-pushed the doorsanity branch 2 times, most recently from 236c03a to 0dafb6e Compare April 3, 2025 13:34
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.

1 participant