summaryrefslogtreecommitdiff
path: root/soh/include
AgeCommit message (Collapse)Author
2026-03-20Custom Item Icons in Textboxes (#6343)Christopher Leggett
2026-03-19Refactor Maps & Compasses coloring hook, remove PreFunc (#6351)Philip Dubé
PreFunc for map/compass coloring & jabber nut coloring doesn't work in file select menu, could make them always enabled in file select, but this seems simpler Also fix map colors & ice cavern compass color
2026-03-17Enemy rando cleanup (#6327)Pepe20129
Change Actor_SpawnEntry to use VB Move adult zelda collapse stalfos to a explicit hook Move dark link to a explicit hook Some more canRandomize that were not needed Move bg_haka & bg_haka_tubo to explicit hooks Move en_vali to an explicit hook Move bg_mori_bigst to an explicit hook Fix door opening before the enemies are killed Remove `canRandomize` parameter Move bg_haka_huta to explicit hooks
2026-03-02move speed modifier settings to cheats (#6277)Philip Dubé
Combine into one speed modifier. Refactor config migrations. Add v6
2026-02-26Port Scrolling Texture Interpolation over from 2Ship (#6224)Christopher Leggett
2026-02-17hookify additional reticles (#6278)A Green Spoon
2026-02-14Enable missing music entries in audio editor (#5685)Jordan Longstaff
* Enable missing music entries in audio editor * Fix mislabeled tracks "Ocarina of Time" and "Seal of Six Sages" (mirrored in decomp)
2026-01-28Shuffle Speak (#5538)Philip Dubé
Shuffles 6 languages (Deku, Gerudo, Goron, Hylian, Kokiri, Zora) to learn before being able to use Speak command with actors of that type. Other actors can still always initiate speech Owl speaks anything (relevant for owl flights)
2026-01-15Upgrades Custom Messages to Hooks and ShipInit (#5101)Christopher Leggett
Defines the hook for OnTextLoad. Intercepts message loading with hooks. Adds file to handle the CustomMessage creation for items. Handles Ice Traps, Triforce Pieces, and Custom Items. Handle maps, compasses, and keys Converts gossip stone hints to hook. Handle one-off merchant messages. Convert scrubs and shop text and remove now-unused code Convert Sheik and Ganondorf hint text. Convert skulltula people messages. Convert more static hints Specifically Dampe, Greg, Warp Songs, Frogs, Loach, Fishing Pole, and Saria Convert Biggoron Hint. Convert Big Poes hint. Convert Anju hint dialogue. Convert Malon hint. Convert Horseback Archery hints. Convert Mask Shop SIgn hint Convert Lake Hylia Switch related text. Convert Shooting Gallery bow reminder message Convert random rupee names. Convert Rando-Relevant Navi Enhancement. Convert Random Goron messages Convert Injecting Skull token counts. Add in a way to AutoFormat with an item icon.. Fix some errors with skull tokens and apply icon Convert heart container item counts. Convert Inject Item Count for Heart Pieces. Port Better Bombchu Shopping. Convert Market Sneak Port Quit Fishing At Door and clean up unused stuff. Reintroduce missing Mysterious warp song hint Make ShipInitFuncs static Adds and uses per-item articles for get item messages Fix Entrance Hints and port toggle from dev-copper
2026-01-15fix build and run on OpenBSD (#6050)Fabien Romano
2026-01-10Add Roc's Feather (custom item) to Rando Item Pool (#6035)aMannus
This adds Roc's as a fully implemented item into the randomizer pool. When both Roc's and Nayru's is found, you can swap between them on the pause menu Many people have contributed to this over time, so huge shoutout to: - kentonm, this item is directly inspired by their Roc's Feather from their romhack Indigo. Also provided me with their GI model, icon texture and animation to use. - PurpleHato, for providing the images for the item name shown on the kaleidoscope. - Dana The Elf, providing another custom animation for the item. - Reppan, for helping to tweak the animation and exporting the GI model for me.
2026-01-08Decomp import: rename timer-related functions and variables (#5896)Jordan Longstaff
2026-01-02Added "firstInput" stat and repurposed the "fileCreatedAt" stat. (#6070)Glought
- The "firstInput" stat is set on first input in game. Used for RTA Timing. - The "fileCreatedAt" stat is now set when then save file is created (After the player is done entering the file name). Useful for seeding non rando randomizers like Mirrorworld, Enemy Randomizer, extraTraps, etc.
2025-12-04Add in Progressive Bombchu Bags (#5836)Christopher Leggett
* Adds new Progressive Bombchu Bags option Also changes existing code to account for Bombchu Bags becoming a drop down with 3 values instead of a checkbox * Handle the new lower capacities for ammo refills * Handle what happens when receiving a bombchu bag * Remove the trick name of Progressive Bombchu Bag Since, you know, that's an actual thing now. * Implements Bombchu Bag handling next to Progressive Bombchu Handling * clang-formatting * Add extra bag for plentiful items * Address review comment * Move bombchu upgrade level to gSaveContext and add save/load * Use logic's saveContext for correct logic calculations * Remove RG_PROGRESSIVE_BOMBCHU * Fix Bombchu Refill obtainability * Don't add normal chus to the pool if chu bags are on. * cmake-format * Properly reset bombchuUpgradeLevel on savefile init * Fix error with va_arg on linux * Fixes small error in the Bombchu Bag description * Fix bug with bombchu obtainability * clang-format * Fix infinite bombchu text * fix clang-format
2025-11-24Modularize Hurt Container mode hook (#5874)Jordan Longstaff
* Modularize Hurt Container mode hook * Hook condition was wrong - fixed it * Change type of hurtEnabled for clarity * Change type back to bool * Add VB hook * Don't duplicate health capacity modifier calculation * Add constants, replace magic numbers * Clang format * Publicize more health unit macros * Make mod file self-contained
2025-11-13"Assignable Tunic and Boots" setting now allows shields also (#5953)Jordan Longstaff
2025-11-03Implement logger changes (#5914)Malkierian
* Implement logger changes, and make default log level dynamic based on debug/release. * Bump LUS. * typo Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com> --------- Co-authored-by: Eblo <7004497+Eblo@users.noreply.github.com>
2025-10-28Modularize Pause Warp hook (#5869)Jordan Longstaff
* Modularize Pause Warp hook * Make RegisterPauseMenuHooks static * Merge pausewarp.c into hook module * Use brackets with if statements * Fix timer bug with spoiling items
2025-10-09update lus includes for new LUS file structure (#5820)briaguya
* Bump LUS to include FileDropMgr's new registration system and initial cursor visibility changes. * New LUS ref. * Remove default on for cursor always visible. Add option to camera controls next to enable mouse input for autocapture. Set autocapture on startup. * next LUS * clang again * Add "EnableMouse" CVar check to startup SetAutoCaptureMouse. * Back to LUS main. * lus version with fixes we need * very wip * get it building * soh otr * bump lus before fixing soh side stuff * build * still builds * mac error * bump otrexporter * bump to lus main * upstream otrexporter --------- Co-authored-by: Malkierian <malkierian@gmail.com> Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
2025-08-13Boss Rush cleanup (#5652)Pepe20129
* Reduce stuff in the `.h`s & use `COND_HOOK` + variants * Move some boss rush stuff from `z_file_choose.c` * clang * Update BossRush.cpp
2025-06-27Backport 2ship streamed audio (#5457)louist103
* Bring over changes from 2ship # Conflicts: # .github/workflows/apt-deps.txt # soh/CMakeLists.txt # soh/soh/resource/importer/AudioSampleFactory.h # soh/soh/resource/importer/AudioSequenceFactory.cpp # soh/soh/resource/importer/AudioSequenceFactory.h # soh/soh/resource/importer/AudioSoundFontFactory.h * Update xml format * Format and fix mixer for Windows * Fixes for new LUS * Good ole clang-format
2025-06-19Japanese translation for Better Debug Warp Screen (#5491)nclok1405
* Japanese translation for Better Debug Warp Screen * Incorporate fixes by balloondude2 (except Shield/Treasure Chest Grave inconsistencies which I'm unsure how to handle that) * Localize "Scene Selection" header for each language * Added/Restored the ability to render Hiragana characters using GFXP_HIRAGANA macro
2025-06-19replace MT RNG with PCG (#4973)Philip Dubé
replace boost hashing with FNV-1a removes boost as a dependency
2025-06-11Convert actor health bars to use ObjectExtension (#5565)Rozelette
2025-05-29Convert `RandomizerInf` to the dynamic `#define` model to allow for ↵Malkierian
automatic string names. (#5537)
2025-05-19Merge pull request #5517 from HarbourMasters/develop-blairMalkierian
Develop blair
2025-05-18fix incorrect `__VA_ARGS__` use in `lusprintf` version of `osSyncPrintf` (#5510)briaguya
2025-05-16Merge pull request #5497 from HarbourMasters/develop-blairMalkierian
blair -> dev
2025-05-17reapply changes needed for C23 build on develop (#5467)Pepper0ni
2025-05-06VBify Crawl Speed Enhancement and Add Exlcude Glitch-Aiding Crawlspace ↵Eric Hoey
Option (#5465) * add menu option * VBify + add conditions * oops wrong func * clean up includes + casting * move z_player externed functions * better name * correct menu text * one last name final final * maintain glitch-aiding selection
2025-04-17fix TODO_TRANSLATE language replacement in cases where the text is already ↵Pepper0ni
formatted (#5415) * fix TODO_TRANSLATE language replacement in cases where the text is already formatted * oops
2025-04-07Fix shop translations and unify untranslated message alerts. (#5312)Pepper0ni
* try to fix messages, crashing on vanilla text * oops * adjust shop flavor translations to better fit on 2 lines * run clang format
2025-03-31Fix messages crashing when no ntsc game is loaded (#5259)Archez
* Fix messages crashing when no ntsc game is loaded * rename func
2025-03-30Replace old methods with ShipUtils (#5151)Archez
* Replace old methods with ShipUtils * remove PAL naming
2025-03-30NTSC Support (N64) (#4198)inspectredc
* copy n64 pal 10 doing this so i can check diffs i make * transfer german->jp icon item * overlays, message data, icon item jpn, audio, code todo: title_static, gameplay keep * add kanji and fix title cards * title static * spell folder correctly * boss title cards, do action, icon item, item name, map name * headers for jpn stuff * gameplay_keep * Scenes, audio, jp text extraction, rom support, overlay fixes, sheik & darunia todo: test & disable darunia fix cvar for ntsc * msgptr init fix * icon item offsets * comment out title cards until zapd can fix itself (we extract these in a different file anyway) * compile and font implemented to get past title screen * file select * message, kaleido and everything else but rando * uintptr_t * rando and custom messages working! * ntsc-j 1.0 support * n64 logo? * copy ntsc 10 to 11 * ntsc 11 extraction * change title version names * copy ntsc 11 to 12 * ntsc 12 extraction * clean up some todos * re checkout submodules post merge * fix US filename * support cross-version filenames * add new versions to non-mq list * use correct message table init * Fix ntsc nes message table overriding pal nes message table * actual fix, allows extraction * fix file name using wrong font of file being hovered over * Fix barinade crash * re-add pal * better jabu fix and revert LUS * fix gerudo title cards * better better owl select * more owl fixes * build * fix some name decode issues * Switch Language Mid Text * Fix PAL displaying for JP filenames * Fix AskToEquip Crash * Disable Credits Timing Fix on NTSC * Fix JP Text positioning * basic language switching (BIG todo: file select, title screen) * Title Screen Hopefully working * add ntsc to linux appimage stuff, TODO: add .v64/.n64 support * Update OTRExporter * Fix pause to decide offset * Fix bomb item name crash * fix fire arrows and PoH * builds * update asset changes and fix menu language changing * fix name decode * Fix crashes and add rando/boss rush select stuff * Revive debug feature by setting language cvar too * Fix ocarina text speed softlock, and update jp text speed changes * Merge remote-tracking branch 'upstream/develop' into NTSC * Fix options menu and let pal use japanese fully * Resolve some suggestions * match up gTextSpeed changes to english (still broken!) * Fix text speed crash * Set default filename language on save init funcs * bump otrexporter * Display same correct info for n64 ntsc-j and ntsc-u * quicktext more closely aligned with decomp * linux appimage v64/n64 checksums * bump zapd * Credits Fix Tooltip Adjusted * update supported hashes json * update shasums to include JP n64
2025-03-24bump lus (#5187)briaguya
* pushing what i have so i can try to figure out HW_REG errors * HW_REG (fix? workaround? either way it builds now) * factory fixes and shaders * bump again * bump again * copy shaders for `ExtractAssets` too (instead of just in `GenerateSohOtr`)
2025-03-15Modern Menu (#5116)Malkierian
* Add menu files, hook menu up to window system. Temporarily rename new menu's UIWidgets to UIWidgets2 to allow both menu systems to coexist temporarily. * Finish implementing new menu. Rename 2ship UIWidgets to UIWidgets2 to complete facilitation of both menus working for now. * More preliminary setup * More prepwork, begin on settings options * Finish settings, add enhancements windows * Fix search function not looking past first columns. * Add dev tool windows * Finish dev tools * Add about window * Fully replace about window * Remove moved menu items from menubar, add more windows to new menu * Implement WindowButtonOptions. Add ability to not embed popout windows when not popped out. Add ability to hide the button for WindowButtons. Fix Entrance Tracker from showing when not enabled. * Fix entrance tracker settings embedded display. Fix entrance tracker settings window original size declaration. * Initial implementation of themed radio button widget. * Move "About" section to second column of general. Fix sidebar sections starting in second column. * Restore Entrance Tracker `Draw()` to allow for custom styling. * Fix combobox positioning formatting. Fix color picker end spacing. Convert everything in check tracker settings to UIWidgets2 (except color pickers and section headers). Make all tracker windows not embed. * Minor cleanup * Fix main volume defaults & mirror jitter fix removal on dev * Improve color picker with RGB/RGBA options. Not finished. * Finish creating CVarColorPicker and implement for Check Tracker background color. Fix tracker and network prefixes. * Finish check tracker settings and convert check tracker. * Port all Cheats menu except for Beta Quest * Port over Beta Quest to new menu * Remove old cheats menu * Port cutscene skips to modern menu * Port Timesaver Enhancements to new menu * Port the Items and Item Count Messages submenu * Port Difficulty Options to new Menu * Removes options that have been ported thus far. * Port "Reduced Clutter" options to new menu * Add forgotten callbacks to Hyper Enemies/Bosses * Copy StateButton to UIWidgets2, and implement custom padding for them in the tracker. * Ports some pause menu related settinga * Change tracker window active title color. Make state buttons smaller in tracker to get more info on screen. * Convert window title active theming to all windows. * Port the rest of Enhancements->Gameplay to new menu * Port the "Graphics" Enhancements to new menu * Ports Fixes over to the Modern Menu * Ported Restorations to Modern Menu * Ported Extra Modes to new menu * Port Autosave and Boot Sequence to modern menu * Cleans up some leftover data for ported buttons * Ports Enhancement Presets to new menu * Port Additional timers to new menu. Removes Enhancements from old menu * Cleans up some unused stuff * Ports Randomizer Enhancements to modern menu * Convert Item Tracker Settings. Something's wrong with the comboboxes in a second column of a table. * Fix combobox alignment and label position calculations. * Convert Entrance Tracker window. * Save Editor Info tab finished. Added `PushStyleInput` and `PushStyleTabs` for Info tab. Fixed some indentation in entrance tracker source. Added font push to tracker windows. * Increase size of all icons in save editor. * Convert flag groups to child windows for automatic sizing and border drawing. * Flags tab completed. Finished inventory tab. * Convert save editor help hover to UIWidgets2. * Various fixes and corrections * Start cosmetics editor, fix theme colors not updating * Cosmetics editor conversion progress * Remove Mac internal resolution restrictions. * Copy over advanced resolution partial and enable most options as a custom widget. * Add size to float sliders, more cosmetics editor progress * Fix incorrect cvar for notifications * Radio button & header color options, more cosmetics editor progress * Finish cosmetics editor conversion * Create and apply THEME_COLOR macro. Resides in SohGui for easy access to mSohMenu. * Move ResolutionEditor to SohGui directory. * Add labels to build info. Fix slider width calculations. * Fix some advanced resolution widget hiding. * Fully implement Advanced Resolution options. Fix graphics settings formatting. Improve slider label position calculations. Implement Clamp options on sliders. * Finish save editor. Convert save editor code to `using namespace UIWidgets2`. Fix search crashing on time splits window. Remove `SetLastItemHoverText` from `UIWidgets2`. * Unify cvar sectioning in time splits. * Add InputString and InputInt widgets, and corresponding CVar Widgets * Adds Widget Type for Inputs, not currently used. * Convert Sail to modern menu * Add Combobox that takes a vector of std::strings * Convert checkbox and combobx to new widgets * Add Tristate checkbox * Convert sliders and tristate checkboxes * Convert top half of Rando window * remove/replace remainder of UIWidgets usage in option.cpp * Converts tricks, locations, and removes old UIWidgets refs * Fix windows build errors * Remove Tri-State checkboxes * Use PushStyleInput instead of PushStyleSlider lol oops didn't realize it was a thing in Ship. * Rebase and address review comments * Convert Crowd Control to modern menu. * Fix build error * Audio editor progress * Re-add CVar SaveOnNextFrame calls to Resolution Editor. Remove old Resolution Editor files. * Convert TimeSplits to new menu. Fix a few enum warnings. * Decrease padding on Arrow Buttons * Audio editor + gameplay stats done * Give Randomizer Menu more screen real-estate * Port plandomizer menu * Fix slider width calculation and allow combobox LabelPosition::None * Fix None labelPos and slider width for inline labels * Fix all slider value label insertions. Convert Collision Viewer. * Minor Collision Viewer enum change. Convert Actor Viewer. * Theme/convert Message Viewer. * Add font to Message Viewer. Theme Value Viewer. * DL Viewer and SohModals themed. * Convert Input Viewer. * Missed some color settings in Input Viewer. Removed UIWidgets references from Controller Config, and restored SoH version. * Remove UIWidgets.hpp include from multiple files. * Completely remove old UIWidgets. Rename UIWidgets2 to UIWidgets. Move Accessibility and Language options to new menu. * Fix Gfx Debugger not showing up. Remove menubar registration. * Fix clearCvars references. * Fix passing std::string to const char* argument. * enum name spacing --------- Co-authored-by: aMannus <mannusmenting@gmail.com> Co-authored-by: Christopher Leggett <chris@leggett.dev>
2025-02-25Trade cleanup (#4971)Pepe20129
* Move adult trade to flags * Move child trade to flags * Fix vanilla * Address review * Rename `trade_shuffle` to `ShuffleTradeItems` * Fix mac build * Update GIVanillaBehavior.h * Update z_kankyo.c * Update z_en_heishi2.c
2025-02-17Added and implemented TrailType enum (#5059)Miles Acquaviva
* added TrailType enum * fixed build, moved declaration * added enhancement comment * Apply suggestions from code review --------- Co-authored-by: link5669 <acqmiles@gmail.com>
2025-02-14Autosave Overhaul (#5022)aMannus
* Autosave interval based * Move to save on soft reset, remove adjustable interval * Use new BeforeExitGame hook to prevent non-existent data problems * Fix check tracker crash, remove BeforeExitGame hook * update comment
2025-02-12Remove POLY_KAL and restore POLY_OPA for kaleido (#5041)Archez
2025-02-03pull in `startMode` docs (#4988)briaguya
2025-02-02better soft reset (#4984)briaguya
2025-01-24rework "Authentic Logo Screen" and "Fast File Select" (#4939)briaguya
* skip z_title with button press * use `RegisterShipInitFunc` * rip out a bunch of custom ztitle code * ok now it's almost fully back to vanilla * titles are back for a limited time enjoy #Skipping * move old customizations into new custom draw * finally getting the hang of this shipinit thing * vb should let it snow * boot sequence logic * clean up logic to better handle changing boot sequence settings * remove fast file select stuff * remove authentic logo screen setting * about window - not super pretty but not ugly imo * maybe this fixes windows * maybe alloca? idk why it's working in other files * just pulling in every include hoping something works * Revert This reverts commit c1d02c9a40a7b8c617a131cc5b0d7fd6f81fe1b4. * try some macro fixing magic * fix another c vs cpp thing * do it without an extra var * make `GitCommitHashTruncated` a private member on `AboutWindow` instead of truncating on draw * move logo asset defs to `soh_assets.h` * Apply suggestions from code review Co-authored-by: Archez <Archez@users.noreply.github.com> * VB_SHOULDN'T --------- Co-authored-by: Archez <Archez@users.noreply.github.com>
2025-01-16Update Actor Flags to decomp (#4822)Pepper0ni
2025-01-15Rename Business Scrub functions/flags from decomp (#4776)Jordan Longstaff
* Rename Business Scrub functions/flags from decomp * Update XML references
2025-01-15Organize ship specific save context additions (#4597)Pepe20129
* Basic restructure * Undo most randomizerInf changes for now * Small fixes * Fix linux & mac builds? * Fix remnants of randomizerInf changes * Post-merge fix * Post-merge fix
2025-01-05Introduce in-game Randomizer Settings menu, remove plando mode (#4804)aMannus
* Initial mockup * Rip out part of plando mode, implement rando settings menu * MVP new randomizer flow * Translation support and code cleanup * Fixes and more cleanup * Fix whoopsie * Fix whoopsie 2
2024-12-22Freestanding Rupees/Hearts Shuffle (#4686)Pepper0ni
* Enable freestanding items other than heart pieces and keys * Add option to disable freestanding rupee & heart shuffle * Add items to pool * Actually add shuffle setting * Define overworld locations * Add logic for overworld freestanding checks * Add freestanding items for child dungeons. * Add checks for Ice Cavern and Bottom of the Well * Add checks for Forest Temple and Gerudo Training Grounds * Add checks for Fire Temple and Water Temple * Add Shadow Temple checks This does not include the spinning pots rupees, even though they're included with freestanding rupees in the N64 randomizer as they would require dedicated overrides for the code for the pots in question. * Define Spirit Temple and Ganon's Castle hearts * Add remaining checks to dungeon definitions * Fix missing logic * Add freestanding checks to Save Flags Editor * Fix flags for Zora Fountain underwater rupees * Add option to enable freestanding shuffle for either dungeons or overworld * Add missing MQ checks and fix mac & windows compile error * Improve description and add hint text * Update logic for Bombchu fixes * Add missing Spirit Temple MQ hearts * Add missing settings entries * Actually add Forest Temple trick to the tricks menu. * Re-add Ice Cavern lobby rupee * go over MQ logic * review logic on non-MQ checks * convert all freestandings to location based * add option enum and fix jabu exit logic * fix mislocated freestandings * fix mislocted freestandings * Fix some mislocationed checks --------- Co-authored-by: Angel Bulfone <mbulfone@gmail.com>
2024-12-20Rename `code_80043480.c` from decomp (#4731)Jordan Longstaff