Commit graph

49 commits

Author SHA1 Message Date
Christoph Oelckers
8606045689 - Duke: made gamevars type safe and capable of managing actor pointers.
Also a few unrelated changes needed to make it compile again.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
122a1f009d - moved gamevar storage to player and actor objects respectively.
For actors this eliminates the need to for sprite indices which was the intended goal. It also properly associates the gamevars with their owners.
2021-12-26 23:09:56 +01:00
Christoph Oelckers
d1f7269ca8 replaced cursectnum with a cursector pointer 2021-12-25 21:28:56 +01:00
Christoph Oelckers
22b2f64016 dukeplayer stuff 2021-12-25 21:28:55 +01:00
Christoph Oelckers
2949361c82 - Duke/RR: added null checks to all spawn() calls 2021-11-29 00:56:32 +01:00
Christoph Oelckers
4c7662b4ea - Duke/RR: guard all calls to EGS with a null pointer check.
Spawning sprites into the void will crash the engine so these must be blocked which requires a failure check here.
With this pressing fire while in the void no longer crashes the game - it won't fire anything, either, though.
2021-11-29 00:56:31 +01:00
Christoph Oelckers
09c2677fe7 - lots of EGS calls. 2021-11-29 00:56:29 +01:00
Christoph Oelckers
01abe7b2ac - addressed most unused/uninitialized variable warnings from MSVC. 2021-11-29 00:55:30 +01:00
Christoph Oelckers
5cda9d0858 - tabified two files in Duke that were missed somehow, plus some comment cleanup elsewhere. 2021-11-29 00:53:35 +01:00
Christoph Oelckers
3a73a9f8ed - Duke/RR: replaced more local short variables with ints. 2021-11-07 16:30:56 +01:00
Mitch Richters
a1570c185f - Duke: Remove posx/posy/posz variables and replace with points in the previously unionised pos vec3_t variable. 2021-10-31 17:52:52 +11:00
Christoph Oelckers
96d78ab9e6 - made DukeActor::s a pointer.
As a reference we would never be able to export this to scripting
2021-04-15 19:21:43 +02:00
Mitchell Richters
2abda0e27d - All Games: Migrate each game's clock counter to backend solution. 2021-02-18 21:47:33 +11:00
Mitchell Richters
868aa7f07a - Replace mulscale() calls with MulScale() from common. 2021-01-05 07:31:24 +11:00
Mitchell Richters
2396179dfc - Replace mulscale##() calls with MulScale() from common.
* Regex for reference: mulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:15 +11:00
Mitchell Richters
6800e192e1 - buildutils: Replace sintable[] use within Duke's player_w.cpp with bsin()/bcos(). 2020-11-22 21:18:05 +01:00
Christoph Oelckers
d773601d81 - player.i, part 3 2020-11-04 20:39:43 +01:00
Christoph Oelckers
b891646c37 - all of player_w.cpp 2020-11-03 22:41:24 +01:00
Christoph Oelckers
32a7c2349e - shoot interface transitioned/operateweapon mostly done. 2020-11-03 22:01:58 +01:00
Christoph Oelckers
79f850d126 - PlayerColorChanged, hits, hitasprite. 2020-11-03 19:21:44 +01:00
Christoph Oelckers
a514910aa4 - use an actor pointer in Get/SetGameVarID's parameters to weed out the ordering screwups. 2020-11-03 19:21:43 +01:00
Christoph Oelckers
de92287d0b - fixed the messed up parameter order of OnEvent.
This should serve as a textbook example why passing around indices is a very, very bad idea!
2020-11-03 19:21:42 +01:00
Christoph Oelckers
46d90f5d49 - clearcamera and ssp. 2020-10-23 22:37:38 +02:00
Mitchell Richters
fca846272e - gamecontrol: Initial setup of PlayerAngle struct and deployment within Duke.
* Struct made up of binangle class units.
* Create signed clone of binangle for use with look_ang and rotscrnang.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 23:13:29 +11:00
Mitchell Richters
f39939d114 - gamecontrol: Initial setup of PlayerHorizon struct and deployment within Duke.
* Started with the most complicated game first.
* Struct made up of fixedhoriz class units.
* Append currently outgoing function names with `2` at the end to avoid conflict.
2020-10-07 17:12:48 +11:00
Mitchell Richters
8be8bcc87a - Duke/SW: Fix InitTracerTurret() to use player's q16horiz with full precision and replace some manually expressed mulscales with mulscale16() inline from pragmas.h. 2020-10-07 13:28:58 +11:00
Mitchell Richters
09a05f354c - Re-standardise horizon around 0 and not 100.
* Blood had this right. It makes sense that the horizon be based around as it's easier to work with.
* Removed all associated game math to deduct default horizon of 100 when doing weapon zvel etc, meaning actual horizon can just be used.
* Re-did return to center function to work on the already converted pitch. Return speed should be 1:1 with previous code.
2020-10-07 13:28:45 +11:00
Christoph Oelckers
57945d2baf - eliminated a few overlooked 'long's. 2020-10-02 22:18:08 +02:00
Mitchell Richters
837b7c0a30 - SW: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490. 2020-09-27 02:07:07 +10:00
Mitchell Richters
e7de0da36c - Duke: Changed some downscaled and upscaled Q16.16 variables missed when doing 46810ec490. 2020-09-25 17:08:44 +10:00
Mitchell Richters
ce82eaf899 - Duke/RR: Address weapon drawer interpolation concerns raised in #403. 2020-09-16 21:01:09 +10:00
Christoph Oelckers
03aad6559b - added a global leveltimer variable to Duke.
This timer only gets incremented by the main game ticker when the playsim is running.

