Commit graph

247 commits

Author SHA1 Message Date
Christoph Oelckers
fc11f537f7 - project cleanup
* moved all games into the 'games' folder.
* fixed project to include all sources and move them to the proper folders.
2021-01-10 20:31:32 +01:00
Mitchell Richters
afdfcba9c3 - SW: Leverage new spritetype methods within SW.
* We now also interpolate the player's sprite angle in the automap code so that `cl_syncinput 1` is smooth, just like e8c20f502b.
2021-01-06 06:22:37 +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
8cf2588bad - Replace fmulscale##() calls with MulScaleF() from common.
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
8003753989 - Duke/SW: Move each game's check of cl_slopetilting into calcviewpitch() backend function. 2021-01-02 00:34:44 +11:00
Mitchell Richters
6d12159006 - Duke/SW: Consolidate each game's slopetilting function into backend solution.
* Based on SW's implementation purely for its commentary, but includes a fix from Duke's.
* Allow disabling Duke's slopetilting via `cl_slopetilting` like SW.
2021-01-02 00:30:11 +11:00
Mitchell Richters
3ec41e776c - SW: Clean up old auto aim/mouse aim bits. 2021-01-01 22:37:40 +11:00
Christoph Oelckers
b3988165e2 - SW: fixed bad sector iterator in DriveCrush.
This was causing spurious crashes.
Fixes #218
2020-12-08 22:09:17 +01:00
Christoph Oelckers
06a069750f - addressed more type casting issues in SW.
This should cover everything with coordinates.
2020-12-01 19:01:38 +01:00
Christoph Oelckers
39b67b4086 - SW: removed some very dangerous type casting. 2020-12-01 18:30:21 +01:00
Christoph Oelckers
b52668ecdf - SW: added some simple allocation wrappers around common code sequences. 2020-12-01 16:53:29 +01:00
Christoph Oelckers
6dfe869614 - shorten the struct for puser to what actually gets used from it.
This is preparation for making USER more serialization friendly as it was copied to puser.
2020-12-01 16:22:32 +01:00
Christoph Oelckers
ae36ea88c3 - wrap all checks of cl_syncinput in an inline function. 2020-11-30 23:40:16 +01:00
Mitchell Richters
22f7fc93f4 - Exhumed/SW: Move code to trigger synchronised input for edge cases where its needed into gamecontrol. 2020-12-01 07:31:47 +11:00
Christoph Oelckers
3d0842d851 - SW: made sector object interpolation more serialization friendly.
This eliminates all the direct pointers to various game data and replaces it by encoded offsets.
2020-11-26 18:32:36 +01:00
Christoph Oelckers
bf4cc9c6af - migrated SW to the common interpolation system.
So far only the existing pieces - animations and sector objects still to do.
2020-11-26 18:32:36 +01:00
Mitchell Richters
00ce61959c - SW: Clean up some Q16.16 angle usage within DoPlayerTurnTurret(). 2020-11-26 17:30:45 +11:00
Mitchell Richters
80ff918b17 - gameinput.h: For PlayerAngle struct methods settarget(), properly set target as angle + delta between angle & target within method and not game-side. 2020-11-26 17:26:29 +11:00
Mitchell Richters
73df144f65 - SW: Fix ladder angle issues.
* Fixes #197.
2020-11-25 07:50:30 +11:00
Christoph Oelckers
35f3de64f7 - partial cleanup of SW's game.h
inlined several macros, removed some unused ones, replaced a few with one or two uses and simplified some functions to remove 90's optimizations that these days have no positive effect aside from complicating the code.
2020-11-23 08:39:20 +01:00
Mitchell Richters
3b3e926fd3 - gameinput.h: For PlayerAngle struct, add int settarget() overload and change one true call with a float to bvectangf(). 2020-11-22 21:18:11 +01:00
Mitchell Richters
ea4ad0548a - All Games: Make use of new addadjustment() overloads in PlayerAngle struct created in 25207e4f1818a5ed38648ce87673329cd75e20e4. 2020-11-22 21:18:11 +01:00
Mitchell Richters
f8cd6d2a37 - buildutils: Replace sintable[] use within SW's player.cpp with bsin()/bcos(). 2020-11-22 21:18:08 +01:00
Mitchell Richters
ade1a80515 - gameinput.cpp: Remove crouch bool from applylook() since we can now just rely in the actions bitfield that's already incoming as required and default scaleAdjust in the prototype to 1. 2020-11-07 18:25:06 +11:00
Mitchell Richters
6e3d414b3c - inputstate.cpp: Move checkCrouchToggle() from gameinput.ccp into ApplyGlobalInput() and use static bool for crouch toggling vs. game-side bool. 2020-11-07 18:16:16 +11:00
Mitchell Richters
a153ebab7e - SW: Migrate crouch toggling to backend solution implemented in 4ef0d20e0e. 2020-11-07 17:53:11 +11:00
Mitchell Richters
666fe71201 - SW: Repair issues with sector object sounds following a506b45369.
* Fixes #132
2020-10-18 21:23:41 +11:00
Christoph Oelckers
a8e7d1ef74 - the rest for SW. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
6eb6938bbe - another batch in SW. 2020-10-15 20:22:40 +02:00
Christoph Oelckers
727e2ceb29 - iterator variable cleanup. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
679c394b29 - the second third of SW. 2020-10-15 20:22:39 +02:00
Christoph Oelckers
a506b45369 - one third of SW's iterators. 2020-10-15 20:22:39 +02:00
Mitchell Richters
fb91fc49a3 - processMovement(): Add commentary around avel constants used within function and how they came to be. Also clean up some left-over code. 2020-10-15 20:12:34 +11:00
Mitchell Richters
c08851e4c0 - Blood/Duke/RR/SW: Drop resetinputhelpers(). 2020-10-12 14:42:43 +11:00
Mitchell Richters
894feb1c80 - SW: When beginning to operate a sector object, just forcibly set the angle in the ticker.
* Angle transition is not meant to be smooth or scaled to a target, it's just meant to get the player to the necessary angle.
* Fixes https://forum.zdoom.org/viewtopic.php?f=340&t=70191.
2020-10-12 13:15:19 +11:00
Christoph Oelckers
8e1c71b867 Merge branch 'InputContinuation' 2020-10-11 15:24:51 +02:00
Christoph Oelckers
67375cf79c - SW: renamed 3 duplicate constants 2020-10-11 14:30:42 +02:00
Christoph Oelckers
fe2e96d3a6 Merge branch 'master' into InputContinuation
# Conflicts:
#	source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +02:00
Christoph Oelckers
b06a847d9a Merge branch 'menu2'
# Conflicts:
#	source/exhumed/src/sound.cpp
2020-10-10 19:03:29 +02:00
Mitchell Richters
f35bec4a5d - Fix interpolation issues and do other minor fixes following shift to fixedhoriz and binangle.
* When interpolating on the initial setup, when binangle reached an overflow point when going lower than zero, the engine was spinning the player around clockwise to the new angle (2047, for instance).
* Interpolating after casting as uint64_t with a workflow similar to the original games, the issue went away.
* Cleaned up other interpolation functions to be of a consistent workflow.
* Scale keyboard input turning down to degree speeds.
* Uplift some remaining Q16.16 code in `applylook()` to full BAM precision.
* Move static calculations of aim and look speeds for `sethorizon()` back into function since GameTicRate isn't set right before calculation is done.
* Simplify the angle target setup back to a basic value like before.
* Repair SW interpolation issues of weapon sprite drawer when rotating left/right.
* Fix SW death horizon constant values following change of horizon center to 0.
2020-10-08 21:12:21 +11:00
Mitchell Richters
9bcdeae6cd - InputPacket: Change q16avel to avel, changing type from fixed_t to float. 2020-10-08 14:47:30 +11:00
Mitchell Richters
d758a0ae28 - SW: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 14:23:44 +11: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
6a30d6880e - InputPacket: Change q16horz to horz, changing type from fixed_t to float. 2020-10-07 18:22:07 +11:00
Mitchell Richters
6476430be6 - SW: Cut q16horiz/q16horizoff over to PlayerHorizon struct. 2020-10-07 18:08:57 +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
0e3604ac9e - SW: Remove q16horizbase and apply q16horizoff in draw code like Duke & Blood.
* Standardisation is needed here for upcoming horizon changes.
2020-10-07 13:33:16 +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
Mitchell Richters
478f20b845 - SW: Apply fix from c86af08a19 not to just when stopping operation of remote objects, but all objects.
* Fixes #105.
2020-10-06 16:23:54 +11:00