* Add rando enhancement "Mysterious Shuffled Items", which obfuscates shuffled freestanding/drawn-in-world items (PoH, tokens, shop items) with a custom question mark model (thanks Hato), and uses the "mysterious item" functionality of `GetMerchantMessage` for everything that supports it, regardless of hint status on generation.
* Reverted back to rando enhancement, but added condition for Mysterious Shuffle not being on for the gem rotation fix to apply.
* First attempt at changing to fake GetItemEntry instead of directly calling the mystery draw function. Needs more work.
* Updated CVar to reflect CVar rework values.
Added `IsCheckShuffled` as preliminary function for checking *only* if a check is shuffled, not necessarily if it is just visible on the tracker. This accounts for the difference between tokensanity and "Always Show GS On Tracker", where you don't want to obfuscate the latter.
* Bit of cleanup.
* Cross-platform building edits. If anyone has a better idea of how to handle this fake GIE, I'm all ears.
* Update to CVar macros.
* Fix freestanding item gives.
Fix mysterious item model colors.
* Fix bombchu bowling mystery.
* Remove bowling bomchus check obfuscation (unused, removed in v3).
* p
* Missed the prefix renames.
* More missed ones.
* Mostly finished cleanup.
Removed a few CVars and some related functionality.
* Bit more (prepping non-existent title card color editing).
* Resolve gCrowdControl.
* Final cleanup.
* Universal constant, not acceleration...
* Preset CVars.
* Incorporate LUS CMake CVar system.
Customize all LUS CMake CVars to align with plans for preset system.
Swap "gOverlayFont" usage back to LUS CVar macro.
* Change CMake sets to use the cache to allow for including LUS's file for the add_compile_defines and remove the duplication on SoH's side.
* Move SoH CMake CVars to `soh-cvars.cmake` for clarity.
* Hint text refactor WIP DOES NOT BUILD
* Update to show people DOES NOT BUILD
* stuck on wierd errors
* forgot to add
* expression error does not name a type
* commit in case anyone looks
* static assertion failed: T must be an integral type or an enum.
* fail without error, complaining about unrefernced things
* fix some issues, still linker bs
* restructure some trials, conditionalAlwaysHints and hint_list stuff
* builds and does not crash, but there's text issues
* fix text issues
* commit to push, halfway through trimming down log
* finish trimming spoiler logging
* post merge clean up
* plando mode seems to work, looking into song text wierdness
* push for debugging crash on HBA sign
* fix num and anju issues
* fix the damn sign
* Fix Windows build
Renames GetMessage to GetHintMessage (a different name could be chosen, but GetMessage conflicts with a macro in winuser.h)
Changes uint to size_t, uint does not seem to exist on Windows.
* fix biggoron
* remove some manual formatting that autoformat doesn't like
* fix some altar text
* fix more altar text
* last cleanup
---------
Co-authored-by: Christopher Leggett <chris@leggett.dev>
* Standardized CVar macros to have `CVAR_` at the front instead of the end.
Removed excluded and replaced sequence macros.
* Missed a few developer CVars outside of `SohMenuBar.cpp`
* 1 more.
* Add all macros.
Replace all randomizer seed setting CVars with appropriate macro.
Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).
* Wrong slash...
* Fix DEVELOPER_CVAR macro.
Add GENERAL_CVAR macro.
* Change Item Tracker CVars, including open window CVar.
* Swapped open window CVars.
* Swapped Entrance Tracker CVars.
* Swapped Check Tracker CVars.
Changed Item Tracker "HudEditMode" to "Draggable".
* Renamed `RANDOMIZER_CVAR` to `RANDO_ENHANCEMENT_CVAR`.
Swapped rando enhancement CVars.
* Mirroring last commit from part 1 in randomizer.cpp
* Another mirror from pt 1
* Add all macros.
Replace all randomizer seed setting CVars with appropriate macro.
Cleaned up non-gameplay-critical things that are part of Spock Race rando presets (like RTA timing, displaying timer, displaying the glitch lineup tick, or Fast File Select).
* Wrong slash...
* Forgot "gManualSeedEntry".
* Renamed CVars from "Mq..." to "MQ...".
* vb bombchu bowling
* don't need it
* it's drawing the right thing but it's tiny
* scale
* no need to should, don't rescale every draw
* slightly safer
* Adds the Keese and Guay don't target you cheat
that makes keese and guay ignore you as if
you are wearing the skull mask
* changed instances of CVar_GetS32 to CVarGetInteger
added the cvar to presets.h
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* start on arch
* noconfirm
* git
* noconfirm
* just skip cache
* cmake
* ninja
* gcc
* lsb
* sdl2
* png
* sdl net
* boost
* imagemagick and add opensuse
* non interactive
* git
* cmake
* add a bunch
* things
* more
* try to matrix
* soh otr i guess
* needs
* trying to figure out how matrix include works
* make the matrix?
* matrix debug
* install?
* echo?
* yuck
* cannot locate package false
* parens for good measure
* lsb
* libsdl2
* suse
* i forgot opensuse uses gcc-c++ instead of g++ for the package name
* png
* sdl
* more
* suse packages....
* fedora cmake
* 2?
* png
* handle old sdl2 net
* apt
* not sure if this is a problem for both clang and gcc on opensuse or just clang
* devel
* cmake min version
* def don't want this here but it's here for now
* does this do anything
* mantic because cmake version
* libopengl?
* fedora ninja
* fedora g++
* lsb
* fedora sdl
* libpng
* do a build
* clang fix
* give early returns values
* ImageMagick
* Update BUILDING.md
* something
* plain boost instead of devel?
* not packing so we don't need this part
* base?
* don't have it can't need it
* just use boost download on opensuse i guess
* move workflow
* bring back the file
* lus main?
* detach
* Fix resetting button icon colours in message boxes.
* Fix type/math error for custom color in textbox icon pulsing.
* Fix type error for custom color in ocarina icon pulsing.
* Make custom env colour math more closely match vanilla equivalents.
* Make comments presentable.
* Shops and Games always open
* Added comment for scene reload requirement
* Prefix
* Spacing
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* I'm bad at merging
* Refined by Archez
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Make rando final eban cost 99 and clean up Text IDs
* Remove Text ID changes
* Add french translation, All credit to Purple hato
Co-authored-by: Purple Hato <linkvssangoku.jr@gmail.com>
---------
Co-authored-by: Purple Hato <linkvssangoku.jr@gmail.com>
* initial support for mixing boss entrances in the mixed pool
* support decouple for boss entrances
* missed decouple change
* add blue warp exits to boss rooms in location access
* add entrance get helper methods
* fix assumed targets not using root in entrance name
* add dedicated blue warp entrances and handle blue warp changes during generation
* change bluewarp handling in game to use unique blue warp entrances
* handle blue warps in entrance tracker
* fix overriding all jabu and water temple rooms
* fix grotto returns when exiting boss rooms/dungeons
* fix blue warp logic by tracking original connected region key
* use entrance enums
* remove unneeded entrance values
* fix decouple generation crash
* fix jabu mq backwards logic
* Pause Warp Enhancement
This commit introduces the PauseWarp mod, a feature that allows players to warp to different locations in the game directly from the pause menu.
- Add PauseWarpState structure to manage flags and cooldowns for the pause warp feature.
- Implement IsStateValid function for state validation.
- Implement ResetStateFlags function to reset all state flags to default values.
- Add InitiateWarp function to handle the initiation of warp sequences.
- Implement HandleWarpConfirmation function to confirm and execute warp actions.
- Implement HandleCooldowns function to manage various cooldown timers.
- Add PauseWarp_Main function as the main logic, called every frame to handle pause warp functionality.
- Map warp song messages to in-game text messages.
* Warp Song Check
-Now if you do not have a warp song you won't be able to select the empty slot and still teleport.
* Added Audio Fanfares and Changed stateFlag1 to PLAYER_STATE1_IN_CUTSCENE
-When selecting a warp song the audio for the applicable warp song will now play for a extra vanilla feel.
-Changed the stateFlag1 because previously it just disabled input allowing enemies to harm you. Now that won't happen because the game is put into a cutscene state.
* Feedback Update
-A new hook was created 'OnPauseMenu' so now PauseWarp_Main is only called when the pause menu is open
-Moved pauswarp.c to the Enhancements folder
-Removed from graph.c
PR Change:
Changing to the main branch instead of sulu
* Feedback Update #2
-Introduced new function 'PauseWarp_Idle' now that 'PauseWarp_Main' is no longer called every frame
-Added C wrapper to access 'GameInteractor::IsSaveLoaded' and scrapped the 'IsStateValid' function
-Added 'PauseWarp_Idle' to the the 'RegisterPauseWarp' function
-Refactored the code some
* Linux Compile Issue
-Added a missing header that was causing a compile issue for linux
-Hopefully, it won't crash
* Minor Bug Fix
-Now link won't get soft locked when warping to the same location twice
* Update libultraship
* Revert "Update libultraship"
This reverts commit 746fc23479.
* Bug Fix
-Added more checks to ensure vanilla behavior when a Ocarina is not in the players inventory.
* WIP
* Done unless I'm missing headers
* now we done
* clean up, these arn't needed anymore
* Rename OnPauseMenu to OnKaleidoUpdate
* Hookshot, Hammer, & Boomerang
* Added the remainder of equipment and DL Patching for hands
* Removed Mirror Shield Patch
Messed with the front texture of shield
* Child Hylian Shield Cheat
Adds a cheat that allows Child Link to hold Hylian Shield as adult. Added to this since it uses the same way to render the shield
* Debugging
* Adds Scaling to Child Link with Adult Equipment
* Fix Merge Conflict Blunders
* More cleanup
* Added Scaling checkbox and some clean up
* Added an || ITEM_NONE
* More cleanup and simplification
* Accidently added spacer
* Replace B_BTN_ITEM
* Spacing
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
* Added most sheath functionality
* Updated tooltips
* removed child hylian shield and tweaked bow/slingshot
Made child hylian shield cheat into a separate branch and hooked into existing bow/slingshot enhancement for drawing those
* Prefixes
* ()
---------
Co-authored-by: Pepe20129 <72659707+Pepe20129@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* First commit
* Reverted MODDING.md
Reverted a correction to MODDING.md (case-sensitive broken link?) as this is not a change related to this PR
* Delete CMakeSettings.json
Deleted CMakeSettings.json as this is not a change related to this PR.
* checks for cosmetic changes ONCE for both body and sparles
Please review carefully. I made these changes blindly as I figure out why I can't compile it in my machine anymore. Sorry!
* correctly updates OUTER color when it's changed in Cosmetics Editor
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/soh/Enhancements/cosmetics/CosmeticsEditor.cpp
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Update soh/src/overlays/actors/ovl_En_Partner/z_en_partner.c
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* Each Heart Container or full Heart Piece reduces Links hearts by 1
* Based on Briaguya's suggested Code but modified slightly as some parts were missing.
* Static Bool
* The episode without Captain Hook's Hook
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Menu options, note speed, unlimited playback time
* Instant win
* Add custom ocarina game cvar to all options and presets
* Extra spaces
* Add starting note count, ending note count by round, more presets
* Block out vanilla code + comments
* finish blocking out vanilla code
* new documentation formatting
* add starting notes to randomizer preset
* CVar, presets, custom message, fishing actor
* Add placeholder translations for French/German
* Fix for MS Shuffle change
* Rename function to match
* Missing comma in presets
* Change description, CVar name, add'l function name, edit custom message
* Actual whitespace fix
* re-order custom message
* Fix message formatting
* Add enhancement comments
* yeet if (play) {} from enhancement
* new documentation format
* Add CVars for swimming, apply to swim speed calc
* Prevent modifer from working underwater
* Re-enable swim speed mod when underwater, use new (orig) function for y-velocity while diving
* Add to presets list
* Fix spacing
* block out vanilla + comments
* re-org vanilla code block in a sane way
* new documentation format
* rename Surface function + comment for usage
* handle merge conflicts, but like an adult this time
* add map palettes per pulse to leverage shader caching
* use unregister blended with kaleido maps
* use Gfx_TextureCacheDelete for KD lava
* bump lus
* add miss tex clears for KD
* Add Collision Header XML parser
* Update CollisionHeaderFactory.cpp
* Remove "Num" attributes
* Fix crashes
Prevent crash when the camera setting is negative
Change some IntAttributes to UnsignedAttributes
* Update z_fishing documentation from decomp
* undo sCameraAt/Eye rename
* forgot to include these defines Heehee
* adding enums, settings
* adding more stuff back in
* more work
* we're literally typing words into computer
* include unordered map
maybe this fixes mac build idk
* wahoo
* hmm
* add make sure disabled flag gets popped
* poggers in the chat?
* doing some refactoring
* fixing build
* documentation, moving fishsanity instance to rando
* move FS back to context, fixing build, mod progress
since FS is needed during rando generation & provides perpetual info abt. fishsanity in the seed, seems to make more sense if it lives on the context
* moving some stuff around
* it's starting to get real in here
* ELIMINATE FISHSANITYMETA
* IT WROKS
* Update trackers, fix pond fish flagging
* ZD fish shuffle initial checkpoint
* ZD fish "working"
aside from the crashing
* wrapping up
* fix for partial pond shuffle
* remove misc. unrelated debugconsole modification
* updating GI model
* get build working
* add a todo for this
* removeoopsie
* Rework hints a bit
* update hint loc
* Use visual indicator instead of despawning caught fish
---------
Co-authored-by: jordanpg <jordanpg@users.noreply.github.com>
* WIP biggoron and big poes hint
* commit v0 of biggoron and big poes hints
* adjust for settings update
* Add more hints
* Finish extra Basic Static Hints
* remove vestigial code
* Forgot to remove this
* try to fix windows build
* fix build post conflcit res
* remove StaticHintData as redundent
* last cleanup
* Add right-stick aiming to third-person aim
* Add Z-aiming CVar and inversion to Z-aiming
* Create calculation for rel.right_stick and apply it in Z-aiming
* Move option to First-Person section to match shield
* Fix max/min aiming heights
* Expand min/max + comment
* block out vanilla + comments
* block vanilla code better
* Remove extra space
* new documentation formatting
* rewrite ==0 and !=0
* Simplify item cycling
* Simplify selection variables
* Fix adult bunny hood and gray appropriate items
* Don't go into cycling mode when there's no items to cycle to
* Restore updating c buttons
This was previously done with `Inventory_ReplaceItem` but that led to problems when another slot had the same item as the one that's being cycled.
* Address review
* Fixes pressing B on name entry after randomizer quest.
* Reverts to auto parsing previous spoiler file.
Also includes an option to press L to automatically gen a fresh seed. It still does regenerate the old spoiler to regen the hints in the user's current language, but it will now automatically do this instead of requiring dragging and dropping the spoiler every time.
* Fixes bug causing rando settings to come from CVars instead of a spoiler file when a spoiler is dropped/imported on boot.
* Pressing Generate Randomizer in ImGui doesn't use loaded spoilerfile.
* Adds tooltip to Generate Randomizer ImGui Button.