Commit Graph

4229 Commits

Author SHA1 Message Date
David Racine 39a8d04018 Use --no-pager for the no-tabs check's git grep (#7232) 2026-09-21 04:49:02 +00:00
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