Commit Graph

3480 Commits

Author SHA1 Message Date
Jordan Longstaff 2c5762a0f2 [Enhancement] Dampe's Race awards both rewards at once (#6980) 2026-07-25 23:07:07 +00:00
Jordan Longstaff f9512bf446 Ingo Race: skip rematch (#6991) 2026-07-25 14:45:42 +00:00
Jordan Longstaff bfaec6be7f Fix Horseback Archery Instant Win glitch (#6985) 2026-07-25 14:17:41 +00:00
louist103 27e6fe015c Add ASAN cmake option (#6981) 2026-07-25 14:05:12 +00:00
Christopher Leggett 90c6b34e8f BetterSaveMenu: Less redundant override and run exit and load hooks (#6984)
Running the OnExitGame and OnLoadGame Hooks fixes some interactions this menu had on the Check Tracker and the Available Checks system.
OnLoadGame overwrote the menu's changes to the next entrance override which were needed for Return to Spawn to work correctly, so I needed to add a new gSaveContext flag for it so that the menu code can set the spawn entrance after all the other entrance overriding code has executed. This also allows any future changes to `Entrance_SetSavewarpEntrance` to take effect when using this menu.
2026-07-25 14:02:31 +00:00
Jordan Longstaff 2b35211956 [Enhancement] Award both prizes for high score in Horseback Archery (#6982) 2026-07-25 14:01:44 +00:00
Mark Eldridge 783139310a Rando: Mark checks as seen in the Check Tracker from explicit item hints (#6946)
Only apply with clear hints & when hint is for a unique RHT
2026-07-25 01:12:02 +00:00
Philip Dubé c4e92a70f4 Constant-size texture scroll display lists via G_SETTILESIZE_LERP (#6902)
Rewrite Gfx_TexScrollEx / Gfx_TwoTexScrollEx / Gfx_TwoTexScrollEnvColorEx to
emit one command per tile instead of one baked tile size per interpolated frame,
so texture DL memory no longer scales with InterpolationFPS
2026-07-24 18:35:24 +00:00
Jordan Longstaff 5af79defb6 Ingo Race Once: add option to skip both races (#6975) 2026-07-24 16:30:08 +00:00
Jordan Longstaff 9d1e5d2811 Hookify Lost Woods Ocarina game (#6976) 2026-07-24 16:28:36 +00:00
Christopher Leggett 44909ab230 Rando: Adds Bombchu Refills to junk pool if drops are on (#6949)
Also lock junk chus behind bombchu bags being on

Exclude RG_BOMBCHUS_20 from junk pool for balancing
2026-07-24 16:26:52 +00:00
djevangelia 3c565ed6e6 Vanilla bugfix, allow fishing with blank B (#6826) 2026-07-24 16:24:56 +00:00
Philip Dubé 581af47419 Fix typos (#6978) 2026-07-24 15:19:36 +00:00
Philip Dubé da4e6dc332 Progressive Shuffle Open Chest (#6971) 2026-07-23 23:35:41 +00:00
Jordan Longstaff cca66cdc5d Hookify Shooting Gallery options (#6972) 2026-07-23 23:33:50 +00:00
Jordan Longstaff af8cac9e6b Move minigame hooks into Minigames folder (#6973) 2026-07-23 21:55:37 +00:00
Jordan Longstaff 5c55c01c68 Hookify frogs' Ocarina game (#6969) 2026-07-23 21:48:46 +00:00
Jordan Longstaff 35dcba5944 [Enhancement] Ingo Race Once (#6965) 2026-07-23 05:33:04 +00:00
Mark Eldridge c71203ad06 Respect the Better Save Menu enable toggle (#6970)
RegisterBetterSave registered its VB_LOAD_SAVE_MENU and VB_DRAW_SAVE_MENU
hooks unconditionally, and hardcoded the save/continue text overrides to
`true`, so the feature applied regardless of the enable checkbox and
toggling it off did nothing. CVAR_BETTERSAVE_VALUE was defined but never
read.

Gate all five hooks on CVAR_BETTERSAVE_VALUE (COND_VB_SHOULD for the two
vanilla-behavior hooks, the condition arg for the three OnOpenText hooks).
RegisterShipInitFunc already re-runs RegisterBetterSave when CVAR_BETTERSAVE
changes, so the COND_* macros unregister the hooks when it is off and
re-register them when it is on.

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-23 05:32:32 +00:00
Jameriquiah 23685ce11f bump lus (#6966) 2026-07-23 04:01:28 +00:00
Jordan Longstaff 236c9c81f5 Hookify Bombchu Bowling options (#6968)
Cuccos get destroyed when options turned on
2026-07-23 03:56:43 +00:00
Christopher Leggett cf7e8022b0 Fix some issues found with the BetterSaveMenu (#6963)
Fix starting health and music bugs with BetterSaveMenu
Better interaction with RememberSaveLocation
2026-07-22 16:14:23 +00:00
David Racine 92afa81441 Fix a crash when opening the debug menu with a corrupted savegame (#6958) 2026-07-22 13:50:40 +00:00
djevangelia fb657cc5d5 Savestates, more AudioOcarina serialization (#6954) 2026-07-22 13:48:10 +00:00
Philip Dubé d62c5879aa Fix problems with Zelda's Letter & Weird Egg hatching (#6962) 2026-07-22 12:24:31 +00:00
djevangelia 6f14e7b162 Restoration, fix Japanese subtitle + MQ logo (#6953) 2026-07-22 10:21:32 +00:00
Pepper0ni 848106039d fix climb requirements for MQ DC Torch room (#6950) 2026-07-21 02:29:07 +00:00
Philip Dubé 29285ed200 Move AddElementsToPool/ElementInContainer to ShipUtils as generic utilities (#6948) 2026-07-20 13:31:22 +00:00
Philip Dubé a236e9ec84 randomizer/rng.h (#6947) 2026-07-20 13:13:02 +00:00
Philip Dubé 1ea7206073 Shuffle Zelda's Letter (#6938)
Removes RSK_SKIP_CHILD_ZELDA & RSK_KAK_GATE,
these are managed by RSK_SHUFFLE_ZELDAS_LETTER & RSK_STARTING_ZELDAS_LETTER & RSK_SHUFFLE_WEIRD_EGG
2026-07-19 22:37:45 +00:00
Philip Dubé cb974d123f Fix Sail network hooks (#6944)
isConnected is constant, unnecessary. IsSaveLoaded is inappropriate for OnLoadGame/OnExitGame
2026-07-19 21:09:17 +00:00
djevangelia 2c9187f27a Bugfix, make CC invisible Link equips invisible (#6926) 2026-07-19 20:52:22 +00:00
djevangelia 9d42aedc9c Bugfix, make entrance tracker track blue warps (#6888) 2026-07-19 20:51:04 +00:00
Philip Dubé d3dc95d8f5 cleanup region names (#6943) 2026-07-19 20:34:58 +00:00
djevangelia e579e7b9a4 Polishing, climb everything door opening + sloped ledge climb up (#6936)
Allow player to try opening doors while climbing. Player can't open anything if a door doesn't offer it, so it's ok to try. Handle doors don't change player y position (player walks in the air), so manually lower it.
    Increase y height limit for doors to offer open from 15.0f/20.0f to 50.0f (normal door height). (For shutter doors height could be individualized depending on shutter door type in the future.)
    Make climbing up animation play even for sloped ledges. The animation/action breaks because game thinks player is not on ground. So, at the end of Player_ProcessSceneCollision, if player is in climbing up action, manually set BGCHECKFLAG_GROUND.
2026-07-19 17:04:32 +00:00
Christopher Leggett 8cb0c74592 Better Save Menu: Ability to Reset to Spawn from anywhere (#6937)
Adds an option for a Better Save Menu that, after saving, allows you to effectively soft-reset the current save (either return to spawn or reset to the dungeon entrance), and additionally lets you reset to spawn specifcally, even if you are in a dungeon. This allows for escaping from the rare entrance-rando related softlock that can happen.
2026-07-19 17:01:50 +00:00
djevangelia 29d4ff4205 Decomp, update AudioOcarina (code_800EC960.c) (#6941) 2026-07-19 16:54:43 +00:00
Mark Eldridge 81009e9dce Rando: Hint tracker journal improvements (#6934)
Journal ranking of not-yet-obtainable major items.
The Journal ranks item hints by item category, but the rank lookup called
Context::GetFinalGIEntry with checkObtainability = true. For any hinted item
that isn't currently obtainable, that helper substitutes a blue rupee, so
genuine major items (e.g. Anju's Lens of Truth while adult) were categorized
as junk and sorted below Pieces of Heart and Gold Skulltula Tokens.

Pass checkObtainability = false so hints rank by the true placed item's value
regardless of current reachability. Ice-trap disguises still rank as their
cover item (handled by the separate overrides path in GetFinalGIEntry), and
Mysterious Shuffle still disables the ranking.

Follow-up fix to the in-game Hint Tracker feature.

Add found-item handling to the Hint Tracker Journal.
Once every location an item hint points at has been collected, the hint is
"found": it sinks to the bottom of its group, renders dimmed with a tick
prefix, and can be removed entirely via a new "Hide Found Items" toggle. A
"Found (collected)" colour picker sets the dim colour.

Only item and item-area hints in the Journal are affected; Way of the Hero,
Foolish and area hints are untouched, and the Locations view is unchanged.
Found state is derived from each location's collection status
(ItemLocation::HasObtained), so no new save data is introduced.

Make Hint Tracker settings searchable, matching the Check Tracker.
The Check Tracker registers its checkbox settings as searchable menu widgets
(WidgetInfo + AddSearchWidget); the Hint Tracker only did so for its colours
and window type, leaving every checkbox reachable only from the dedicated
settings window. Convert the checkboxes (Enable Dragging, Only Enable While
Paused, Expand/Collapse Buttons, Search Input, Hint Totals, Hide Found Items)
to the same searchable widget pattern. The Font Size slider stays inline, as
the Check Tracker leaves its own font slider inline too.

Items group out into the seven categories. The tier collapse functions are replaced
by a single label lookup in ItemCategoryRank order, and the type-priority
key scaling grows from 4 to 8 slots to fit the extra groups.

Category labels reuse the established translations from the hint text
tables. Mysterious Shuffle still keeps the single "Items" group.
2026-07-19 14:46:48 +00:00
djevangelia dfaed90868 Savestates, player serialization (#6927) 2026-07-18 18:10:01 +00:00
Jameriquiah 8e810fb963 cleanup redundant code + fix waist dl (#6928) 2026-07-18 18:08:39 +00:00
djevangelia 033613a6cf Vanilla bugfix, ladder cutscene softlock (#6804) 2026-07-18 15:02:59 +00:00
Philip Dubé 585530f68d Fix mixed up StartingItemGive between Weird Egg & Zelda's Letter (#6921) 2026-07-13 15:32:37 +00:00
djevangelia 852fb86cf2 Rando, prevent carrying abducted Ruto into Bigocto room (#6845)
If Ruto enters Bigocto's room after she has already been abducted, the room behaves weird due to actor functions. Randomizer respawns Ruto after abduction, so this can become a problem.

The easiest solution is probably to just not let player open doors to Bigocto room while carrying Ruto after abduction.
This fix makes shutter doors in randomizer when offering player to open the door - check scene, abduction flag, if door is transition actor index 21 or 3, held actor, and if held actor is Ruto.
Looks like this: https://www.youtube.com/watch?v=2Siq2Z41Pqo

The shutter door in decomp and thus this fix uses macros that are missing here, I copied all of them to the corresponding place in actor.h as they are very useful for actor params and will be added anyway when/if code is synced with decomp.
2026-07-13 15:32:10 +00:00
djevangelia d1d6a564e5 Bugfix, grotto boulder block respawn from water voidout (#6854) 2026-07-13 15:02:11 +00:00
djevangelia 80fb8a8aa5 Bugfix, restore A alpha on pause menu age change (#6853) 2026-07-13 12:19:31 +00:00
David Racine fdb7e194cc fix(audio): bounds-check fontId to stop OOB crash with large SAF packs (#6916)
AudioLoad_IsFontLoadComplete had a stub `return true` that bypassed all
load-status checks, masking an out-of-bounds write: for large SAF packs
(many custom sequences) SetFontLoadStatus indexed fontLoadStatus[] with
fontId values larger than the fontMapSize-sized array, causing heap
corruption and semi-random crashes.

Remove the stub. Add a (size_t)fontId >= fontMapSize guard in both the
check and the setter: out-of-range IDs (custom SAF sequences that carry
no associated soundfont) are treated as "loaded" in the check and
silently skipped in the write, matching prior observable behavior while
eliminating the OOB access.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-13 12:12:43 +00:00
Philip Dubé ff7eb482d4 Don't point free cam at sky coming out of crawlspace (#6920) 2026-07-13 04:56:00 +00:00
Philip Dubé de8edbf136 Fix presets, regressed from LACS decoupling (#6919) 2026-07-13 04:22:04 +00:00
Shishu the Dragon ed7e4d0293 Rando: UX improvements of Locations page (#6817) 2026-07-13 04:11:18 +00:00
Philip Dubé 29948f27a1 take nlohmann::json by const reference instead of copying (#6918) 2026-07-13 02:49:01 +00:00