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>
* Start game execution as soon as a disk image is available
* Do not update dDemo_c if prelaunch document is visible
* Prevent intro music until prelaunch has popped
* Replace "Start Game" references with "Play"
* Make prelaunch layout respect mirror mode
* Add drop shadow to prelaunch disk-status and version-info
* Remove ImGui prelaunch
* Add "Change Disk Image" button to prelaunch options
* Actually validate discs and make prelaunch very betterer :)
* Check your build before pushing dumbass, and go to sleep
* "Disc" consistency, adjust restart notice logic
* Better LanguageSelect logic
* Add restart notice to SaveTypeSelect
* Added wind sounds to the pre-launch menu
* Add Modal document, use it for disc verification
* Consolidate Modal and PresetWindow
* Squash various bugs, rearrange document flow
* Allow Window inheritors to opt-out of being toggleable
* Tweak focus behavior/syntax
* Implement "Restart Now" option
* Tweaks
* Remove a bunch of dynamic_cast
* Update README.md
---------
Co-authored-by: Luke Street <luke@street.dev>