Commit graph

14699 commits

Author SHA1 Message Date
Christoph Oelckers
8e6f0b0acd Exhumed: do raw serialization of FreeListArray.
This is for robustness reasons, there were occurences where this did not properly restore everything as intended.
2023-12-05 22:40:58 +01:00
Christoph Oelckers
9c595c6204 move M_Calloc out of the #ifndef BSD etc... block. 2023-12-05 22:40:58 +01:00
Mitchell Richters
376b695fb6 - Duke: Fix missed symbolic constant from 13d57cdbd6. 2023-12-05 22:40:58 +01:00
Christoph Oelckers
f6bca4177c - Don't inline M_Calloc() calls because GCC is shit.
* Fixes #1009.
2023-12-05 22:40:58 +01:00
Christoph Oelckers
4133c4602c use symbolic constant in two places close to the last commit. 2023-12-05 22:40:58 +01:00
Christoph Oelckers
712ea95203 Duke/RR: fixed player dying when falling from great heights while god mode being on. 2023-12-05 22:40:58 +01:00
Mitchell Richters
bd915763c2 - Duke: Remove incur_damage() from dispatcher.
* Only used locally within `processinput()` for each game.
2023-12-05 22:40:58 +01:00
Mitchell Richters
834fed369b Revert "- clamp player sprite's xvel between 0 and 512 to stop it going into the negative with rapid posx/posy changes due to teleporting."
This reverts commit cf548e055e.

