Commit Graph

727 Commits

Author SHA1 Message Date
Azamat H. Hackimov
4b78b7068d Fix compilation on macOS 2024-05-19 13:12:30 +03:00
Azamat H. Hackimov
20d38d7367 Use C99 standard vsnprintf() function 2024-05-19 12:40:50 +03:00
Azamat H. Hackimov
b20964e97f Reorder dd_vid* modules into dd_video 2024-05-19 12:34:58 +03:00
Azamat H. Hackimov
3fa32ff386 Reorder headers related to linux module 2024-05-19 12:21:43 +03:00
Azamat H. Hackimov
bde23461ea Replace non-portable itoa with sprintf
Minor fixes and header cleanup.
2024-05-19 02:34:09 +03:00
Azamat H. Hackimov
cd1e33baa4 Move lnxcontroller to linux submodule 2024-05-19 02:31:50 +03:00
Thomas Roß
4072dcb3bd
Merge branch 'DescentDevelopers:main' into win-x64 2024-05-17 20:06:34 +02:00
Jeod
56e61275ce
Merge pull request #358 from winterheart/cfile-enhance
Cfile enhance
2024-05-17 13:51:31 -04:00
Jeod
7fcd78e009
Merge pull request #362 from pzychotic/cleanup
Deleted left over VS project file.
2024-05-17 13:44:44 -04:00
Jeod
2c4f44ad92
Merge pull request #361 from pzychotic/fix-line-endings
Converted line endings to Unix format to match .gitattributes file
2024-05-17 13:44:17 -04:00
Thomas Roß
1973aed32e [Misc] Deleted left over VS project file. 2024-05-17 18:40:32 +02:00
Thomas Roß
aecd737df0 [Misc] Converted line endings to Unix format to match .gitattributes file. 2024-05-17 18:36:41 +02:00
Jason Yundt
8fd26f0cc1 Include previously missing licenses in builds
Specifically, this commit only adds copies of licenses if we are
required to do so. For example, this commit adds a copy of libacm’s
license because libacm’s license requires that we include copies of
libacm’s license with binary copies of libacm. This commit does not add
a copy of zlib’s license because zlib’s license doesn’t require us to do
so.

Fixes #295.
2024-05-17 12:17:24 -04:00
Jason Yundt
2bb1e4167a Use CMake to create LICENSE file, not CI
Before this change, the CI script had a special step that would ensure
that CI artifacts contained a copy of Descent 3’s license. This change
replaces that special CI step with a CMake target.

