mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-07 08:15:59 -10:00
c28032a2afa99b508aaafe96ec075b4ec4a54b1c
* only strip the legacy M/S suffix from the last pilot when needed player_select_get_last_pilot_info() chopped any trailing uppercase M or S from the LastPlayer value, a holdover from the pre-pilot-file era. Pilots whose callsigns end in M or S (e.g. BOSS) were never found as the last pilot. Now the suffix is only removed when the full callsign is not a pilot but the shortened one is. This also avoids indexing before the string when LastPlayer is empty. Co-Authored-By: Claude Opus 5.5 <[email protected]> * route all pilot selection through one commit function player_select_close() and player_finish_select() each had their own copy of the code that loads a pilot as the active Player, and the copies had drifted apart. Both now call player_select_commit_pilot(). This fixes two bugs: * -pilot did not work with the retail pilot select screen. player_finish_select() loaded the requested pilot, but then player_select_close() loaded the highlighted pilot (the most recent one) over it. The close handler now skips the load if a pilot has already been committed. * player_finish_select() ignored its is_multi parameter when setting player_was_multi, so scripted selection of a multiplayer pilot saved it as single-player. Scripted selection also now saves the pilot file, as the retail screen already did. The background bitmap handle starts out as -1 so that the close handler doesn't release bitmap 0 when the screen was never set up. Co-Authored-By: Claude Opus 5.5 <[email protected]> * select pilots automatically at game init, through the normal commit path -startgame, -connect and -almission (via Cmdline_use_last_pilot) used player_select_get_last_pilot(), which loaded the last pilot directly without most of the setup that a normal selection does. It skipped valid_pilot(), multi_options_init_globals() and saving the pilot file. Because it never entered the pilot select state, it also turned off the main hall's fallback for an unavailable campaign. Meanwhile -pilot and -benchmark_mode were handled on the pilot select screen itself, which scripted UIs replace entirely. All of these now go through player_select_try_auto_select() at GS_EVENT_GAME_INIT. It picks the -pilot callsign, else the last pilot if it still exists, else the most recently saved pilot. It shows the startup warning popups, validates the pilot, and commits it through player_select_commit_pilot(). The pilot is multiplayer if -startgame or -connect was given, and single-player otherwise. If there are no pilots, or validation fails, the pilot select screen is shown as usual. The main hall now allows the campaign fallback whenever a pilot has just been committed, not only when coming from the pilot select state. Co-Authored-By: Claude Opus 5.5 <[email protected]> * select a pilot automatically for -start_mission -start_mission skips the main hall, but it still waited on the pilot select screen. It now uses the same automatic pilot selection as the other quickstart options, so the screen only appears if there are no pilots. The pilot is committed as single-player, consistent with the main hall forcing single-player mode for -start_mission. Co-Authored-By: Claude Opus 5.5 <[email protected]> * skip the intro movie for quickstart options When the command line asks to skip pilot selection (-start_mission, -pilot, -startgame, -connect, -almission, -benchmark_mode), the intro movie now doesn't play either. It could take several minutes before the game even reached the pilot. The OnIntroAboutToPlay hook still runs, as it does when the mod table disables the intro. Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
FreeSpace2 Source Code Project
Building
Before you do anything, make sure you have updated your git submodules, either by running git submodule update --init --recursive or by cloning the repository with the --recursive flag.
The main instructions for building can be found at our github wiki, on the Building page.
Releases
1
Release release_26_2_0
Latest
Languages
C++
75.7%
C
22%
CMake
1%
HTML
0.5%
Objective-C++
0.3%
Other
0.2%