Stop passing checksByArea to functions in the same namespace.
Only get value of `HideFilteredAreas` once per frame.
Gate area and check evaluations behind checks being visible and search filter size greater than 0.
Proper function capitalization.
* 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>
* Fix hint generation bugs on develop-rando
1. Fixed Ganon Non-hint text from loading as Saria's Magic Hint.
2. Fixed Ganon Non-hint text from not getting saved correctly.
3. Fixed gossip stone hint generation from not generating any non-always hints on No Logic.
For #3, the hint distribution and placement algorithm was bailing out too early when it wasn't able
to place a hint. For No Logic, what it was doing was failing to place WOTH hints (since No Logic seeds
don't calculate WOTH candidacy), returning the amount of hints it failed to place, and then it called
the function to redistribute the hints, but did not call the function to attempt to place the remaining hints.
Additionally, it was not accounting for the fact that we shouldn't redistribute the hints into the categories we failed to
place a hint in, so it would redistribute hints right back into those categories. I changed it so that when DistributeHints
gets called after PlaceHints fails to place the hint, it checks if the distribution settings copies attribute was set to 0.
In this case, it breaks while looping for the type distribution settings, and moves on to the next category. Also, it now repeatedly
attempts to distribute and place hints until PlaceHints returns 0 (meaning it placed all of its hints successfully).
* Fixes some further seed-bleed type issues with hint generation.
* 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 console commands for randomizing sfx and cosmetic groups
* Update naming and use constexpr
* Update soh/soh/Enhancements/debugconsole.cpp
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* 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...".
* filter randomizer checks in tracker
Co-authored-by: Michael Stergianis <michael.stergianis@gmail.com>
* Adds an option to hide empty areas
Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
* Removes extra whitespace
Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
* Changes gCheckTrackerHideFilteredAreas to default to true
Refactors the for loop in shouldHideArea
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
* Addresses PR feedback
* https://github.com/HarbourMasters/Shipwright/pull/4021#discussion_r1538377614
* https://github.com/HarbourMasters/Shipwright/pull/4021#discussion_r1538381310
Co-authored-by: Jamie Klassen <jamie@tenkeylabs.com>
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
* Updates config variable to gTrackers.CheckTracker.HideFilteredAreas
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
* Adds check visibility guard to shouldHideArea
Refactors rcObject to check in passesTextFilter
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
---------
Signed-off-by: Michael Stergianis <michael.stergianis@gmail.com>
Co-authored-by: Michael Stergianis <michael.stergianis@gmail.com>
vb treasure chest game added new RCs for the treasure chest game (now there are RCs for each of the 5 keys and each of the 5 non key chests), but the location area table only had the keys, this adds the items
* Clean up grayed out items in file select.
Tie personal notes saving to `OnExitGame()` to account for save scum resets.
Hide text input box (but not window) for personal notes when a save isn't loaded to prevent saving over a save's notes while in file select.
* Allow check tracker window to be visible and show the "Waiting for file load..." text in file select (ease of positioning).
* Fix key label text placement.
* Persist `areasSpoiled`, change trigger to `OnSceneTransition`.
Add `IsAreaSpoiled` for tie-in to Item Tracker.
Add `SetAreaSpoiled` to unify bitmagic.
* Add proper spoiling evaluation based on specific entrance IDs, or first check collection.
Add light yellow color for vanilla dungeon abbreviations to match the purple for MQ.
* Initialize `areasSpoiled` to 0, so 0 gets saved on file create.
* All new conditional statements around `GameInteractor::IsSaveLoaded()` were inverted. Fixed that.
* Change some c-style casts to `static_cast`.
* Few more cleanups, plus clarifying comment.
* 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
Due to a typo a few months ago, it was accidentally being ignored and
treated as Anywhere. Own Dungeon may have also been doing weird things,
but I'm not entirely sure.
* Add `SohModalWindow` and `SohModal`. Runs as window, always "visible", but not drawing if no popups are registered.
Adds error catching for save file corruption (malformed json) that renames the file in question to prevent future loading issues and uses `SohModalWindow` to inform the user of the error.
* Apply suggestions from code review
---------
Co-authored-by: briaguya <70942617+briaguya-ai@users.noreply.github.com>
* we crash if we try to SPDLOG in the destructors
* rip em out
* newline
* add to destroy
* Revert "rip em out"
This reverts commit 738a9b80f3.
* Revert "we crash if we try to SPDLOG in the destructors"
This reverts commit 327d305e00.
* animation
* playeranimation
* stop putting things in the LUS namespace from SoH
* get all the factories out of the namespace
* LUS::
* start on scene command stuff
* i think that's the rest of scene
* reduce copypasta
* collision header
* skeleton
* skeletonlimb
* fix
* path
* cutscene
* text
* audio sample
* sound font
* audiosequence
* background
* Revert "stop putting things in the LUS namespace from SoH"
This reverts commit 0ead6056e6.
* namespace shanans
* wrap all factories in namespace soh
* it's trying to link now
* lus
* scene command override etc
* fix audio loading
* slightly less logspam
* get past the cutscene problem
* in game!
* exporter cleanup
* more exporter cleanup
* clang formatted lus
* msvc
* itny lus change
* variant
* formatty
* fix of some sort i guess?
* use latest lus main
* fix name to enum/factory mapping
* otrexporter
* Moves personal notes to the save file under a new itemTracker save section.
* Update soh/soh/Enhancements/randomizer/randomizer_item_tracker.cpp
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* 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
* Add a link to ship.equipment to the CRC error message box during extraction
* Improve message and add to ShowCrcErrorBox
* Change 'known good roms' to 'known compatible roms'
* 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.
* dont let k overflow
* Update soh/soh/z_scene_otr.cpp
Co-authored-by: Archez <Archez@users.noreply.github.com>
---------
Co-authored-by: Archez <Archez@users.noreply.github.com>
* Move input viewer into SoH
* Remove unnecessary comments
* Update button outline mode to match default viewer
* Fix ambiguous call
* CVar name changes and minor fixes
* Two more cvars
* Separate C-buttons into individual toggles
* Account for text height regardless of scale
* A few extra comments
* Use new LoadTextureFromRawImage to load layer textures
* 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>
* Adds a MessageViewer window to Developer Tools.
* Properly destroys message viewer window.
* Adds missing ImGui::End()
* Fixes an oopsie crashing non-windows builds after first run.
* Adds C ABI for displaying a custom message
* Fixes a crash and an issue with messages with SFX.
* Remove some osSyncPrintf's that aren't very useful for this case.
* 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
* cache vcpkg on windows ci
* try sccache as variant
* missed a spot
* see if we're checking here
* does this do it?
* trying to make minimal changes and have this work
* hopefully these z7s do something
* we were almost at the max already bump to double
* Apply suggestions from code review
* sc
* latest from soh-macready branch of otrexporter
* 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>
* H & L
Adds an H and L for Hookshot and Longshot to be able to tell more clearly which one you have.
* Added Toggle and Refined
Adds a toggle if players don't want it on. Also scales the letter to stay constant with the icons, both size and position. Also now hides the letter if you don't have a hookshot yet.
* Clean up some of the comments
* prefix