Commit graph

696 commits

Author SHA1 Message Date
Christoph Oelckers
2cf474bddc Duke/RR: fixed player dying when falling from great heights while god mode being on. 2023-11-11 09:45:19 +01:00
Mitchell Richters
f4fee750d5 - Duke: Remove incur_damage() from dispatcher.
* Only used locally within `processinput()` for each game.
2023-11-10 12:00:50 +11:00
Mitchell Richters
7dbd38c84a 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-11-10 12:00:50 +11:00
Mitchell Richters
7921eedda2 - Interalise slope tilting checks for DCorePlayer::doViewPitch(). 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
Mitchell Richters
03a69c24b3 - Move syncinput mechanism into GameInput object. 2023-10-05 13:10:47 +11:00
Mitchell Richters
bd5fff4040 - Duke: Remove casts from setting RR vehicle velocities and consolidate setup into an inline. 2023-10-04 22:05:03 +11:00
Mitchell Richters
79995ba8ce - Duke: Manual sweep for last replacements of GetActor() calls for stack pointer. 2023-10-04 12:13:42 +11:00
Mitchell Richters
c67af979cb - Duke: Manual sweep for last replacements of player index for pointer. 2023-10-04 12:00:04 +11:00
Mitchell Richters
5ddd201b33 - Duke: Clean up player/actor accesses in checkhitswitch() and associated utilities. 2023-10-04 11:32:15 +11:00
Mitchell Richters
9c8b2abf07 - Duke: Clean up player/actor accesses in processinput_*(). 2023-10-04 10:53:56 +11:00
Mitchell Richters
df673952d9 - Duke: Clean up player/actor accesses in processweapon(). 2023-10-04 10:40:20 +11:00
Mitchell Richters
2c78fba4a2 - Duke: Clean up player/actor accesses in operateweapon(). 2023-10-04 10:30:13 +11:00
Mitchell Richters
f14d7f3612 - Duke: Clean up player/actor accesses in fireweapon(). 2023-10-04 10:25:46 +11:00
Mitchell Richters
c4792b1273 - Duke: Clean up player/actor accesses in movement(). 2023-10-04 10:20:07 +11:00
Mitchell Richters
a51521381f - Duke: Clean up player/actor accesses in underwater(). 2023-10-03 23:07:50 +11:00
Mitchell Richters
8b62cf63fb - Duke: Clean up player/actor accesses in all input look functions. 2023-10-03 23:07:49 +11:00
Mitchell Richters
2225fea10c - Duke: Clean up player/actor accesses in playerJump(). 2023-10-03 23:07:49 +11:00
Mitchell Richters
f135097193 - Duke: Clean up player/actor accesses in playerCrouch(). 2023-10-03 23:07:49 +11:00
Mitchell Richters
ce2487e18a - Duke: Clean up player/actor accesses in timedexit(). 2023-10-03 23:07:49 +11:00
Mitchell Richters
2e2efaea11 - Duke: Clean up player/actor accesses in endoflevel(). 2023-10-03 23:07:49 +11:00
Mitchell Richters
497d2d26dd - Duke: Clean up player/actor accesses in playerisdead(). 2023-10-03 23:07:48 +11:00
Mitchell Richters
7186c3e9f7 - Duke: Clean up player/actor accesses in footprints(). 2023-10-03 23:07:48 +11:00
Mitchell Richters
079df4dd8f - Duke: Clean up player/actor accesses in makepainsounds(). 2023-10-03 23:07:48 +11:00
Mitchell Richters
0749a65c81 - Duke: Clean up player/actor accesses in dokneeattack(). 2023-10-03 23:07:48 +11:00
Mitchell Richters
50acc673c9 - Duke: Clean up player/actor accesses in noise.cpp. 2023-10-03 23:07:48 +11:00
Mitchell Richters
454c1bfec0 - Duke: Clean up player/actor accesses in selectweapon_*(). 2023-10-03 23:07:47 +11:00
Mitchell Richters
0d25bbe84a - Duke: Remove PlayerInput() wrapper.
* Regex used: `PlayerInput\(\w+\,\s?(SB_\w+)\)` -> `!!(p->cmd.ucmd.actions & $1)`.
2023-10-03 23:07:46 +11:00
Mitchell Richters
ec5cc18470 - Duke: Remove PlayerSetInput() wrapper. 2023-10-03 23:07:46 +11:00
Mitchell Richters
af99ba9ae2 - Duke: Got rid of two more InputPacket wrappers. 2023-10-03 23:07:45 +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
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
82d029fe28 - Duke: Restore underwater input scaling to unsynchronised input which was lost back in March (b3c27a177e4787bf9341973039e73c1403e1b230). 2023-10-03 23:07:43 +11:00
Mitchell Richters
4876a3145e - Move doslopetilting() into DDukePlayer. 2023-10-03 23:07:43 +11: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
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
Mitchell Richters
6d2124dd01 - Duke: Initial setup to convert PlayerArray array to array of DukePlayer pointers. 2023-10-02 15:43:00 +11:00
Mitchell Richters
6a367c6184 - Duke: Rename ps[] array to PlayerArray[] and wrap its access. 2023-10-02 15:41:15 +11:00
Mitchell Richters
bd9e42bb40 - Duke: Rename player_struct struct to DukePlayer. 2023-10-02 15:41:13 +11:00
Mitchell Richters
719cc75fd2 - Duke: Rename player_struct::sync to player_struct::input to match the other games. 2023-10-02 15:30:32 +11:00
Mitchell Richters
ad87f9ba54 - Duke: Adjust doVehicleTilting() somewhat.
* Don't adjust and scale the player's roll, we can rely on `player_struct::TiltStatus` alone for this.
* Ensure maximum tilt via full keyboard turn == (20. * 360. / 2048. * 0.5), same as original code.
2023-09-28 22:16:31 +10:00
Christoph Oelckers
5ba01bb38d - fix crash in RR when dying with an item-less weapon. 2023-05-20 07:19:35 +02:00
Christoph Oelckers
44f4104eda - got rid of the last tilenum uses in Duke.
This meant refactoring the crosshair drawer to work on a named texture called "CROSSHAIR" and hard coding the magic numbers for spawndebris.
2023-04-29 09:54:15 +02:00
Mitchell Richters
52ab0fae19 - Duke: Allow reversing while moving forwards to act as the brake.
* Much more intuitive for controllers.
2023-04-25 11:30:48 +10:00
Mitchell Richters
6d2e114dec - Duke: Move moto tilt scaling into main tilt function, not within the draw code. 2023-04-25 08:37:38 +10:00