* 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
* 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
* Adds `FormatLocations` and `PRESET_ENTRY_TYPE_CPP_STRING` to allow for feeding `RandomizerCheck` values directly in presets instead of a string with magic numbers.
* Switch to concatenation with `std::to_string`.
* Forgot to remove <format> include XD
* 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
* Add custom text message loading
* Use "override" folder for text mods
* Replace only existing messages
* Use std::find_if to check for existing messages
* Rearrange menus for better layout on smaller screens.
* Automatically calculate +/- increments for float sliders
* Add needed header
* Use stringstream instead of format since apparently most platforms don't actually support all of c++20 yet boooooo
* Add header that only Mac complained about for some reason
* Theoretical performance improvement
* Actual performance improvement
* 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
* Fix Fire Temple Boss Door Logic
* Update soh/soh/Enhancements/randomizer/3drando/location_access/locacc_fire_temple.cpp
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
---------
Co-authored-by: Adam Bird <Archez@users.noreply.github.com>
* Fix the calculation of `areaChecksGotten` to account for flags functionality setting invisible checks.
Change `areaChecksTotal` to dynamic calculation based on tracker visibility, now that all checks are being added to `checksByArea`.
Both are updated in realtime when either "Show all GS locations" or "Hide right side shop items" are toggled.
Reformat all remaining unencapsulated if statements.
* Changed helper variable change and call to `RecalculateAreaTotals()` to when the options are toggled instead of checking every frame.
Removed redundant if...else.
Clarified areaChecksGotten increment/decrement functionality based on current status and incoming status change.
* Removed unused code.
* Add Architecture Priority to Info.plist
This allows the app bundle to be launched natively on Arm without the need for Rosetta.
* Remove arch shenanigans in soh-macos.sh.in
Shouldn't be necessary now...
* Add back launching the binary in soh-macos.sh.in
Accidentally removed launching the binary from the script.
* First dirty testing process
* Forgot a 2 for the second Dlist patching of Shadow
* TWEAK: GI integration
* DEL: Unucessary includes + whitespace
* TWEAK: No stones refactor for now, sorry I'm kinda lazy right now, don't hate me, please! T_T
* Stone removal part 2, sometime I forget to save the changes :derp:
* Tiny last tweaks, hopefully
* Add to rando preset
* Tweak: typo
* TWEAK: Trigger on toggling on/off
* TWEAK: adressed reviews 💯
* Please mate, excuse my British typing
* 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
* Advanced Resolution Settings
first working version with most features implemented
* Update advancedResolutionEditor.cpp
Added auto-resizing logic for Pixel Perfect Mode.
Minor fixes.
* Tweaks and tidying up.
Disable integer scale slider if automatic sizing is overriding it.
Don't offer these UI options on Apple.
Removed unused code.
Updated LUS.
* Update libultraship
* Filenames and style fixes
Filenames and folders now more closely match rest of project.
Tidied newlines/comments.
(SohMenuBar.cpp) Label of button changed to fit menu.
(ResolutionEditor.cpp) Default window size improved.
* Update libultraship
(However, I still need to make the GUI controls acknowledge the new constraints.)
* Update libultraship
(and changed the name of some cvars)
* Added constraints to the inputs. Added a fps drop warning.
* Tweaks based on feedback
* Update libultraship
* Enabled on Apple - For currently ongoing Retina DPI troubleshooting.
(Also removed the duplicated N64 Mode toggle.)
* Update libultraship
* Update LUS, update CVar names, small tweaks
And one significant fix: Enhancement checkboxes in ResolutionEditor now default to off.
* Add Additional Settings and the accursed horizontal resolution field.
There's still a few bugs with it that I haven't squashed, but I need to stop for now and just commit what I've got.
(This is honestly causing more problems than it solves, but i'm tired of getting questions about it.)
* Resolved many of the lingering bugs with the previous commit
* Horizontal Resolution field now properly acknowledges resolution bounds.
* Don't show "Horiz. pixel count" field if not enforcing aspect ratio.
Additionally:
* Don't change settings if selecting "Custom" from preset dropdowns.
* Added a missing horizontal pixel count clamp check.
* Tidied up redundant behaviour.
* Additional comments, and a checkbox to disable aspect correction on consoles.
* Change how frame rate threshold is calculated.
* More minor UI tweaks.
* Added missing CVarSave() calls where needed.
Added a short update countdown for the numerical CVars. This is intended to prevent CVarSave() from being called too often.
* Added a helpful button to cover a potential support issue.
* "Fit Automatically" has been moved to LUS and is now smarter.
This will require another PR in LUS to be opened by me.
* Swap to new branch for libultraship
* Even more clever integer scaling behavior.
"IntegerScale" is itself now a CVar group.
* Tidy up comments.
* Fix a typo that prevented `IsDroppingFrames()` from working
(Maybe more than a mere typo, but a typo was involved.)
* Remove unused and unnecessary variables.
* Group "Integer Scaling" under its own collapsing header
* Changed label for the Enabled advanced settings checkbox.
* Update libultraship + Formatting pass on ResolutionEditor.cpp
* Add `(Select "Off" to disable.)` help text for the aspect ratio setting and hide UI elements accordingly.
Only show the fields if user chooses Custom.
Padding has been shifted accordingly too.
Also fixed a long standing error with the Y field disappearing when modifying X.
* Well I suppose that's no-longer necessary.
* Update libultraship with commits from main branch (up to e5df3a9)
* Tweak comments.
* Save current ImGui Combo items as a console variable
to improve user experience.
* Change language of NeverExceedBounds checkbox description
to be more affirmative, so it makes more sense.
Add tooltip for NeverExceedBounds checkbox.
Tweak some comments related to additional settings.
* Add list of colours to use with TextColored elements.
* Move some UI elements around.
Add an extra MSAA slider to the editor window.
* Integer Scaling header is DefaultOpen if player has Pixel Perfect Mode active upon window creation.
+ Amend tooltips.
* Fix a minor oversight with default configuration.
Fixes an issue where default aspect ratio settings on a fresh SoH configuration weren't matching the defaults assigned in libultraship.
The default values are now 16:9, matching LUS.
Additionally, the combo box now defaults specifically to the 16:9 preset instead of "Custom".
(Fixing the defaults in LUS to be 4:3 isn't worth a LUS bump, so this slight workaround will do for the sake of this PR.)
* Make resolution slider `disabled` condition a variable, for readability.
* Small tweak to combo item saving
* Use `SCREEN_HEIGHT` and `SCREEN_WIDTH` for constraints
* Simplify "Show a horizontal resolution field" logic
by using pixel dimensions as the aspect ratio directly, since now this view hides the aspect ratio setting from the user anyway.
* Correct aspect ratio visualiser to be un-inverted
+ actually display it as a ratio.
* Remove update flags from combo boxes + remove update countdown
+ remove non-functioning 'IsBoolArrayTrue' function.
(The countdown was an okay idea but I didn't implement it correctly. It's better to just keep it simple.)
* Code review suggestion: disable UI elements conditionally
(+ tweaks to code style)
* Invisible tweaks to the Integer Scaling-related Additional Settings
This looks like a lot but it's mostly just re-arranging a cluttered area of the code for clarity.
Actual changes to functionality are:
* Help text now "disabled" along with the checkbox.
* The NeverExceedBounds checkbox will now reset the unused ExceedBoundsBy cvar if it's been changed.
* Assorted small tweaks to comments and variable declarations.
* Code review suggestion: tweak "Window exceeded" warning condition
* Missed a thingy.
* Add player state dead check to Player_UseTunicBoots
* Update soh/src/overlays/actors/ovl_player_actor/z_player.c
---------
Co-authored-by: Garrett Cox <garrettjcox@gmail.com>
* Hook into flagset hooks for processing check tracking. Has some manual workarounds (some breaks still need to be found).
Remove areaChecks and looping functionality as redundant.
* Additional vanilla handling.
* Fix tracker not showing MQ checks in MQ non-rando.
Fix tracker marking non-MQ variants of dungeon checks (e.g. map chest, etc) when collecting in MQ.
* Set all areas to spoiled if not rando.
* Revert attempt to spoil in randomizer based on MQ dungeon count as I don't know how that works at the moment.
* Restore and update spoiling based on MQ dungeon settings (none, selection, or count of 12).
Fix Anju As Adult check.
* Remove Anchor-specific code :baguette:
* Use `ClearAreaTotals()` in `Teardown()` instead of the duplicate code there.
* Update to `ClearAreaChecksAndTotals()` with `vec.clear()` added.
* Fix type spoiling again. Now spoils on 0 MQ dungeons, not rando, if the option is enabled in check tracker settings, selection, or set number of 12.
Fix vanilla checks being marked collected in MQ dungeons.
* Fix 100 GS check.
* ACTUALLY fix 100 GS: change flag type to `RandomizerInf()` in `item_location.cpp`, add RC to RandoInf for it to the table. Also don't send GI for flag if father, falsely triggers ZR frogs minigame.
* Fix gravedigging tour tracking.
* Fix membership card check tracking.
Change scene and flag values to any existing enums.
Clarifying formatting for the checking loop vOrMQ conditions.
* Fix Gravedigging Tour tracking.
Simplify Always Win Gravedigging Tour and Fix Gravedigging Tour Glitch applications.
Modified all necessary paths to use vanilla GDT PoH collection flag instead of randomizer variant.
* Fix Kak Potion Shop being "seen" when entering as child.
* Document static variables
* Document enums and structs
* Document some functions
* Document more functions
* actionParam to itemAction and fix build
* Document some local variables and a define
* General cleanup
* Use PlayerMeleeWeaponAnimation enum when appropiate
* Document some function parameters and local variables
* Document some of player struct