Commit graph

1502 commits

Author SHA1 Message Date
Christoph Oelckers
11f094c7fb reference event callbacks by name, not by internal index.
This is needed to allow writing new callbacks.
2023-10-08 09:41:15 +02:00
Christoph Oelckers
5919232fa7 GetChars in non-windows code. 2023-10-08 08:12:18 +02:00
Christoph Oelckers
555a4d3dd5 Use GetChars on FStrings. 2023-10-08 08:09:04 +02:00
Mitchell Richters
41a42e5a6d - Fix some warnings in MSVC. 2023-10-08 08:52:11 +11:00
Christoph Oelckers
aa54d3af10 backend update from GZDoom
LZMA update plus several ZScript improvements.
2023-10-07 18:44:31 +02:00
Mitchell Richters
33bc4b08cb - Modernise function declarations in Cephis C math to address ongoing GCC and Clang warnings.
Examples:

/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c: In function ‘c_exp’:
/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c:171:48: warning: declaration of built-in function ‘floor’ without a prototype; expected ‘double(double)’ [-Wbuiltin-declaration-mismatch]
  171 | double polevl(double, void *, int), floor(), ldexp();
      |                                                ^~~~~
/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c:171:57: warning: declaration of built-in function ‘ldexp’ without a prototype; expected ‘double(double,  int)’ [-Wbuiltin-declaration-mismatch]
  171 | double polevl(double, void *, int), floor(), ldexp();

/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c:200:16: warning: passing arguments to 'polevl' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
px = x * polevl( xx, P, 2 );
               ^
/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c:201:17: warning: passing arguments to 'polevl' without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
x =  px/( polevl( xx, Q, 3 ) - px );
                ^
/home/mrichters/Repos/Raze/source/common/thirdparty/math/exp.c:167:8: warning: a function definition without a prototype is deprecated in all versions of C and is not supported in C2x [-Wdeprecated-non-prototype]
double c_exp(x)
       ^
3 warnings generated.
2023-10-05 10:32:44 +11:00
Mitchell Richters
026c9a44e9 - Fix most warnings in Clang under Linux. 2023-10-05 09:57:31 +11:00
Mitchell Richters
7e3a1dfb1e - Fix most GCC warnings in the backend/common code code.
* Most of them were just signedness issues. Hopefully I got everything right here.
* 3rd party stuff deliberately not touched.
2023-10-04 19:28:26 +11:00
Mitchell Richters
14ffc7ced7 - Make some utilities in vectors.h available as constexpr. 2023-10-04 08:32:47 +11:00
Mitchell Richters
8980f5592e - Make TRotator<T> available as constexpr. 2023-10-04 08:32:12 +11:00
Mitchell Richters
275d43cff6 - Make TMatrix3x3<T> available as constexpr. 2023-10-04 08:31:24 +11:00
Mitchell Richters
873287b9df - Make TVector4<T> available as constexpr. 2023-10-04 08:30:34 +11:00
Mitchell Richters
6afa8dcd2b - Make TVector3<T> available as constexpr. 2023-10-04 08:29:49 +11:00
Mitchell Richters
08b2bf5267 - Make TVector2<T> available as constexpr. 2023-10-04 08:29:01 +11:00
Christoph Oelckers
77f61004c3 fix Vectoe3 clamp for real. 2023-10-03 14:57:17 +02:00
Mitchell Richters
d6de57095d - Take better advantage of InputPacket::ang's FRotator status.
* Change it to a DRotator as that's what the game is expecting. Too many narrowings against DAngle objects needed.
* Utilise object methods where possible.
* Do all math against the object where possible, not its members.
2023-10-03 23:07:45 +11:00
Mitchell Richters
f88d435335 - Take better advantage of InputPacket::vel's FVector3 status.
* Change it to a DVector3 as that's what the game is expecting. Too many narrowings against DAngle objects needed.
* Utilise object methods where possible.
* Do all math against the object where possible, not its members.
2023-10-03 23:07:44 +11:00
Mitchell Richters
828e46a8da - Remove the TVector2 (const TVector3<vec_t> &other) constructor.
* This narrowing constructor was causing a problem with a `clamp()` overload in the next commit.
* Believe this is a product of a by-gone time before we had the `XY()` method on `TVector3<T>` objects.
2023-10-03 23:07:44 +11:00
Christoph Oelckers
b10f50bf1d fixed bad assumption about object destruction state in garbage collector.
The assumption was made that every object in the ToDestroy list wasn't destroyed yet.
This assumption is wrong in case one object destroys an owned one on its own destruction.
Instead this case must be properly dealt with and duplicate destruction be avoided.