* Shouldn't be necessary now with doubles instead of integers for coordinates.
* Affected spot in commit message appears fine upon testing.
2023-12-05 22:40:57 +01:00
Mitchell Richters
977d562c57 - Duke: Tidy up return setup in checkp(). 2023-12-05 22:40:57 +01:00
Mitchell Richters
b5bb747f61 - Duke: Use checkp() in ParseState::parse() to remove some duplicated code. 2023-12-05 22:40:57 +01:00
Mitchell Richters
7b030cef20 - Duke: Remove a few remaining triple negations missed in 7498be6f5d. 2023-12-05 22:40:57 +01:00
Mitchell Richters
baaf1e0557 - Blood: Clean up player vel code following InputPacket changes. 2023-12-05 22:40:57 +01:00
Christoph Oelckers
c06e795703 use FTranslationID in the 2D drawer. 2023-12-05 22:40:57 +01:00
Christoph Oelckers
0265d37fdb use FTranslationID in the model code. 2023-12-05 22:40:56 +01:00
Christoph Oelckers
4cb3b96ddf migrate to FTranslationID support
So far this only adapts to the changes in the backend without making further use of this type.
2023-12-05 22:40:56 +01:00
Christoph Oelckers
6df1a14a92 gave translations a dedicated scripted type.
This is needed for implementing reliable serialization of custom translations. As long as they are merely ints they cannot be restored on loading a savegame because the serialization code does not know that these variables are special.
2023-12-05 22:40:56 +01:00
Mitchell Richters
1d6b001884 - Exhumed: Return early in movesprite() if the actor's sector is null.
* This is what PowerSlaveGDX does.
* Fixes #1010.
2023-12-05 22:39:35 +01:00
Mitchell Richters
f60b0ea823 - Exhumed: Adjust angle change in 47a77fc8f1 to be 1:1 with the source. 2023-12-05 22:39:35 +01:00
Christoph Oelckers
6c702847ff Backend update from GZDoom. 2023-12-05 22:39:34 +01:00
Christoph Oelckers
a9dc57e99f fixed potentially undefined behavior with bool parameters in direct native functions. 2023-12-05 22:39:34 +01:00
Christoph Oelckers
98f2257aad Exhumed: fix handling of angles for the queen's eggs when colliding with a wall. 2023-12-05 22:39:34 +01:00
Mitchell Richters
d753c92cfa - Exhumed: Remove sequence post-processing since range checks from c039882dcc handle this. 2023-12-05 22:39:34 +01:00
Mitchell Richters
23a557a361 - Exhumed: Clean up push factor in runlist_CheckRadialDamage() for players.
* Some fudging was added due to issues that have now been properly resolved in 40265e649f.
2023-12-05 22:39:34 +01:00
Christoph Oelckers
5b56fb7939 Exhumed: fixed a few more bad velocities in queen code. 2023-12-05 22:39:34 +01:00
Christoph Oelckers
1cb15ed878 Exhumed: Always perform a range check on a sequence's length.
Too many of these are not correct and prone to overflows so ignoring this is not good.
2023-12-05 22:39:34 +01:00
Christoph Oelckers
8dfb21636a Exhumed: fixed radial damage push factor.
The original did 'bsin(x) >> 3' with vel being Q18.14 and bsin also returning Q18.14. So for fully floatified values we still must multiply by 1/8, not 128.
2023-12-05 22:39:33 +01:00
Christoph Oelckers
5a176fdf3d Exhumed: sanitize stupid implementation of UpdateEnemy and fixed bad use of it for the queen's eggs. 2023-12-05 22:39:33 +01:00
Mitchell Richters
91dfeb42bd - Blood: Fix GCC fallthrough warning. 2023-12-05 22:39:33 +01:00
Mitchell Richters
aea71092cc - Clean up some GCC const warnings. 2023-12-05 22:39:33 +01:00
Mitchell Richters
be101bfc6c - Change paused check in 433c051751ebdf3b9d82ec4cabf01122414de961 as to not affect the crouch_toggle while paused. 2023-12-05 22:39:33 +01:00
Mitchell Richters
be41bbcd28 - Move gi->getCrouchState() into DCorePlayer. 2023-12-05 22:39:33 +01:00
Mitchell Richters
1608c331a7 - Fix bad indentation in searchpaths.cpp. 2023-12-05 22:39:33 +01:00
Mitchell Richters
c989d4c3a4 - statFPS() doesn't need to be in GameInterface. 2023-12-05 22:39:32 +01:00
Mitchell Richters
79504254a2 - Blood: Clean up some getPlayer() and DCorePlayer::GetActor() accesses in ticker. 2023-12-05 22:39:32 +01:00
Mitchell Richters
f219ee0208 - Clean up some leftover floats in the input code. 2023-12-05 22:39:32 +01:00
Mitchell Richters
73e68705da - Duke: Slight cleanup in drawoverlays(). 2023-12-05 22:39:32 +01:00
Mitchell Richters
085aefb1a5 - Repair issue where opening the menu cancels player's pitch returning to centre. 2023-12-05 22:39:32 +01:00
Mitchell Richters
b5da574613 - Remove some leftover debug code. 2023-12-05 22:39:32 +01:00
Mitchell Richters
9d3aaed1b7 - SW: Reduce some line lengths in DoPlayerVehicleInputScaling(). 2023-12-05 22:39:32 +01:00
Mitchell Richters
08d808089f - Simplify some vector math in calcChaseCamPos(). 2023-12-05 22:39:31 +01:00
Mitchell Richters
ac91a70950 - Remove some unnecessary casts in SetupViewpoint(). 2023-12-05 22:39:31 +01:00
Mitchell Richters
98046afa28 - Consolidate player coord stat/CCMD into coreplayer.cpp. 2023-12-05 22:39:31 +01:00
Mitchell Richters
f22b6b95d2 - Remove DCorePlayer::getCameraAngles().
* `CameraAngles` used to be private within `PlayerAngles` and accessed via a friendship with `GameInput`.
* Just make it public for now, its not worth the complex setup to protect against this as we can control access by simply not exporting it to ZScript.
2023-12-05 22:39:31 +01:00
Mitchell Richters
fcc09afa18 - Consolidate Exhumed's nCamerapos and SW's DSWPlayer::si into something inside DCorePlayer. 2023-12-05 22:39:31 +01:00
Mitchell Richters
1c725377ea - Interalise slope tilting checks for DCorePlayer::doViewPitch(). 2023-12-05 22:39:31 +01:00
Mitchell Richters
59366d3ffc - Internalise player velocity setup for DCorePlayer::doRollInput().
* Would have been nice to have this constexpr, but can only do that when we switch to C++20.
2023-12-05 22:39:30 +01:00
Mitchell Richters
ce75f7d7ef - Internalise player InputPacket access. 2023-12-05 22:39:30 +01:00
Mitchell Richters
531c95c7ca - Move PlayerAngles class directly into DCorePlayer.
* No refactoring around it yet.
* The #includes could use some cleaning up...
2023-12-05 22:39:30 +01:00
alexey.lysiuk
7230ceebaf - bumped minimum OS version to 10.13 in .plist file 2023-12-05 22:39:30 +01:00
Christoph Oelckers
62c471e225 Duke: fixed breakable ceilings. 2023-12-05 22:39:30 +01:00
Christoph Oelckers
8aa34eea7b renamed $conreserve to $resourceid.
This better matches its use, especially since it is not exclusive to CON supporting games.
2023-12-05 22:39:30 +01:00
Christoph Oelckers
c12b94cf48 fix handling of super secrets in statistics code. 2023-12-05 22:39:29 +01:00
Christoph Oelckers
b67f2cb727 added some awful hackery to handle the different offsetting of Blood's native voxels vs. those imported via .DEF. 2023-12-05 22:39:29 +01:00
Christoph Oelckers
375ef31304 removed voxel offsetting in Blood's animateSprites function
Since offsetting is being done in the backend now, this one is redundant.
2023-12-05 22:39:29 +01:00
Christoph Oelckers
93294b2d44 for line intersection, exclude the end point of the intersected line.
This is needed to make Build's utilities work as expected.
2023-12-05 22:39:29 +01:00
Christoph Oelckers
f00a90aa07 two minor backend fixes 2023-12-05 22:39:29 +01:00
Christoph Oelckers
9f2808df1f Duke fixed two issues with displaying incorrect sprites
* We cannot check a projectiles owner because it may have been destroyed, so copy all info over
* CON changing an actor's type to one without class did not do anything at all.
2023-12-05 22:39:28 +01:00
Christoph Oelckers
272f44786c added some more symbolic constants. 2023-12-05 22:39:28 +01:00
Christoph Oelckers
e8dd2d5b89 did some flag naming 2023-12-05 22:39:28 +01:00
Christoph Oelckers
6229a6256c fix compilation of release builds. 2023-12-05 22:39:28 +01:00
Christoph Oelckers
1573e6fb49 fix some bad English 2023-12-05 22:39:28 +01:00
Christoph Oelckers
b68e79e4bc use symbolic constants for explosion types. 2023-12-05 22:39:28 +01:00
Christoph Oelckers
54035f9396 replace sprintf with snprintf. 2023-12-05 22:39:27 +01:00
Christoph Oelckers
f0b7d57941 fixed Mac compilation.
Unlike the other platforms this builds its config paths from variable data.
2023-12-05 22:39:27 +01:00
Mitchell Richters
395a4e5421 - Apply last remaining .GetChars() fixes for POSIX targets. 2023-12-05 22:39:27 +01:00
Christoph Oelckers
3614d03e1b fix compilation of non-windows targets. 2023-12-05 22:39:27 +01:00
Christoph Oelckers
74f6ff0c03 we really do not need to pack the GAMEOPTIONS struct... 2023-12-05 22:39:27 +01:00
Christoph Oelckers
0c397033f1 added the remaining needed GetChars calls. 2023-12-05 22:39:27 +01:00
Christoph Oelckers
f50430eb7c GetChars in non-windows code. 2023-12-05 22:39:26 +01:00
Christoph Oelckers
7cffe6e3f0 a few Getchars 2023-12-05 22:39:26 +01:00
Christoph Oelckers
90eb9ceafe Use GetChars on FStrings. 2023-12-05 22:39:26 +01:00
Mitchell Richters
1859a902e0 - Fix some warnings in MSVC. 2023-12-05 22:39:26 +01:00
Mitchell Richters
7ba5d22d5d - Bump MAXVOXELS from 1024 to 2048. 2023-12-05 22:39:26 +01:00
Mitchell Richters
d3811c7816 - Add getTicrateAngle() to reduce the amount of times DAngle::fromDeg() needs to be called in input code. 2023-12-05 22:39:26 +01:00
Christoph Oelckers
bbbb61f450 backend update from GZDoom
LZMA update plus several ZScript improvements.
2023-12-05 22:39:26 +01:00
Mitchell Richters
31bb7d3348 - Duke: Repair crash when calling OnEvent(EVENT_ENTERLEVEL). 2023-12-05 22:39:25 +01:00
Mitchell Richters
a8ec00d7ce - SW: No need to mark off PlayerArray for saving game-side. 2023-12-05 22:39:25 +01:00
Mitchell Richters
2ddd15b932 - Slight clean-up in gameinput.cpp. 2023-12-05 22:39:25 +01:00
Mitchell Richters
ddd39775e6 - Re-add lost paused check in GameInput::GetInput(). 2023-12-05 22:39:25 +01:00
Mitchell Richters
b83f062037 - Exhumed: A little bit more cleanup. 2023-12-05 22:39:25 +01:00
Mitchell Richters
83cd140d75 - Exhumed: Remove static copy of last yaw input from draw code. 2023-12-05 22:39:25 +01:00
Mitchell Richters
11d9739707 - Duke: Interpolate getavel() since we now have the last packet available to do so. 2023-12-05 22:39:24 +01:00
Mitchell Richters
1e6ee7ee61 - Remove unnecessary clamp in PlayerAngles::doViewPitch(). 2023-12-05 22:39:24 +01:00
Mitchell Richters
52b20e1f59 - Move syncinput mechanism into GameInput object. 2023-12-05 22:39:24 +01:00
Mitchell Richters
39df2714e9 - 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-12-05 22:39:24 +01:00
Mitchell Richters
790fc0b28a - Fix most warnings in Clang under Linux. 2023-12-05 22:39:24 +01:00
Mitchell Richters
7e393e04a5 - Duke: Remove casts from setting RR vehicle velocities and consolidate setup into an inline. 2023-12-05 22:39:24 +01:00
Mitchell Richters
6a06df0e45 - Duke: Change a few triple negations from the wrapper removal process. 2023-12-05 22:39:24 +01:00
Mitchell Richters
0f1f3d804f - Use DCorePlayer::GetActor() inside of CCMD(warptocoords). 2023-12-05 22:39:23 +01:00
Mitchell Richters
0c13d4fe3a - 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-12-05 22:39:23 +01:00
Mitchell Richters
526db7f8b0 - Fix all GCC warnings in the game-side code.
* Most of these were due to mixed spaces/tabs playing nastiness with non-braced if/else statements.
2023-12-05 22:39:23 +01:00
Mitchell Richters
084be1a45c - Store scaleAdjust directly inside the GameInput object. 2023-12-05 22:39:23 +01:00
Mitchell Richters
bdf566b348 - Remove GameInput friendships inside PlayerAngles in lieu of a local inline function. 2023-12-05 22:39:23 +01:00
Mitchell Richters
23dd0bab87 - Exhumed: Manual sweep for last replacements of player index for pointer. 2023-12-05 22:39:23 +01:00
Mitchell Richters
9871bb4a73 - Exhumed: Clean up player accesses in player.cpp. 2023-12-05 22:39:22 +01:00
Mitchell Richters
33296e61fb - Exhumed: Clean up player accesses in map.cpp and move.cpp. 2023-12-05 22:39:22 +01:00
Mitchell Richters
51b5393a23 - Exhumed: Clean up player accesses in items.cpp and associated utilities. 2023-12-05 22:39:22 +01:00
Mitchell Richters
692d995257 - Exhumed: Clean up player accesses in gun.cpp and associated utilities. 2023-12-05 22:39:22 +01:00
Mitchell Richters
a9ca3d7375 - Exhumed: Clean up player accesses in grenade code. 2023-12-05 22:39:22 +01:00
Mitchell Richters
856b6630f1 - Exhumed: Clean up player accesses in cheats.cpp. 2023-12-05 22:39:22 +01:00
Mitchell Richters
ad5f1d9f7d - Exhumed: Clean up player accesses in AddAmmo(). 2023-12-05 22:39:22 +01:00
Mitchell Richters
d4b0cb14b4 - Exhumed: Convert most of Ra to pointers. 2023-12-05 22:39:22 +01:00
Mitchell Richters
02f8ac3bb3 - Duke: Clean up player accesses in weapons code. 2023-12-05 22:39:21 +01:00
Mitchell Richters
2d6930fddc - SW: Clean up player accesses in DoGet(). 2023-12-05 22:39:21 +01:00
Mitchell Richters
63605f034d - Duke: Manual sweep for last replacements of GetActor() calls for stack pointer. 2023-12-05 22:39:21 +01:00
Mitchell Richters
66a77ea860 - Duke: Manual sweep for last replacements of player index for pointer. 2023-12-05 22:39:21 +01:00
Mitchell Richters
0615eba516 - Duke: Clean up player/actor accesses in checksectors_*(). 2023-12-05 22:39:21 +01:00
Mitchell Richters
48f1be7e0c - Duke: Clean up player/actor accesses in checkhitswitch() and associated utilities. 2023-12-05 22:39:21 +01:00
Mitchell Richters
b5f2357949 - Duke: Clean up player/actor accesses in moveclouds(). 2023-12-05 22:39:21 +01:00
Mitchell Richters
2de143214b - Duke: Clean up player/actor accesses in checkhitdefault(). 2023-12-05 22:39:20 +01:00
Mitchell Richters
4b410d48ba - Duke: Clean up player/actor accesses in doanimations(). 2023-12-05 22:39:20 +01:00
Mitchell Richters
5f132f5cda - Duke: Clean up player/actor accesses in findplayer utilities. 2023-12-05 22:39:20 +01:00
Mitchell Richters
60228e10c6 - Duke: Clean up actor accesses in premap.cpp. 2023-12-05 22:39:20 +01:00
Mitchell Richters
7401bf4c6f - Duke: Clean up actor accesses in player_d.cpp. 2023-12-05 22:39:20 +01:00
Mitchell Richters
4464497c28 - Duke: Clean up player/actor accesses in processinput_*(). 2023-12-05 22:39:20 +01:00
Mitchell Richters
32d294fed0 - Duke: Clean up player/actor accesses in processweapon(). 2023-12-05 22:39:20 +01:00
Mitchell Richters
0c7450bdb7 - Duke: Clean up player/actor accesses in player_w.cpp. 2023-12-05 22:39:19 +01:00
Mitchell Richters
3cefaf9030 - Duke: Clean up player/actor accesses in operateweapon(). 2023-12-05 22:39:19 +01:00
Mitchell Richters
9836925258 - Duke: Clean up player/actor accesses in fireweapon(). 2023-12-05 22:39:19 +01:00
Mitchell Richters
caa7d50505 - Duke: Clean up player/actor accesses in operateTripbomb(). 2023-12-05 22:39:19 +01:00
Mitchell Richters
58a87b658c - Duke: Clean up player/actor accesses in movement(). 2023-12-05 22:39:19 +01:00
Mitchell Richters
7dc0bde2be - Duke: Clean up player/actor accesses in operateJetpack(). 2023-12-05 22:39:19 +01:00
Mitchell Richters
18f362d68e - Add player's view angles to stat coord. 2023-12-05 22:39:19 +01:00
Mitchell Richters
561d756baa - Duke: Repair SB_CENTERVIEW not re-applying on the first tic. 2023-12-05 22:39:18 +01:00
Mitchell Richters
a6396cb491 - Centralise input clamping to occur centrally when the engine requests a packet. 2023-12-05 22:39:18 +01:00
Mitchell Richters
d2af13b924 - Make some utilities in vectors.h available as constexpr. 2023-12-05 22:39:18 +01:00
Mitchell Richters
a64de707e0 - Make TRotator<T> available as constexpr. 2023-12-05 22:39:18 +01:00
Mitchell Richters
4ff3351dd1 - Make TMatrix3x3<T> available as constexpr. 2023-12-05 22:39:18 +01:00
Mitchell Richters
eae8ebec31 - Make TVector4<T> available as constexpr. 2023-12-05 22:39:18 +01:00
Mitchell Richters
6b9ec49038 - Make TVector3<T> available as constexpr. 2023-12-05 22:39:18 +01:00
Mitchell Richters
ad694b7a8c - Make TVector2<T> available as constexpr. 2023-12-05 22:39:17 +01:00
Christoph Oelckers
60a36f4902 fix Vectoe3 clamp for real. 2023-12-05 22:39:17 +01:00
Mitchell Richters
d32961ca01 - Duke: Clean up actor accesses in player.cpp. 2023-12-05 22:39:17 +01:00
Mitchell Richters
3293d2337b - Duke: Clean up player/actor accesses in underwater(). 2023-12-05 22:39:17 +01:00
Mitchell Richters
6bb5958a93 - Duke: Clean up player/actor accesses in checkp(). 2023-12-05 22:39:17 +01:00
Mitchell Richters
be417e324b - Duke: Clean up player/actor accesses in haslock(). 2023-12-05 22:39:17 +01:00
Mitchell Richters
175b856406 - Duke: Clean up player/actor accesses in shoot(). 2023-12-05 22:39:17 +01:00
Mitchell Richters
0e1520ab1f - Duke: Clean up player/actor accesses in all input look functions. 2023-12-05 22:39:16 +01:00
Mitchell Richters
8e2d4a3f52 - Duke: Clean up player/actor accesses in playerJump(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
443b66ea9d - Duke: Clean up player/actor accesses in playerCrouch(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
2197128dc4 - Duke: Clean up player/actor accesses in timedexit(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
c7c63413ce - Duke: Clean up player/actor accesses in endoflevel(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
55c150845c - Duke: Clean up player/actor accesses in playerisdead(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
4865fc7d8e - Duke: Clean up player/actor accesses in footprints(). 2023-12-05 22:39:16 +01:00
Mitchell Richters
d44d14a770 - Duke: Clean up player/actor accesses in makepainsounds(). 2023-12-05 22:39:15 +01:00
Mitchell Richters
6c067d4c38 - Duke: Clean up player/actor accesses in dokneeattack(). 2023-12-05 22:39:15 +01:00
Mitchell Richters
387ed6ceac - Duke: Clean up player/actor accesses in PlayerColorChanged(). 2023-12-05 22:39:15 +01:00
Mitchell Richters
0425cc82fa - Duke: Clean up player/actor accesses in noise.cpp. 2023-12-05 22:39:15 +01:00
Mitchell Richters
dbf7872243 - Duke: Clean up player/actor accesses in hudweapon_*(). 2023-12-05 22:39:15 +01:00
Mitchell Richters
74a5a7584e - Duke: Clean up player/actor accesses in checkcursectnums(). 2023-12-05 22:39:15 +01:00