`CustomMessage_RetrieveIfExists` is placed at the very beginning of the z_message_PAL.c `Message_OpenText` if statement after any special changes to textIds are made. This function will either return either true or false and if true it will populate the necessary values of font and msgCtx to display said message. It's placement at the beginning also allows for overriding existing textIds to have new information, which will come in handy later.
Pulls the Custom Message related code out into it's own class, which has an initialization phase where other enhancements / future features can create messages during an initialization phase to be stored and retrieved later. Along with this refactoring, the 4 bottle messages from the previous rando-specific system are now created and stored during intialization and retrieved by their getItemId.
Now that it isn't rando specific, the goal is to move anything text changes that are hard-coded into z_message_PAL.c and refactor it so that future text additions/overrides can be done without modifying that file.
This static table is normally only used within z_player.c, but is needed to switch the itemId to something Item_Give() can use and to set the correct TextId.
Allow player to toggle equipment on/off on the equipment subscreen. For tunics and boots, this will revert them to Kokiri Tunic/Kokiri Boots. For shields, it will un-equip the shield entirely. For swords, only BGS/Giant's Knife is affected, and it will revert to Master Sword.
* Fix controller
* Also fix rumble strength being a bool
* Remove ControllerHud.cpp
* Downgrade platform toolset back to previous version
* Fix gyro
* Fix bug that makes binding axes difficult and clear buttons before reading
* Exaggerate gyro display and adjust stick binding threshold
* Initialize drift thresholds
* Initial controller hud ui
* Reverted fbdemo changes
* Moved config to json and implemented controller config
* fix build on linux, gitignore new config file
* fix build
* Fix compilation and file directory paths
* Call save on cvar save
* Fixed cvar loading and added deck slots to the config
* Changed control deck port 0 to use a physical device by default
* Added gyro and rumble & fixed loading errors
* Save config on toggle menubar
* fix linux build
* Fixed drift calculation
* Controller config now saves when pressing F1
* Removed ExitGame hook from ImGuiImpl
* Moved mappings to a map
* Added GetKeyName
* untranslate scancodes
* Fixed hud layout on keyboard device
* Fixed keyboard read on hud
* Fixed crash when reloading controllers
* Removed ConfigFile and changed file extension
* Changed Dummy to Disconnected and fixed filters
* Removed function leftover
* Changed ControllerHud to InputEditor
Co-authored-by: briaguya <briaguya@alice>
Co-authored-by: David Chavez <david@dcvz.io>
In rando, when we find a special quest item somewhere (e.g. a medallion, stone, or song), play that item's unique fanfare instead of the default "get item" fanfare
Closes HarbourMasters/Shipwright#716
* Introduce app directory path concept
* macos: Remove hacky way of using applicaiton directory
* Update the new SaveManager
* Address stack user after return
* Remove unecessary property
* Use std::string for filepath
* Improve clang specific detections
* Use new path system for imgui files
* Improve helper for getting relative paths
We use 3DS logic to generate item placement, but didn't have this specific door in Water Temple unlocked from the beginning like 3DS does.
This meant that if people took specific paths through the temple, they could softlock themselves by missing a key.
* Fixes using the Ocarina to get the check from Malon.
Still some cleanup to do here. For some reason the player can shield before receiving the check. It doesn't set the flag if the player does that so they can still try again, but would prefer a different solution if possible.
* Prevents Shielding from blocking the Item_Give from happening.
* Code Cleanup and comments explaining the new rando flow.
* Removes inventory check when pulling out Ocarina
This allows OI to properly give the check, which is important for Glitched logic later down the line. Talking to Malon still requires the Ocarina in your inventory.
* Prevents non-malon textboxes from triggering the check.
Also adds a comment explaining the condtional for getting the check from talking to Malon since it got pretty long.
* Actually fixes checking for text boxes.
* Relocates a comment for improved clarity.