Triforce Pieces can now be tokens for bridge or ganon's soul. & can be tokens for multiple rewards
Wincon can now be arbitrary conditions
Ganon's Soul (removed from existing boss soul options) can now be arbitrary conditions
Co-authored-by: Pepper0ni <93387759+Pepper0ni@users.noreply.github.com>
* Avoid `randomizer_check_tracker.h` in widely used `randomizer.h` due to transitive `libultraship.h`/`UIWidgets.hpp` inclusion
* Avoid `libultraship.h` inclusion in heavily used `GameInteractor.h` header
* Remove unused libultraship includes
* Break huge unneeded transitive include chain (via UIWidgets.hpp)
This avoids that changing just UIWidgets.hpp, for example, would retrigger a rebuild of like half the project.
There were a huge transitive include chains, mostly via MenuTypes.h and UIWidgets.hpp. Because of that, I'm splitting UIWidgets into a second header file UIWidgetOptions.hpp, which can be consumed by MenuTypes.h. MenuTypes.h is split into BackendTypes.h to avoid pulling in Fast3D/Windowing/GUI stuff into unrelated code.
Example chain, one of many:
libultraship.h <- UIWidgets.hpp <- MenuTypes.hpp <- randomizer/option.h <- randomizer/item_location.h <- trial.h <- static_data.h <- SeedContext <- (basically all randomizer related sources, lots of other sources in Enhancement, more...)
* Avoid libultraship.h in Notification.h and ObjectExtension.h; these headers are also heavily used
* Add missing include
* Remove unused libultraship includes
* Include only ship/window/GuiWindow.h in GUI-related headers instead of libultraship.h
* Cleanup ConfigUpdater.h and playthrough.cpp
* Remove libultraship.h from Anchor.h and fix transitive dependencies in OTRGlobals.cpp
* Remove unused libultraship.h includes in Anchor code
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
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
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)
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
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.
- 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.
* 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
* 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
* Modularize Pause Warp hook
* Make RegisterPauseMenuHooks static
* Merge pausewarp.c into hook module
* Use brackets with if statements
* Fix timer bug with spoiling items
* 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>
* 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
* 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
* 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
* 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
* 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`)