Commit graph

106 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
8cf2588bad - Replace fmulscale##() calls with MulScaleF() from common.
* Regex for reference: fmulscale([0-9]+)\((.+)(\)+)
2021-01-05 07:31:13 +11:00
Mitchell Richters
b9e1cbb5de - gamecontrol.h: Move getHalfLookAng() into PlayerAngle struct as look_anghalf().
* Uses internal struct variables at full BAM precision.
2020-11-26 16:37:37 +11:00
Christoph Oelckers
169d708547 - removed all remaining uses of tilesiz. 2020-11-23 08:55:02 +01:00
Christoph Oelckers
d60bc8be9f - replaced all remaining uses of tilesiz[].y 2020-11-23 08:39:49 +01:00
Mitchell Richters
a2ac8cccc1 - buildutils: Replace calcSinTableValue() use within SW with bsinf()/bcosf(). 2020-11-22 21:18:10 +01:00
Christoph Oelckers
fe2e96d3a6 Merge branch 'master' into InputContinuation
# Conflicts:
#	source/games/duke/src/duke3d.h
2020-10-10 21:39:27 +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
d758a0ae28 - SW: Cut q16ang/q16look_ang/q16rotscrnang over to PlayerAngle struct. 2020-10-08 14:23:44 +11:00
Christoph Oelckers
82612a1330 - it compiles again (with lots of code commented out.) 2020-10-04 20:11:02 +02:00
Mitchell Richters
7bf1cacc7f - Blood/Duke/RR/SW: Unify the player's angle function.
* For Blood/SW, exposes `SB_LOOK_LEFT`/`SB_LOOK_RIGHT` to games, hooking up `q16look_ang` and `q16rotscrnang` within.
* For SW, use Duke & Blood's return to center function and remove `PF_TURN_180` bit.
* For RR, replace a few misused bits with some bools inside of `player_struct`.
* Since bulk of functionality is sourced from Duke (30Hz), apply proper scaling so SW speed matches (40Hz).
2020-09-21 17:12:26 +10:00
Mitchell Richters
4370686c81 - SW: Allow disabling melee weapon blurring. 2020-09-16 19:18:08 +02:00
Christoph Oelckers
2ffb6a3580 - finally got rid of SWBOOL. 2020-09-09 20:32:24 +02:00
Christoph Oelckers
e044582aef - fixed all issues with SWBOOL as pointed out by a type-safe wrapper class. 2020-09-09 20:28:05 +02:00
Christoph Oelckers
1a647e8104 - globally search and replaced TRUE and FALSE in SW.
There were a handful of warnings afterward which were also addressed.
The SWBOOL type has not been handled yet.
2020-09-09 19:52:52 +02:00
Mitchell Richters
b72a3326d0 Merge branch 'back_to_basics2' into InputStuffs
# Conflicts:
#	source/core/d_net.cpp
2020-09-09 06:56:27 +10:00
Christoph Oelckers
ec1c42b04a - got rid of common.h
All still relevant content was moved to places closer to its use.
2020-09-08 18:39:47 +02:00
Mitchell Richters
1e3199413c - SW: Rename all Tank-related function code to Vehicle. 2020-09-08 21:54:48 +10:00
Mitchell Richters
8625ac573d - SW: Comment out all boat code, it's actually not used within the game at all and was very confusing... 2020-09-08 21:40:20 +10:00
Christoph Oelckers
3e5e956b72 - run most cheats through the network.
The remaining excpetions are the "give" CCMD and any level change action.
Unfortunately the implementation of most cheats is not multiplayer safe so right now it'd only be useful for demo recording (assuming that worked to begin with... ;))
2020-09-03 01:32:51 +02:00
Christoph Oelckers
141b5c00cd - cleanup. 2020-09-02 20:58:37 +02:00
Mitchell Richters
3f886ad818 - SW: Fix change in 1354d52c05 that accidentally caused minor loss of precision in the panel code. 2020-09-01 23:35:00 +10:00
Mitchell Richters
1354d52c05 - Major cleanup of Q16.16 utilisation within games and engine.
* Remove fix16.h/cpp and utilise library from m_fixed.h.
* Extend m_fixed.h with two inline functions for int to/from float operations.
* Replace fix16_floor operations with those from xs_Float.h
* Replace multiple Q16.16 conversions from 0 to just be 0.
* Replaced all found in-game bit-shifts and multiplications/divisions with inline functions from m_fixed.h
* Replaced many casts of FRACUNIT as double in SW's panel.cpp as it is converted to double by way of type promotion.
* Fixed missed precision fixes in SW's panel.cpp where some types weren't declared correctly.
* Replaced 100+ `Cos()/Sin() >> 16` operations for Blood with inline functions `CosScale16()/SinScale16()`.
2020-09-01 23:00:47 +10:00
Christoph Oelckers
2f05a93547 Merge branch 'Packet' into back_to_basics2
# Conflicts:
#	source/core/gamestruct.h
#	source/games/duke/src/gameloop.cpp
#	source/games/duke/src/player_d.cpp
2020-08-31 00:09:56 +02:00
Mitchell Richters
10962e2193 - SW: Implement cl_showmagamt for the game's shotgun and uzi.
* SW does not have any special characters in its BigFont, so currently there's no divider between ammunition amounts. This is to be discussed on the PR.
2020-08-30 20:24:37 +02:00
Christoph Oelckers
59a964bb83 - same for SW 2020-08-30 20:24:36 +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
b9e0f493b2 - transitioned the 5 primary action keys: Open, Jump, Crouch and Fire/AltFire. 2020-08-28 23:25:08 +02:00
Christoph Oelckers
d62d2eaec7 - processed all remaining local input CCMDs and removed some bits only needed for multiplayer.
These MP bits should be reimplemented as network commands later, they only take up valuable space in the bit field.
2020-08-28 00:03:35 +02:00
Christoph Oelckers
c7e667a17a - transition weapon selection in SW.
Thanks to the macro insanity for trivial operations in this code base this turned out to be a lot more troublesome than Duke...
2020-08-27 00:06:59 +02:00
Mitchell Richters
4fcec5f6d3 - SW: Alt implementation for preparing a nuke.
* Given the original code in `pNukeAction()` (poorly named), the intent appeared to be that the weapon should go off-screen for preparation, returning once weapon initialised.
* Commit restores that behaviour behind a CVAR.

# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
2020-08-26 17:00:19 +02:00
Mitchell Richters
a9f556c1bd - SW: Restore random element to player's weapon left/right bobbing behind a CVAR.
# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
2020-08-26 16:45:42 +02:00
Mitchell Richters
50793184ee - SW: Remove random element from player's weapon left/right bobbing causing bob value to be between 24-48 and lock to 36. 2020-08-26 16:45:42 +02:00
Mitchell Richters
386661f1ba - SW: Migrate to GZDoom time code like Duke. 2020-08-25 19:51:32 +02:00
Christoph Oelckers
debb4b17b6 - transitioned SW's automap to the global variables
Also copied the automap label output to the status bar for proper ordering.
2020-08-24 19:36:17 +02:00
Mitchell Richters
cc15de3ed9 - SW: Comment out code block causing interpolation issues when initialising a nuke.
* If there was a `pNukePresent()` function, that's where the commented out code belongs.
* I believe the rocket switching type was simplified during development and this is just an omission that's now obvious with interpolation. Only just, but you can notice this in an uninterpolated state while bobbing.
* Fixes #212.
2020-08-20 08:52:22 +10:00
Christoph Oelckers
cbe4618a91 - do not play the random sword selection sounds on a map's very first tic.
This tends to interfere with map specific voice lines.
Fixes #214
2020-08-19 19:07:06 +02:00
Mitchell Richters
042caf1b21 - SW: Implement cl_weaponsway for game. 2020-08-19 15:35:04 +10:00
Mitchell Richters
8d101a4a57 - SW: Properly fix the Uzi when reloading. 2020-08-18 22:48:58 +10:00
Mitchell Richters
471355dc2b - SW: Fix some typos in pUziReload(), fix some interpolation issues in pUziClip() and fix sequence of events in InitWeaponUzi2(). 2020-08-18 21:40:48 +10:00
Mitchell Richters
a29d7bd3cd - SW: Change pSpawnSprite() x/y coordinates from int to double to preserve precision for some calls. 2020-08-18 21:39:20 +10:00
Mitchell Richters
7af5d26feb - SW: Fix the Uzi's reload interpolation issues. 2020-08-18 20:58:58 +10:00
Mitchell Richters
78e0e94f58 - SW: Fix interpolation issues with sword, fists and heart. 2020-08-18 20:49:12 +10:00
Mitchell Richters
5cc30ad7c6 - SW: Increase precision of x/y coordinates where possible. 2020-08-18 18:26:04 +10:00
Mitchell Richters
d79c61d559 - SW: Interpolate between ox/x and oy/y coordinates in pDisplaySprites(). 2020-08-18 18:26:02 +10:00
Mitchell Richters
df6f27530e - SW: Define ox and oy in PANEL_SPRITEstruct and back up panel sprite x/y coordinates where appropriate. 2020-08-18 18:26:00 +10:00
Mitchell Richters
e8faca52a2 - SW: Prepare draw and panel code for interpolation of weapon's x/y coordinates. 2020-08-18 18:25:56 +10:00
Christoph Oelckers
baf1166319 - trying to bring order to game.cpp
Some reshuffling, plus moving the automap drawer to its own file.
2020-08-16 18:18:56 +02:00
Christoph Oelckers
78d3afb0bf - cleaning out more garbage. 2020-08-16 17:09:59 +02:00
Christoph Oelckers
ab7774c6d7 - thinning out some garbage. 2020-08-16 16:57:42 +02:00