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.
* Array size UB fixes
* Fix ShieldD
* Remove (almost) all unsafe strcpy calls
Bunch of macros. C arrays are easy enough and just need a different call. For various cases where a char* is passed around bare, I've made a TEXT_SPAN macro that can store a length too for bounds checking.
* Move crash handling in safe string operations to separate TU
* strcat safe version
* sprintf made safe too
* Fix compile
Adds an Output Resampling option to the Video tab to allow choosing between the old Bilinear sampler and a new Area sampler. Area sampling produces a much cleaner, softer image when downscaling, and a significantly sharper image when upscaling. This can also serve as a halfway decent anti-aliasing substitute until we have a more proper implementation.
* Add interpolation frame rate cap
* wip: reworked framelimiter
Based on my testing this is a bit more stable in frametimes.
* wip: efficiency improvement + windows build fix
Significantly improve efficiency by using a hybrid approach.
* wip: UI changes
* wip: end frame AFTER limiting
* wip: remove unused include
* wip: minor ui code change
Makes it easier to remove/add presets
* Simplify Limiter UI
- Change enableFrameInterpolation to an enum with off/capped/unlimited values
- Simplify the UI to use 2 settings (unlock framerate + a max value entry)
* wip: slight limiter simplification
* wip: implement review suggestions
* wip: fix syntax error
* wip: revert enum order + replace old checks
* Fix compile error
---------
Co-authored-by: SailorSnoW <sailorsnow@pm.me>
Co-authored-by: Loïs <49660929+SailorSnoW@users.noreply.github.com>
Co-authored-by: SuperDude88 <82904174+SuperDude88@users.noreply.github.com>
Co-authored-by: Luke Street <luke@street.dev>
* added .zed/ to gitignore (editor configs)
* remember window position upon closing
* Save window location on SDL_EVENT_WINDOW_MOVED or SDL_EVENT_WINDOW_RESIZED
* Fix code format mistakes
* Also persist window width/height
* Undo change to input::handle_event
* Undo aurora submodule change
---------
Co-authored-by: Luke Street <luke@street.dev>
* Discord RPC Toggle
* I learned my lesson (Formatting)
Took me long enough
* Fix Mobile Platforms
- ifdef the setting so it builds properly on platforms that don't have rpc
- More formatting I missed
* Initial Draft
- Add draft crash report window on startup
If you want to disable them before/during startup, there is a command line option to force it
* Fixes
- Update language to be more precise, consistent with settings menu
- Actually shut down reporting properly if you disable it
- Fix my silly syntax errors
* Update text & use Sentry consent
---------
Co-authored-by: Luke Street <luke@street.dev>
* branch for recording without a HUD
* no more black bars thanks maddie
* Backslash hotkey
* mute music
* dont check for null twice
* renamed option to recording mode, and added it to the rmlui menu
* Move recording mode to Interface
* re-added & renamed minimal hud option
* Mute all BGM if recording mode is on
* Update Interface section
* Un-experimentalize Autosave & enable in Dusk preset
---------
Co-authored-by: MelonSpeedruns <melonspeedruns@stratobox.net>
Co-authored-by: Irastris <irastris15@gmail.com>
Co-authored-by: Luke Street <luke@street.dev>