Commit graph

2215 commits

Author SHA1 Message Date
Christoph Oelckers
c769de1828 reverted all the state work on Shadow Warrior. 2024-02-24 10:33:03 +01:00
Christoph Oelckers
3e30e5f4ef SW: fix player's run animation not playing. 2024-02-05 00:20:04 +01:00
Christoph Oelckers
93bc496494 SW: added CVAR 'sw_nocenterview' to block view centering after landing from a tall jump.
No menu entry yet.
2024-02-04 15:15:26 +01:00
Mitchell Richters
1da71c3ca8 - Rename DCorePlayer::StrafeVel to DCorePlayer::RollVel as it better matches its usage. 2024-01-05 20:59:28 +11:00
Mitchell Richters
d25f6597b8 - Move DCorePlayer::resetCameraAngles() call from each game into GameInput::getInput(). 2024-01-05 20:59:28 +11:00
Mitchell Richters
e58d5f7637 - Move GameInput::ResetInputSync() call from each game into GameInput::getInput(). 2024-01-05 20:59:27 +11:00
Christoph Oelckers
36930d44bd filesystem update from GZDoom. 2023-12-17 12:48:03 +01:00
Christoph Oelckers
c0d166c307 backend update from GZDoom. 2023-12-10 13:30:50 +01:00
Christoph Oelckers
60d3a5e6b3 SW: fix vertical spread for the Uzi 2023-12-05 22:41:00 +01:00
Mitchell Richters
aea71092cc - Clean up some GCC const warnings. 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
f219ee0208 - Clean up some leftover floats in the input 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
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
Christoph Oelckers
54035f9396 replace sprintf with snprintf. 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
Mitchell Richters
a8ec00d7ce - SW: No need to mark off PlayerArray for saving game-side. 2023-12-05 22:39:25 +01:00
Mitchell Richters
52b20e1f59 - Move syncinput mechanism into GameInput object. 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
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
2d6930fddc - SW: Clean up player accesses in DoGet(). 2023-12-05 22:39:21 +01:00
Mitchell Richters
2b0b98a49c - SW: Shorten the setup in DoPlayerVehicleInputScaling(). 2023-12-05 22:39:13 +01:00
Mitchell Richters
e8451d3ddb - 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-12-05 22:39:13 +01:00
Mitchell Richters
af8f3139ed - Change InputPacket angles to an FRotator. 2023-12-05 22:39:12 +01:00
Mitchell Richters
e2a949949c - 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-12-05 22:39:12 +01:00
Mitchell Richters
8c1e392afc - 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-12-05 22:39:12 +01:00
Mitchell Richters
592d416485 - Change InputPacket velocities to an FVector3. 2023-12-05 22:39:12 +01:00
Mitchell Richters
19c64e55c4 - SW: Consistently apply SOP angle scaling to pitch as well as yaw. 2023-12-05 22:39:11 +01:00
Mitchell Richters
d683a6900a - SW: Remove DSWPlayer::drive_avel, we can just use DCoreActor::lastcmd for this. 2023-12-05 22:39:11 +01:00
Christoph Oelckers
330e2af217 made SW's panel sprites into actual DObjects
so that they can a) cleanly be exposed to scripting later and b) serialized for savegames without using gross hacks.
2023-12-05 22:39:09 +01:00
Christoph Oelckers
0463623daf SW: fix serialization of panel sprites 2023-12-05 22:39:08 +01:00
Mitchell Richters
8d205bc896 - Clean up a bunch of serialisers that were saving vector members, and not the whole vector. 2023-12-05 22:39:08 +01:00
Mitchell Richters
8bed6c9241 - Centralise the saving of player actions within DCorePlayer's serialiser. 2023-12-05 22:39:08 +01:00
Mitchell Richters
9df739186c - SW: Remove some duplicated save variables. 2023-12-05 22:39:07 +01:00
Christoph Oelckers
c02cff1e48 fix saving. 2023-12-05 22:39:07 +01:00
Christoph Oelckers
5448f6ec2c 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-12-05 22:38:34 +01:00
Christoph Oelckers
1ce8ceac5d fixed GC handling of players.
These were missing null checks, the player pointers also weren't nulled after deleting the objects.
2023-12-05 22:03:57 +01: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