Mitchell Richters
d34070b8ae
- gameinput.h: Remove precise bool from horizsumfrac()
, look_anghalf()
and looking_arc()
added in a4895cb270
.
...
* It looks terrible to have low precision math versions of look_anghalf and looking_arc since we always interpolate `look_ang` now, so lets just not.
2021-04-20 21:12:17 +10:00
Christoph Oelckers
dc8b72b2ce
Merge branch 'master' into newrenderer2
...
# Conflicts:
# source/games/duke/src/actors.cpp
# source/games/duke/src/hudweapon_d.cpp
# source/games/duke/src/hudweapon_r.cpp
# source/games/duke/src/render.cpp
2021-04-15 19:34:03 +02: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
d5b14a8de3
- Duke: Remove some direct array accesses in lieu of player_struct
pointer.
2021-04-15 16:34:24 +10:00
Mitchell Richters
242f958c41
- Duke: Clean up some duplicated code in hudweapon_*.cpp files.
2021-04-15 15:49:36 +10:00
Mitchell Richters
a4895cb270
- All Games: Allow for HUD interpolation to be disabled.
...
* Requested by users, really don't know why...
* Interpolation values are guarded by the CVAR.
* For Blood, integer truncation is employed just like original game.
* For all games where more precise sine/cosine math has been utilised, no changes have been made.
2021-04-15 13:35:53 +10:00
Mitchell Richters
e76f63e2c0
- Consolidate all game interpolation code into inline functions.
2021-04-11 16:45:35 +10:00
Mitchell Richters
5124c0daec
- Amalgamate ksgn and sgn into Sgn in cmdlib.h, and remove pragmas.h.
2021-01-05 07:31:37 +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
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Christoph Oelckers
346921211e
- re-enabled the widescreen pinning code.
...
It is still off by default - the idea here is to provide a means for the user to switch it on in case a mod replaces the weapons with non-widescreen-friendly versions.
2020-11-29 14:05:53 +01: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
d60bc8be9f
- replaced all remaining uses of tilesiz[].y
2020-11-23 08:39:49 +01:00
Mitchell Richters
5172c43e71
- buildutils: Replace calcSinTableValue()
use within Duke with bsinf()
/bcosf()
.
2020-11-22 21:18:10 +01:00
Christoph Oelckers
0eb10f0313
- newowner and related code.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
d0db810ab0
- ud.camerasprite -> actor.
2020-11-04 20:40:08 +01:00
Christoph Oelckers
29b08b2115
- access_spritenum
2020-11-03 22:49:17 +01:00
Christoph Oelckers
b2497b346c
- use GetActor() wrapper in hud weapon code.
2020-11-03 07:06:30 +01: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
Christoph Oelckers
dcae0c4103
- fixed incomplete merging of WW2GI/Duke code for the pistol animation
2020-09-28 08:55:59 +02:00
Mitchell Richters
9c0667a7ce
- Duke: Don't display cracking knuckles while in 3rd person view.
2020-09-25 16:17:34 +10: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
Christoph Oelckers
2095e9e3c6
- code changes for last commit - they were not picked up automatically.
...
# Conflicts:
# source/build/src/defs.cpp
2020-09-16 19:13:05 +02:00
Christoph Oelckers
f15657cc6d
- fixed missing widescreen sprite for shrinker/grower and bad light level for the incinerator.
...
Fixes #380
2020-09-08 22:50:38 +02:00
Christoph Oelckers
bd183ad682
- fixed World Tour weapon display and property parsing, resulting in incorrect ammo count for the flamethrower.
...
Fixes #356
2020-09-07 00:45:11 +02: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
45a22eb3cd
- do proper interpolation of the snorkel in RR.
2020-08-31 19:06:53 +02:00
Mitchell Richters
c600295c93
- apply same fix from c63564eb7a
for returning interpolated value for the player's q16horiz - q16horizoff
if cl_syncinput
is true.
...
* Also changed `gethalflookang()` to camel case `getHalfLookAng()` for easier reading.
* Also broke a very long if statement down into smaller chunks for readability.
2020-08-03 17:06:28 +10:00
Mitchell Richters
c63564eb7a
- replace lookanghalf()
player_struct getter with inline that can accept cl_syncinput
as a bool for whether to return an interpolated calculation or not.
...
New HUD was being let down by using an uninterpolated `q16look_ang` regardless of whether `cl_syncinput` was true.
2020-08-03 16:27:14 +10:00
Mitchell Richters
531df48d38
- interpolate p->hard_landing
for Duke 3D.
2020-08-03 15:06:25 +10:00
Mitchell Richters
43ff42b330
- interpolate p->random_club_frame
for Duke 3D.
2020-08-03 15:06:25 +10:00
Mitchell Richters
038039eb3f
- interpolate p->kickback_pic
for Duke 3D.
2020-08-03 15:06:25 +10:00
Mitchell Richters
8cc4b5062a
Revert "- remove duplicate line.". In hindsight, I believe this was by design.
...
This reverts commit 6fd6926d8d
.
2020-08-03 15:06:25 +10:00
Mitchell Richters
5792a2389a
- consistency cleanup with a use of calcSinTableView()
use within hudweapon_d.cpp.
2020-08-03 11:07:55 +10:00
Mitchell Richters
70794df76c
- remove bitwise & operations on calls to calcSinTableValue()
since they're no longer necessary, and remove last use of sintable[]
from hudweapon_d.cpp.
2020-08-03 09:19:14 +10:00
Christoph Oelckers
8acc4101be
- simplified calcSinTableValue and inlined it.
...
There's no need for all this magic voodoo - the sin function already returns the proper values all by itself.
2020-08-02 22:03:22 +02:00
Christoph Oelckers
9606601554
- wraooed "q16look_ang / (2. * FRACUNIT)" in an inline function.
...
No need to write it out each time, this wpuld be a nightmare if it ever had to be refactored.
2020-08-02 21:45:57 +02:00
Mitchell Richters
0bcb37860a
- interpolate p->weapon_pos
for smooth switching of weapons.
2020-08-02 21:20:54 +02:00
Mitchell Richters
85dcffc442
- use new fmulscale16()
static inline for high precision interpolation in place of manual code.
2020-08-02 21:20:54 +02:00
Mitchell Richters
9c8593018b
- define new function calcSinTableValue()
to calculate an equivalent sintable[]
entry.
...
* Returns a true double result.
* Also supports fractional input for fractional input. That is, if `sintable[1]` = 50 and `sintable[2]` = 100, `calcSinTableValue(1.5)` = 75.
* Increased precision of `BANG2RAD` define to use double and not float.
* As such, revert addition of `sintablef[]`.
2020-08-02 21:20:54 +02:00
Mitchell Richters
6fd6926d8d
- remove duplicate line.
2020-08-02 21:20:53 +02:00
Mitchell Richters
11b3f5a78a
- increase precision of local variable x
for displaypistol()
.
2020-08-02 21:20:53 +02:00
Mitchell Richters
184465460e
- make full use of sintablef[2048]
.
2020-08-02 21:20:53 +02:00
Mitchell Richters
977ddc5aa8
- make full use of Q16.16 resolution for player's angle and horizon values.
2020-08-02 21:20:52 +02:00
Mitchell Richters
3a4a224877
- interpolate p->weapon_sway
.
2020-08-02 21:20:52 +02:00
Mitchell Richters
4499e05b06
- pass smoothratio
through to displayweapon()
.
2020-08-02 21:20:52 +02:00
Christoph Oelckers
63f4d82aeb
- removed the 8 pixel offset for the Scuba Gear in display modes with reduced viewport size.
...
I have no idea why this was originally done, it makes no sense.
Fixes #50
2020-07-27 18:59:05 +02:00
Christoph Oelckers
b120bade95
- fixed scuba gear display.
...
Fixes #37 .
2020-07-26 18:35:47 +02:00
Christoph Oelckers
8643459cbe
- re-added EDuke32's last_quick_kick to remove flicker during the animation. Fixes #7 .
2020-07-26 10:18:55 +02:00
Christoph Oelckers
2ea9811e0a
- fixed offsetting for flipped 2D sprites and reverted the offset change for the trip bomb.
2020-07-26 08:08:15 +02:00