Descent 3 by Outrage Entertainment
Go to file
Jason Yundt 0dfbcb5076 Allow user to specify additional compiler flags
I’m trying to compile Descent 3 on NixOS, but when I run
“cmake --build <path>”, I get this error:

/home/jayman/Documents/Home/VC/Git/Partially mine/Descent3/repo/Descent3/multi_connect.cpp: In function 'int TryToJoinServer(network_address*)':
/home/jayman/Documents/Home/VC/Git/Partially mine/Descent3/repo/Descent3/multi_connect.cpp:358:16: error: format not a string literal and no format arguments [-Werror=format-security]
  358 |         sprintf(str, TXT(Join_response_strings[Ok_to_join]));
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Eventually, we should actually fix that sprintf call (and any other
calls that would trigger format security warnings), but it would be nice
if users could just temporarily ignore stuff like that.

This commit makes it so that users can set custom complier flags by
doing this:

	$ cmake \
		--preset <preset> \
		-B build \
		-DCMAKE_C_FLAGS=<additional-c-flags> \
		-DCMAKE_CXX_FLAGS=<additional-cxx-flags>
	$ cmake --build build
2024-04-18 07:21:43 -04:00
.github/workflows Merge pull request #60 from Arcnor/macos-runners 2024-04-18 07:40:13 +00:00
2dlib
acmlib
AudioEncode
bitmap Remove dublicate byteswap.h 2024-04-18 03:20:36 +03:00
cfile Update CFILE.cpp 2024-04-17 19:16:39 -06:00
czip Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
d3music
dd_grwin32
dd_lnxsound
dd_sndlib Remove dublicate byteswap.h 2024-04-18 03:20:36 +03:00
dd_vidwin32
ddgr_mac
ddio_common
ddio_lnx
ddio_mac
ddio_win
ddvid_lnx
Descent3 Merge pull request #54 from winterheart/cmake-fixes 2024-04-18 08:21:46 +01:00
fix
grtext Committing local fixes and changes I had. 2024-04-16 22:53:28 -05:00
lib Merge pull request #59 from Lgt2x/fix-hog-64 2024-04-18 07:55:17 +01:00
libacm Remove dublicate byteswap.h 2024-04-18 03:20:36 +03:00
libmve Use __aarch64__ instead of __arm64__ for Linux builds 2024-04-18 01:34:24 -04:00
linux Update lnxcon.cpp 2024-04-17 19:19:18 -06:00
lnxcontroller
lnxmvelib
mac Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
mac_sndlib
manage
md5 Remove dublicate byteswap.h 2024-04-18 03:20:36 +03:00
mem
misc
model Remove dublicate byteswap.h 2024-04-18 03:20:36 +03:00
module
movie
music
netcon
netgames Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
networking
physics Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
renderer Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
rtperformance Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
scripts Fixes and enhancements to CMake build system 2024-04-18 03:04:16 +03:00
sndlib
stream_audio
tools
ui
unzip Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
vecmat
win32 Convert min/max macros to std::min/max 2024-04-17 21:43:38 +02:00
.clang-format
.clang-format-ignore Ignore formatting for debugbreak.h 2024-04-17 09:24:47 -04:00
.gitignore
Brewfile [CI] Install Ninja on macOS 2024-04-17 16:20:47 -07:00
CMakeLists.txt Allow user to specify additional compiler flags 2024-04-18 07:21:43 -04:00
CMakePresets.json Merge pull request #29 from danra/mac_ci_fixes 2024-04-18 07:25:58 +01:00
README.md Update README.md 2024-04-17 14:06:30 -04:00

Descent 3

Update 04/17/2024

Thank you for your contributions after only a little over 24 hours! The current short-term roadmap is code cleanup and build verification. As described below, the original release includes the '1.5' patch that never made it to retail. At the time it was written, it worked--this may or may not be the case at present. We are aiming to clean up the source for improved readability and standards, as well as playability. In short: we'd like to reach a good baseline "vanilla" source.

We've had several contributions towards this end already. Please remember to check for duplicate issues and pull requests before submitting!

Update 04/16/2024

I'm so happy to see the amount of interest and participation here!

Please join the Descent Developer Discord, there's an active community there already.

https://discord.gg/GNy5CUQ

You can expect some big commits coming soon. We'll be merging in some code that other developers did in parallel and/or after this code was archived.

Direction and Decisions

  1. We will support c++17 going forward
  2. We are using clang in LLVM mode for code formatting. Please run clang-format before submitting a PR

Original Release

This is the latest version of the Descent 3 source code. This includes the '1.5' patch that Jeff Slutter and Kevin Bentley wrote several years ago. At the time, it worked for Windows, Linux, and Mac.

Some proprietary sound and video libraries from Interplay have been stripped out (the ACM and MVE format). I have that code if someone wants to help make a converter so the old cutscenes work. It'll take some effort to stub out that code so it compiles.

The first thing I want to do is get everything compiling again, and ideally some CI/CD actions. After that, the code needs to be cleaned up some, to remove old version control comments, etc. A lot of this code was written by a really great team, but keep in mind we were much younger and less experienced back then.

If you're interested in helping maintain it, please send me a message. Otherwise, I'm happy to take pull requests.

This is the last update I put out there showing different architectures playing along. Yikes, that was a long time ago, sorry we never released a 1.5 patch. Some logistics got in the way!

Descent3 1.5 Patch Development update

Thanks to Jeff Slutter, who did most of the work modernizing the code from the 90's. I'm looking forward to seeing what the community does with it!