Commit graph

1274 commits

Author SHA1 Message Date
Mitchell Richters
3496d5cac5 - Exhumed: Return early in movesprite() if the actor's sector is null.
* This is what PowerSlaveGDX does.
* Fixes #1010.
2023-11-08 15:34:40 +11:00
Mitchell Richters
6c70211238 - Exhumed: Adjust angle change in 47a77fc8f1 to be 1:1 with the source. 2023-11-08 15:07:14 +11:00
Christoph Oelckers
47a77fc8f1 Exhumed: fix handling of angles for the queen's eggs when colliding with a wall. 2023-11-06 17:05:12 +01:00
Mitchell Richters
5d68927e21 - Exhumed: Remove sequence post-processing since range checks from c039882dcc handle this. 2023-11-06 14:29:11 +11:00
Mitchell Richters
6f7a07dca1 - 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-11-06 14:29:00 +11:00
Christoph Oelckers
3066df54e0 Exhumed: fixed a few more bad velocities in queen code. 2023-11-05 23:51:02 +01:00
Christoph Oelckers
c039882dcc 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-11-05 14:42:41 +01:00
Christoph Oelckers
40265e649f 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-11-05 14:39:49 +01:00
Christoph Oelckers
ff0cb2f580 Exhumed: sanitize stupid implementation of UpdateEnemy and fixed bad use of it for the queen's eggs. 2023-11-05 13:37:34 +01:00
Mitchell Richters
9e1ce2b970 - Clean up some GCC const warnings. 2023-11-05 20:54:17 +11:00
Mitchell Richters
4d7094b63b - Move gi->getCrouchState() into DCorePlayer. 2023-11-05 17:38:10 +11:00
Mitchell Richters
bd3184cf49 - Consolidate Exhumed's nCamerapos and SW's DSWPlayer::si into something inside DCorePlayer. 2023-11-04 19:10:05 +11:00
Mitchell Richters
cf2f3e20f8 - 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-11-04 19:10:04 +11:00
Mitchell Richters
3d7b742bed - Internalise player InputPacket access. 2023-11-04 19:10:03 +11:00
Mitchell Richters
3625a6af52 - Move PlayerAngles class directly into DCorePlayer.
* No refactoring around it yet.
* The #includes could use some cleaning up...
2023-11-04 19:10:03 +11:00
Christoph Oelckers
04a94f70f7 replace sprintf with snprintf. 2023-10-13 23:06:52 +02:00
Christoph Oelckers
4c34f414dc added the remaining needed GetChars calls. 2023-10-08 09:15:32 +02:00
Mitchell Richters
ab239b0899 - Exhumed: A little bit more cleanup. 2023-10-05 14:07:04 +11:00
Mitchell Richters
aca2302878 - Exhumed: Remove static copy of last yaw input from draw code. 2023-10-05 13:26:38 +11:00
Mitchell Richters
03a69c24b3 - Move syncinput mechanism into GameInput object. 2023-10-05 13:10:47 +11:00
Mitchell Richters
623e453d4d - 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-10-04 19:28:25 +11:00
Mitchell Richters
80dd01aef0 - Remove GameInput friendships inside PlayerAngles in lieu of a local inline function. 2023-10-04 19:28:25 +11:00
Mitchell Richters
eacc882096 - Exhumed: Manual sweep for last replacements of player index for pointer. 2023-10-04 19:28:25 +11:00
Mitchell Richters
69347e80e7 - Exhumed: Clean up player accesses in player.cpp. 2023-10-04 19:28:25 +11:00
Mitchell Richters
2ae3a5362e - Exhumed: Clean up player accesses in map.cpp and move.cpp. 2023-10-04 19:28:24 +11:00
Mitchell Richters
3d7b7f8a3e - Exhumed: Clean up player accesses in items.cpp and associated utilities. 2023-10-04 19:28:24 +11:00
Mitchell Richters
f3ef64b2ac - Exhumed: Clean up player accesses in gun.cpp and associated utilities. 2023-10-04 19:28:24 +11:00
Mitchell Richters
27a41121ec - Exhumed: Clean up player accesses in grenade code. 2023-10-04 19:28:24 +11:00
Mitchell Richters
0411598ee0 - Exhumed: Clean up player accesses in cheats.cpp. 2023-10-04 12:52:29 +11:00
Mitchell Richters
8e49d24ddc - Exhumed: Clean up player accesses in AddAmmo(). 2023-10-04 12:52:16 +11:00
Mitchell Richters
e1cbc4ffc6 - Exhumed: Convert most of Ra to pointers. 2023-10-04 12:45:02 +11:00
Mitchell Richters
2e83f46861 - Duke: Clean up player accesses in weapons code. 2023-10-04 12:41:11 +11: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
1732cd2e83 - Change InputPacket angles to an FRotator. 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
Mitchell Richters
f570cb5d21 - Change InputPacket velocities to an FVector3. 2023-10-03 23:07:44 +11:00
Mitchell Richters
ec69e644f7 - Clean up a bunch of serialisers that were saving vector members, and not the whole vector. 2023-10-03 09:33:28 +11:00
Mitchell Richters
03d957ffdf - Centralise the saving of player actions within DCorePlayer's serialiser. 2023-10-03 09:28:01 +11:00
Mitchell Richters
559197a6d1 - Exhumed: Remove some duplicated save variables. 2023-10-03 09:20:16 +11:00
Christoph Oelckers
d815eff5d1 fix saving. 2023-10-02 21:38:58 +02:00
Christoph Oelckers
dd2ea96d6c turn players into DObjects and fix several bugs with bad memory access.
* DObjects may not be memset to 0.
* There was still code trying to retrieve the player index with pointer artithmetic. With an array of pointers this does not work.
2023-10-02 21:03:59 +02:00
Christoph Oelckers
d60834be3d fixed GC handling of players.
These were missing null checks, the player pointers also weren't nulled after deleting the objects.
2023-10-02 19:03:27 +02:00
Christoph Oelckers
a941bbf89c fixed warning 2023-10-02 18:54:12 +02:00
Mitchell Richters
ac35e09d1c - Move each game's stored nPlayer/pnum value to CorePlayer. 2023-10-02 18:44:04 +11:00
Mitchell Richters
16189ff7f9 - Remove GameInterface::getConsoleActor() in place of direct access. 2023-10-02 18:11:53 +11:00
Mitchell Richters
6de8fc91d6 - Remove GameInterface::reapplyInputBits() and directly perform operation in GameTicker(). 2023-10-02 18:11:51 +11:00
Mitchell Richters
02bd017d07 - Directly set CorePlayer::ucmd rather than copying it to a temporary array. 2023-10-02 17:00:50 +11:00
Mitchell Richters
d90aca9640 - Directly store a ticcmd_t object within CorePlayer. 2023-10-02 17:00:50 +11:00
Mitchell Richters
23d4cbc3bd - Remove all game-side PlayerArray[] objects and store within common code. 2023-10-02 15:43:00 +11:00