Commit graph

2822 commits

Author SHA1 Message Date
Mitchell Richters
29fc1240b4 - Remove unnecessary clamp in PlayerAngles::doViewPitch(). 2023-10-05 13:25:02 +11:00
Mitchell Richters
03a69c24b3 - Move syncinput mechanism into GameInput object. 2023-10-05 13:10:47 +11:00
Mitchell Richters
98e83fcc3a - Use DCorePlayer::GetActor() inside of CCMD(warptocoords). 2023-10-04 19:32:24 +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
94e23343e1 - Store scaleAdjust directly inside the GameInput object. 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
cf38a7b1c1 - Add player's view angles to stat coord. 2023-10-04 09:51:20 +11:00
Mitchell Richters
686b121e45 - Duke: Repair SB_CENTERVIEW not re-applying on the first tic. 2023-10-04 09:27:15 +11:00
Mitchell Richters
fd07347bce - Centralise input clamping to occur centrally when the engine requests a packet. 2023-10-04 08:56:19 +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
1732cd2e83 - Change InputPacket angles to an FRotator. 2023-10-03 23:07:45 +11:00
Mitchell Richters
95fc2ac6f1 - Make the last commit compile. 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
6cff02d33b - SW: Consistently apply SOP angle scaling to pitch as well as yaw. 2023-10-03 23:07:43 +11:00
Mitchell Richters
a2185644e1 - Clean up serialisers in savegamehelp.cpp. 2023-10-03 23:07:41 +11:00
Christoph Oelckers
3eeee794e5 use a TArray for the screenshot buffer. 2023-10-03 13:41:35 +02:00
Christoph Oelckers
09754467ee Revert "fixed CollisionData export."
This reverts commit fe02190604.
2023-10-03 13:36:19 +02:00
Mitchell Richters
03d957ffdf - Centralise the saving of player actions within DCorePlayer's serialiser. 2023-10-03 09:28:01 +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
02c6b68581 Merge remote-tracking branch 'remotes/origin/playerArray' into blood-script-export 2023-10-02 18:51:51 +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
7953fe7425 - Delete all players upon engine shutdown. 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
1604cf009c - Move the actor pointer for each game's player structures into CorePlayer.
* Something strange was going on here with Blood where the static_cast would not work... Moved the player structure into `bloodactor.h` for now to work around it.
2023-10-02 15:42:59 +11:00
Mitchell Richters
6beec5eed2 - Set up initial implementation of CorePlayer struct and make game-side player structs inherit from it. 2023-10-02 15:42:59 +11:00
Mitchell Richters
eeb9f48436 - Fix uncommitted change missed from 7fa5df934b. 2023-10-02 15:30:32 +11: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
fe02190604 fixed CollisionData export. 2023-10-01 21:06:53 +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
Christoph Oelckers
5a26989d06 exported the game specific sector/wall properties. 2023-10-01 18:54:10 +02:00
Christoph Oelckers
f71000fe6f wrapped all remaining access to type. 2023-10-01 14:06:59 +02:00
Christoph Oelckers
ee07ae35aa retrieve time in fillSummary. 2023-10-01 12:10:56 +02:00
Christoph Oelckers
4dcf0fd3c4 get rid of the GetStats interface function.
Now that all data it retrieves is available in shared code it is no longer needed.
2023-10-01 11:48:32 +02:00
Christoph Oelckers
19dfd84320 use global stat manager in SW 2023-10-01 10:33:07 +02:00
Christoph Oelckers
3e821c5849 use global stat manager in Duke 2023-10-01 10:07:54 +02:00
Christoph Oelckers
4af7a649b6 move kill/secret management into the shared code
Implemented for Blood so far, this gets rid of gKillMgr and gSecretMgr
2023-10-01 10:07:45 +02:00
Christoph Oelckers
26ba62dc62 Blood: cleanup of INI loading
* use snprintf instead of sprintf
* keep the IniFile object local
* get rid of the FreeGameData interface function, it only existed to free the global INI object.
2023-09-30 22:34:09 +02:00
Mitchell Richters
88939a9c60 - Do a memset() in PlayerAngles::initialize() instead of value initialisation. 2023-09-29 08:31:48 +10:00
Mitchell Richters
092d8e7937 Revert "- Favour value initialisation in GameInput::Clear() instead of a memset()."
This reverts commit 59acdde9c9.

Apparently this can generate terrible code with MSVC for some reason.
2023-09-29 08:31:03 +10:00
Mitchell Richters
f8ee893529 - Move I_GetEvent() call into GameInput::getInput(). 2023-09-28 22:16:31 +10:00
Mitchell Richters
04ac4561a8 - Exhumed: Set up cl_viewbob so its disabled by default since the game never had it. 2023-09-28 22:16:30 +10:00