Commit Graph

4228 Commits

Author SHA1 Message Date
Philip Dubé 04ccd608b3 Fix equipping sword over swordless while fishing/riding (#7222) 2026-09-20 03:45:53 +00:00
Philip Dubé 5fee87c23e Replace tabs with spaces (#7223) 2026-09-19 18:09:26 +00:00
Philip Dubé 27a66925bf Add restoration for hookshot as child to softlock (#7219)
Requested for speedrun mode

Also hookify more enemy rando stuff while I'm in the neighbourhood
2026-09-19 14:00:06 +00:00
Philip Dubé 2bc50f6056 Fix deep slope vs double cell carpenter mix up (#7220) 2026-09-19 03:50:49 +00:00
Philip Dubé a353b6e7ce Shuffle Scarecrow Song (#7205) 2026-09-18 14:54:24 +00:00
Philip Dubé 02c7632a33 Fix boolean logic error breaking Talon cutscene skip (#7211) 2026-09-17 02:09:18 +00:00
Philip Dubé 01a4f3693d Refactor file select quest visibility, fix single quest handling (#7210)
Select single visible quest when only single quest visible

Fix bad operator precedence
2026-09-17 00:15:19 +00:00
David Racine c9e3ef7652 Interrupt espeak on a new utterance (#7207)
The SAPI and AVSpeechSynthesizer backends both drop what they are saying when
a new utterance arrives (SPF_PURGEBEFORESPEAK, stopSpeakingAtBoundary). espeak
never did, so on Linux every menu item scrolled past queued another utterance
with no way to skip ahead.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
2026-09-17 00:13:59 +00:00
Philip Dubé e628cf0574 refactor blue fire arrows (#7209)
check damage flags instead of actors, original way could run into issues with actor unloading
2026-09-17 00:05:52 +00:00
Jordan Longstaff ae62048910 Hookify three Glitch Restoration options (#7200) 2026-09-16 18:15:17 +00:00
Jordan Longstaff aff03cd7b8 Hookify Mweep cutscene options (#7199) 2026-09-15 16:56:25 +00:00
Philip Dubé 4bd2356b11 QuickBossDeaths.cpp (#7192)
Phantom Ganon was only QuickBossDeaths skip, Twinrova only had rando / boss rush hack
2026-09-15 15:06:38 +00:00
Philip Dubé 4c04c7615f Save editor flag improvements (#7198)
1. clicking on flag name toggles checkbox
2. hovering over player state shows flag name
3. add search box for player state, adjust names to what headers call them
2026-09-15 00:59:12 +00:00
Malkierian 034bf5f3c7 Swap Logic combobox for No Logic checkbox. (#7196)
Rename All Locations Reachable to All Checks Reachable.
Rename Locations section to Check Locations.
Properly fix checkbox/radio button label wrapping.
2026-09-14 23:53:03 +00:00
Pepper0ni 31ba9e2069 fix fire boss typo (#7195) 2026-09-14 23:51:06 +00:00
Philip Dubé 060787a239 clean up headers (#7194)
GameInteractor.h does not itself depend on libultraship/bridge/consolevariablebridge.h,
instead its dependencies requiring that header should include it themselves

This was particularly impactful for SohGui.hpp which included all the windows
2026-09-14 19:49:29 +00:00
Caladius 43ea332874 [Enhancement] Time Splits v2 (#5839)
This aims to port over the Time Splits feature from 2Ship as it is cleaner & more robust.

New to this is the ability to finally compare splits from a second list.

Old Save data will now be converted to the new format automatically. Once it converts the data, the old save file will be renamed with a new ".backup" extension.

Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-09-14 16:55:22 +00:00
Philip Dubé 97fb13cbee Hookify FP movement (#7189)
Apply consistent movement effects to first person movement
2026-09-14 16:49:50 +00:00
Philip Dubé 09ca2ad383 Maintain correct position/camera for Master Sword cutscene skip (#7184) 2026-09-14 16:48:47 +00:00
Philip Dubé 53f688df54 Fix logic for fire near boss (#7147)
Adult with hood can jump from cage to boss door to upper with hood

Also fix bunny / mask options being disabled outside rando file
2026-09-14 14:20:38 +00:00
David Racine ea348bc9fb a11y: let F9 toggle TTS on Linux (#7191)
The hotkey was removed in #2833 because Linux had no synthesizer and fell
through to SpeechLogger. #5428 added the espeak-ng backend and un-gated the
settings checkbox, but left the hotkey and the README on Windows and macOS.
2026-09-14 00:29:52 +00:00
Philip Dubé 11fd0e0e70 Fix bow body cosmetic color (#7190)
No need to 4x color, just use what player picks. Avoid stale reads by getting rid of currentColor

Also clean up MIN/MAX & tidy up randomizer.h including CustomMessageTypes.h
2026-09-13 22:12:09 +00:00
Philip Dubé 8b3d91506e Fix title card margins (#7167) 2026-09-13 21:03:26 +00:00
David Racine 78dc6d9702 Don't erase __attribute__ under clang-cl (#7186)
* Don't erase __attribute__ under clang-cl

The shim fires when __GNUC__ is absent, which clang-cl does not define even
though it supports __attribute__ fully. Erasing it breaks clang's own intrinsics
headers: mmintrin.h declares __m64 as a vector via __attribute__((vector_size)),
so it degrades to a scalar and every use of it fails to compile.

* Don't erase __attribute__ under clang-cl

clang-cl supports it but does not define __GNUC__, so the shim fired and broke
clang's own intrinsics headers.
2026-09-13 18:21:36 +00:00
David Racine f00f5b6252 Optimise the 64-bit Windows Release build (#7188)
soh/CMakeLists.txt empties CMAKE_CXX_FLAGS_RELEASE under MSVC, and the 64-bit
branch adds /Oi and /Gy but no optimisation level, so the target is built /Od.
The Win32 branch below it already passes /O2.
2026-09-13 18:21:30 +00:00
David Racine b81187db36 Keep /EHsc when clearing the MSVC default flags (#7185)
The MSVC block drops CMake's defaults wholesale, and /EHsc goes with them, so
Windows builds compile every try/catch without unwind semantics - cl only warns
(C4530). soh and libultraship have 25 of them between them, including the
config and archive paths in OTRGlobals, where a throw would skip destructors.

clang-cl refuses outright rather than warning, which is how this surfaced.
2026-09-13 18:21:24 +00:00
Philip Dubé 3cfe4ddffb Prevent despawning shuffled gerudo guard drops (#7183) 2026-09-13 00:26:29 +00:00
xxAtrain223 f04b570d2a Fix logic typo (#7181) 2026-09-12 15:01:08 +00:00
Philip Dubé 01166a975e Fix discord invite (#7177) 2026-09-10 18:33:25 +00:00
Philip Dubé 18f8770eaf item tracker: don't render items for disabled settings (#7151) 2026-09-09 14:57:03 +00:00
Philip Dubé 36d03b9bce Fix save editor v2 (#7170)
C-button loop should not read D-pad,
D-pad keys off index like SyncButtonItemsForSlot,
B-button skips, ITEM_NONE while swordless would every empty slot green
2026-09-08 19:54:32 +00:00
Philip Dubé d37a378466 Don't apply inverted X axis aiming to first person movement (#7163) 2026-09-08 17:14:07 +00:00
Pepper0ni f3830ee8ad Fix megadives with jump clamping (#7164) 2026-09-08 17:13:52 +00:00
Philip Dubé 60dabb21e3 Add Skip Warp Cutscene option to All/None cutscene skip buttons (#7160) 2026-09-08 13:38:54 +00:00
Philip Dubé e2a82213c6 Reduce big octo cutscene skip (#7158)
Pointless to give control while player waits for big octo to descend (& still play cutscene),
just opens up complications & speedrun discussion raised concern about backflip to get behind Big Octo
2026-09-08 13:38:42 +00:00
Philip Dubé a5f5903955 water temple: quadruple water level change when skipping cutscene (#7162)
prevents falling into water while it descends, reaching 2f cracked wall without tricks
2026-09-08 13:38:30 +00:00
Philip Dubé b4c41c9bf4 Jabu fish cutscene skip: immediately transition (#7159)
This avoids awkward pause, also prevents recapturing fish

Also cleanup RSK_JABU_OPEN
2026-09-08 13:38:20 +00:00
Philip Dubé 371ef6f841 Leave Start Randomizer disabled after generation fails (#7157) 2026-09-07 23:59:18 +00:00
Philip Dubé 86a55cb1fb render stick/nut bag for upgrades past first (#7156)
fix typos in their graphics
2026-09-07 21:19:09 +00:00
Pepe20129 97f4fd5925 Ice Trap Name Setting (#6588)
Co-authored-by: Philip Dubé <159546+serprex@users.noreply.github.com>
2026-09-06 18:52:08 +00:00
Pepe20129 61523391e2 Fix flare dancer crash (#7122)
Expand the main `GfxPool` buffers to 1MiB
2026-09-06 15:01:46 +00:00
David Racine 17a4c2cf89 Reopen the OPUS decoder when a note moves to another sample (#7137)
The decoder cached on a note was keyed on nothing, so a note reused for a
different streamed sample carried on decoding the previous track. Audible as
the wrong custom music: the sequence and soundfont the audio editor reports
are correct, only the samples reaching the mixer are not.

Reproduced on the game-start cutscene chain with a streamed music pack in 4
of 6 runs; 0 of 6 after.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Co-authored-by: serprex <159546+serprex@users.noreply.github.com>
2026-09-06 13:10:21 +00:00
Philip Dubé e44bd8d989 prefer spdlog over luslog in C++ code (#7149)
luslog more meant for C compatibility
2026-09-05 21:21:25 +00:00
Pepper0ni 6d65db6174 Fix missing entries in RC to randinf and new identity pattern to make future misses more obvious (#7141) 2026-09-05 21:05:13 +00:00
Philip Dubé 495a2b17db revise randomizerEnumStrings, include fmt compatibility (#7148)
prefer switch over map, avoids static initializer & reduces code size by over a megabyte
2026-09-05 19:59:44 +00:00
Pepper0ni 73a739b7a4 Fix various trick issues (#7145) 2026-09-05 15:51:12 +00:00
Philip Dubé eca767dcbf Logical bunny hood (#7032)
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
2026-09-03 20:05:14 +00:00
Philip Dubé 0364f7076e Fix seed generation crash (#7140)
Also fix excluded locations all colliding with TODO name
2026-09-01 15:59:12 +00:00
Philip Dubé acdbc651d4 Fix compat issues loading pre-9.1 saves on 9.2+ (#7132) 2026-08-31 19:50:57 +00:00
Pepe20129 8ca5ca60aa Lang Improvements (#7130)
Massively optimize Lang::Translate & add Lang::TryTranslate.
Move all rando option text to lang json.

In the future we should have something like .TranslationTooltip() that takes the translation string to use instead of .Tooltip() as that'd allow us to change language at runtime.
2026-08-31 19:24:11 +00:00