* Create the ingame options game state
* Base working version of in-game options
* Cleanup + Optimization
* Localization pass
* more cleanup + documentation
* tooltips on option hover
* documentation and better inbounds check
* match case
* format strings instead of direct strings
* unused parameter
* address feedback
* localization id conflict with master
* Add this line back in
* pass the new option flags as well
* resolve xstr id conflict
These variables are only ever used in the scope of `os_get_legacy_user_dir()`, so they can be scoped rather than global. This should fix a Coverity issue on the `DCF(low_mem` debug console function.
* Add imgui
* migrate render options
* remove wmcgui
* Add subsystem selection and highlighting
* Add a syntactic sugar extension for imgui
* don't rebuild the mission list every frame
* Add imgui_sugar extension
* Move helper functions out of lab_ui, add function to display consolidated table text for object
* add button to export cubemap
* fix entering and exiting the lab
* refactor some of this for greater cleanness
* use techroom lighting when no mission background is set
* minor things
* add imguizmo
* add imguizmo
* Add imgui
* migrate render options
* remove wmcgui
* Add subsystem selection and highlighting
* Add a syntactic sugar extension for imgui
* don't rebuild the mission list every frame
* Move helper functions out of lab_ui, add function to display consolidated table text for object
* add button to export cubemap
* fix entering and exiting the lab
* refactor some of this for greater cleanness
* minor things
* add imguizmo
* add imguizmo
* Add button to reset changes made in the render dialog
* refactoring
* unfuck rebase
* fix issue with loose mission files
* use with_CollapsingHeader for greater uniformity
* add weapon selection functionality
* make primaries and secondaries fire again
* implement animation triggers
* avoid crash when switching back and forth between ships with and without team colors
* add control to set team color setting to renderer texture dialog
* make sure the table text updates when the ship class changes
* let rotating subsystems rotate
* do not add imgui.h to pstypes
* code cleanup
* add subsys highlighter from fred
* Highlight non-modelled subsystems as well
* add cmdline flag to show the imgui demo dialogue
* fix compiler warnings reported by CI
* fix error when building the subsystem list
* refactor variable/method naming
* code cleanup
* remove vestigial code
* update to imgui 1.89.1
* add credits entry for imgui
* use the imgui namespace
* Separate the background dialog out into its own window
* make sure the subsystem highlights are placed correctly
Co-authored-by: Fabian Woltermann <[email protected]>
`os_ignore_events()` deferred events instead of ignoring them. The
player could accidentally skip a cutscene at the loading screen and
not see any indication there was a cutscene.
This only removes deferred skip-cutscene key events, except ESC, right
before the cutscene plays. This makes it less likely for a player to
accidentally skip the cutscene.
This also renames `buffered_events` to `deferred_events` and
`os_ignore_events()` to `os_defer_events_on_load_screen()`, which more
accurately describes the behavior.
Fixes#4419.
os_ignore_events() was buffering events instead of ignoring them. This
caused any skip-cutscene key to be buffered during the loading screen,
which would later be handled during the cutscene. From the player's
perspective, there was no cutscene.
This changes os_ignore_events() to ignore events.
Fixes#4419.
If SDL completely fails to get its preference path, at least warn the user so that it doesn't crash straight to the desktop without creating a debug build.
The standalone did not initialize SDL and so did not receive the quit
signal when it was sent SIGTERM or SIGINT. This fixes that by making the
standalone server just use the normal os initialization code.
Also includes some other code cleanup and some more logging to make it
more apparent in the log what is currently happening at standalone
startup.
This mostly meant for special docker standalone server builds where it
might be useful to have full release performance but also have the logs
available if necessary. This now always compiles the log statements but
enables or disables them with a constexpr so they should not appear in
actual release binaries.
Since FSO does not support Unicode characters in filesystem paths on
Windows yet, it is necessary to catch these issues early on and display
an appropriate error message. These changes do that by going through the
path with our UTF-8 decoder and detecting any characters that are out of
the ASCII range.
This is a system for storing arbitrary data in the config file and then
easily retrieving it later on. This has full Lua support for exposing
the available options in a custom UI and changing the values of the
options. This ported some of the existing command line options over to
the new system which is opt-in for the moment by using a mod_table flag.
This adds the runtime and compile version of the used SDL library to the
start of the debug log. This was requested by ngld and should make
diagnosing some errors easier.
This will make debugging config location issues easier since the log
will state which path os_is_legacy_mode took while determining the
legacy mode status.
There were some reports that using a newer launcher together with an
outdated launcher was causing some issues since the new launcher would
write the new config file which would cause FSO to ignore the changes of
the old launcher since the new config file already exists.
This fixes that by adding a check for when the config locations were
last modified. On Linux and Mac it checks when the old config locations
were modified last while on Windows it checks the registry to determine
if there was a change after the new config file was created.
FSO now allows the window title to be specified via game_settings.tbl, some never-used function arguments were pruned at the same time, and fred.rc now receives version information (for the About dialogue and the title bar) from a cmake-generated header, so the version numbers get filled in properly. Speaking of FRED's About dialogue, it now displays the copyright symbol properly.
This allows to use a different method of creating and managing the
OpenGL context. This is needed of wxFRED where the OpenGL context is
created by wxWidgets. This will probably also fix#753 since it uses the
old wgl based method of creating an OpenGL context in FRED.
The documentation says that the SDL OpenGL attributes need to be
initialized before a window is created. These changes implement that by
moving the actual SD_Window creation inside the OpenGL setup. FRED only
sets the native window handle to the correct HWND and gropengl uses
that.