Jan Engelhardt e867977543 scripts: resolve strict aliasing violations in level DLLs
$GIT/scripts/LEVEL15.cpp: In function ‘void aMatCenPuzzleInit()’:
$GIT/scripts/LEVEL15.cpp:833:38: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  833 | #define MagicMatCenSwitchSequence (*((int *)(&User_vars[17])))
$GIT/scripts/LEVEL15.cpp:834:25: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  834 | #define MatCenStateA (*((int *)(&User_vars[0])))
...
$GIT/scripts/Level6.cpp: In function ‘void aPriestKeyEnter(int)’:
$GIT/scripts/Level6.cpp:910:47: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing]
  910 | #define Var_ThereIsPlayerInPriestKeyPuzzle (*((int *)(&User_vars[7])))

Turn ``User_var`` into an array of std::variant, the latter of which can hold
either float or int. Savegames do not carry the necessary type information
which variant (float/int) is in use; instead, this is statically decided by
the level DLL logic on a per-index basis. This approach is retained for now.

A lot of ``Var_something = 0`` is used despite Var_something being
logically used as float, so we need to override op= to keep the
variant type as-is.
2024-09-09 15:42:00 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-09 12:55:27 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-03 13:26:51 +02:00
2024-09-08 17:57:06 +02:00
2024-09-03 13:26:51 +02:00
2024-06-17 01:55:02 +03:00
2024-06-27 01:26:35 +03:00
2024-09-03 13:26:51 +02:00
2024-04-17 00:25:04 +03:00
2024-05-21 11:11:16 -04:00
2024-08-03 23:38:01 -05:00
2024-09-03 13:26:51 +02:00

d3 (1)

This is the Descent 3 open source engine, licensed under GPL-3.0. It includes the '1.5' patch written by Kevin Bentley and Jeff Slutter several years ago and brought to a stable condition by the Descent community.

In order to use this, you must provide your own game files. See the USAGE.md file for details about installation.

To build the game, follow build instructions in the BUILD.md file.

Build or runtime issues should be reported on our GitHub tracker.

Contributing

Anyone can contribute! We have an active Discord presence at Descent Developer Network. Patches should be submitted on GitHub.

Description
Descent 3 by Outrage Entertainment
Readme GPL-3.0 33 MiB
Languages
C++ 91.7%
C 7%
omnetpp-msg 1%
CMake 0.2%