* Add HUD scale setting
Adds a "HUD Scale" preference (50%–200%) that scales the gameplay HUD
(hearts, magic/lantern meter, light drops, rupees/keys, action buttons
and the mini-map) without affecting dialog boxes or menus.
Each HUD group is scaled around its own pane origin and nudged toward
its anchor corner (via dApplyHudCorner) so it stays put against the
screen edge instead of drifting toward the centre when shrunk. The
mini-map is scaled and shifted in d_meter_map so its bottom-left corner
stays anchored. The setting is clamped to a safe range and is a no-op on
non-PC targets. It is disabled in the menu while Minimal HUD is enabled.
Signed-off-by: kevin Lema <kevin.soesto@gmail.com>
* Scale remaining gameplay HUD elements with HUD scale
Extends the HUD Scale setting to the item ammo counters, the lantern oil
gauge and the small-key counter, and gives the oil/magic meter a reduced
horizontal anchor pull so it stays on-screen at small scales.
Signed-off-by: kevin Lema <kevin.soesto@gmail.com>
* Update settings.cpp
Signed-off-by: kevin Lema <kevin.soesto@gmail.com>
---------
Signed-off-by: kevin Lema <kevin.soesto@gmail.com>
* Slight dKankyo_housi_Packet documentation
* Optimize dKyr_drawHousi (twilight squares)
Now a single draw call rather than like 300
* Optimize dKyr_drawSnow
Snowpeak stonks rising
* Optimize dKyr_odour_draw
* Untie existing mouse logic from gyro
* A bit more mouse cleanup before I start building off it
* Rebase and last bit of cleanup
* Fix rebase mistake, don't apply invertFirstPerson to gyro or mouse input
* Remove the deprecated ImGui toast system
* Add Mouse Camera option in preparation for its use
* WIP, add mouse controls for the third-person camera
* Various helpText revisions
* Enable free camera on horseback
* Untie mouse camera and free camera options
Either being enabled now allows the underlying freecam logic to run
* Allow simultaneous C-stick and mouse input
* Combine mouse sensitivities for both aim and camera
* Add option for inverting mouse Y
* Refactor cursor visibility handling
* Tighten aim capture condition and constrain cursor to window region
* Tidying my trash
* Last bit of housekeeping so I'm satisfied
* Don't write code while sleep deprived
* Fix my sloppy merge and a few helpText updates
* Disable control stick aim when mouse aim is active
* Use same conditions for cursor grabbing as for capture
We now register a CVar for mod enablement for each mod.
Also made LoadedMod stored in unique_ptr because we keep pointers to them already, and I'm entirely uncomfortable with keeping pointers to the vector directly.
Now we store the raw JSON value in memory for unregistered CVars.
Intended to be used for mod CVars, as we obviously can't statically define all of those.
CVar names are now stored as an std::string, so the lifetime is easy to manage when dynamically registered.
CVars cannot be moved/copied anymore. We had some code that was accidentally relying on this, and I fixed that.