This happened with the panel sprite sentinel in SW's player object.
2023-10-03 12:23:29 +02:00
Christoph Oelckers
02c6b68581 Merge remote-tracking branch 'remotes/origin/playerArray' into blood-script-export 2023-10-02 18:51:51 +02:00
Christoph Oelckers
762263671a exported the main structures in Blood that make up a BloodActor.
nnext stuff was omitted for now.
This also eliminates the DUDEEXTRA_STATS substructure and integrates its content directly into DUDEEXTRA.
2023-10-01 22:25:08 +02:00
Christoph Oelckers
3aafcb94f1 exported XSECTOR and XWALL.
this required an extension to the ZScript front end to allow defining the bitfield flag variables which cannot have their address taken.
2023-10-01 20:39:40 +02:00
Rachael Alexanderson
1fa628b47e - do same change as d33f2697a3 2023-10-01 10:47:15 -04:00
Christoph Oelckers
716e059374 use shared SplitPath function 2023-10-01 13:09:22 +02:00
Mitchell Richters
f35e8eecf1 - Fix incomplete backend update in 4a87003408 that broke Linux builds. 2023-09-24 14:38:30 +10:00
Christoph Oelckers
912d8d38bf - disable alloc debugging again. 2023-09-23 10:32:49 +02:00
Christoph Oelckers
4a87003408 - backend update from GZDoom.
* Vulkan backend updated.
* zlib replaced with miniz.
* FileReader is now 64 bit capable.
* jpeg replaced with stb-image.
* CMake project warnings fixed.
2023-09-23 09:56:27 +02:00
Christoph Oelckers
e19ce3ead4 - fixed voxel loader. 2023-09-10 21:30:45 +02:00
Christoph Oelckers
f749f4cc33 - copied equal_epsilon from GZDoom. 2023-09-07 22:12:31 +02:00
Christoph Oelckers
fa7a16a775 - backend update from GZDoom.
Some missing 'override' qualifiers and font fixes.
2023-09-06 00:18:45 +02:00
Christoph Oelckers
25c0a56d96 - fixed broken character fallback for cyrillic T.
This was attached to the у (i.e. cyrillic u)
2023-09-06 00:03:02 +02:00
Christoph Oelckers
431d29b6a1 - don't run string conversions on empty strings.
std::string complains about this case
2023-09-05 23:54:22 +02:00
Christoph Oelckers
4e53f3bd81 - backend update from GZDoom for adding vcpkg integration 2023-09-02 09:46:20 +02:00
Christoph Oelckers
e88d2fb6b4 - fixed directory loader 2023-08-23 22:09:09 +02:00
Christoph Oelckers
82057bcd5a - Backend update from GZDoom-
This compiles but doesn't run.
2023-08-23 20:36:19 +02:00
Christoph Oelckers
f2740e434a - adapted game code. 2023-08-20 02:25:12 +02:00
Christoph Oelckers
b95a5a4b2b - yet another backend update. 2023-08-20 02:15:57 +02:00
Christoph Oelckers
6355671480 - second backend update from GZDoom. 2023-08-19 19:32:17 +02:00
Christoph Oelckers
32ede813e9 - new files for backend update. 2023-08-19 18:17:17 +02:00
Christoph Oelckers
cf19d75242 - backend update from GZDoom without adapting other code. 2023-08-19 16:59:05 +02:00
Christoph Oelckers
5eee7b80b1 - backend update from GZDoom.
* controller handling improvements
* use stb_sprintf.
* various smaller fixes.
2023-08-09 12:17:17 +02:00
Christoph Oelckers
6aa61e72b5 - backend update from GZDoom.
* cleanup on the sound init code.
* added #pragma once in several headers.
* macOS version detection overhaul.
2023-07-22 09:54:00 +02:00
Christoph Oelckers
706c784965 - added a few checks for null pointer types in the ZScript compiler. 2023-07-22 08:59:15 +02:00
Rachael Alexanderson
f1c917cffc - mimic gzdoom/01dfcc7d9564013ae26c79ecb642e4e5578905b1 2023-06-19 04:41:58 -04:00
Christoph Oelckers
ddfb485424 - added a serializer for VMFunction pointers. 2023-05-28 11:19:34 +02:00
Christoph Oelckers
213bdbadad - allocate VMFunction's PrintableName from the ClassDataAllocator arena.
This avoids execution order issues on shutdown. VMFunction should not use FString.
2023-05-27 22:40:47 +02:00
Christoph Oelckers
f3ea1e312a - Backend update from GZDoom. 2023-05-27 10:10:42 +02:00
Christoph Oelckers
92f2503160 - did a bit of optimization on sfxinfo_t.
Using two bytes of alignment gap to add a userval variable.
2023-05-27 09:03:10 +02:00
Christoph Oelckers
a76494363c - get rid of 'picnum' in common code. 2023-05-20 12:40:57 +02:00
Christoph Oelckers
b6767aa7a3 - fixed: The MVE player ignored the initial sound playing state.
If that is off, sound must remain off.
2023-05-19 22:59:48 +02:00