Christoph Oelckers
cf22a70d82
- fixed all warnings in Duke.
2021-05-12 21:50:01 +02:00
Christoph Oelckers
8003ab6fa3
Merge branch 'scriptable_cutscenes' into newrenderer
2021-05-02 22:37:46 +02:00
Christoph Oelckers
c9791bc148
- renamed PlayerHorizon function to deconflict with the same-named struct
2021-05-02 21:56:45 +02:00
Christoph Oelckers
bb9d492db6
- migrated RRRA as well.
2021-05-02 14:01:10 +02:00
Christoph Oelckers
6f4e380728
- migrated RR's cutscene definitions.
...
Also turned several level-specific init options into map flags or map parameters.
2021-05-02 13:12:24 +02:00
Christoph Oelckers
f732d4ec64
- added MAPINFO parser, based on GZDoom's.
...
This isn't hooked up yet, but all necessary structures and fields have been added so that selected pieces can be tested.
2021-05-01 22:52:28 +02:00
Mitchell Richters
93edeac791
- Clean-up of input functions.
...
* Remove unused `getincanglef()`.
* Remove unused `getincangleq16()`.
* In `PlayerHorizon` struct, clamp value when setting target in `__settarget()`, not each public `settarget()` overload.
* Rename `PlayerAngle` method `applylook()` to `applyinput()`.
* Rename `PlayerHorizon` method `sethorizon()` to `applyinput()`.
* In `PlayerHorizon::applylook()`, slightly clean return to centre code so it doesn't do math if already at 0.
* In `PlayerAngle::applylook()`, slightly clean rotscrnang/look_ang code so it doesn't do math if already at 0 and reposition where mouse input is applied so that if input is applied, the player never enters a spin.
* In `Duke3d::player_struct::apply_seasick()`, use `buildfang()` method instead of scaling float to BAM within function.
2021-04-21 20:41:04 +10:00
Mitchell Richters
de06030ea0
- gameinput.cpp: Make sethorizon()
, applylook()
and calcviewpitch()
class functions of PlayerHorizon
and PlayerAngle
where appropriate.
2021-04-19 20:50:10 +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
e959226914
- Fix RRRA bike/boat angle adjustments following changes in f343bd8d5e
.
...
* Because we're wrapping a negative number around to be unsigned, we need to do that after we've done our bit-shift operations.
2021-04-11 18:34:07 +10:00
Mitchell Richters
f254eeb465
- binaryangle.h: Remove lookangle
class and replace use with binangle
.
...
* Added in fca846272e
to deal with signed adjustments but its just not needed.
* Made better use of `binangle`/`fixedhoriz` class getters and setters than before as well.
2021-04-11 15:45:53 +10:00
Mitchell Richters
9c01bde44e
- gameinput.cpp: Block player input within sethorizon()
and applylook()
if target for each has been set by the ticker.
...
* Stops players having the ability to provide input and fight the system trying to set an input.
2021-04-02 22:47:19 +11: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
c267c214c2
- Duke: Repair jumping zvel issue originating from 5e45f988e3
for Duke and 1c5c90d00f
for RR.
...
* Thanks for backtracing, Graf :)
* Fixes #259 .
2021-01-29 20:00:15 +11:00
Christoph Oelckers
1ab11a02e2
- RR: fixed player input for diving.
...
Fixes #260
2021-01-24 08:59:08 +01: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
f036e94cca
- Duke (RR): Also fix location of p->apply_seasick()
in the ticker as well.
2021-01-03 20:06:28 +11:00
Mitchell Richters
f6b9c3cba7
- Duke (RR): Fix braking on vehicles which never got picked up.
2021-01-03 19:25:49 +11:00
Mitchell Richters
9833c94114
- Duke: Pass the player_struct through to FinalizeInput() in line with other functions.
2021-01-02 11:04:03 +11:00
Mitchell Richters
3a801cbf5c
- calcviewpitch(): Set scaleAdjust
to default to 1 in prototype like other functions in gameinput.cpp.
2021-01-02 09:32:19 +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
Christoph Oelckers
b0bf51ec5c
- Duke/RR: Selecting the alternative weapon must set the proper bits in 'subweapon'.
...
Otherwise the weapon cycling breaks.
Fixes #182
2020-12-01 21:07:38 +01:00
Christoph Oelckers
ae36ea88c3
- wrap all checks of cl_syncinput in an inline function.
2020-11-30 23:40:16 +01:00
Christoph Oelckers
7ad0750839
- grouped all of Duke's constant per-session state in a single struct.
...
Mainly done so later the script export can be done more easily.
This also renames a few of the affected variables for clarity.
2020-11-29 13:54:58 +01:00
Christoph Oelckers
48b16d5233
- cleanup on player CVAR use.
2020-11-29 13:22:04 +01:00
Christoph Oelckers
d60bc8be9f
- replaced all remaining uses of tilesiz[].y
2020-11-23 08:39:49 +01:00
Mitchell Richters
ea2e4051f1
- Duke (RR): Fix incorrect inline call for angAdjustment
following changes in ea4ad0548a
.
2020-11-23 10:44:38 +11: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
1c5c90d00f
- buildutils: Replace sintable[]
use within Duke's player_r.cpp with bsin()
/bcos()
.
2020-11-22 21:18:04 +01:00
Christoph Oelckers
b97f12a2eb
- did some global search & replace to reduce the number of accesses to the tilesiz wrapper.
2020-11-20 08:18:26 +01:00
Christoph Oelckers
f9a776e71c
- iterate linearly over sector effectors.
...
Apparently they aren't all properly linked into the required statnums.
Fixes #179
2020-11-12 19:12:58 +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
6f5f66ad35
- Duke/RR: Partially revert c9d875327850e839e3ad1f367ede15497d44fda3 by truncating p->MotoSpeed
to integer when calculating xvel/yvel to preserve original vehicle feel.
2020-11-07 09:56:57 +11:00
Mitchell Richters
567738f3ad
- Duke/RR: Tidy formatting of onMotorcycle()
, onBoat()
, onMotorcycleMove()
and onBoatMove()
.
2020-11-07 09:56:57 +11:00
Mitchell Richters
1545610501
- Duke/RR: Convert remaining vehicle function local ints to bools where appropriate.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c223a50b29
- Duke/RR: Clean up vehicle turn left/right bools used in ticker functions.
2020-11-07 09:56:57 +11:00
Mitchell Richters
ad10ea4cb5
- Duke/RR: Initial implementation of scaled p->MotoSpeed
controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
578ded1db3
- Duke/RR: Promote p->MotoSpeed
from short
to double
in prep for applying scaled controller input.
2020-11-07 09:56:57 +11:00
Mitchell Richters
c46ad10bb1
- Duke/RR: Clean up some disassembly variable names in vehicle so it's easier to understand what's going on.
2020-11-07 09:56:57 +11:00
Christoph Oelckers
d5ff87fa4f
- RRRA: fixed vehicle collision with psychedelic cactuses.
...
This did not fully match the original source which had a critical difference here between RR and RRRA.
2020-11-05 14:31:55 +01:00
Christoph Oelckers
7a95c1661e
- wrap actor index storage in sector in the script index API.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
0eb10f0313
- newowner and related code.
2020-11-04 20:40:25 +01:00
Christoph Oelckers
ac5ea2f1c9
- 3 more wrappers gone.
2020-11-04 20:40:07 +01:00
Christoph Oelckers
bb23d9131e
- player.i, part 4.
2020-11-04 20:39:43 +01:00
Christoph Oelckers
7c6ea9cff7
- activatebysector.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
10d4f92232
- use a dedicated variable to store the vehicle ammo for RRRA's bike and boat.
...
owner should be reserved for pointers.
2020-11-04 19:55:17 +01:00
Christoph Oelckers
12ef8c4543
This completes player_r.cpp
2020-11-04 19:55:15 +01:00
Christoph Oelckers
bc6ae872ae
- cleaned up the checkhitswitch interface to receive sprites as pointers.
2020-11-04 19:55:15 +01:00
Christoph Oelckers
87e8801531
- handle the clipmove result in processinput.
2020-11-04 19:55:14 +01:00
Christoph Oelckers
419cf9af5e
- processinput part 1.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
ef2c773e02
- RR processweapon pass 1
2020-11-04 19:55:13 +01:00
Christoph Oelckers
d4dabee52d
- OnMotorcycle/BoatHit.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
454b2315d4
- use actors instead of indices for sound calls.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
8d55138db0
- checkweapons_r.
2020-11-04 19:55:13 +01:00
Christoph Oelckers
635b53f78f
- RR-movement + dummyplayersprite
2020-11-04 19:55:13 +01:00
Christoph Oelckers
29b08b2115
- access_spritenum
2020-11-03 22:49:17 +01:00
Christoph Oelckers
16089e56f0
- the rest of shoot_r.
2020-11-03 22:41:24 +01:00
Christoph Oelckers
47f77a97e4
- RR shootrpg and shootwhip.
2020-11-03 22:41:24 +01:00
Christoph Oelckers
aa6dd72688
- RR shootstuff
2020-11-03 22:41:23 +01:00
Christoph Oelckers
32a7c2349e
- shoot interface transitioned/operateweapon mostly done.
2020-11-03 22:01:58 +01:00
Christoph Oelckers
513744aa56
- this was nonsense. atwith is a tile number, not a sprite index.
2020-11-03 21:51:17 +01:00
Christoph Oelckers
7e29be7569
- switched checkhitwall interface to actors.
2020-11-03 21:49:57 +01:00
Christoph Oelckers
4258c27248
- switched the checkhitsprite interface to actors.
2020-11-03 21:43:50 +01:00
Christoph Oelckers
1ab13688a7
- RR shootweapon
2020-11-03 21:43:49 +01:00
Christoph Oelckers
51705e5a61
- RR shootmelee.
2020-11-03 21:43:49 +01:00
Christoph Oelckers
17737eea85
- wrapped hitscan in a variant returning an actor.
2020-11-03 20:43:38 +01:00
Christoph Oelckers
768487584e
- aim and all calling instances.
...
This also takes care of RR's chicken arrow storing an actor reference in lotag.
2020-11-03 20:42:03 +01:00
Christoph Oelckers
3fdeedcae7
- player.cpp is free of array references, except one that's unavoidable for now.
2020-11-03 19:25:07 +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
2c573a720b
- starting at the bottom of player_r.cpp.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
33f730baf3
- replaced "sprite[p->i]" globally.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
b5309a6410
- some quick'n easy replacements.
2020-11-03 19:21:42 +01:00
Christoph Oelckers
3aaf2e80a9
- moveweapons.
2020-11-01 14:46:05 +01:00
Christoph Oelckers
861342a278
- guts_d and guts_r.
2020-11-01 11:32:34 +01:00
Christoph Oelckers
4c9655b110
- check_fta_sounds.
2020-11-01 10:53:45 +01:00
Christoph Oelckers
31e5023004
- dodge, furthestcanseepoint, furthestangle.
2020-11-01 10:41:25 +01:00
Christoph Oelckers
34e39dd221
- pass spawner as an actor pointer to 'lotsofstuff'.
...
Allows doing this without using sprite indices.
2020-10-24 09:36:35 +02:00
Christoph Oelckers
9cdaaff42b
- migrated EGS and deletesprite to new actor interface.
...
Inline wrappers for old code exist.
The backupplayer inline was moved into player.cpp because that's the only place it gets used.
2020-10-21 19:14:41 +02:00
Christoph Oelckers
d7604a3160
- made on_crane a pointer as well.
2020-10-21 16:31:17 +02:00
Christoph Oelckers
05c095e448
- fixed parameter ordering for WW2GI's change weapon event call.
...
This happens when variables are ambiguously named... :?
2020-10-21 07:31:21 +02:00
Christoph Oelckers
99e3eeb19e
- split up shoot_r as well and consolidated both blood splat functions.
2020-10-21 01:03:38 +02:00
Mitchell Richters
b1536d8a0b
- Duke (RRRA): Fix potential issue originating from 1bc51a7367
where horizon might have needed adjustment to 0 but wouldn't have done so.
...
* Previously used to determine whether to apply a horizon adjustment on whether local variable `horiz` was 0 or not (since baseline horizon was 100).
* For no particular reason, initalise `horiz` as FRACUNIT and process if it is not equal to one.
2020-10-15 20:33:28 +11:00
Christoph Oelckers
3d36381752
- converted all stat iterators outside sector*.cpp.
2020-10-15 01:34:28 +02:00
Christoph Oelckers
760a557f73
- converted the remaining sector iterators in Duke.
2020-10-15 01:34:27 +02:00
Christoph Oelckers
758fab1804
- replaced several sector iterators in Duke code.
2020-10-15 01:34:27 +02:00
Christoph Oelckers
13093aef56
- a few quick ones, mostly simple search & replace.
2020-10-15 01:34:26 +02:00
Mitchell Richters
e4af4f28ce
- Duke (RR): Avoid integer truncation when dividing p->VBumpNow
.
2020-10-15 10:27:08 +11:00
Mitchell Richters
1bc51a7367
- Duke (RR): Repair issues with horizon following changes in 09a05f354c
and partially address vehicle turning speed in processVehicleInput()
.
...
* Issues with vehicle input handling with `cl_syncinput 1` still remain. Will address after work.
* Partially addresses #128 .
2020-10-15 10:20:52 +11:00
Mitchell Richters
c08851e4c0
- Blood/Duke/RR/SW: Drop resetinputhelpers()
.
2020-10-12 14:42:43 +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
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