Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package descent3 for openSUSE:Factory checked in at 2025-08-25 20:37:50 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/descent3 (Old) and /work/SRC/openSUSE:Factory/.descent3.new.30751 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "descent3" Mon Aug 25 20:37:50 2025 rev:6 rq:1301115 version:1.6.0~git632.c68f6b0 Changes: -------- --- /work/SRC/openSUSE:Factory/descent3/descent3.changes 2025-05-30 17:20:26.623061503 +0200 +++ /work/SRC/openSUSE:Factory/.descent3.new.30751/descent3.changes 2025-08-25 20:38:46.733802187 +0200 @@ -1,0 +2,24 @@ +Sat Aug 23 11:06:06 UTC 2025 - Jan Engelhardt <jeng...@inai.de> + +- Add httplib0_23.patch + +------------------------------------------------------------------- +Tue Aug 5 08:22:43 UTC 2025 - Jan Engelhardt <jeng...@inai.de> + +- Update to snapshot 1.6.0~git632.c68f6b0 + * Add higher resolutions, fullscreen toggle and FOV settings + * XDG specification is heeded; configuration now lives in + ~/.local/share/Outrage Entertainment/Descent3 (instead of + ~/.config/descent3). Data files are read from either the XDG + dir or from /usr/share/descent3 (can be used for global + installs). +- Add static-order.patch +- Delete fstream.patch (merged) + +------------------------------------------------------------------- +Mon Aug 4 21:56:02 UTC 2025 - Andreas Stieger <andreas.stie...@gmx.de> + +- switch cpp-httplib requirement to cmake(httplib) as preferred and + supported by upstream + +------------------------------------------------------------------- Old: ---- c99e57cfabb16b2b428d4827eedb26b8cc20a1ee.tar.gz fstream.patch New: ---- c68f6b029a006f3fd927ef4905ebe3e099c60322.tar.gz httplib0_23.patch static-order.patch ----------(Old B)---------- Old:- Add static-order.patch - Delete fstream.patch (merged) ----------(Old E)---------- ----------(New B)---------- New: - Add httplib0_23.patch New: installs). - Add static-order.patch - Delete fstream.patch (merged) ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ descent3.spec ++++++ --- /var/tmp/diff_new_pack.U5rVab/_old 2025-08-25 20:38:47.629839724 +0200 +++ /var/tmp/diff_new_pack.U5rVab/_new 2025-08-25 20:38:47.629839724 +0200 @@ -1,7 +1,7 @@ # # spec file for package descent3 # -# Copyright (c) 2025 SUSE LLC +# Copyright (c) 2025 SUSE LLC and contributors # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,8 @@ Name: descent3 -%define commit c99e57cfabb16b2b428d4827eedb26b8cc20a1ee -Version: 1.6.0~git533.c99e57c +%define commit c68f6b029a006f3fd927ef4905ebe3e099c60322 +Version: 1.6.0~git632.c68f6b0 Release: 0 Summary: Tunnel–terrain-hybrid ship-based shooter fighting robots License: GPL-3.0-or-later @@ -27,7 +27,8 @@ Source: https://github.com/jengelh/descent3/archive/%commit.tar.gz Source2: https://github.com/SergiusTheBest/plog/archive/e21baecd4753f14da64ede979c5a19302618b752.tar.gz Patch1: system-libacm.patch -Patch2: fstream.patch +Patch2: static-order.patch +Patch3: httplib0_23.patch %if 0%{?suse_version} && 0%{?suse_version} < 1600 BuildRequires: gcc13-c++ Provides: bundled(plog) @@ -37,7 +38,7 @@ %endif BuildRequires: cmake BuildRequires: libacm-devel -BuildRequires: pkgconfig(cpp-httplib) +BuildRequires: cmake(httplib) BuildRequires: pkgconfig(glm) BuildRequires: pkgconfig(sdl3) BuildRequires: pkgconfig(zlib) @@ -60,6 +61,9 @@ %prep %autosetup -p1 -n descent3-%commit -a2 +%if %{pkg_vcmp cmake(httplib) < 0.23} +%patch -P 3 -R -p1 +%endif rm -Rf third_party/plog mv plog-* third_party/plog @@ -67,8 +71,7 @@ %if 0%{?suse_version} && 0%{?suse_version} < 1600 export CXX=g++-13 %endif -%cmake -DCMAKE_INSTALL_BINDIR="%_libexecdir/%name" \ - -DCMAKE_INSTALL_DATADIR="%_datadir/%name" \ +%cmake \ -DCMAKE_INSTALL_DOCDIR:PATH="share/doc/packages/%name" \ -DFORCE_PORTABLE_INSTALL=OFF \ %if 0%{?suse_version} >= 1600 @@ -81,30 +84,38 @@ %install %cmake_install b="%buildroot" + +mv -v "$b/%_datadir/Descent3" "$b/%_datadir/descent3" +ln -sv descent3 "$b/%_datadir/Descent3" + # packaged separately rm -fv "$b/%_defaultdocdir/%name/LICENSE" -mkdir -p "$b/%_bindir" + +# add config wrapper +mkdir -p "$b/%_libexecdir/%name" +mv -v "$b/%_bindir/Descent3" "$b/%_libexecdir/%name/" + cat >"$b/%_bindir/descent3" <<-EOF #!/bin/sh -e - progdir="%_libexecdir/descent3" - datadir="%_datadir/descent3" + progdir="%_libexecdir/%name" + datadir="%_datadir/%name" - userdir="\$HOME/.config/descent3" + olduserdir="\$HOME/.config/descent3" + userdir="\$HOME/.local/share/Outrage Entertainment/Descent 3" + if [ -d "\$olduserdir" ] && [ ! -L "\$olduserdir" ] && [ ! -e "\$userdir" ]; then + echo "INFO: Trying to mv \$olduserdir to \$userdir" + mkdir -p "\${userdir%/*}" + mv -v "\$olduserdir" "\$userdir" + fi mkdir -p "\$userdir/missions" cd "\$userdir" - if [ ! -e d3-linux.hog ]; then - ln -s "\$datadir/d3-linux.hog" . - fi - if [ ! -e online ]; then - ln -s "\$datadir/online" . - fi if [ ! -e d3.hog ]; then echo "ERROR: Copy d3.hog to \$userdir, then relaunch." echo "INFO: You may find this file on the D3 Linux ISO." exit 1 fi if [ ! -e extra.hog ] || [ ! -e extra13.hog ]; then - echo "NOTE: Copy extra.hog and extra13.hog to \$userdir, then relaunch." + echo "NOTE: Copy extra.hog and extra13.hog to \$userdir or /usr/share/descent3, then relaunch." echo "INFO: You may find these files on the D3 Linux ISO in data.tar.gz." echo "INFO: tar -C \$userdir -xf /path/to/data.tar.gz extra.hog extra13.hog" exit 1 @@ -127,8 +138,8 @@ %license LICENSE %_bindir/descent3 %_datadir/descent3/ -%_defaultdocdir/%name/ +%_datadir/Descent3 %_libexecdir/%name/ -# these are .so-like files %_libdir/netgames/ +%_defaultdocdir/%name/ ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.U5rVab/_old 2025-08-25 20:38:47.669841400 +0200 +++ /var/tmp/diff_new_pack.U5rVab/_new 2025-08-25 20:38:47.673841568 +0200 @@ -1,5 +1,5 @@ -mtime: 1748500522 -commit: 4e58b21cccac537879b2765290f224bae7bd396ec558632bb8546e4947ea3116 +mtime: 1756018102 +commit: 6ebe8a43e24c7b537037336fd6a7820d97a499fa92e44ee9d70994d620abe6bb url: https://src.opensuse.org/jengelh/descent3 revision: master ++++++ c99e57cfabb16b2b428d4827eedb26b8cc20a1ee.tar.gz -> c68f6b029a006f3fd927ef4905ebe3e099c60322.tar.gz ++++++ /work/SRC/openSUSE:Factory/descent3/c99e57cfabb16b2b428d4827eedb26b8cc20a1ee.tar.gz /work/SRC/openSUSE:Factory/.descent3.new.30751/c68f6b029a006f3fd927ef4905ebe3e099c60322.tar.gz differ: char 15, line 1 ++++++ httplib0_23.patch ++++++ >From 951bf416f403bff550102b4f16dc17c4432d391c Mon Sep 17 00:00:00 2001 From: Jan Engelhardt <jeng...@inai.de> Date: Sat, 23 Aug 2025 13:02:08 +0200 Subject: [PATCH] build: fix build failure with cpp-httplib >= 0.23 References: https://github.com/DescentDevelopers/Descent3/pull/721 --- BUILD.md | 2 +- Descent3/mission_download.cpp | 2 +- netcon/inetfile/httpclient.cpp | 4 ++-- netcon/inetfile/httpclient.h | 10 ++++++++-- vcpkg.json | 5 ++++- 5 files changed, 16 insertions(+), 7 deletions(-) diff --git a/BUILD.md b/BUILD.md index 0ed8b771..7782e0fe 100644 --- a/BUILD.md +++ b/BUILD.md @@ -4,7 +4,7 @@ ## Dependencies The build process uses [**CMake**](https://cmake.org/) and, by default, [**Ninja**](https://ninja-build.org/). You must install these; the project cannot locate them for you. The source code also depends on third-party libraries that are not provided as part of the repository: - [**SDL3**](https://wiki.libsdl.org/SDL3/FrontPage) which is used as the base to handle video, audio and input. -- [**cpp-httplib**](https://github.com/yhirose/cpp-httplib) as a HTTP client to download levels. +- [**cpp-httplib**](https://github.com/yhirose/cpp-httplib) >= 0.23 as a HTTP client to download levels. - [**glm**](https://github.com/g-truc/glm) providing useful additions to OpenGL. - [**plog**](https://github.com/SergiusTheBest/plog) for logging - [**zlib**](https://www.zlib.net/) as a compression utility diff --git a/Descent3/mission_download.cpp b/Descent3/mission_download.cpp index f494abe9..00263779 100644 --- a/Descent3/mission_download.cpp +++ b/Descent3/mission_download.cpp @@ -399,7 +399,7 @@ bool msn_DownloadWithStatus(const char *url, const std::filesystem::path &filena } httplib::Result (D3::HttpClient::*hcg)(const std::string &, const httplib::ContentReceiver &, - const httplib::Progress &) = &D3::HttpClient::Get; + const D3::HttpClient::Progress &) = &D3::HttpClient::Get; std::fstream in(qualfile, std::ios::binary | std::ios::trunc | std::ios::out); auto async_task = std::async( std::launch::async, hcg, &http_client, download_uri, diff --git a/netcon/inetfile/httpclient.cpp b/netcon/inetfile/httpclient.cpp index d15bc906..33c1e314 100644 --- a/netcon/inetfile/httpclient.cpp +++ b/netcon/inetfile/httpclient.cpp @@ -30,7 +30,7 @@ httplib::Result HttpClient::Get(const std::string &URIPath) { return m_client->Get(URIPath); } -httplib::Result HttpClient::Get(const std::string &URIPath, const httplib::Progress &progress) { +httplib::Result HttpClient::Get(const std::string &URIPath, const D3::HttpClient::Progress &progress) { return m_client->Get(URIPath, progress); } @@ -39,7 +39,7 @@ httplib::Result HttpClient::Get(const std::string &URIPath, const httplib::Conte } httplib::Result HttpClient::Get(const std::string &URIPath, const httplib::ContentReceiver &content_receiver, - const httplib::Progress &progress) { + const D3::HttpClient::Progress &progress) { return m_client->Get(URIPath, content_receiver, progress); } diff --git a/netcon/inetfile/httpclient.h b/netcon/inetfile/httpclient.h index d3e2499c..a373405e 100644 --- a/netcon/inetfile/httpclient.h +++ b/netcon/inetfile/httpclient.h @@ -32,6 +32,12 @@ namespace D3 { class HttpClient { public: + using Progress = httplib::DownloadProgress; + // no way to test with macro; would have to do a cmake-level compile check + //#if httplib < 0.23 + //using Progress = httplib::Progress; + //#endif + /** * Constructor for HttpClient * @param URL request URL, should be in form of http://example.com. Don't add "/" on the end as it's part of URIPath. @@ -46,12 +52,12 @@ public: * @param URIPath requested path (for example, "/some_dir/my_file.txt") * @return standard HTTP code. 200 means is OK. */ - httplib::Result Get(const std::string &URIPath, const httplib::Progress &progress); + httplib::Result Get(const std::string &URIPath, const Progress &progress); httplib::Result Get(const std::string &URIPath, const httplib::ContentReceiver &content_receiver); httplib::Result Get(const std::string &URIPath, const httplib::ContentReceiver &content_receiver, - const httplib::Progress &progress); + const Progress &progress); void SetProxy(const std::string &proxy_host, uint16_t port); diff --git a/vcpkg.json b/vcpkg.json index c383313e..b5e7f64c 100644 --- a/vcpkg.json +++ b/vcpkg.json @@ -1,7 +1,10 @@ { "builtin-baseline": "8f90c294883ccf67d2f4953383718aeae981575f", "dependencies": [ - "cpp-httplib", + { + "name": "cpp-httplib", + "version>=": "0.23" + }, "glm", "gtest", "plog", -- 2.51.0 ++++++ static-order.patch ++++++ References: https://github.com/DescentDevelopers/Descent3/pull/719 diff --git a/Descent3/config.cpp a/Descent3/config.cpp index 900f03aa..fe854719 100644 --- a/Descent3/config.cpp +++ a/Descent3/config.cpp @@ -353,7 +353,7 @@ void ConfigureDisplayResolutions() { return; } - std::set<tVideoResolution, tVideoResolution::tVideoResolutionCompare> resolutions; + std::set<tVideoResolution> resolutions; for (int d = 0; d < display_count; d++) { SDL_DisplayID display_id = displays[d]; @@ -417,7 +417,7 @@ void ConfigureDisplayResolutions() { if (resolutions_vec.empty()) { return; } - std::swap(resolutions_vec, Video_res_list); + Video_res_list = std::move(resolutions_vec); SDL_free(displays); // Find the index of the current screen resolution in the list diff --git a/Descent3/config.h a/Descent3/config.h index 3ffe50de..5a35ab8c 100644 --- a/Descent3/config.h +++ a/Descent3/config.h @@ -145,21 +145,14 @@ struct tVideoResolution return ss.str(); } - bool operator==(const tVideoResolution& other) { + bool operator==(const tVideoResolution& other) const { return other.width == this->width && other.height == this->height; } - struct tVideoResolutionCompare + bool operator<(const tVideoResolution& other) const { - bool operator()(const tVideoResolution &lres, const tVideoResolution &rres) const - { - if (lres.width != rres.width) - { - return lres.width < rres.width; - } - return lres.height < rres.height; - } - }; + return width != other.width ? width < other.width : height < other.height; + } }; extern std::vector<tVideoResolution> Video_res_list; diff --git a/Descent3/init.cpp a/Descent3/init.cpp index 65573807..23f912da 100644 --- a/Descent3/init.cpp +++ a/Descent3/init.cpp @@ -2061,12 +2061,9 @@ void DeleteTempFiles() { * */ -static int Init_old_screen_mode; static void (*Init_old_ui_callback)() = NULL; static bool Init_old_control_mode; -static bool Init_ui_cursor_visible; static bool Init_was_game_paused = false; -static pilot Init_old_pilot; // TODO: MTS: Unused in project void ShutdownD3() { @@ -2096,81 +2093,14 @@ void ShutdownD3() { Sound_system.PauseSounds(); } - SaveControlConfig(&Init_old_pilot); CloseControls(); // shutdown cinematics. // shutdown screen. - Init_ui_cursor_visible = ui_IsCursorVisible(); - Init_old_screen_mode = GetScreenMode(); Init_old_ui_callback = GetUICallback(); SetScreenMode(SM_NULL); // shutdown IO ddio_Close(); } - -// TODO: MTS: unused in project -// This function restarts all game systems -void RestartD3() { - ddio_init_info io_info; - - if (!Init_systems_init) - return; - - LOG_INFO << "Restarting D3..."; - - if (!FindArg("-windowed")) { - if (Dedicated_server) { - ddio_MouseMode(MOUSE_STANDARD_MODE); - } else { - ddio_MouseMode(MOUSE_EXCLUSIVE_MODE); - } - } - - // startup io - io_info.obj = Descent; - if (!ddio_Init(&io_info)) { - Error("I/O initialization failed."); - } - - // startup screen. - ddio_KeyFlush(); - SetScreenMode(Init_old_screen_mode); - SetUICallback(Init_old_ui_callback); - if (Init_ui_cursor_visible) - ui_ShowCursor(); - - // startup game systems - InitControls(); - LoadControlConfig(&Init_old_pilot); - - // resume game sounds and time as needed - if (GetFunctionMode() == GAME_MODE) { - if (!(Game_mode & GM_MULTI)) { - if (!Init_was_game_paused) { - ResumeGame(); - } else { - D3MusicResume(); - } - } - } else { - Sound_system.ResumeSounds(); - D3MusicResume(); - } - - // resume controller if it was active before alt-tabbing out. - if (Init_old_control_mode) { - ResumeControls(); - } - - // Restart Force Feedback - ForceRestart(); - - // startup cinematics. - - // startup sound. - // Sound_system.ResumeSounds(); - // Sound_system.InitSoundLib(Descent, Sound_mixer, Sound_quality, false); -} diff --git a/Descent3/pilot.cpp a/Descent3/pilot.cpp index 2a0448b5..201cb703 100644 --- a/Descent3/pilot.cpp +++ a/Descent3/pilot.cpp @@ -682,7 +682,6 @@ void ShipSelectDeleteLogo(newuiListBox *lb); void ShowPilotPicDialog(pilot *Pilot); UITextItem *pilot_items = nullptr; // array of UITextItems for use in Pilot listbox -pilot temp; // pilot in use by the listbox static std::vector<std::string> filelist; // list of pilot filenames static int filecount; // number of pilot filenames found void PilotListSelectChangeCallback(int index); @@ -825,7 +824,7 @@ struct { bool initial_call; bool all_setup; } PilotChooseDialogInfo; -pilot working_pilot; +static pilot working_pilot; void PilotListSelectChangeCallback(int index) { if (!filecount || !PilotChooseDialogInfo.all_setup) diff --git a/Descent3/pilot_class.cpp a/Descent3/pilot_class.cpp index 59f101a3..dee8a99b 100644 --- a/Descent3/pilot_class.cpp +++ a/Descent3/pilot_class.cpp @@ -172,48 +172,22 @@ extern float Key_ramp_speed; pilot::~pilot() { clean(false); } -pilot::pilot() { - write_pending = false; - initialize(); +pilot::pilot() : + difficulty{DIFFICULTY_ROOKIE}, + hud_mode{HUD_COCKPIT}, + hud_graphical_stat{STAT_STANDARD} +{ } -pilot::pilot(pilot *copy) { - write_pending = true; - initialize(); -} - -pilot::pilot(char *fname) { - write_pending = true; - initialize(); -} - -// initializes all the data (for constructors) +// Two-stage construction (because it references global vars) void pilot::initialize(void) { int i; filename.clear(); - name = NULL; ship_model = mem_strdup("Pyro-GL"); - ship_logo = NULL; - audio1_file = NULL; - audio2_file = NULL; - audio3_file = NULL; - audio4_file = NULL; guidebot_name = mem_strdup("GB"); - picture_id = PPIC_INVALID_ID; - difficulty = DIFFICULTY_ROOKIE; - hud_mode = (uint8_t)HUD_COCKPIT; - hud_stat = 0; - hud_graphical_stat = STAT_STANDARD; game_window_w = Video_res_list[Current_video_resolution_id].width; game_window_h = Video_res_list[Current_video_resolution_id].height; - num_missions_flown = 0; - mission_data = NULL; - mouselook_control = false; - key_ramping = 0.35f; - lrearview_enabled = false; - rrearview_enabled = false; - bool kiddie_settings = true; if (Database) { @@ -237,8 +211,6 @@ void pilot::initialize(void) { strcpy(taunts[i], TXT(TXT_TAUNT_TEXT + i)); } - read_controller = READF_MOUSE + READF_JOY; - if (Controller) { for (i = 0; i < NUM_CONTROLLER_FUNCTIONS; i++) { Controller->get_controller_function(Controller_needs[i].id, controls[i].type, &controls[i].value, diff --git a/Descent3/pilot_class.h a/Descent3/pilot_class.h index a9c180cc..11c094ed 100644 --- a/Descent3/pilot_class.h +++ a/Descent3/pilot_class.h @@ -170,8 +170,6 @@ class pilot { public: ~pilot(); pilot(); - pilot(pilot *copy); - pilot(char *fname); // This function guts the data so it's virgin (fresh for reading) // frees any memory that needs to be freed, etc. @@ -235,9 +233,9 @@ public: void get_mission_data(int index, tMissionData *data); int find_mission_data(const char *mission_name); -private: void initialize(void); // initializes all the data (for constructors) - bool write_pending; // data has changed and pilot data is out of sync with file +private: + bool write_pending = false; // data has changed and pilot data is out of sync with file private: // internal file access functions void write_name(CFILE *file); @@ -256,7 +254,7 @@ private: // for the read functions, skip is true if the data should actually // just be skipped and not processed - int file_version; + int file_version = 0; void read_name(CFILE *file, bool skip); void read_ship_info(CFILE *file, bool skip); void read_custom_multiplayer_data(CFILE *file, bool skip); @@ -275,46 +273,46 @@ private: //--- Pilot data ---// //--- Try to preserve alignment ---// std::string filename;// filename location of this pilot - char *name; // name of the pilot (used in the game) - char *ship_logo; // ship logo for multiplayer play (filename) - char *ship_model; // what ship does this pilot fly - char *audio1_file; // audio taunt #1 (filename) - char *audio2_file; // audio taunt #2 (filename) - char *audio3_file; // audio taunt #1 (filename) - char *audio4_file; // audio taunt #2 (filename) - char *guidebot_name; // guidebot name - - uint16_t picture_id; // pilot picture image id + char *name = nullptr; // name of the pilot (used in the game) + char *ship_logo = nullptr; // ship logo for multiplayer play (filename) + char *ship_model = nullptr; // what ship does this pilot fly + char *audio1_file = nullptr; // audio taunt #1 (filename) + char *audio2_file = nullptr; // audio taunt #2 (filename) + char *audio3_file = nullptr; // audio taunt #1 (filename) + char *audio4_file = nullptr; // audio taunt #2 (filename) + char *guidebot_name = nullptr; // guidebot name + + uint16_t picture_id = PPIC_INVALID_ID; // pilot picture image id uint8_t difficulty; // difficulty setting for this pilot (DIFFICULTY_*) uint8_t hud_mode; // hud display mode - bool profanity_filter_on, audiotaunts; + bool profanity_filter_on = false, audiotaunts = true; - uint16_t hud_stat; // hud layout using the STAT mask + uint16_t hud_stat = 0; // hud layout using the STAT mask uint16_t hud_graphical_stat; - int game_window_w, game_window_h; // game window size + int game_window_w = 0, game_window_h = 0; // game window size - int num_missions_flown; // number of mission's flown - tMissionData *mission_data; // mission data + int num_missions_flown = 0; // number of mission's flown + tMissionData *mission_data = nullptr; // mission data - uint16_t PrimarySelectList[MAX_PRIMARY_WEAPONS]; - uint16_t SecondarySelectList[MAX_SECONDARY_WEAPONS]; + uint16_t PrimarySelectList[MAX_PRIMARY_WEAPONS]{}; + uint16_t SecondarySelectList[MAX_SECONDARY_WEAPONS]{}; - tGameToggles gameplay_toggles; // special options in config menu. + tGameToggles gameplay_toggles{}; // special options in config menu. public: - char taunts[MAX_PILOT_TAUNTS][PILOT_TAUNT_SIZE]; // taunt macros - - cntrldata controls[NUM_CONTROLLER_FUNCTIONS]; // controller settings - float mouse_sensitivity[N_MOUSE_AXIS]; // axis sensitivities - float joy_sensitivity[N_JOY_AXIS]; // axis sensitivities - float key_ramping; - char read_controller; // do we read the controller port also (beyond keyboard/mouse) - bool mouselook_control; // mouselook control. - bool lrearview_enabled; - bool rrearview_enabled; // are these small views enabled? - - uint8_t ingame_difficulty; // DAJ for optimization + char taunts[MAX_PILOT_TAUNTS][PILOT_TAUNT_SIZE]{}; // taunt macros + + cntrldata controls[NUM_CONTROLLER_FUNCTIONS]{}; // controller settings + float mouse_sensitivity[N_MOUSE_AXIS]{}; // axis sensitivities + float joy_sensitivity[N_JOY_AXIS]{}; // axis sensitivities + float key_ramping = 0.35; + char read_controller = READF_MOUSE + READF_JOY; // do we read the controller port also (beyond keyboard/mouse) + bool mouselook_control = false; // mouselook control. + bool lrearview_enabled = false; + bool rrearview_enabled = false; // are these small views enabled? + + uint8_t ingame_difficulty = 0; // DAJ for optimization }; #endif diff --git a/Descent3/sdlmain.cpp a/Descent3/sdlmain.cpp index 92974f5d..c6138297 100644 --- a/Descent3/sdlmain.cpp +++ a/Descent3/sdlmain.cpp @@ -45,6 +45,7 @@ #include "init.h" #include "log.h" #include "config.h" +#include "pilot.h" #ifdef WIN32 #include "debug.h" @@ -222,6 +223,7 @@ int main(int argc, char *argv[]) { GatherArgs(argv); bool enable_winconsole = true; #endif + Current_pilot.initialize(); orig_pwd = std::filesystem::current_path();