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
e45d485eb2
- Duke: Get rid of two InputPacket wrappers.
2023-10-03 23:07:43 +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
6cff02d33b
- SW: Consistently apply SOP angle scaling to pitch as well as yaw.
2023-10-03 23:07:43 +11:00
Mitchell Richters
3c4eb21484
- SW: Remove DSWPlayer::drive_avel
, we can just use DCoreActor::lastcmd
for this.
2023-10-03 23:07:43 +11:00
Mitchell Richters
4876a3145e
- Move doslopetilting()
into DDukePlayer
.
2023-10-03 23:07:43 +11:00
Mitchell Richters
c974e35a6b
- Duke: Clean up player/actor accesses in ParseState::parse()
.
2023-10-03 23:07:43 +11:00
Mitchell Richters
a1e94f8278
- Duke: Clean up player/actor accesses in game_misc.cpp
.
2023-10-03 23:07:43 +11:00
Mitchell Richters
411115304a
- Duke: Clean up player/actor accesses in game.cpp
.
2023-10-03 23:07:43 +11:00
Mitchell Richters
9086f90e75
- Duke: Clean up player/actor accesses in cheats.cpp
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
51b0bd284d
- Duke: Remove unused angle rotation from ccmds()
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
559ee2f3c6
- Duke: Remove unused angle rotation from animatesprites_r()
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
3c51f03def
- Duke: Clean up player/actor accesses in animatesprites_r.cpp
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
c2196374e8
- Duke: Clean up player/actor accesses in animatesprites_d.cpp
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
bc66f2de5c
- Duke: Clean up player/actor accesses in actors_lava.cpp
.
2023-10-03 23:07:42 +11:00
Mitchell Richters
7493d0cdeb
- Duke: Tidy up resetplayerstats()
to avoid looping through the players three times.
2023-10-03 23:07:42 +11:00
Mitchell Richters
992a8b3899
- Duke: Fix resetplayerstats()
setup.
2023-10-03 23:07:41 +11:00
Christoph Oelckers
b068a19ed9
Duke: fixed bad loop index in gamevar init code.
2023-10-03 12:54:53 +02:00
Christoph Oelckers
8dc0505a65
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-10-03 12:27:15 +02:00
Christoph Oelckers
a8f2af7257
SW: fix serialization of panel sprites
2023-10-03 09:21:08 +02:00
Christoph Oelckers
7d26d3b87c
do not copy players, it is not allowed for polymorphic classes.
2023-10-03 08:30:00 +02: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
27ae6a4c20
- Blood: Fix missing call to Super while saving.
2023-10-03 09:20:17 +11:00
Mitchell Richters
31e3048369
- Duke: Remove some duplicated save variables.
2023-10-03 09:20:16 +11:00
Mitchell Richters
559197a6d1
- Exhumed: Remove some duplicated save variables.
2023-10-03 09:20:16 +11:00
Mitchell Richters
656cafffb5
- SW: Remove some duplicated save variables.
2023-10-03 09:20:15 +11:00
Mitchell Richters
04ba6acd16
- Duke: Clean up player/actor accesses in resetpspritevars()
.
2023-10-03 07:51:34 +11:00
Mitchell Richters
c35fbc28db
- Duke: Ensure player's pnum
is updated during premap.
2023-10-03 07:48:33 +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
Christoph Oelckers
02c6b68581
Merge remote-tracking branch 'remotes/origin/playerArray' into blood-script-export
2023-10-02 18:51:51 +02:00
Mitchell Richters
bdd02953c3
- Duke: Clean up player/actor accesses in rrra_specialstats()
.
2023-10-02 21:24:26 +11:00
Mitchell Richters
ca4f00b6b3
- Duke: Clean up player/actor accesses in movetransports_r()
.
2023-10-02 21:24:25 +11:00
Mitchell Richters
6c72a2a1fa
- Duke: Clean up player/actor accesses in ifhitbyweapon_r()
.
2023-10-02 21:24:05 +11:00
Mitchell Richters
8584745ce4
- Duke: Clean up player/actor accesses in addweapon_r.cpp
.
2023-10-02 21:23:42 +11:00
Mitchell Richters
9a301d6e06
- Duke: Fix incorrect distance value in handle_se28()
.
2023-10-02 21:23:42 +11:00
Mitchell Richters
2d7ab0f581
- Duke: Clean up player/actor accesses in handle_se28()
.
2023-10-02 21:23:42 +11:00
Mitchell Richters
9fb63af7b6
- Duke: Clean up player/actor accesses in movetransports_d()
.
2023-10-02 21:23:41 +11:00
Mitchell Richters
3274450fe6
- Duke: Clean up player/actor accesses in ifhitbyweapon_d()
.
2023-10-02 21:23:05 +11:00
Mitchell Richters
fe5581f3cf
- Duke: Clean up player/actor accesses in addweapon_d.cpp
.
2023-10-02 21:14:55 +11:00
Mitchell Richters
95d5e1f57d
- Duke: Clean up player/actor accesses in gameexec.cpp
.
2023-10-02 21:14:32 +11:00
Mitchell Richters
d4999619dc
- Duke: Clean up player/actor accesses in movefta()
.
2023-10-02 20:45:33 +11:00
Mitchell Richters
6f248ff34c
- Duke: Clean up player/actor accesses in alterang()
.
2023-10-02 20:45:06 +11:00
Mitchell Richters
5e82e5ab94
- Duke: Clean up player/actor accesses in handle_se31()
.
2023-10-02 20:44:40 +11:00
Mitchell Richters
36fd510f2c
- Duke: Clean up player/actor accesses in handle_se24()
.
2023-10-02 20:44:21 +11:00
Mitchell Richters
6754dd03f1
- Duke: Clean up player/actor accesses in handle_se27()
.
2023-10-02 20:43:01 +11:00
Mitchell Richters
c98083bf75
- Duke: Clean up player/actor accesses in handle_se26()
.
2023-10-02 20:42:42 +11:00
Mitchell Richters
6764acccb0
- Duke: Clean up player/actor accesses in handle_se20()
.
2023-10-02 20:42:20 +11:00
Mitchell Richters
da75e29d5c
- Duke: Clean up player/actor accesses in handle_se18()
.
2023-10-02 20:42:00 +11:00
Mitchell Richters
c948b4a526
- Duke: Clean up player/actor accesses in handle_se17()
.
2023-10-02 20:41:43 +11:00
Mitchell Richters
98eacf83b9
- Duke: Clean up player/actor accesses in handle_se13()
.
2023-10-02 20:41:24 +11:00
Mitchell Richters
0c8539b0dd
- Duke: Clean up player/actor accesses in handle_se05()
.
2023-10-02 20:41:07 +11:00
Mitchell Richters
10ede7ce16
- Duke: Clean up player/actor accesses in handle_se02()
.
2023-10-02 20:41:06 +11:00
Mitchell Richters
3aea097f87
- Duke: Clean up player/actor accesses in handle_se30()
.
2023-10-02 20:41:05 +11:00
Mitchell Richters
c19ac0a916
- Duke: Clean up player/actor accesses in handle_se14()
.
2023-10-02 20:39:26 +11:00
Mitchell Richters
f992ec9221
- Duke: Clean up player/actor accesses in handle_se00()
.
2023-10-02 20:39:03 +11:00
Mitchell Richters
eb8a359c77
- Duke: Clean up player/actor accesses in move()
.
2023-10-02 20:38:48 +11:00
Mitchell Richters
091c6cb9dd
- Duke: Clean up player/actor accesses in hitradius()
.
2023-10-02 20:38:22 +11:00
Mitchell Richters
76f47a61bb
- Duke: Clean up player/actor accesses in moveplayers()
.
2023-10-02 20:38:06 +11:00
Mitchell Richters
7a6e036849
- Duke: Clean up player/actor accesses in movedummyplayers()
.
2023-10-02 20:37:40 +11:00
Mitchell Richters
77eb44fd54
- Duke: Clean up player/actor accesses in clearcamera()
.
2023-10-02 20:37:18 +11:00
Mitchell Richters
892eb16d8b
- Duke: Clean up player/actor accesses in checkavailweapon()
.
2023-10-02 20:36:58 +11:00
Mitchell Richters
3925af453a
- Duke: Clean up player/actor accesses in moveactor()
.
2023-10-02 20:36:39 +11: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
Mitchell Richters
789c4669f1
- SW: Initial setup to convert PlayerArray
array to array of SWPlayer
pointers.
2023-10-02 15:43:00 +11:00
Mitchell Richters
f9c3a64f35
- Exhumed: Initial setup to convert PlayerArray
array to array of ExhumedPlayer
pointers.
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
0aac044da6
- Blood: Initial setup to convert PlayerArray
array to array of BloodPlayer
pointers.
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
6a7eabd23f
- SW: Rename Player[]
array to PlayerArray[]
and wrap its access.
2023-10-02 15:42:59 +11:00
Mitchell Richters
2327e08acb
- SW: Replace remaining Player +
pointer arithmetic with array accesses.
2023-10-02 15:42:58 +11:00
Mitchell Richters
2733c90237
- SW: Replace all pp (.)\= Player \+ (.+)\)
with array accesses.
2023-10-02 15:42:58 +11:00
Mitchell Richters
3c499b060f
- SW: Replace all pp = Player \+ (.+);
with array accesses.
2023-10-02 15:42:58 +11:00
Mitchell Richters
3cc2aa7af4
- SW: Replace remaining Player+
pointer arithmetic with array accesses.
2023-10-02 15:42:57 +11:00
Mitchell Richters
edd089cc0d
- SW: Replace Player+pnum
pointer arithmetic with array accesses.
2023-10-02 15:42:57 +11:00
Mitchell Richters
6a72b3dd83
- SW: Replace all pp (.)\= Player\+(.+)\)
with array accesses.
2023-10-02 15:42:57 +11:00
Mitchell Richters
5d5327c427
- Replace direct pointer access to Player[]
array with array accesses.
2023-10-02 15:42:57 +11:00
Mitchell Richters
dbb11eed4d
- SW: Rename PLAYER
struct to SWPlayer
.
2023-10-02 15:42:55 +11:00
Mitchell Richters
d107b6a1fa
- Exhumed: Rename PlayerList[]
array to PlayerArray[]
and wrap its access.
2023-10-02 15:42:09 +11:00
Mitchell Richters
5008ac08ac
- Exhumed: Rename Player
struct to ExhumedPlayer
.
2023-10-02 15:41:15 +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
0ed54ed719
- Blood: Rename gPlayer[]
array to PlayerArray[]
and wrap its access.
2023-10-02 15:31:05 +11:00
Mitchell Richters
49104f9b24
- Blood: Rename PLAYER
struct to BloodPlayer
.
2023-10-02 15:30:51 +11:00
Mitchell Richters
a20e2b64f9
- SW: Wrap access to player's actor pointer.
2023-10-02 15:30:35 +11:00
Mitchell Richters
61bc8c23cf
- Exhumed: Wrap access to player's actor pointer.
2023-10-02 15:30:35 +11:00
Mitchell Richters
6d6872fea7
- Duke: Ensure player_struct::GetActor()
is exclusively used to get the player's actor.
2023-10-02 15:30:34 +11:00
Mitchell Richters
2755b17fd5
- Blood: Wrap access to player's actor pointer.
2023-10-02 15:30:34 +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
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
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
30d259f8b4
actually use the shifted type range for FX actors, now that the spawning is handled.
2023-10-01 14:06:59 +02:00
Christoph Oelckers
72bab35ab4
spawn the actual classes assigned to the various actor types.
2023-10-01 14:06:59 +02:00
Christoph Oelckers
f71000fe6f
wrapped all remaining access to type.
2023-10-01 14:06:59 +02:00
Christoph Oelckers
0dd22f3071
Blood: make sure FX sprites have a unique type.
...
There were overlaps with other types which for ZScript would be a problem, this also caused undefined behavior with the kSectorCounter event callback.
2023-10-01 14:06:58 +02:00
Christoph Oelckers
eb043f7fab
wrapped all remaining spr.type not related to kStatFX
2023-10-01 14:06:58 +02:00
Christoph Oelckers
e5d8b097fc
wrapped many more accesses to spr.type.
2023-10-01 14:06:58 +02:00
Christoph Oelckers
93df21bca1
replaced a few more spr.type's.
2023-10-01 14:06:58 +02:00
Christoph Oelckers
8f8e8c4d87
replaced more access to spr.type.
2023-10-01 14:06:58 +02:00
Christoph Oelckers
9b22d9a811
add a getDudeInfo variant that only takes an actor pointer as parameter
2023-10-01 14:06:57 +02:00
Christoph Oelckers
658646323c
use IsDudeActor where appropriate.
2023-10-01 14:06:57 +02:00
Christoph Oelckers
b2582dcb84
quick replacements of many spr.type uses
2023-10-01 14:06:48 +02:00
Christoph Oelckers
95290c65b2
wrap all write access to spr.type.
2023-10-01 14:04:01 +02:00
Christoph Oelckers
7379288f4b
directory structure cleanup
2023-10-01 14:03:44 +02:00
Christoph Oelckers
5cbca32967
added missing license to Duke's vmexports.cpp
2023-10-01 14:03:23 +02:00
Christoph Oelckers
295d9e690b
remove unneeded non-standard includes from inifile.cpp
2023-10-01 14:00:26 +02:00
Christoph Oelckers
716e059374
use shared SplitPath function
2023-10-01 13:09:22 +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
da3df98484
use global stat manager in Exhumed
2023-10-01 10:17:27 +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
Christoph Oelckers
bb6d6ae83b
replaced Ini-parser with a reworked version from Blood RE.
...
This was mainly for the license.
2023-09-30 21:47:17 +02:00
Christoph Oelckers
31541fd8ae
correct else placement in calebSwimChase.
2023-09-29 20:22:56 +02:00
Christoph Oelckers
e072380470
Blood: fixed bad order of random numbers.
2023-09-29 20:11:34 +02:00
Mitchell Richters
dc8be29354
- Exhumed: Use range-based loop in seq_LoadSequences()
.
2023-09-28 22:16:31 +10: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
Mitchell Richters
8f9b413d38
- Always clear object in PlayerAngles::initialize()
rather than expecting the caller to do it.
2023-09-28 22:16:30 +10:00
Mitchell Richters
7fa5df934b
- Make playercmds[]
non-global and pass through as pointer.
2023-09-28 22:16:30 +10:00
Mitchell Richters
ae39645169
- Duke: Slight cleanup on e0e459216d
.
2023-09-28 22:16:29 +10:00
Mitchell Richters
4958241c57
- Blood: Slight cleanup on 32480dde16
.
2023-09-28 22:16:29 +10:00
Christoph Oelckers
b05b409695
Blood: removed 3 unused members in PLAYER
2023-09-28 11:45:16 +02:00
Christoph Oelckers
f46db83ab3
removed two leftover floatification helpers.
2023-09-28 11:43:14 +02:00
Christoph Oelckers
aea46548bd
moved all Is***Sprite function to animatesprite.cpp because that's the only place they still get used from.
...
Naked sprite pointers have been removed everywhere else.
2023-09-28 11:41:35 +02:00
Christoph Oelckers
7e63ccd57a
Blood: get rid of the mirror struct and related data.
...
This is a relic of Polymost.
2023-09-26 23:34:08 +02:00
Christoph Oelckers
bcad8a85d2
renamed at* fields in gib.cpp
2023-09-26 23:34:08 +02:00
Christoph Oelckers
3625a510d2
took a hint from Blood-RE and replaced that awful reconstructed sorting function with the qsort call it most likely originally was.
2023-09-26 23:34:08 +02:00
Christoph Oelckers
8a0f79141b
code cleanup
...
* gave reverb functions the proper 'S_' prefix for consistency.
* Blood: fixed license of 4 files which do not contain any NBlood code anymore (sound code was completely rewritten, and all such code has long been moved out of d_menu.cpp)
* Blood: renamed VIEWPOS_* constants
2023-09-26 23:30:38 +02:00
Mitchell Richters
e0e459216d
- Reduce GameInput::processVehicle()
interface by changing three bools to a bitfield.
2023-09-25 19:51:53 +10:00
Mitchell Richters
ce236c795f
- Blood: Don't attenuate view rolling when swimming.
...
* Blood's input and drag system is much more developed than the other games and further attenuation is not needed here.
2023-09-25 17:00:10 +10:00
Mitchell Richters
9ad0af4479
- Blood: Better fix for view rolling under all circumstances.
...
* Why is everything so difficult in Blood? 😕
* Do StrafeVel drag/resistance before `MoveDude()` as it may never be called if there's no velocity.
* Avoid using `mulscale16r()` in algorithm as we simply don't need to here.
* Move `doRollInput()` call into same area where drag is applied so all the code is concentrated in one spot.
2023-09-25 16:42:11 +10:00
Mitchell Richters
2916fe596f
- Blood: Fix view rolling while underwater.
2023-09-24 20:00:11 +10:00
Mitchell Richters
32480dde16
- Ensure all games preserve SB_CENTERVIEW
and SB_CROUCH
bits upon loading.
2023-09-24 17:22:38 +10:00
Mitchell Richters
ff8cea673e
- Duke: Ensure player_struct
Serialiser only attempts to set variables when reading, not unconditionally.
2023-09-24 17:21:17 +10:00
Mitchell Richters
29e021b5bf
- Move crouch toggling back into the backend so the toggle key can be used as a swim key.
...
* Reverts 272dfa762d
, but is a fresh implementation.
* I doubted anyone was doing this but apparently not.
* Exhumed needed a bit more work as it has very specific underwater checks.
2023-09-24 14:15:49 +10:00
Christoph Oelckers
615267dbd4
- fixed incorrect setup in Blood map loader.
2023-09-23 21:13:03 +02:00