Commit Graph
125 Commits
Author SHA1 Message Date
Daft Mugi c9dd97d223 Prevent accidental skip cutscene at loading screen
`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.
2022-07-02 16:58:52 -05:00
Daft Mugi 25a6bf2b87 Prevent accidental skip cutscene at loading screen
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.
2022-07-01 14:40:10 -05:00
JohnAFernandez 18754fafc1 Force Portable Initial Changes (#3562)
Allows us to at least try to use a file path with a unicode character

Typo

Fixup

Update osapi.cpp
2021-07-25 14:18:45 -04:00
JohnAFernandez a764b3463c Warn the User About a Probable Incoming crash (#3011)
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.
2020-12-30 10:37:58 -05:00
asarium 0f220d2ecf Capture SDL logs to our standard logging output
This can be useful when SDL produces log output that helps with
debugging an issue.
2020-12-23 14:03:24 +01:00
Goober5000 cacee6e5b8 a few more 2020-03-02 01:07:17 -05:00
m!m bf4243c0b0 Merge pull request #2285 from asarium/docker/fixEventHandling
Fix standalone signal handling
2020-02-29 18:33:46 +01:00
asarium 582c144cf7 Fix standalone signal handling
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.
2020-02-29 17:09:55 +01:00
asarium 7029e4a10f Add compile time option to enable logging in release builds
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.
2020-02-24 18:54:55 +01:00
asarium cf8fa26187 Fix #2086: Detect unsupported characters in root paths
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.
2019-10-20 12:46:00 +02:00
asarium ad1ede7b74 Add new options system
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.
2019-03-02 14:02:21 +01:00
asarium b78d940136 Write SDL version to debug log
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.
2018-09-10 09:36:24 +02:00
asarium 8c1e753991 Add log output for legacy mode reason
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.
2018-06-17 20:51:11 +02:00
asarium 1448277c29 Enable legacy config mode if legacy config is newer
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.
2018-06-02 12:09:21 +02:00
asarium eeed22b91a Enable misc-unused-parameters
clang-tidy was used for fixing the warnings. It is not clear if this is
actually an improvement so this may still be disabled later.
2018-04-25 11:57:55 +02:00
asarium 0b4ca71eba Enable modernize-deprecated-headers 2018-04-25 11:12:41 +02:00
asarium 91d6d90c9b Merge branch 'master' into qtfred2_/sync 2018-03-08 10:34:00 +01:00
MageKing17 b1046b1c1c Window title overhaul.
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.
2017-11-17 02:51:36 -08:00
asarium 965a327630 Merge branch 'master' into qtfred2_/sync 2017-08-04 09:09:32 +02:00
asarium aac3bbde8e Remove abort call from debug_int3
This fixes #1366.
2017-06-09 10:19:48 +02:00
asarium 2c30dbcda6 Add better control of viewport destruction order 2017-05-27 23:51:39 +02:00
MageKing17 19a37eb04d Merge pull request #1024 from asarium/feature/defaultConfigLoc
Improve logic for determining legacy mode
2017-02-04 11:33:45 -08:00
asarium bcf2ddefba Begin fixing string const correctness 2017-01-02 12:29:14 +01:00
asarium 5725562435 Improve logic for determining legacy mode
Now it will also check if the old config location exists and if it
doesn't then the new config mode will be used by default. This should
fix #858.
2016-12-20 17:59:41 +01:00
asarium efdd4fae68 Add interface for viewport management
This separates OpenGL context creation from window creation and also
allows to implement multiple viewports in the future.
2016-08-19 17:44:17 +02:00
Echelon9 69a88cf58f Improve legacy mode warning console message
Without the new line, this important warning line can get lost within
the console messages e.g. on Linux.
2016-08-13 17:44:03 -04:00
asarium 0bf5ba092b Add interface for creating an OpenGL context
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.
2016-08-07 21:38:36 +02:00
asarium 0473ead31f Make sure that SDL OpenGL is initialized
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.
2016-08-05 21:51:29 +02:00
asarium 18154bfa60 Clean up FRED init a bit
Maybe this will help tracking down that FRED OpenGL issue
2016-08-01 19:10:51 +02:00
asarium 1bcd5400d3 Move build system to CMake 2016-07-22 12:07:19 +02:00
asarium 05dda73ecd Only process events that belong to the main window
SDL2 support multiple windows and differentiates the events for the
individual windows using the windowID field in the events. These changes
check if that window ID belongs to our main window and ignores any
events that don't belong to it. This allows to add another window
without screwing up the rest of FSO with its input.
2016-07-17 18:20:56 +02:00
Fabian Woltermann 2eab9514a9 Merge pull request #663 from asarium/feature/exitOnSdlQuit
Quit game when receiving SDL_QUIT event
2016-07-16 17:09:18 +02:00
asarium 9f9809be5d Ignore all OS events when loading a mission
This should fix the "Application unresponsive" errors.
2016-07-16 16:23:30 +02:00
asarium 8db274ee7f Quit game when receiving SDL_QUIT event
This allows FSO to exit gracefully when receiving a SIGINT or SIGTERM
2016-07-16 15:48:22 +02:00
asarium 0751a7ab0f Use a vector instead of unordered_map 2016-07-16 15:18:30 +02:00
asarium 54381c2762 Fix typo 2016-07-16 15:18:30 +02:00
asarium afef5a7309 Add API for registering custom event handler
May be useful for future text input or scripting implementations
2016-07-16 15:18:30 +02:00
asarium 44b44bb249 Fix compilation with SDL 2.0.4 2016-06-03 19:58:50 +02:00
asarium 54cb475d30 Unify config handling on all platforms
This will use SDL_GetPrefPath to determine a suitable config directory which will be used for all runtime writing. Additionally all platforms will now use the configuration ini files, the Windows registry will be deprecated. For better compatibility with current installs there is a "legacy mode" which will work like the current install. It will be used as long as the launcher doesn't write the configuration file to the new location. Migrating old installs requires copying the existing pilot files to the new location and copying any existing configuration data.
2016-03-16 19:42:52 +01:00
Fabian Woltermann 66c9b7584c Merge pull request #330 from asarium/antipodes_/messageBoxCleanup
Replace Win32 MessageBox with os::dialogs version
2015-08-31 08:58:54 +02:00
asarium 451d451417 Replace Win32 MessageBox with os::dialogs version
Also moved SCP_MessageBox into os::dialogs namespace
2015-08-28 16:24:35 +02:00
z64555 a82784756c Enables asychronous joystick polling 2015-08-20 07:24:40 -05:00
asarium 575091aea4 Add unified dialog handling
This also changes the lables on the dialog to make sense and also unifies Int3 behavior by using a function provided by SDL.
2015-06-06 14:53:26 +02:00
asarium 4b6041980e Merge branch 'master' into antipodes
Conflicts:
	code/osapi/osapi.cpp
2015-05-28 13:07:57 +02:00
asarium a7efca662d Make the joystick system use GUIDs to identify the joysticks 2015-05-28 11:34:30 +02:00
Fabian Woltermann d4d4868fe7 Merge pull request #128 from asarium/antipodes_/resolutionFix
[Antipodes] Pick a better default resolution
2015-05-27 11:11:50 +02:00
z64555 69b845ef83 Adds mousewheel functions in addition to support for X1 and X2 buttons. These currently take up the same mappings as joy buttons 4 through 9. 2015-05-27 03:06:03 -05:00
asarium c5cf337365 Only set processor affinity if a commandline flag is present 2015-05-27 00:31:08 +02:00
asarium a7e8ecfe07 Use the desktop size to initialize a default video card config 2015-05-25 22:09:34 +02:00
m_m 088f0c2c4f Fix a few mouse related issues. This adds the CursorManager class which handles loading cursors and showing/hiding the cursor.
git-svn-id: svn://svn.icculus.org/fs2open/branches/antipodes@10487 387891d4-d844-0410-90c0-e4c51a9137d3
2014-03-10 20:52:22 +10:00