This timer gets used for all playsim-related timing and animations so that these are decoupled from imprecisions in the global timer.
2020-08-31 00:33:41 +02:00
Christoph Oelckers
34104a74d8 reduce dependency of code on global gameclock variable
passing it as parameter to operateweapon*
2020-08-31 00:17:40 +02:00
Christoph Oelckers
694444b62a - converted the remaining input bits.
Looks like it is working in all games except Blood (not that it surprises me that it's Blood again which has issues...)
2020-08-29 13:32:55 +02:00
Christoph Oelckers
dc1f56e8f9 Merge remote-tracking branch 'remotes/Github_private/back_to_basics2' into Packet
# Conflicts:
#	source/core/inputstate.cpp
#	source/exhumed/src/exhumed.h
2020-08-29 01:19:48 +02:00
Christoph Oelckers
b9e0f493b2 - transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire. 2020-08-28 23:25:08 +02:00
Mitchell Richters
3e79e7b63f - Duke: Fix bug where player wasn't cracking knuckles after 777 idle tics while cl_syncinput was 1.
* Use opportunity to replace the literal constant of `777` with an enum.
2020-08-27 15:54:49 +10:00
Christoph Oelckers
36d676ca20 - renamed ESyncBits so that the replacement can take that name later. 2020-08-26 22:39:15 +02:00
Mitchell Richters
afb09456e0 - Duke: Migrate away from using totalclock and use new game-specific gameclock with underlying timer code in common.
* Build timer still requires initialisation due to multiple `timerSetCallback()` that still need to work.

# Conflicts:
#	source/core/menu/menu.cpp
#	source/games/duke/src/game.cpp
2020-08-25 19:47:31 +02:00
Christoph Oelckers
a0cc798c9c - cleaned up the sound system interface to have consistent naming and no aliases. 2020-07-25 09:32:54 +02:00
Christoph Oelckers
16efa87701 - started sorting variables in globals.h and removed player.h after cleaning it out. 2020-07-20 18:43:50 +02:00
Christoph Oelckers
3028b3f3fd - merged game.h into global.h and game.cpp into global.cpp.
Meaning that all global declarations are in one file now.
2020-07-20 18:43:50 +02:00
Christoph Oelckers
c3fb679992 - more header cleanup work, macros.h is gone. 2020-07-20 18:43:49 +02:00
Christoph Oelckers
f2380f8829 - constant cleanup. 2020-07-06 13:26:26 +02:00
Christoph Oelckers
d13b2dc130 - got rid of the dynamic tilemap.
Most tile access is in game specific code, the remaining code only accesses 51 tiles
2020-07-03 23:56:14 +02:00
Christoph Oelckers
6be1a9a9e4 - copyright 2020-06-28 09:03:31 +02:00
Christoph Oelckers
244826cfa0 processinput_r 2020-06-21 23:46:28 +02:00
Christoph Oelckers
fadbe61b9c -processinput_d 2020-06-21 23:46:28 +02:00
Christoph Oelckers
df41875aa6 - weapon code cleaned up 2020-06-21 23:46:28 +02:00