69 Commits
Author SHA1 Message Date
Taylor Richards 3f265054b8 add options to control rollback and fps on standalone
Adds multi.cfg options to allow easy tweaking of standalone servers to better handle mods
with faster ships and/or weapons that don't behave reliably with rollback or lower fps.
2026-04-02 16:31:57 -04:00
Goober5000andClaude Opus 4.6 fa86575606 Suppress Coverity GLOBAL_INIT_ORDER false positives for safe globals
Add coverity[GLOBAL_INIT_ORDER] annotations to ~50 global variables
across 27 files. These were all analyzed and confirmed safe:

- ~48 OptionBuilder::finish() globals use a Meyers singleton
  (OptionsManager::instance()), which guarantees safe init order.
  Destruction is also safe due to shared_ptr ref-counting.
- 6 default-constructed container globals (vectors, maps) have no
  cross-TU dependencies at construction or destruction time.

Co-Authored-By: Claude Opus 4.6 (1M context) <[email protected]>
2026-03-22 15:00:25 -04:00
Taylor Richards 5fd06b40fe fix multi crash loading campaigns (#6871)
A minor bug in #6077 resulted in a crash loading campaigns on the multi ui.
The bug itself was not fatal, however it triggered a cascade of poor error
handling which led to a crash. A lot of these issues date back to retail.
This fixes the minor bug, and hopefully adds enough error handling to
preemptively squash a repeat of the crash problem.
2025-07-25 21:15:31 -04:00
Taylor Richards 552f9990d9 remove support for memory mapped files (#6748)
FSO doesn't appear to use this any longer. And even when it was enabled the
requirements made it largely useless anyway. Removing to clean up cfile a
bit and so we don't have to keep maintaining it.
2025-06-05 17:53:13 -04:00
wookieejedi 0cb01f50ca Fix changes to Options not properly discarding when escape key pressed (#6597) 2025-02-22 20:55:01 -05:00
Goober5000 37a24b2a14 handle connection speed in a user-friendly way
1. Use a sensible default for the connection speed
2. Remove the `Psnet_connection` variable which is now obsolete: "its only purpose now is to change the default object update value for a player if it's set to dialup, and that's easily done in-game already"

The "You must define your connection speed" popup will now no longer appear unless it has been explicitly set to an invalid value.

Applies recommendations from, and fixes, #6402.
2024-11-03 23:09:32 -05:00
Mike Nelson 9c521d04d8 Retail ingame options (#5895)
* 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
2024-02-27 13:09:34 -05:00
mjn-mixael 668fc18d5c Make these two dropdown options to account for the longer string values 2023-12-06 15:29:32 -06:00
mjn-mixael a101e3cf77 spelling is hard 2023-12-06 15:25:37 -06:00
mjn-mixael dcce4a6538 Set the globals at player select rather than player load 2023-12-06 15:08:23 -06:00
mjn-mixael 7ce3217f17 multi login info & ip address list API 2023-12-06 12:49:38 -06:00
mjn-mixael 33a1b1f8ca clean up and fix 2023-12-06 09:59:36 -06:00
mjn-mixael a29a97f39a xstrs 2023-12-06 08:22:26 -06:00
mjn-mixael 79d3077071 quick & dirty initial work for the toggle options 2023-12-05 09:30:04 -06:00
wookieejedi 8420e00ee1 Allow Mods to specific default multi update speeds (#4531)
Previosuly, the default object update speed setting for new players was `High`. Many mods, such as Fate of the Galaxy, do multiplayer tests where we have to ensure players are using the highest object update speed, which is LAN. This extra step is cumbersome and prone to players' forgetfulness.

This PR allows mods to set the default multiplayer object update speed for new pilots to mitigate this issue. Tested and works as expected.
2022-08-13 08:57:18 -04:00
Taylor Richards b4f95c3b0c Merge pull request #4266 from notimaginative/fix_multi_timestamps
address multiple timestamp issues with multi
2022-05-17 20:07:09 -04:00
Taylor Richards df6cf572ac convert multi timestamp()'s to ui_timestamp() where appropriate
A bit overkill for some of this but just covering the bases.

 * fix issues with in-game join
 * fix multi messaging and multi pause screen
 * make sure maintenance stuff (pings, voice, file xfer, etc.) isn't
   affected by pausing or time compression
2022-05-17 07:50:50 -04:00
Taylor Richards a8618a569c add improvements to aid in multi troubleshooting:
- report when multi.cfg is missing
 - add game version, multi version, cmdline, and PXO status
   to multi.log
 - use non-interactive mode by default on standalone and
   enable it as soon as possible
2022-05-16 15:47:30 -04:00
JohnAFernandez 9d7acbcc9d Update Function Name and comment to describe what it actually is (#3451)
Change find_player_id to find_player_index, since that is what it does
2021-05-29 19:21:36 -04:00
Taylor Richards 5fb1bbbb43 fix issues with multi options packets
- don't send structs
 - big endian compatible
2020-12-24 09:38:23 -05:00
Taylor Richards 4220a426d6 fix gtrack updates to work more reliably 2020-07-12 12:12:59 -04:00
Taylor Richards f518e277f1 sanitize parsed multi.cfg settings for PXO 2019-11-30 15:32:13 -05:00
Taylor Richards bd9880bc9b replace FS2NetD with PXO 2019-11-08 02:07:14 -05:00
FSCyborg 601fa75d50 Change while(0) to while(false)
Travis is complaining about while(0), so we're getting it off of our back by switching to while(false).
2019-11-03 16:27:23 -05:00
asarium c8619ddd0d Fix uninitialized variable error detected by valgrind 2018-09-17 19:23:05 +02:00
asarium e28ebc2a6c Enable and fix misc-suspicious-string-compare check 2018-04-25 11:13:19 +02:00
asarium 0b4ca71eba Enable modernize-deprecated-headers 2018-04-25 11:12:41 +02:00
asarium 1bcd5400d3 Move build system to CMake 2016-07-22 12:07:19 +02:00
asarium 280ceabb45 Fix format warning in multi_options.cpp 2015-08-19 11:26:28 +02:00
asarium 40c81134ac Fix "format ‘%d’ expects argument of type ‘int’, but argument 2 has type ‘long int’" warning 2015-08-19 11:26:26 +02:00
asarium fe49ef63aa Fix for Coverity 1093515: Negative array index read
A memory location at a negative offset from the beginning of the array will be read, resulting in incorrect values.
In multi_options_process_packet(unsigned char *, header *): Negative value used to index an array in a read operation
2015-05-03 14:44:26 +02:00
Echelon9 c837a21f0d Now that standalone server is support on more than Windows, ensure its features are applied as consistently as possible
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10839 387891d4-d844-0410-90c0-e4c51a9137d3
2014-06-26 16:54:17 +10:00
chief1983 975f94f207 USHRT_MAX is in limits.h on Linux.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10239 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-22 19:05:15 +10:00
chief1983 a45af2f019 Found the constant USHRT_MAX I was looking for just a little too late.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10235 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-22 19:05:15 +10:00
chief1983 da4b191160 Saner parsing all around for webapi port number.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10233 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-22 19:05:15 +10:00
chief1983 459e2bd469 Fix a warning when copying the webapi port token int into its destination ushort.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10232 387891d4-d844-0410-90c0-e4c51a9137d3
2013-12-22 19:05:15 +10:00
chief1983 5ebd06bb29 Fix WebUI server name changes updating in clients and FS2NetD.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10120 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-25 19:29:36 +10:00
Echelon9 cc8310a491 Webui: Clarify the use of branching if statements, to be consistent with existing code
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10046 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:59 +10:00
Echelon9 0e34a25207 Webui: Support setting an alternative port than 8080 to host the webui on
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@10045 387891d4-d844-0410-90c0-e4c51a9137d3
2013-11-10 18:28:59 +10:00
chief1983 8d371f9e94 From Eli2: WebUI-based standalone/dedicated server code for all supported non-Windows platforms. See WIP documentation at http://www.hard-light.net/wiki/index.php/FS2_WebUI_Standalone.
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9957 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-27 13:51:48 +10:00
niffiwan 5f0351c72b Coverity: buffer not null terminated issues
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9873 387891d4-d844-0410-90c0-e4c51a9137d3
2013-10-07 20:02:29 +10:00
niffiwan 62d06cfcd9 Coverity multiple CID: fix potential not null terminated strings
git-svn-id: svn://svn.icculus.org/fs2open/trunk/fs2_open@9842 387891d4-d844-0410-90c0-e4c51a9137d3
2013-09-29 22:12:22 +10:00
Echelon9 b4a578314c PVS-Studio fix: V601 The 'true' value is implicitly casted to the integer type. 2012-11-25 02:45:16 +00:00
Valathil 374b5afafd Fix for Mantis 2731: Add a +use_pxo flag in multi.cfg 2012-11-19 17:43:40 +00:00
chief1983 4e5d3e2e57 Fix all the 'no newline at end of file' warnings I saw thrown by gcc on FreeBSD. 2012-11-02 17:30:17 +00:00
The_E 0525e871d0 PVS Studio related: Mark false alarms as such. 2011-08-30 17:46:49 +00:00
Echelon9 71255d6ba5 PVS-Studio: A call of the 'memset' function will lead to underflow of various buffers in multi code. 2011-08-11 14:53:11 +00:00
Zacam 9254dae233 Resolves LNK4221 under MSVC. multi_oo and psnet are not actually linked/used, so references pointing to them now go to multi_obj and psnet2 respectively. (Same as Antipodes 6881)
http://www.hard-light.net/forums/index.php?topic=73147.0
2011-01-30 05:59:36 +00:00
portej05 7e65e47acc Fix for issues caused by memset and _HAS_ITERATOR_DEBUGGING.
Some ugliness involved (placement new - yuck!), however given that a lot of our structures are allocated with vm_malloc, I haven't got a better way around this at present.
2009-11-13 18:06:27 +00:00
portej05 98f337f701 safe_strings - from Antipodes build #1 2009-07-27 16:06:24 +00:00