The main motivation behind this change is to make it easier for people
to create packages for Descent 3. Before this change, if you wanted to
create a package for Descent 3, then you would have to manually ensure
that your package contained a copy of the GPL.
2024-05-17 12:14:01 -04:00
Jeod
2c99aa82ca
Merge pull request #316 from ziplantil/new-md5
replace md5 with custom implementation, with tests
2024-05-17 11:44:09 -04:00
Azamat H. Hackimov
43caa3d53c CFILE: Remove throwing exception in cf_ReadBytes()
All functions, that uses cf_ReadBytes(), checks return size, but don't handle potential exceptions. That leads to segfaults on reading of damaged files (i.e. broken savegames).
2024-05-16 23:27:56 +03:00
Azamat H. Hackimov
c505df182b CFILE: Use smart pointers for entries of library 2024-05-16 23:12:07 +03:00
Azamat H. Hackimov
f123dbe770 Replacing raw pointer with shared_ptr in cfile. 2024-05-16 22:31:43 +03:00
Azamat H. Hackimov
b84678de96 Move HOG2 magic check into hogfile
Remove unused cf_ReadHogFileEntry() function.
2024-05-16 19:18:31 +03:00
Azamat H. Hackimov
6703b25d34 Minor fixes to cfile 2024-05-16 18:21:30 +03:00
Azamat H. Hackimov
0f694a4fc5
Merge pull request #345 from Lgt2x/remove-aureal
Remove Aureal support
2024-05-16 15:34:35 +03:00
Thomas Roß
57a46e05a8 [Build] Fixed CMake not finding DirectX libs. 2024-05-16 01:14:02 +02:00
Jeod
01db899f56
Merge pull request #342 from Lgt2x/remove-ddaccess
Remove DDAccess.h header, and associated DD_ACCESS_RING definition
2024-05-15 17:42:05 -04:00
Thomas Roß
11af2e7ec0 [Sound] Fixed array access with negative m_sound_index.
No idea why this doesn't crash in current builds, maybe just corrupts some memory if we get into if-statement?!
2024-05-15 20:16:31 +02:00
Thomas Roß
435b1f48bb [Win,hog] Load the newly created d3-win.hog after all other hog files from the original game.
The last library opened with cf_OpenLibrary() will be the first to be searched for DLLs. This way we make sure to load our x64 DLLs before the x86 versions from the original game data.
2024-05-15 20:13:28 +02:00
Thomas Roß
1bf84737e5 [Scripts] Dllexport script entry points. 2024-05-15 20:09:18 +02:00
Thomas Roß
57c8347853 [Win,x64] Activated the compilation of scripts and netgames for Windows.
We now need native x64 versions of it.
2024-05-15 20:00:39 +02:00
Thomas Roß
0c09eed1b7 [Win,x64] Replaced inline assembly for int3 with debug_break() to fix compile errors in x64 builds. 2024-05-15 19:55:45 +02:00
Thomas Roß
6ecafd9e68 [Win,x64] Fixed WinApi types and function calls.
Lots of these truncated 64bit pointer or handle types to 32bit.
2024-05-15 19:52:01 +02:00
Thomas Roß
bac882c7d6 [Win,x64] Disabled some 'mono' debugger stuff due to compile errors in x64. 2024-05-15 19:46:01 +02:00
Thomas Roß
caf1981015 [Win,x64] Disabled callstack and exception info logging due to compile errors in x64. 2024-05-15 19:44:41 +02:00
Thomas Roß
0b877524a3 [Win,x64] Removed unused code that won't compile in x64. 2024-05-15 19:42:11 +02:00
Thomas Roß
2e4d25e4ee [DirectX] Updated DirectX SDK to August 2007 version.
This is one of the last versions still containing DirectDraw + DirectSound and also has x64 support.
2024-05-15 19:39:01 +02:00
Azamat H. Hackimov
ad7c384581
Merge pull request #348 from pzychotic/fix-screenshot-crash
Fixed double delete/free in rend_Screenshot().
2024-05-15 10:42:56 +03:00
Louis Gombert
72c0a46dcc Fix -Wnull-conversion using explicit false 2024-05-15 00:18:44 +02:00
Louis Gombert
979cc58e67 Fix -Wnon-c-typedef-for-linkage warning using C++ struct declaration syntax 2024-05-15 00:07:49 +02:00
Louis Gombert
c1db7c70de Fix double extern qualifier warning in idmfc.h
Functions declared in idmfc.h were prefixed by both macros `EXTERN` and `DLLEXPORT`. `EXTERN` expands to `extern "C"` for C++ code, and `DLLEXPORT` expands to `extern "C"` for C++ or `extern` for C code, making up two `extern` qualifiers for C++ code. We now only use DLLEXPORT macro.
2024-05-14 23:51:08 +02:00
Louis Gombert
f1d46017f5 Fix compiler warning -Wimplicit-const-int-float-conversion using explicit casts 2024-05-14 23:33:17 +02:00
Louis Gombert
213ef87652 Fix mixer option index without A3D 2024-05-14 23:10:17 +02:00
Jeod
fd3f171777
Merge pull request #341 from Lgt2x/remove-spdlog 2024-05-14 15:56:00 -04:00
Thomas Roß
9204b075ed [Renderer] Fixed double delete/free in rend_Screenshot(). 2024-05-14 21:24:01 +02:00
Louis Gombert
86c8681afb
Merge pull request #344 from MaddTheSane/patch-1
Add missing va_end calls
2024-05-14 14:39:49 +02:00
Louis Gombert
959da14ff5 Remove spdlog dependency, keep the logging module 2024-05-14 14:12:03 +02:00
Louis Gombert
13711c3036 Remove Aureal support
D3 used to support Aureal 3-Dimensional sound cards, providing 3D spatial audio. The hardware and drivers is outdated, so all support in code has been removed, including UI mixer setting.

Read more about A3D here: https://en.wikipedia.org/wiki/Aureal_Semiconductor#A3D
2024-05-14 00:56:34 +02:00
C.W. Betts
6ea2633600
Update DallasFuncs.cpp
Add missing va_end calls
2024-05-13 16:04:36 -06:00
Louis Gombert
dc138e4912 Remove DDAccess.h header, and associated DD_ACCESS_RING definition
This definition was used to control the accessibility of some class members, changing protected qualifiers to public. This introduced unnecessary coupling between components and headers.

All conditional access specifiers have been set to public, which should not be a problem given the low number of classes that actually used affected members. Another albeit more complex solution could have been to use friend classes.
2024-05-13 23:21:05 +02:00
Jeod
07262f6fef
Merge pull request #338 from JeodC/renderdistance
Bump MAX_CELLS_TO_RENDER
2024-05-13 09:08:15 -04:00
C.W. Betts
446ead20d6 Make plug-ins and modules only export select symbols. 2024-05-13 01:22:40 -06:00
Azamat H. Hackimov
71244290e0
Merge pull request #333 from Jayman2000/minor-hog-id-detection-improvements
Minor improvements to `cf_OpenLibrary()`’s HOG2 id detection code
2024-05-13 04:18:24 +03:00
Jason Yundt
d5e893fcb4 Prevent potential uninitialized memory access
Before this change, cf_OpenLibrary() did something along the lines of
this:

  char id[4];
  fread(id, 4, 1, fp);
  strncmp(id, "HOG2", 4);

If fread() finishes successfully, then that code is fine. However,
fread() might encounter an error or bump into the end of a file. In
those scenarios, the value of id will not necessarily be initialized
[1]. In other words, when fread() fails, strncmp() might operate on
uninitialized memory.

This change makes sure that the value of id only gets used if fread()
succeeds. Additionally, this change fixes a GCC warning about ignoring
fread()’s return value.

[1]: <https://en.cppreference.com/w/cpp/io/c/fread>
2024-05-12 20:38:35 -04:00