* prefix randomizer methods with Randomizer_
* make filename a local var
* remove unused file, update malon to use new names
* move randomizertypes to randomizer directory
* rename to Randomizer_GetSettingValue
Co-authored-by: briaguya <briaguya@alice>
Also auto-dissmisses the textbox when gSkulltulaFreeze is on. When gInjectSkulltulaCount is off, text is not auto-dismissed just like before, since that is base game text still.
Basically, some external code can choos a unique id and create a message table for itself. The idea is that modders can hook into this as well so they can get their own message table and don't have to worry about conflicting with the base game's textIDs. I have also implemented this setup for Randomizer so that the pre-filled bottles (which didn't exist in the original outside of Ruto's letter) have unique text as compared to the text for the item they are filled with.
`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.
* 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>
* 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.
* wip free cam
* Almost done, needs collision still
* Added free cam behind cvar
* added WIP collision
* Fixed & implemented "Manual mode" from WW & TP
* Fixed camera not rotating when Link is moving
* fixed initialized camera rotation
* Fixed camera getting stuck + made it smoother
* reduced deadzone
* fixed epona camera height + added WW z-target free camera
* Adjusted player camera height & fixed fov
* Fixed camera roll
* fixed fov when moving the camera while in z-target
* Camera resets to Auto when going through doors or changing maps
* Fixed building
* touch
* more touch work
* Added WIP mouse support to the free cam
* gui stuff
* fixed building
* fixed building error
* ok fixed building for real this time
* oops
* Fix compilation issues
* removed mouse stuff that magically appeared in this branch
* smoothed out stick values & removed remains of mouse support
* re-added manual camera when pressing Z
* reduced minimum Y position of camera
* Addressed dcsv's nitpicks
* part 2
* oops
Co-authored-by: David Chavez <david@dcvz.io>