Mitchell Richters
f9b9345e01
- Exhumed: Tidy up a long ternary in updatePlayerAction()
.
2023-04-21 21:13:17 +10:00
Mitchell Richters
258ab0db89
- Exhumed: Initial setup of view rolling effects.
...
* `cl_exviewtilting 1` enables a console-like view rolling upon yaw input.
* `cl_exviewtilting 2` enables a Quake-like view rolling upon strafe input.
2023-04-21 21:13:17 +10:00
Mitchell Richters
83a371e23d
- Exhumed: Remove Player::nPlayerD
, since we have the player actor's opos.
2023-04-21 21:13:16 +10:00
Mitchell Richters
29bf5e4cce
- Exhumed: Move updatePlayerTarget()
call back to main ticker loop.
...
* While it's cleaner in the AIPlayer ticker, AIRa requires its target set (which is done in this func also) and I don't know whether AIPlayer is ticked before AIRa is.
2023-04-21 21:13:16 +10:00
Mitchell Richters
28893663a5
- Exhumed: Reduce length of stack arrays in addSeq()
.
2023-04-21 21:13:16 +10:00
Mitchell Richters
4c49b91635
- Exhumed: Incorporate player weapon bobbing into pilot light angle.
2023-04-21 21:13:16 +10:00
Mitchell Richters
a28ca29493
- Exhumed: Repair pilot light angle that's been broken for some time.
...
* Interpolate it as well 🙂 .
2023-04-21 21:13:15 +10:00
Mitchell Richters
dc857aec3d
- Exhumed: Tidy up remainder of DrawWeapons()
.
2023-04-21 21:13:15 +10:00
Mitchell Richters
d309406473
- Exhumed: Rename sequence texture getters to separate frame/chunks.
...
* This will make it easier to compare against the source if there's a mistake, etc.
2023-04-21 21:13:15 +10:00
Mitchell Richters
1162954b03
- Exhumed: Move AISpider's null chunk texture check into the getter.
...
* It's needed for the rat as well...
2023-04-21 21:13:15 +10:00
Mitchell Richters
408c71513b
- Exhumed: Manually review all nAction
changes and ensure nFrame
is reset also.
2023-04-21 21:13:14 +10:00
Mitchell Richters
ba8bdf347e
- Exhumed: Repair OOB seq access with Anubis.
...
* Everytime `nAction` changes, `nFrame` must be reset as well.
* One `AnubisSeq[]` index has an `nSeqId` of `-1`, this must be handled.
2023-04-21 21:13:14 +10:00
Mitchell Richters
27b9b0d2f8
- Exhumed: Reduce repeated hashtable lookups when building chunks.
2023-04-21 21:13:14 +10:00
Mitchell Richters
04eb0fe926
- Exhumed: Tidy up a few remaining globals in the sequence system.
2023-04-21 21:13:14 +10:00
Mitchell Richters
4a37453765
- Exhumed: Convert sequence system to FTextureIDs.
2023-04-21 21:13:13 +10:00
Mitchell Richters
fcfee9addc
- Exhumed: Convert remainder of statusbar code and delete old system.
2023-04-21 21:13:13 +10:00
Mitchell Richters
7ca73aa562
- Exhumed: Initial setup of new statusbar sequence exports, starting with DrawStatusSequence()
.
2023-04-21 21:13:12 +10:00
Mitchell Richters
95e84ba1f8
- Exhumed: Make playFrameSound()
a method of SeqFrame
.
2023-04-21 21:13:12 +10:00
Mitchell Richters
32cc320195
- Exhumed: Refactor new sequence setup to not use naked TArray of frames.
...
* Also gives access to the previously discarded sequence flags that are currently not in any kind of use.
2023-04-21 21:13:12 +10:00
Mitchell Richters
4b223ab26d
- Exhumed: Tidy up DExhumedActor
variables for clarity.
2023-04-21 21:13:11 +10:00
Mitchell Richters
5efc14411a
- Exhumed: Use actor variables for sequences, not player ones.
2023-04-21 21:11:55 +10:00
Mitchell Richters
5c0b6858b1
- Exhumed: Remove seq_GetSeqPicnum()
.
2023-04-21 21:11:55 +10:00
Mitchell Richters
b4502626fa
- Exhumed: Tidy up some picnum accesses.
2023-04-21 21:11:55 +10:00
Mitchell Richters
d7161a7368
- Exhumed: Convert the weapon code.
2023-04-21 21:11:54 +10:00
Mitchell Richters
33bfe4601f
- Exhumed: Convert seq_DrawPilotLightSeq()
.
2023-04-21 21:11:54 +10:00
Mitchell Richters
4428ea5612
- Exhumed: Fix null chunk access for spider.
2023-04-21 21:11:54 +10:00
Mitchell Richters
d8441f712e
- Exhumed: Converted out most remaining files.
2023-04-21 21:11:54 +10:00
Mitchell Richters
34e984d836
- Exhumed: Convert out bullet system to new backend hashtable.
2023-04-21 21:11:54 +10:00
Mitchell Richters
6f242b901d
- Exhumed: Convert out anim system to new backend hashtable.
2023-04-21 21:11:53 +10:00
Mitchell Richters
f404708f51
- Exhumed: Initial conversion of seq_PlotSequence()
to new backend hashtable.
2023-04-21 21:11:52 +10:00
Mitchell Richters
4d1466217b
- Exhumed: Remove unused/unneeded union from DExhumedActor
.
2023-04-21 21:10:47 +10:00
Mitchell Richters
80125e11f3
- Exhumed: Separate out seq variables within DExhumedActor
.
2023-04-21 21:10:45 +10:00
Mitchell Richters
57ffb0e251
- Exhumed: Tidy up internals of seq_PlotSequence()
.
...
* Renames disassembly variables.
* Removes abusive reuse of arg variables.
2023-04-17 08:52:54 +10:00
Mitchell Richters
27c87b247c
- Exhumed: Rename actionSeq
members for clarity.
2023-04-17 08:52:54 +10:00
Mitchell Richters
310f615c8c
- Exhumed: Initial setup of new sequence loader.
...
* Untested in-game but looks good in the debugger.
2023-04-17 08:52:54 +10:00
Mitchell Richters
8a0d09ce8b
- Exhumed: Wrap all access to FrameSound[]
array and make static.
2023-04-17 08:52:54 +10:00
Mitchell Richters
86c559ff1c
- Exhumed: Wrap all access to ChunkFlag[]
array and make static.
2023-04-17 08:52:54 +10:00
Mitchell Richters
01148a8c29
- Exhumed: Wrap all access to ChunkPict[]
array and make static.
2023-04-17 08:52:54 +10:00
Mitchell Richters
78489dbc78
- Exhumed: Wrap all access to ChunkXpos[]
and ChunkYpos[]
arrays and make static.
2023-04-17 08:52:53 +10:00
Mitchell Richters
924ac25df1
- Exhumed: Wrap all access to FrameSize[]
array and make static.
2023-04-17 08:52:53 +10:00
Mitchell Richters
93fe699b78
- Exhumed: Wrap all access to FrameFlag[]
array and make static.
2023-04-17 08:52:53 +10:00
Mitchell Richters
3e38d01e4b
- Exhumed: Wrap all access to FrameBase[]
array and make static.
2023-04-17 08:52:53 +10:00
Mitchell Richters
fbddddcccc
- Exhumed: Mark unused array SeqFlag[]
as static and annotate it.
2023-04-17 08:52:53 +10:00
Mitchell Richters
e9c9f070eb
- Exhumed: Wrap all access to SeqStatic[]
array and make static.
2023-04-17 08:52:52 +10:00
Mitchell Richters
8df52e1265
- Exhumed: Wrap all access to SeqBase[]
array and make static.
2023-04-17 08:52:52 +10:00
Mitchell Richters
53b7235adf
- Exhumed: Wrap all access to SeqOffsets[]
array and make static.
2023-04-17 08:52:52 +10:00
Mitchell Richters
4cc3664287
- Exhumed: Minor tidy-up for seq_ReadSequence()
prior to start.
2023-04-17 08:52:52 +10:00
Christoph Oelckers
07102fbd39
- fixed missing CANNONBALLS texture alias.
2023-04-16 21:47:06 +02:00
Christoph Oelckers
608b4e8e0f
- initialize the new temporary actor properties to something useful.
2023-04-16 17:35:23 +02:00
Christoph Oelckers
5da28bf5ad
- added new CHANF_SINGULAR flag plus a handler for CHANF_LOCAL in Duke.
2023-04-16 17:35:22 +02:00
Christoph Oelckers
a3da3a4c43
- added a large bunch of script exports.
2023-04-16 17:35:15 +02:00
Christoph Oelckers
5f68291f69
- added skeleton definitions for all new Nuclear Winter items and their base tiles.
2023-04-16 16:53:53 +02:00
Christoph Oelckers
ea96c66a93
- made some annotations in concmd_shoot how to deal with RRRA's merged projectiles.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
712ed44e94
- use names instead of strings with FindActor.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
cb8137c32b
- consolidated shoot_d and shoot_r.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
ef412c20cc
- scriptified shootrpg.
...
Due to its ugly special cases this function is most likely not modding-safe.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
3d09be118a
- scriptified the freezeblast shooter.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
e97fc54179
- scriptified shootstuff.
2023-04-16 16:53:52 +02:00
Christoph Oelckers
9085157130
- scriptified shootwhip.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
afe7086189
- reimplemented WW2GI's hitscan related events in ZScript.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
3af08ecbac
- scriptified and consolidated the hitscan attacks.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
1f5cd93564
- wall flag interface cleanup.
...
With wall textures now available the workarounds could be removed.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
041d5214a4
- two new flags for the hitscan attack.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
0643ab22c0
- scriptified the melee attack.
2023-04-16 16:53:51 +02:00
Christoph Oelckers
1d887755a5
- scriptified shootfireball.
2023-04-16 16:53:50 +02:00
Christoph Oelckers
76b9314f63
- scriptified shootMortar.
2023-04-16 16:53:50 +02:00
Christoph Oelckers
48f7690756
- scriptified tripbomb 'shooting'.
2023-04-16 16:53:50 +02:00
Christoph Oelckers
1462cb5e9d
- refactored some of WW2GI's gamewar stuff so that it is accessible to ZScript as well.
...
The features here are useful, the way they were handled not so much. What is there now can also be set from proper definition files instead of CON hacks.
2023-04-16 16:53:50 +02:00
Christoph Oelckers
1597cf5400
- exported the grower's shoot function and moved stuff to a separate file.
2023-04-16 11:49:47 +02:00
Christoph Oelckers
71a005fda6
- added a few 'const'.
2023-04-16 11:47:56 +02:00
Christoph Oelckers
77d14ec721
- scriptified shootshrinker and moved all shrinker code to a separate file.
2023-04-16 11:47:56 +02:00
Mitchell Richters
e82981929d
- Exhumed: Make overridesect
global local to movespritez()
.
...
* Fixes #933 .
2023-04-16 19:30:35 +10:00
Mitchell Richters
b803a8299d
Revert "- Blood: Repair velocity scaling in ConcussSprite()
."
...
This reverts commit 7da3c62ea8
.
* 7554808104
has the proper fix.
2023-04-16 16:11:57 +10:00
Christoph Oelckers
e15517cf57
- fixed some issues with projectile ownership.
...
Some init code was run here that should not be run. Added a new flag to handle this case without major code explosion.
2023-04-16 07:54:26 +02:00
Christoph Oelckers
c73830992f
- added a few exports and properties for weapon shooting and added missing 'const' annotations for ShootThis overrides.
2023-04-15 23:23:09 +02:00
Christoph Oelckers
17cde1e3ca
- Duke: fixed bad init of hitag in initspriteforspawn
2023-04-15 19:53:04 +02:00
Christoph Oelckers
ecd0c8c1ff
- fixed a few bad scaling values.
2023-04-15 12:20:10 +02:00
Christoph Oelckers
0a91a9a199
- route checkhitsprite fully through the virtual interface so that the player class can finally be exported.
2023-04-12 22:02:01 +02:00
Christoph Oelckers
60af1b4c62
- renamed temp_data[0] to 'counter' and map temp_data[5] to the now free temp_data[0].
...
This not only matches its use in CON but seems to be used as a counter in most other places as well.
The main reason is to improve readability of CON to ZScript conversions.
2023-04-12 21:54:33 +02:00
Christoph Oelckers
8bd88b8678
- migrate all script related info to the data stored in the actor classes.
...
This also needs cactor to really change the class descriptor now so that the correct script code is found.
2023-04-12 21:54:20 +02:00
Christoph Oelckers
c418356420
- added the action, move and ai properties.
2023-04-12 21:52:56 +02:00
Christoph Oelckers
947d427a9d
- merged tileinfo and actorinfo.
2023-04-12 21:52:28 +02:00
Christoph Oelckers
ebf7b4a121
- copy the CON defined info into the actual actors.
...
Only using the strength value right now.
2023-04-12 20:29:37 +02:00
Christoph Oelckers
a155a09f9f
- deleted the setflag inlines.
2023-04-12 20:07:12 +02:00
Christoph Oelckers
62ace9371f
- moved the 3 actor properties out of the global data.
2023-04-12 20:07:12 +02:00
Christoph Oelckers
cc8495c31e
- got rid of the g_t pointer in the CON interpreter.
...
Using g_ac->temp_data now.
2023-04-12 20:07:12 +02:00
Christoph Oelckers
f0637cfc83
- moved actioncounter and curframe to a dedicated variable.
...
The third generic counter is not as easy to fix as its use is far more widespread
2023-04-12 20:07:12 +02:00
Christoph Oelckers
4b096f4f3e
- nulling contents of a freshly spawned actor is not necessary.
...
All objects are zero inited.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
14dd9c3711
- refactored AI storage as well to not use ScriptCode anymore.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
b9702fbb66
- moved 'move' data out of the ScriptCode array as well.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
30ccbe2710
- moved actions out of the ScriptCode array and gave them a dedicated struct with meaningful member names.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
94b676bd7c
- wrapped access to the current 'move' values read from CON.
2023-04-12 20:07:11 +02:00
Christoph Oelckers
c76c511da2
- moved sprite animation code out of 'execute'.
2023-04-12 20:07:10 +02:00
Christoph Oelckers
0c17a369db
- Duke: changed skill filter to be solely controlled by the spawnclasses definitions.
...
All classes with no skill filter now need an explicit noskill declaration.
The only exception is inert sprites using DukeActor directly, these will never get filtered by skill.
2023-04-12 20:06:25 +02:00
Christoph Oelckers
53e41bd3b3
- Duke: added missing texture alias for the cannon.
2023-04-11 20:23:34 +02:00
Christoph Oelckers
660227e175
- Duke: restrict skill filter to those actors which originally handled it.
...
For flexibility there now is a flag that can be set on any actor class, but due to precedent it needs to be off by default.
2023-04-11 20:14:02 +02:00
Christoph Oelckers
ee61daed97
- reinstate code from e2db4a8
that got removed by a badly resolved merge conflict in ae4ef64
.
2023-04-10 16:48:08 +02:00
Christoph Oelckers
2f61a44329
- Duke: do not clear the KILLCOUNT flag.
...
This seems to have gotten back by accident.
2023-04-10 16:41:58 +02:00
Christoph Oelckers
ec9ed9588c
- Exhumed: don't pass uninitialized data to the sound engine.
...
This was creating very noisy warnings.
2023-04-10 09:49:38 +02:00
Christoph Oelckers
1d79d0cee3
- Duke: fixed pitch calculation for explosion sounds.
...
This part was missed when the backend's pitch management was changed to floats instead of Q1.7 fixed point numbers.
2023-04-10 09:13:33 +02:00
Christoph Oelckers
7b1ef9e020
- Duke: Do not set SFLAG_BADGUY for internal bad guys.
...
This will pass an incorrect value for clipdist to clipmove.
2023-04-10 08:56:37 +02:00
Christoph Oelckers
3df7539eb9
- fixed return values of badguy()
and bossguy()
functions.
2023-04-09 15:45:19 +02:00
Christoph Oelckers
684fb5eb74
- added a few things missing for RR and Route 66.
...
R66's gator was also added - this is the only completely new actor in this mod.
2023-04-09 09:46:10 +02:00
Christoph Oelckers
7f758eef2b
- got rid of the script-side flag wrappers.
2023-04-09 09:46:09 +02:00
Christoph Oelckers
04a027f748
- removed most parameters from fall_common.
2023-04-09 09:46:09 +02:00
Christoph Oelckers
cfa18952d1
- deleted the native flag setter code.
2023-04-09 09:46:09 +02:00
Christoph Oelckers
918c75cb6e
- validate statnum before spawning an actor.
2023-04-09 09:46:09 +02:00
Christoph Oelckers
da0b429751
- migrated attackertype to class objects.
2023-04-09 09:46:09 +02:00
Christoph Oelckers
ae4ef6401c
- use the actual actor flags.
...
Not fully working yet...
2023-04-09 09:45:42 +02:00
Christoph Oelckers
b908ede470
- reviewed actor flags and applied several fixes.
2023-04-09 09:35:37 +02:00
Christoph Oelckers
8172a9ac0c
- moved all flags into the actor definitions.
2023-04-09 09:35:37 +02:00
Christoph Oelckers
f4c176988a
- first round of flag additions.
2023-04-09 09:35:36 +02:00
Christoph Oelckers
50d406be4e
- Duke: Do not call Initialize()
for player actors.
...
The base function is doing things not meant for players, and we do not have a proper class yet that can deal with it.
2023-04-09 08:15:23 +02:00
Christoph Oelckers
7554808104
- Blood: fixed bad damage scaling in ConcussSprite
...
This uses the square of the distance, so the factor between Build's Q28.4 format and floats is not 16, but 16*16 = 256.
2023-04-08 10:46:35 +02:00
Christoph Oelckers
e2db4a834e
- Duke: apply default scale only to enemies defined in CON.
...
This code does not apply to the Recon!
2023-04-08 09:37:51 +02:00
Christoph Oelckers
9c164ad290
- fixed crash when stomping shrunk enemies.
2023-04-08 07:14:07 +02:00
Christoph Oelckers
60339a217c
- moved a lot of shareable code out of the CON interpreter.
2023-04-07 13:15:06 +02:00
Christoph Oelckers
9ba0b18013
- moved the 3 health related instructions out of the CON interpreter.
...
This code can be shared with ZScript so it needs to be elsewhere.
2023-04-07 13:15:06 +02:00
Christoph Oelckers
980b3f257a
- converted the final set of actor classes the native code needs to reference.
2023-04-07 13:15:06 +02:00
Christoph Oelckers
2ba204444c
- merged the spawn init code now that all differences are externalized
2023-04-07 13:15:06 +02:00
Christoph Oelckers
aae2c2dc3c
- exported RR's enemies
2023-04-07 13:15:06 +02:00
Christoph Oelckers
779026162d
- exported all of RR's pickup items.
2023-04-07 13:14:19 +02:00
Christoph Oelckers
3dd87cfd7f
- got rid of checkType.
2023-04-07 12:22:46 +02:00
Christoph Oelckers
f2d802b537
- exported RR's remaining controllers.
2023-04-07 12:22:45 +02:00
Christoph Oelckers
98d5a2686e
- use for loop instead of repeating the same line 10x.
2023-04-07 12:22:45 +02:00
Christoph Oelckers
0e169759d5
- animatesprites_r.cpp cleanup
2023-04-07 12:22:45 +02:00
Christoph Oelckers
f9e5f2c137
- final clenaup on animatesprites_d.cpp.
...
Only the player actor is left, which is also the messiest part...
2023-04-07 12:22:44 +02:00
Christoph Oelckers
ce00183707
- scriptified PlayerOnWater.
2023-04-07 12:17:56 +02:00
Christoph Oelckers
3106c8e6f5
- exported most of the remaining content in spawn_d.cpp
2023-04-07 12:14:16 +02:00
Christoph Oelckers
8b04f42ab5
- exported several fire related actors.
2023-04-07 11:52:53 +02:00
Christoph Oelckers
ef6a8c010a
- exported ceilingsteam and consolidated movefallers functions.
2023-04-07 11:52:53 +02:00
Christoph Oelckers
82d04756be
- exported a few of Duke's decorations
2023-04-07 11:52:53 +02:00
Christoph Oelckers
551e0af58d
- exported the egg, also marking it non-killcount.
2023-04-07 11:52:53 +02:00
Christoph Oelckers
b4dcf8ddcf
- exported the remaining Duke enemies.
2023-04-07 11:52:53 +02:00
Christoph Oelckers
0636358b5f
- fixes for RR items.
2023-04-07 11:52:53 +02:00
Christoph Oelckers
1bc7c53351
- move the recon's FTA sound into the scripted actor.
2023-04-07 11:52:52 +02:00
Christoph Oelckers
ef54987a58
- exported WT's Firefly
2023-04-07 11:52:52 +02:00
Christoph Oelckers
4e0dad54a5
- exported all of Duke's pickup items.
2023-04-07 11:51:41 +02:00
Christoph Oelckers
7a699e032f
- cleaned up Duke's very broken kill count system.
...
This now uses a static flag to denote an actor as countable and an internal flag to track its killed state, because CON can toggle that at will.
2023-04-07 09:49:20 +02:00
Mitchell Richters
12c50b4af0
- Blood: Fix missing input bit in GameInteface::reapplyInputBits()
.
2023-04-04 16:55:44 +10:00
Mitchell Richters
bf58879b08
- Duke/RRRA: Fix HUD tilting when reversing motorcycle backwards.
2023-04-04 15:14:44 +10:00
Mitchell Richters
a68fcfc71c
- Remove GameInterface::getConsoleAngles()
, it's not needed anymore.
2023-04-04 07:02:39 +10:00
Mitchell Richters
3ef431a428
- Make scaleAdjust
a float since it's what's needed anyway.
2023-04-03 19:38:00 +10:00
Mitchell Richters
69c65dfe7e
- Internalise InputPacket
used in movement functions.
2023-04-03 19:35:35 +10:00
Mitchell Richters
dbba0abb2e
- Move all mouse handling into GameInput
class.
2023-04-03 18:47:14 +10:00
Mitchell Richters
8d11fef916
- Initial conversion of game input into class GameInput
.
2023-04-03 18:46:36 +10:00
Christoph Oelckers
0706a8a5bb
- exported LizTrooper and Lizman.
2023-04-02 17:37:30 +02:00
Christoph Oelckers
240b24d771
- exported all females.
2023-04-02 17:34:37 +02:00
Christoph Oelckers
810977f19f
- made RR thunder effect also work for Duke.
...
This mainly meant adding support for random sounds and playing the thunder sound by name instead of by index.
2023-04-02 17:20:06 +02:00
Christoph Oelckers
0cd0f28317
- fixed initialization of RR's thunder effect
2023-04-02 17:09:28 +02:00
Christoph Oelckers
eee551ce15
- take care of the last tileGetTexture call in Duke.
2023-04-02 16:45:43 +02:00
Christoph Oelckers
6248c8813b
- make RR's ingame thunder effect not depend on having seen one specific texture.
...
This really should check if the player has seen one sector where the effect is active.
2023-04-02 16:45:43 +02:00
Christoph Oelckers
8208c7fc0b
- some texture name cleanup
2023-04-02 16:45:43 +02:00
Johan Mattsson
cebab8f85d
Small fixes ( #910 )
...
* Fix potential index out of bounds
* Fix potential index out of bounds
* Use 'MAXGEOSECTORS' instead of magic constant
2023-04-02 22:10:57 +10:00
Christoph Oelckers
52ea497b50
- fixed lotsofstuff VM export.
2023-04-02 13:19:35 +02:00
Christoph Oelckers
30d066cee9
- added script exports for Duke's bosses.
...
This allows removing a few hack checks.
2023-04-02 13:13:45 +02:00
Christoph Oelckers
26c8e948f7
deleted debug code
2023-04-02 13:13:45 +02:00
Christoph Oelckers
7f240a0a7a
- converted all remaining classes used by PicForName.
...
This means all functions using this can now pass class pointers directly to the native code.
2023-04-02 13:13:45 +02:00
Christoph Oelckers
c9888ae6cb
- exported several RR enemies/animals needed for the UFO spawner.
2023-04-02 13:13:06 +02:00
Christoph Oelckers
9b96f8312a
- pig cop converted
2023-04-02 13:13:06 +02:00
Christoph Oelckers
bc50f596e8
- exported two more classes used by PicForName.
2023-04-02 13:10:34 +02:00
Christoph Oelckers
7b4d5eb26d
- scriptified SHRINKEREXPLOSION and WATERBUBBLE.
2023-04-02 13:10:26 +02:00
Christoph Oelckers
673ea69d35
- scriptified a few more skeleton items needed by PicforName.
2023-04-02 13:00:13 +02:00
Christoph Oelckers
ccc048136f
- exported TOILETWATER, BURNING and EXPLOSION2.
...
All types needed for cleaning up PicForName
2023-04-02 13:00:13 +02:00
Christoph Oelckers
e0bd038391
- scriptified the native parts of TRANSPORTERSTAR and TRANSPORTERBEAM
2023-04-02 13:00:13 +02:00
Mitchell Richters
2c6d8b50ea
- Exhumed: Tidy up bubbles.cpp.
...
* Extend `BuildBubbles()` to use the actual player's angle for if we ever get multiplayer going.
2023-04-02 19:56:54 +10:00
Mitchell Richters
4c11fb1b2a
- Exhumed: Tidy up remainder of anubis.cpp.
2023-04-02 19:56:54 +10:00
Mitchell Richters
754d27a8f0
- Exhumed: Tidy up AIAnubis::Tick()
.
2023-04-02 19:56:54 +10:00
Mitchell Richters
8d48252f1a
- Exhumed: Backup actor location in BuildAnubis()
.
2023-04-02 19:56:54 +10:00
Mitchell Richters
b10b909440
- Exhumed: Rename last argument in seq_MoveSequence()
to nFrame
.
2023-04-02 19:56:53 +10:00
Mitchell Richters
cf63d1ab74
- Exhumed: Tidy up remainder of anims.cpp.
2023-04-02 19:56:53 +10:00
Mitchell Richters
a2bd2b17a2
- Exhumed: Tidy up BuildAnim()
.
...
* Also rename two rather unnamed args to something more appropriate.
2023-04-02 19:56:53 +10:00
Mitchell Richters
b5d4bc8573
- Exhumed: Tidy up 2d.cpp.
2023-04-02 19:56:53 +10:00
Mitchell Richters
10445635cf
- Tidy up autosaving for all the games.
...
* There's not really any reason to need the game's world to tic once, it's already fully loaded during the `gi->NewGame()`/`gi->NextLevel()` calls.
2023-04-02 19:56:52 +10:00
Mitchell Richters
0052ae4172
- Duke: Ensure we backup player angles and not just pos when loading a save.
2023-04-02 19:51:12 +10:00
Mitchell Richters
bcbebc5c1a
- Blood: Fix potential null actor access in gi->CanSave()
.
2023-04-02 19:51:12 +10:00
Mitchell Richters
9dfb805b38
- Duke: Fix potential null actor access in gi->CanSave()
.
2023-04-02 19:51:12 +10:00
Mitchell Richters
7217ce6ff9
- Duke: Ensure hard landing check is done after pitch keys.
...
* Oversight from e9a5f745fc
.
2023-04-02 19:51:12 +10:00
Mitchell Richters
272dfa762d
- Remove backend crouch toggle solution redeploy with Duke/Exhumed/Blood using new ESyncBit
bit.
...
* I tried to make this work in 2020 but its been nothing but headache. It's something for the game to control via a flag, not the backend to determine.
* For SW, this restores its original implementation.
2023-04-02 18:32:40 +10:00
Mitchell Richters
43febd5aa1
- Stop passing inputBuffer
around within gameinput.cpp since everything's local now.
2023-04-02 18:32:38 +10:00
Mitchell Richters
359371527b
- Move Duke's vehicle input processor into gameinput.cpp
.
2023-04-02 18:32:36 +10:00
Mitchell Richters
563c79322d
- Duke: Make vehicle input code work generically for possible reusage.
2023-04-02 18:25:04 +10:00
Mitchell Richters
5e153d6404
- Duke: Merge vehicle input code into one function.
2023-04-02 18:24:05 +10:00
Mitchell Richters
03eb105df1
- Duke: Move RRRA vehicle tilting out of the input code and into the playsim.
2023-04-02 18:24:05 +10:00
Mitchell Richters
46b5977a6a
- Recover two ESyncBit
values for other uses.
...
* By masking aiming+centering, we have look bits :)
2023-04-02 18:24:05 +10:00
Christoph Oelckers
5f3065d9f1
- Duke: fixed weapon spread with non-pistol hitscan weapons.
2023-04-01 09:49:22 +02:00
Mitchell Richters
86711f666b
- Exhumed: Tidy up StartDeathSeq()
.
2023-03-29 19:41:05 +11:00
Mitchell Richters
3e4dd94fe5
- Exhumed: Tidy up a bunch of small player functions.
2023-03-29 19:40:42 +11:00
Mitchell Richters
0467b02393
- Exhumed: Mark all player static arrays as const.
2023-03-29 19:39:54 +11:00
Mitchell Richters
7feb5a9a9b
Revert "- Duke: Temporary workaround for last commit so the player returns to centre on level load."
...
This reverts commit 2b22e49a9b
.
* It's no longer needed with 06dd971291
.
2023-03-29 13:20:55 +11:00
Mitchell Richters
7caec5fa69
- Clean out where inputState.ClearAllInput()
is called.
...
* We can do this from just a few places and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:05:49 +11:00
Mitchell Richters
d665037075
- Clean out where Net_ClearFifo()
is called.
...
* We can do this from one place and achieve the same result as having it sprinkled everywhere did.
2023-03-29 09:04:38 +11:00
Mitchell Richters
96055fbc03
- Clean out all games setting gameaction = ga_level
and do it centrally.
2023-03-29 03:10:16 +11:00
Mitchell Richters
9618ba1e78
- Don't serialise player angles twice.
2023-03-28 09:15:58 +11:00
Mitchell Richters
72be2623c3
- Exhumed: Remove useless sectortype
extern pointer.
2023-03-28 08:51:51 +11:00
Mitchell Richters
c6a53265eb
- Exhumed: Misc tidy-ups.
...
* The setting of `Player::bIsFiring` needs to be done before setting a new weapon.
* Tidy up some weird reverse engineering `while (1)` loop which GDX doesn't do.
2023-03-28 08:45:14 +11:00
Mitchell Richters
42d791e7c2
- Exhumed: Fix clip calculation setup.
...
* Since game maintains its own clip capacities, we need to use them instead of the generic handler for the games that do not.
* Clean up the game-side code in `CheckClip()` to use `min()`.
* Repair issue with pistol clip calculation that was using modulo when it shouldn't. A full weapon with 300 will divide into 6 with no remainder, therefore nothing in the clip.
* Fixes #906 .
2023-03-27 22:05:35 +11:00
Mitchell Richters
79745668a6
- Exhumed: Take advantage of getWrappedIndex()
in updatePlayerInventory()
as well.
2023-03-27 18:47:30 +11:00
Mitchell Richters
1ed655e0e7
- Exhumed: Further clean up updatePlayerWeapon()
.
...
* Rename a few variables for better clarity as to what's going on.
* Add new inline to the backend `getWrappedIndex()` that properly wraps around negative values based on the supplied maximum using modulo.
* Directly set the weapon when doing the next/prev tests to avoid unnecessary tests to see whether the player has the weapon or not.
2023-03-27 18:47:05 +11:00
Mitchell Richters
ebedf46434
- Exhumed: Reset view pitch back to 0 when doing Ramses, using game's formula.
...
* Ensure's a smooth return to 0 so the player's actual pitch can be targeted towards Ramses.
* In situations where the player had their view pitch changed in the ticker, this would have never reset.
2023-03-27 18:08:56 +11:00
Mitchell Richters
0594a5cb91
- Exhumed: Properly repair height test after reviewing GDX.
...
* The code in this game is so much tidier to understand what's what...
2023-03-27 18:08:55 +11:00
Mitchell Richters
bd8b033120
- Exhumed: Logic fixes to some underwater tests following review of GDX.
...
* Necessitated a little bit of rearranging in the player ticker but the grouping of all inputs into one function makes sense.
2023-03-27 18:08:55 +11:00
Mitchell Richters
94f188c926
- Exhumed: Restore original grenade pickup code.
...
* When I read this against the generic weapon pickup code, it looked similar enough but the grenade's logic is reversed. That is, after picking up the weapon, equip the player. The generic weapon handler equips the player, then gives them ammo.
* Fixes #904 .
2023-03-27 18:08:55 +11:00
Mitchell Richters
99e23a8d24
- Exhumed: Move Player::nCurrentItem
usage into the right spot.
...
* Originally, `updatePlayerInventory()` was in the main loop and not the player ticker. Now that it's been relocated, this makes sense.
2023-03-27 18:06:35 +11:00
Mitchell Richters
d66f97e5dc
- Exhumed: Clean up weapon selection code a bit.
...
* Concentrate it all in the `updatePlayerWeapon()` function.
2023-03-27 17:08:59 +11:00
Mitchell Richters
cb3fec39df
- Exhumed: Move a line out of doPlayerMovement()
and into updatePlayerViewSector()
.
...
* It needs to come after the function it's been moved into, but its confusing why its calculating a new pos delta when there's one on the stack.
* By directly nesting it in, it's a lot clearer.
2023-03-27 08:36:04 +11:00
Mitchell Richters
d858856e06
- Exhumed: Store a pos delta on the stack in `doPlayerMovement().
...
* We need this in a few places.
* Z is inverted because pitch is negated. Previously I just swapped the operation around.
2023-03-27 08:32:52 +11:00
Mitchell Richters
4fa12a9e30
- Exhumed/SW: Make sure the pitch keys are done after the slope tilting.
...
* Pitch key code does player horizon bounding.
2023-03-27 08:28:32 +11:00
Mitchell Richters
4bf2f70d7b
- Exhumed: Remove Player::nDestVertPan
entirely.
...
* We can just pass the needed value into `doPlayerPitch()`.
* For Ramses, no need to set `nDestVertPan` to the map value, just use the map value.
* Avoids an excess `atan2()` call by way of `maphoriz()`.
2023-03-27 08:14:42 +11:00
Mitchell Richters
b5123ac69f
- Exhumed: Split pitch and yaw input again.
...
* They need to be called in different places inside of `doPlayerMovement()`.
2023-03-27 08:03:35 +11:00
Mitchell Richters
6aceb7bda3
- Exhumed: Clean up some of the repeated sector gets in doPlayerMovement()
.
2023-03-27 08:03:14 +11:00
Mitchell Richters
d45be79c24
- Exhumed: Adjust yaw adjustment for Ramses to use the same formula as pitch.
...
* Rather than just snapping the angle, the player's yaw and pitch move evenly towards Ramses.
2023-03-26 22:13:57 +11:00
Mitchell Richters
b5a9085aed
- Exhumed: Restore more accurate pitch adjustment for Ramses.
...
* Use `maphoriz(-11)` instead of some voodoo degree amount so it's clear when comparing sources.
* Don't stop interpolating while doing Ramses.
* Apply Ramses pitch amount to `nVertDestPan`, just like the original.
* Don't reset all angles when initialising Ramses, just set the yaw angle.
* Don't return player's view to center when doing Ramses, use the delta between `nDestVertPan` and the player's pitch, using same formula as original.
* Comment in how normal/non-ramses `nDestVertPan` setting should be 8x the sprite Z move delta, not 2x. I know it's not correct, but its been this way for a long time and we probably should CVAR it.
* When doing the player's death pitch, it's 40.156 degrees (horizon of 108), not 38 degrees (horizon of 100). This was a misread of mine way back when.
2023-03-26 22:13:57 +11:00
Mitchell Richters
0840e547b7
- Exhumed: Reset the player actor's pitch with the rest of the actor resets.
2023-03-26 20:12:59 +11:00
Mitchell Richters
1888b7ee9f
- Exhumed: Ensure we back up the player actor's location after doing everything and not mid-way through a reset.
2023-03-26 20:09:43 +11:00
Mitchell Richters
950f4c2c38
- Exhumed: Restore nStandHeight
global and move to Player
struct.
...
* Was dropped in 572869f502
.
* Game's crouch testing necessitates that this value be pre-cached.
* Interestingly, this value is 62.5 whereas the game's view height is 55. Change in late development to make the world feel larger?
2023-03-26 20:06:25 +11:00
Mitchell Richters
fd62f1fb68
Revert "- Exhumed: Increase quake precision in SetQuake()
."
...
This reverts commit fb9ff7d105
.
* The game relies on this being low precision. It was causing a weird tremor in the training map.
2023-03-26 19:52:55 +11:00
Mitchell Richters
71aad07913
- Exhumed: Fix backwards logic from new pitch panning refactor.
...
* From 79f7ca976b
.
* Fixes #901 .
2023-03-26 18:56:01 +11:00
Mitchell Richters
e9a5f745fc
- Duke: Ensure pitch keys are done after adding player's input.
...
* As this function includes the actor's pitch clamp, it's important its done afterwards.
* Setup is already right for all the other games.
2023-03-26 16:40:25 +11:00
Mitchell Richters
7d5ca901eb
- Exhumed: Clear all input out upon restarting the player.
...
* Stale accumulation from the last round can apply on the next tic.
2023-03-26 15:17:28 +11:00
Mitchell Richters
776c58c58a
- Duke: If we enter playerCenterView()
and put SB_CENTERVIEW()
back on, we need to null and lock input.
2023-03-26 14:36:23 +11:00
Mitchell Richters
0da2afe3d7
- Duke: Tidy up some of the pitch stuff.
...
* Remove some extern'd CVARs that didn't need externing.
* Change `player_struct::centeringView()` bool into proper method to handle the operation.
* Operation now properly unsets `SB_CENTERVIEW` if conditions aren't met instead of relying on implied behaviour from the rest of the playsim.
2023-03-26 13:35:12 +11:00
Mitchell Richters
a5a9882d9a
- Duke: Add a myriad of pitch recentering CVARs.
...
* Needs to be reworked into some kind of MP-safe flagging once we have demos/MP going. This will do for now.
* Fixes #853 .
2023-03-26 12:46:14 +11:00
Mitchell Richters
11049123b0
- Exhumed: Bring pickup code back into player.cpp
...
* We're going to tabbify everything soon anyway, might as well bring it in now.
2023-03-26 10:30:27 +11:00
Mitchell Richters
8f8809f66c
- Exhumed: Minor formatting changes to a number of player functions.
2023-03-26 10:00:06 +11:00
Mitchell Richters
76777a6567
- Exhumed: Change doPlayerActionSequence()
to do an early return instead of nested branches.
2023-03-26 10:00:06 +11:00
Mitchell Richters
dcfab3e57c
- Exhumed: Change doPlayerDeathRestart()
to do an early return instead of nested branches.
2023-03-26 10:00:06 +11:00
Mitchell Richters
b6c3753d3a
- Exhumed: Change doPlayerMovingBlocks()
to do an early return instead of nested branches.
2023-03-26 10:00:04 +11:00
Mitchell Richters
838aebdfb7
- Exhumed: Change doPlayerFloorDamage()
to do an early return instead of nested branches.
2023-03-26 09:51:26 +11:00
Mitchell Richters
8d1531ba78
- Exhumed: Change updatePlayerTarget()
to do an early return instead of nested branches.
2023-03-26 09:50:57 +11:00
Mitchell Richters
e7a0354109
- Exhumed: Fix possible workflow issue with zvel in doPlayerMovement()
.
...
* Originates from d976a6da01
.
* During change I missed the clamping of the zvel value between capturing `zz` and `zVel`.
* No observed issues, only noticed it when comparing something else but lets 100% maintain a accurate workflow.
2023-03-25 23:27:15 +11:00
Mitchell Richters
2bc6df7678
- Exhumed: Repair signedness issue with weapon change code.
...
* Never revealed itself when I was cheating to get weapons.
* Fixes #898
2023-03-25 22:05:06 +11:00
Mitchell Richters
8f748fdb2a
- Exhumed: Fix noclipping so the player can clip through anything.
...
* The `inside()` test is now only performed when noclipping is off.
2023-03-25 21:36:17 +11:00
Mitchell Richters
7410c78ce4
- Exhumed: Merge pitch/yaw functions into one to minimise spread.
2023-03-25 21:26:56 +11:00
Mitchell Richters
7d6425fa06
- Exhumed: Amend 79f7ca976b
to use algorithm to cancel view pitch when disabling cl_slopetilting
.
2023-03-25 21:26:55 +11:00
Mitchell Richters
0189936070
- Exhumed: Use player pointer in MoveWeapons()
.
2023-03-25 21:26:55 +11:00
Mitchell Richters
4e1b269c59
- Exhumed: Use player pointer in AIPlayer::Draw()
.
2023-03-25 21:26:55 +11:00
Mitchell Richters
d270099aa7
- Exhumed: Use player pointer in AIPlayer::Damage()
.
2023-03-25 21:26:55 +11:00
Mitchell Richters
f0b9937ec7
- Exhumed: General tidy-up of AIPlayer::Damage()
.
2023-03-25 21:26:55 +11:00
Mitchell Richters
c3f0edf802
- Exhumed: Use player pointer in AIPlayer::Damage()
.
2023-03-25 21:26:54 +11:00
Mitchell Richters
45be386f7f
- Exhumed: Move nTemperature[]
into Player
struct.
2023-03-25 21:26:54 +11:00
Mitchell Richters
572869f502
- Exhumed: Reorganise RestartPlayer()
so player/actor variables are grouped.
2023-03-25 21:26:54 +11:00
Mitchell Richters
b4028cb250
- Exhumed: Clean up stack pointer names in RestartPlayer()
.
2023-03-25 21:26:54 +11:00
Mitchell Richters
c79a979395
- Exhumed: Store a player pointer on the stack and use in updatePlayerVelocity()
.
2023-03-25 21:26:52 +11:00
Mitchell Richters
7cfb5d9286
- Exhumed: Removed unneeded resetting of nDestVertPan
in doPlayerFloorDamage()
.
...
* Original game code below it was just resetting it anyway.
2023-03-25 19:56:20 +11:00
Mitchell Richters
12b4f68f24
- Exhumed: Directly inline interpfrac test into gi->Render()
.
2023-03-25 19:56:19 +11:00
Christoph Oelckers
32237421c9
- Exhumed: fixed Ramses's programmatic texture
2023-03-25 09:52:31 +01:00
Mitchell Richters
f96bc3ee31
- Exhumed: Reposition bIsFiring
setting.
...
* Mistake from e5e1428062
.
2023-03-25 18:13:11 +11:00
Mitchell Richters
e34c4353f6
- Exhumed: Properly clamp off pitch in death function.
2023-03-25 17:27:33 +11:00
Mitchell Richters
025f2ec5fb
- Exhumed: Do player pitch/yaw before movement code.
2023-03-25 16:58:15 +11:00
Mitchell Richters
79f7ca976b
- Exhumed: Refactor the pitch tilting/panning code.
...
* Made it work on the player's view pitch and not their actual pitch.
* Drastically simplifies implementation and allows its use even with mouse aiming.
2023-03-25 16:52:13 +11:00
Mitchell Richters
7ecf6b26c3
- Exhumed: Might as well split out the death restart as well.
2023-03-25 16:06:19 +11:00
Mitchell Richters
7da9b2c17d
- Exhumed: Slightly re-arrange where movement actions are called.
...
* Removes jank setups like testing whether the player is dead and nulling their input. Now, the movement code just doesn't call if they're dead.
2023-03-25 15:57:23 +11:00
Mitchell Richters
e5e1428062
- Exhumed: Split off runlist signal code from player ticker.
2023-03-25 15:57:22 +11:00
Mitchell Richters
a86751a355
- Exhumed: Move all underwater code into doPlayerBreath()
.
...
* Renamed to `doPlayerUnderwater()`.
* Keeps all underwater logic together.
* More importantly, fixes an issue 🙃 .
2023-03-25 15:12:13 +11:00
Mitchell Richters
52618ede14
- Exhumed: Amend 187710e9e2
.
2023-03-25 15:10:54 +11:00
Mitchell Richters
1ed91ade54
- Exhumed: Fix dopple actor picnum updating.
2023-03-25 14:19:07 +11:00
Mitchell Richters
481c52f175
- Exhumed: Move some player code out of exhumed.cpp and into player.cpp where it should be.
2023-03-25 14:08:02 +11:00
Mitchell Richters
ae361208a0
- Exhumed: Tidy up flags in feebtag()
.
2023-03-25 13:18:46 +11:00
Mitchell Richters
66c4a753d9
- Exhumed: Move doPickupHealth()
lambda out of doPlayerPickupItems()
.
2023-03-25 12:51:18 +11:00
Mitchell Richters
d5a0dd3d80
- Exhumed: Move doPickupWeapon()
lambda out of doPlayerPickupItems()
.
2023-03-25 12:46:37 +11:00
Mitchell Richters
3854a97913
- Exhumed: Move doProcessPickup()
lambda out of doPlayerPickupItems()
.
2023-03-25 12:43:06 +11:00
Mitchell Richters
27534c433d
- Exhumed: Move lambdas out of doPlayerPickupItems()
, starting with doConsoleMessage()
.
2023-03-25 12:40:00 +11:00
Mitchell Richters
33cea4a7e1
- Exhumed: Remove offset in doPlayerItemPickups()
and just use the statnum.
2023-03-25 12:28:33 +11:00
Mitchell Richters
06e97d26aa
- Exhumed: Merge grenade pickup code into generic lambda.
2023-03-25 10:52:40 +11:00
Mitchell Richters
249d6b1b81
- Exhumed: Use an actor pointer on the stack in doPlayerCounters()
.
2023-03-25 10:08:55 +11:00
Mitchell Richters
128997c79c
- Exhumed: Clean up double getting of player actor in doPlayerBreath()
.
2023-03-25 10:06:18 +11:00
Mitchell Richters
47d25932d5
- Exhumed: Move doPlayerMask()
into doPlayerCounters()
.
2023-03-25 09:42:37 +11:00
Mitchell Richters
1ebc634ac0
- Exhumed: Consolidate two more cases in pickup code.
2023-03-25 08:44:27 +11:00
Mitchell Richters
c0d13f7619
- Exhumed: Use lookup table for health pickups in doPlayerItemPickups()
.
2023-03-25 08:43:50 +11:00
Mitchell Richters
e766c29fd5
- Exhumed: Use lookup table for weapon pickups in doPlayerItemPickups()
.
2023-03-25 08:41:45 +11:00
Mitchell Richters
be9ece4afc
- Exhumed: Use lookup table for some weapon types in doPlayerItemPickups()
.
2023-03-25 07:42:20 +11:00
Mitchell Richters
1013d41f89
- Exhumed: Use lookup table for item type in doPlayerItemPickups()
.
2023-03-25 07:32:29 +11:00
Mitchell Richters
07dda89cfd
- Exhumed: Merge all player counter code into one function.
...
* Probably a bit too much to break these down as much as I did.
2023-03-25 00:12:52 +11:00
Mitchell Richters
72af290502
- Exhumed: Pass tint values through to lambdas as args as well.
2023-03-25 00:09:17 +11:00
Mitchell Richters
da47369582
- Exhumed: Pass item, amount and sound through to lambdas as args.
2023-03-25 00:09:17 +11:00
Mitchell Richters
84223b6b04
- Exhumed: Remove call to doConsoleMessage()
from default lambda so what's going on is clearer.
2023-03-25 00:09:17 +11:00
Mitchell Richters
24b21345b1
- Exhumed: And same for health pickup process.
2023-03-25 00:09:16 +11:00
Mitchell Richters
16c2fa3abe
- Exhumed: Same for weapon pickup process.
2023-03-25 00:08:54 +11:00
Mitchell Richters
239ee20a6d
- Exhumed: Same for main pickup process.
2023-03-25 00:08:54 +11:00
Mitchell Richters
77e262ce3c
- Exhumed: Swap out flag setup in doPlayerItemPickups()
for lambdas, starting with console messages.
2023-03-25 00:08:54 +11:00
Mitchell Richters
40033c3a9d
- Exhumed: Final switch case statement cleanups in doPlayerItemPickups()
.
2023-03-25 00:08:53 +11:00
Mitchell Richters
83c7dfa7c9
- Exhumed: Clean up weapon pickups in doPlayerItemPickups()
.
2023-03-24 23:19:57 +11:00
Mitchell Richters
935450251a
- Exhumed: Clean up some more switch case statements in doPlayerItemPickups()
.
2023-03-24 23:19:14 +11:00
Mitchell Richters
b99e2fa600
- Exhumed: Clean up health pickups in doPlayerItemPickups()
.
2023-03-24 23:18:30 +11:00
Mitchell Richters
7f4b9d29b0
- Exhumed: Clean up first few switch case statements in doPlayerItemPickups()
.
2023-03-24 23:17:59 +11:00
Mitchell Richters
48803b3631
- Exhumed: Remove gotos in doPlayerItemPickups()
and use flag system like PowerslaveGDX.
2023-03-24 23:17:45 +11:00
Mitchell Richters
3f6a0661b6
- Exhumed: Default init nSound
to -1 as the code tests > -1 for validity.
2023-03-24 21:42:54 +11:00
Mitchell Richters
a7c311e291
- Exhumed: Tidy up stack variables in doPlayerItemPickups()
.
2023-03-24 21:42:40 +11:00
Mitchell Richters
154084322e
- Exhumed: Final cleanup of AIPlayer::Tick()
.
2023-03-24 21:13:42 +11:00
Mitchell Richters
650aa65533
- Exhumed: Split out player dopple actor update code.
...
* This cleans most of the player tick code. Now, onto that ghastly pickup code...
2023-03-24 21:13:42 +11:00
Mitchell Richters
0230a51ce2
- Exhumed: Split out player action sequence code.
2023-03-24 21:13:42 +11:00
Mitchell Richters
77fa3f6ea9
- Exhumed: Split out player view sector code.
2023-03-24 21:13:40 +11:00
Mitchell Richters
9c471e0209
- Exhumed: Split out floor damage code.
2023-03-24 20:31:43 +11:00
Mitchell Richters
e1f4b8d8e3
- Exhumed: Split out moving blocks code again.
2023-03-24 20:31:43 +11:00
Mitchell Richters
830c0b72cf
- Exhumed: Split out player movement code.
2023-03-24 20:31:43 +11:00
Mitchell Richters
911c5158d2
- Exhumed: Split out player floor actor code.
2023-03-24 20:31:43 +11:00
Mitchell Richters
5fc0b25ad5
- Exhumed: Split out player breath/air/oxygen code.
2023-03-24 20:31:42 +11:00
Mitchell Richters
16561c2a6a
- Exhumed: Split out player mask code.
2023-03-24 20:31:08 +11:00
Mitchell Richters
62c045a14f
- Exhumed: Clean up some underwater checks.
2023-03-24 20:31:07 +11:00
Mitchell Richters
b160d78701
- Exhumed: Tidy up vect variables on the stack.
2023-03-24 20:26:18 +11:00
Mitchell Richters
4cdced60b1
- Exhumed: Tidy up some pos/sect variables on the stack.
2023-03-24 19:52:38 +11:00
Mitchell Richters
d976a6da01
- Exhumed: Tidy up zVal
on player ticker stack.
2023-03-24 19:52:37 +11:00
Mitchell Richters
5463b14b26
- Exhumed: Split out player ramses code.
2023-03-24 19:52:36 +11:00
Mitchell Richters
0271a49030
- Exhumed: Move moving block check code back into player ticker for now.
...
* Reverts 52b2d1cd7d
* Upon closer inspection, the original code here used `zz` on the player stack, which was re-obtained again using the actor's Z vel, however the actor's Z vel gets modified along the way which could break how this code is meant to work.
* Should be split again but requires holistic thought.
2023-03-24 19:50:27 +11:00
Mitchell Richters
e2d3c4dceb
- Exhumed: Get rid of GetAngleToSprite()
in favour of backend utility.
2023-03-24 19:50:27 +11:00
Mitchell Richters
eaa58e6687
- Exhumed: Get rid of GetWallNormal()
in favour of backend utility.
2023-03-24 19:50:26 +11:00
Mitchell Richters
7fe82690a7
- Exhumed: Fix moving block sound setup to match PowerslaveGDX.
...
* Setup we had looked wrong by comparison, and it eliminates the last goto in the player tick code!
2023-03-24 19:50:26 +11:00
Mitchell Richters
62de240c27
- Exhumed: Reduce branch depth in CheckMovingBlocks()
to make next change more visible.
2023-03-24 19:50:26 +11:00
Mitchell Richters
0e39dbfc95
- Exhumed: Make CheckMovingBlocks()
work on player pointer.
2023-03-24 19:50:26 +11:00
Mitchell Richters
e256ac06e9
- Exhumed: Split out player death pitch code.
2023-03-24 19:50:25 +11:00
Mitchell Richters
8812831c73
- Exhumed: Split out player yaw code.
...
* Consider where this is executed. Should it come after the Ramses check, or be performed along-side player's pitch?
2023-03-24 19:50:25 +11:00
Mitchell Richters
9b3c726458
- Exhumed: Split out player pitch code.
2023-03-24 19:50:25 +11:00
Mitchell Richters
806dca975a
- Exhumed: Remove goto out of updatePlayerAction()
.
...
* Doesn't really make sense and PowerslaveGDX doesn't do any jumping like this here.
2023-03-24 19:50:25 +11:00
Mitchell Richters
4c8b7e6804
- Exhumed: Initial cleanup of updatePlayerAction()
.
2023-03-24 19:50:25 +11:00
Mitchell Richters
791504b5eb
- Remove some pointless weapon functions.
2023-03-24 19:38:10 +11:00
Mitchell Richters
7fe6befef8
- Exhumed: Split out player actions code.
2023-03-24 19:36:43 +11:00
Mitchell Richters
a6cec3d4f1
- Exhumed: Just use pPlayer->nAction
in player code, don't store on the stack.
2023-03-24 15:14:07 +11:00
Mitchell Richters
0842ea3c14
- Exhumed: Clean out some stale goto calls that were commented out.
...
* Only two remaining gotos to handle now.
2023-03-24 15:11:32 +11:00
Mitchell Richters
611d7bae98
- Exhumed: Bring player neartag()
call to branch where it's needed.
2023-03-24 15:11:32 +11:00
Mitchell Richters
ed2c557297
- Exhumed: Remove ClearSpaceBar()
and just directly clear the input bit.
...
* Also fix issue where `SB_OPEN` bit never seemed to be cleared properly.
* Also just directly test/use the player's input actions to minimise stack variables during this cleanup process.
2023-03-24 15:11:32 +11:00
Mitchell Richters
7293a1f5d1
- Exhumed: Pass player pointer through to updatePlayerTarget()
.
2023-03-24 11:59:34 +11:00
Mitchell Richters
cdffb61cc7
- Exhumed: Remove prototype POSIX targets didn't like.
2023-03-23 21:25:49 +11:00
Mitchell Richters
5d6744836f
- Exhumed: Have feebtag()
return an actor pointer instead.
2023-03-23 21:00:35 +11:00
Mitchell Richters
22e135afeb
- Exhumed: Rename pickup actor in pickup code.
2023-03-23 20:52:04 +11:00
Mitchell Richters
757d7b3660
- Exhumed: Split out player pickup code to separate file.
...
* Want to work on this in isolation.
* Can likely optimise this out to a lookup array of function pointers.
2023-03-23 20:50:08 +11:00
Mitchell Richters
f68c168ae4
- Blood: Delete empty file that got missed.
2023-03-23 20:36:37 +11:00
Mitchell Richters
764ec032c1
- Exhumed: Split out player current item code.
2023-03-23 19:48:27 +11:00
Mitchell Richters
f7433234b2
- Exhumed: Split out player quake code.
2023-03-23 19:48:26 +11:00
Mitchell Richters
04ab6f4640
- Exhumed: Split out player invincibility code.
2023-03-23 19:47:41 +11:00
Mitchell Richters
1a8dcda5b6
- Exhumed: Split out player invisibility code.
2023-03-23 19:47:11 +11:00
Mitchell Richters
374f0bb295
- Exhumed: Split out player double code.
2023-03-23 19:46:45 +11:00
Mitchell Richters
b51623b415
- Exhumed: Split out player torch code.
2023-03-23 19:46:18 +11:00
Mitchell Richters
8f21a89abc
- Exhumed: Remove some duplicated code already covered in InitPlayers()
.
2023-03-23 19:14:57 +11:00
Mitchell Richters
27144c0bc3
- Exhumed: Store the player's index within the player's struct.
2023-03-23 19:14:26 +11:00
Mitchell Richters
645d75ba0b
- Exhumed: Use pointers to access player in AIPlayer::Tick()
.
2023-03-23 18:50:30 +11:00
Mitchell Richters
75de294560
- Exhumed: Clean out the rest of input.cpp
.
2023-03-23 17:41:01 +11:00
Mitchell Richters
fb9ff7d105
- Exhumed: Increase quake precision in SetQuake()
.
2023-03-23 17:38:18 +11:00
Mitchell Richters
bd30e31b8d
- Exhumed: Move nQuake[]
array into Player
struct.
2023-03-23 17:38:18 +11:00
Mitchell Richters
05fd2911a4
- Exhumed: Move dVertPan[]
array into Player
struct.
2023-03-23 17:38:18 +11:00
Mitchell Richters
095b33fa67
- Exhumed: Clean out the rest of enginesubs.cpp
.
2023-03-23 17:38:16 +11:00
Mitchell Richters
e85162df97
- Removed unused lastTic
global.
2023-03-23 17:38:01 +11:00
Mitchell Richters
e5f3f5f149
- Make setForcedSyncInput()
require a player index.
...
* This should only ever apply to the console player.
2023-03-23 17:09:02 +11:00
Mitchell Richters
183ad0c61c
- Adjust a few setForcedSyncInput()
calls.
2023-03-23 16:34:33 +11:00
Mitchell Richters
fa5490b834
- Exhumed: Just move analyzesprites()
into gi->processSprites()
.
2023-03-23 15:55:00 +11:00
Mitchell Richters
0ac7af6cd7
- Exhumed: Avoid unnecessarily iterating through tsprites twice.
2023-03-23 15:54:59 +11:00
Mitchell Richters
10ebc00853
- Exhumed: Attempt to make player pTarget updating MP friendly.
...
* This probably works better than using the temporary view pos vector of the console player, anyway.
* Might assist with #626 as well.
2023-03-23 15:54:59 +11:00
Mitchell Richters
3b889d5c36
- Exhumed: Make main loop player index aware.
2023-03-23 15:54:59 +11:00
Mitchell Richters
c486940b2c
- Exhumed: Ensure playsim runs with PlayClock at 0 for first tic.
2023-03-23 15:54:59 +11:00
Mitchell Richters
eed1d14b9d
- Exhumed: Split out velocity updating to static function.
2023-03-23 15:54:59 +11:00
Mitchell Richters
187710e9e2
- Exhumed: Set nFreeze
input locking in right spot.
2023-03-23 15:54:58 +11:00
Mitchell Richters
895304ccee
- Exhumed: Split out weapon updating to static function.
2023-03-23 15:54:58 +11:00
Mitchell Richters
e9e36fedb2
- Exhumed: Split out inventory updating to static function.
2023-03-23 15:54:58 +11:00
Mitchell Richters
4d6419732a
- Duke: Add CVAR to allow disabling pitch reset with pitch input.
...
* Need to add this to the menu to address #853 .
2023-03-23 15:54:58 +11:00
Mitchell Richters
88e6a6e894
- Rework ff652f454c
slightly to accept an InputPacket
pointer.
2023-03-22 20:08:53 +11:00
Mitchell Richters
2b22e49a9b
- Duke: Temporary workaround for last commit so the player returns to centre on level load.
2023-03-22 18:26:23 +11:00
Mitchell Richters
ff652f454c
- Tidy up how games reapply needed bits at start of tic.
2023-03-22 18:17:50 +11:00
Mitchell Richters
e5bad9af2c
- Duke/RR: Re-arrange the playsim angle calls.
...
* Make them precisely where they were originally called from.
2023-03-21 21:37:25 +11:00
Mitchell Richters
181f88b028
- Duke/RR: Remove the confusing VEH_HEELTOE
bit.
2023-03-21 10:41:55 +11:00
Mitchell Richters
2918c34d42
- Duke/RR: Fix two typos.
2023-03-21 10:39:24 +11:00
Mitchell Richters
64a3141f6f
- Duke/RR: Add VEH_TURNING
flag instead of testing left/right in places.
2023-03-21 10:21:30 +11:00
Mitchell Richters
f240b6c623
- Duke/RR: Fix bad flag test that needed to confirm two flags set, not any one of the two.
2023-03-21 10:12:38 +11:00
Mitchell Richters
19ddc1ee51
- Duke/RR: Repair angle test when adjusting velocity.
...
* Initially figured I could just use the sign of the angle adjustment, but the vehicle code makes left/right reversals that necessitate using the flags for this.
2023-03-21 09:39:36 +11:00
Mitchell Richters
a24b8499fc
- Duke/RR: Swap out all 5-6 bools for a bitfield.
2023-03-21 09:39:35 +11:00
Mitchell Richters
a3a150558b
- Duke/RR: Consolidate (mostly) identical vehicle throttle code.
2023-03-20 21:54:47 +11:00
Mitchell Richters
c8238d9646
- Duke/RR: Consolidate (mostly) identical vehicle sound code.
2023-03-20 21:46:18 +11:00
Mitchell Richters
cc977d510a
- Duke/RR: Consolidate identical vehicle drinking code.
2023-03-20 21:46:16 +11:00
Mitchell Richters
07b1ec518b
- Duke/RR: Consolidate identical vehicle bumping code.
2023-03-20 21:07:52 +11:00
Mitchell Richters
d5bc7718d1
- Duke/RR: Tidy up angle changes/accesses in vehicle ticker code.
...
* Already have an actor pointer on the stack we can use.
* Other tidy-ups.
2023-03-20 21:07:52 +11:00
Mitchell Richters
134b635966
- Duke/RR: Ensure braking sync bit is always cleared in onBoat()
.
2023-03-20 21:07:50 +11:00
Mitchell Richters
c6f6cf5933
- Duke/RR: Fix vehicle controller sign that got lost along the way.
...
* Issue from 9d74a5c60b
.
2023-03-19 22:45:02 +11:00
Mitchell Richters
ebd8ab985e
- Duke/RR: Don't archive off MotoSpeed for reuse at end of vehicle functions.
...
* Kept the workflow identical to the old setup in the other commits, but does not seem necessary and all it does is make the speed one tic behind where it would be otherwise.
2023-03-19 21:58:30 +11:00
Mitchell Richters
ba8f1069ab
- Duke/RR: Fix an issue with reversing.
...
* Got the position of the bools wrong here when removing something unsafe from the input handler.
2023-03-19 21:35:39 +11:00
Mitchell Richters
a9e606ca68
- Duke/RR: Shorten a long ternary.
2023-03-19 21:08:43 +11:00
Mitchell Richters
81650036e6
- Duke/RR: Remove vehForward/Reverse variables from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* The original game misused network bits here, however I don't see why the player's angle can't just be tested for signedness. Again, something I didn't see way back when...
2023-03-19 20:55:39 +11:00
Mitchell Richters
37e9cfed45
- Duke/RR: Remove vehBraking variable from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* We must continue the misuse of network bits like the original game did to make sure the RRRA vehicles are network aware.
2023-03-19 20:54:43 +11:00
Mitchell Richters
31f8de3854
- Duke/RR: Remove vehTurn variables from player struct.
...
* Back in 2020, I was trying to tidy stuff up and had no idea about network awareness, etc.
* The original game misused network bits here, however I don't see why the player's angle can't just be tested for signedness. Something I didn't see way back when...
2023-03-19 20:54:19 +11:00
Mitchell Richters
76e6efd204
- Duke/RR: Fix oversight in previous commit.
...
* Unknowingly had forced synchronised input on!
2023-03-19 20:09:14 +11:00
Mitchell Richters
d380e73cfd
- Duke: Consolidate boat/moto turn functions into one.
2023-03-19 14:59:35 +11:00
Mitchell Richters
c13c244dca
- Simplify moto velocity sign determination.
2023-03-19 14:35:02 +11:00
Mitchell Richters
9d74a5c60b
- Duke: Consolidate vehicle turning code between boat/moto.
2023-03-19 14:35:00 +11:00
Mitchell Richters
56b95a46f7
- Duke: Consolidate vehicle tilting code between boat/moto.
2023-03-19 13:31:47 +11:00
Mitchell Richters
de5b73c60f
- SW: Fix strafing issue due to missing bool negation.
2023-03-19 11:14:04 +11:00
Mitchell Richters
056330863c
- Duke: Eliminate GetActor()
calls in playerisdead()
.
2023-03-19 09:10:14 +11:00
Mitchell Richters
a7d829d539
- Duke: Change where centering view locks the input.
2023-03-19 09:08:24 +11:00
Mitchell Richters
3ad50d5045
- Duke: Don't reset synchronised input flag if centering view.
...
* The way the playsim works, because the horizon functions come after the yaw ones, yaw was not being applied while pitch was locked.
2023-03-18 22:21:38 +11:00
Mitchell Richters
5b382ac2c6
- Duke: Remove everyothertime
global, we can just use PlayClock
.
2023-03-18 22:21:38 +11:00
Christoph Oelckers
792f977d46
- fixed STAT_ACTORS must handle actors where scale.X is 0 as 'deleted' and destroy them.
2023-03-18 12:08:53 +01:00
Mitchell Richters
1147030bca
- Remove concept of InputOptions
, its messy and unnecessary.
2023-03-18 21:16:50 +11:00
Mitchell Richters
b3c27a177e
- Consolidate each game's gi-GetInput()
into a unified function.
...
* Eliminates a lot of boilerplate.
* Consolidation of input accumulation buffers discretely used in each game.
* Allows privatisation of `PlayerAngles::CameraAngles`.
2023-03-18 19:49:25 +11:00
Mitchell Richters
65ee4b14d6
- Move gi->getConsoleActor()
directly into the header.
2023-03-18 19:29:29 +11:00
Mitchell Richters
ee294d7fa0
- Blood: Force synchronised input while dead.
2023-03-18 19:29:29 +11:00
Mitchell Richters
4355a44721
- Duke: Rework input blocking setup.
...
* Takes the duplicated conditions out of the input handler and makes the ticker responsible by forcing synchronised input.
2023-03-18 19:29:29 +11:00
Mitchell Richters
bd3e9b305e
- Adjust signatures of input functions slightly for consistency.
2023-03-18 19:29:29 +11:00
Mitchell Richters
b8ba78cf89
- Exhumed: Use array pointers in GameInterface::Ticker()
for one's sanity.
2023-03-18 19:29:28 +11:00
Mitchell Richters
42a895d666
- Exhumed: Move dead checks out of the input handler and into the ticker.
2023-03-18 19:29:15 +11:00
Mitchell Richters
1af60fb02b
- Exhumed: Clear local input accumulation buffer after copying a packet, just like the other games.
2023-03-18 19:19:22 +11:00
Mitchell Richters
0cf44e42fc
- Exhumed: Eliminate initsectp
global.
2023-03-18 19:19:22 +11:00
Mitchell Richters
d30ce9691a
- Exhumed: Eliminate initpos
global.
2023-03-18 19:19:22 +11:00
Mitchell Richters
5fe4b0fdb1
- Exhumed: Eliminate inita
global.
2023-03-18 19:19:21 +11:00
Mitchell Richters
401236980c
- Duke: Tidy up some unnecessarily deep branches in vehicle input code.
2023-03-18 19:19:21 +11:00
Mitchell Richters
51a20211f3
- Duke: Tidy up some repeated bools in vehicle input code.
2023-03-18 19:19:21 +11:00
Mitchell Richters
37dda1aa0e
- Duke: Move input bit pre-processing into hud_input()
.
...
* Really, _really_ need to do something about this `crouch_toggle` malarkey...
2023-03-18 19:19:20 +11:00
Mitchell Richters
5a6495956f
- Duke: Move Quick_Kick
button test into ApplyGlobalInput()
as it doesn't seem to share a bit with any other game anymore.
2023-03-18 19:17:30 +11:00
Mitchell Richters
b1888a44c3
- SW: Process weapon bits within the ticker and not the input handler.
2023-03-18 19:17:30 +11:00
Mitchell Richters
a4f0a75a58
- SW: Simplify unsynchronised input setup.
...
* Had complicated flagging and setup for SO vehicles that never worked and doubt I'd ever get to work.
* Setup now lends itself well to a potential more generic input setup.
2023-03-18 19:17:30 +11:00
Mitchell Richters
292030b59e
- Duke: Repair issues with going underwater after taking some stuff out of the global state.
...
* Really, need to do something about this `crouch_toggle` malarkey...
2023-03-18 19:17:28 +11:00
Mitchell Richters
b07732bae4
- Duke: Remove duplicated call to SetupGameButtons()
that's done globally in RunGame()
.
2023-03-18 09:15:17 +11:00
Mitchell Richters
a45890e064
- Move some Duke-specific stuff out of ApplyGlobalInput()
.
2023-03-18 09:15:15 +11:00
Mitchell Richters
eed9716d86
- Move joyaxes[]
array from getHidInput()
directly into ControlInfo
.
2023-03-17 20:58:38 +11:00
Mitchell Richters
fc069feac6
- Negate ControlInfo::dyaw
to match data out of backend.
2023-03-17 20:58:13 +11:00
Mitchell Richters
446218dd7b
- Get mouse/controller input by pointed variable and not copy on return.
2023-03-17 20:58:11 +11:00
Mitchell Richters
1f97e73501
- Rename ControlInfo joystick variables to names matching backend.
2023-03-17 20:16:58 +11:00
Mitchell Richters
686bec5664
- Duke: Make vehicle input functions work on floats and not doubles and FAngles.
...
* It's what's natively needed at the end of the day.
2023-03-17 19:40:46 +11:00
Mitchell Richters
7f79ee9801
- Exhumed: Repair missing negation affecting death sequence.
...
* Pitch negation strike's back!
2023-03-17 19:17:18 +11:00
Mitchell Richters
81caf74721
- Tidy up coord
stat to use gi->getConsoleActor()
and also print pitch.
2023-03-17 17:28:26 +11:00
Mitchell Richters
3c4b4e4483
- Tidy up warptocoords
CCMD since everything is in an actor now.
...
* Now accepts floating point inputs.
* Restores lost pitch capability.
2023-03-17 17:28:04 +11:00
Mitchell Richters
e6cffbaefb
- Duke: Remove unnecessary playrunning()
test within a loop.
2023-03-17 14:41:17 +11:00
Mitchell Richters
130c5315e9
- Call PlayerAngles::resetCameraAngles()
from within the player loop of each game.
...
* I was only thinking of the console player initially but since each game can draw the view of other players in network games, each game will need to update and reset the camera angles for all players.
2023-03-17 14:40:18 +11:00
Mitchell Richters
d329328191
- Rename PlayerAngles::RenderAngles
to CameraAngles
.
...
* Better conveys what it is and separates it from the already established `getRender*()` methods around the place.
* Sorry Simon!
2023-03-17 14:20:36 +11:00
Mitchell Richters
742a2e5c9a
- Exhumed: Ensure automap uses untouched interpolated actor position.
...
* Using chase cam while the automap was on was drawing the player sprite incorrectly.
2023-03-17 14:11:27 +11:00
Mitchell Richters
0fca5b14a2
- SW: Ensure automap uses untouched interpolated actor position.
...
* Using chase cam while the automap was on was drawing the player sprite incorrectly.
2023-03-17 13:45:29 +11:00
Mitchell Richters
d6b68dec5e
- Duke: Remove player_struct::resurrected
flag I added in 2021 and fix issue properly.
...
* The check for `player_struct::dead_flag` in `FinalizeInput()` was overzealous and is not checked in the original code in this instance.
2023-03-17 12:29:37 +11:00
Christoph Oelckers
d17650f885
- removed the ValidateTarget call from HackSeqCallback.
...
The original function does not validate its target, it just uses undefined memory instead when this case happens.
2023-03-16 17:49:50 +01:00
Mitchell Richters
c4041affb1
- Duke: Reduce boilerplate from previous commit.
2023-03-16 22:24:34 +11:00
Mitchell Richters
9a17d33579
- Duke: Ensure spawned player actor has view height baked in up until the first getzrange()
call.
...
* The original game spawning the player's sprite/actor would set the sprite's pos with the Z matching the player's, which had a height offset already applied.
* This baked in height offset was carried through up until the `SetActor()` call in `processinput()`, where the original game would then strip off `gs.playerheight`.
* This baked in height offset within the actor is critical on the first tic for pre-activated elevators on level spawn to function right, such as E1L2 and E2L3.
* Properly setting the player actor's Z immediately after the initial `getzrange()` call, but before other functions like `movement()`, etc further down in `processinput()` is the best spot.
* Fixes #870 .
2023-03-16 22:15:11 +11:00
Mitchell Richters
8bcbc1b892
- Null the roll angle used for weapon drawing when looking left/right and with Blood's delirium for now.
...
* Intended to make the look left/right keys better, but doesn't work properly for weapons made up of layered parts of varying sizes.
* Fixes #879 .
2023-03-16 16:34:31 +11:00
Mitchell Richters
528eb0ea9a
- Blood: Fix state checks when using TNT while diving underwater.
...
* A mess of bloody proportions...
* Originates from d30c94c709
.
* Fixes #878 .
2023-03-16 15:50:52 +11:00
Mitchell Richters
cb1e4e7a34
- Exhumed: Ensure Player::items[]
is signed.
...
* Change originates from b71c725e3e
.
* Matches PCExhumed and GDX.
* Logic in game requires this variable to be signed.
* Fixes #415 .
* Fixes #888 .
2023-03-16 13:05:22 +11:00
Mitchell Richters
3d6f1e1a04
- Exhumed: Store dedicated player velocity in Player struct.
...
* Changes implementation in 67c7dd65f9
.
* Cannot rely on the actor's velocity alone as parts of the game modify this, such as getting hit by lava dudes, but game nullifies this at the start of the player's tic.
2023-03-16 12:17:42 +11:00
Mitchell Richters
b42b9de2a2
Revert "- SW: Tune shadow drawing code so that it by default uses the sector's interpolated floorz when possible."
...
This reverts commit 3271c2011e
.
* Fixes #884
* Fixes #892
2023-03-16 11:23:05 +11:00
Mitchell Richters
0d62e6befe
- Exhumed: Optimise UnlinkIgnitedAnim()
from fb97e3c6ca
a bit.
...
* Bad cherry pick caused a stat iteration over the wrong stat number.
* Cleaned up commentary to reflect that we have actors and not so much sprites or an anim array anymore.
2023-03-15 22:52:14 +11:00
Mitchell Richters
07a82508fa
- Blood: Fix palette of actor sprite on 2D automap.
...
* Fixes #846 .
2023-03-15 22:22:52 +11:00
Mitchell Richters
a4bca328bc
- SW: Remove Player::siang
since we have the same data in
2023-03-15 19:57:45 +11:00
Mitchell Richters
7da3c62ea8
- Blood: Repair velocity scaling in ConcussSprite()
.
...
* Issue originates back from 645c606e39
.
* During initial floatification, the velocity addition was changed a mulscale of 16 to 12, quadrupling the amplification.
* A lot's changed since then, but we can restore the size of the velocity by simply dividing the size value by 4x.
* Turned into a reciprocal as well to avoid division.
* Fixes #860 .
2023-03-15 19:42:33 +11:00
Mitchell Richters
39624da390
- SW: Remove getViewHeightDiff()
call in player sprite draw code.
...
* I added this when removing the player's pos vector in lieu of the sprite vector to further smooth out the sprite's Z in chase cam mode, but it just doesn't look good.
2023-03-15 19:42:33 +11:00
sirlemonhead
fb97e3c6ca
PCExhumed: Fixed Ignited sprite anim issue that could cause invalid array access.
...
* Fixes #638 .
2023-03-15 17:20:29 +11:00
Mitchell Richters
2162e51424
- Blood: Amend how QAVs process when game is paused.
...
* Repair of initial implementation in ebdc9c31f2
.
* Fixes #883 .
2023-03-14 21:45:47 +11:00
Mitchell Richters
016016b7ab
- Blood: Fix max weapons slot test preventing slot 12
from being called.
...
* Fixes #891 .
2023-03-14 21:45:46 +11:00
Mitchell Richters
a90665732c
- Clean up other PlayerAngles interfaces for consistency.
2023-03-14 21:45:38 +11:00
Mitchell Richters
62561d863e
- Tidy up PlayerAngles::doPitchKeys()
interface by passing the whole sync packet through.
2023-03-14 21:45:37 +11:00
Mitchell Richters
9ffc65fa48
- Exhumed: Eliminate PlayerInput
struct in favour of InputPacket
object PlayerList::input
.
2023-03-14 21:45:37 +11:00
Mitchell Richters
67c7dd65f9
- Exhumed: Remove PlayerInput::vel
in favour of just using actor's velocity.
2023-03-14 21:45:37 +11:00
Mitchell Richters
73acffac2c
- Exhumed: Move PlayerInput::nItem
to Player
struct as Player::nCurrentItem
.
2023-03-14 21:45:37 +11:00
Mitchell Richters
f77b1007be
- Exhumed: Remove unused PlayerInput::buttons
2023-03-14 21:45:37 +11:00
Mitchell Richters
c73ee5f848
- Exhumed: Move PlayerInput::pTarget
to Player
struct.
2023-03-14 21:45:37 +11:00
Mitchell Richters
18ef460a99
- Tidy up interface for PlayerAngles::doViewPitch()
since we have internal access to the player's actor.
2023-03-14 21:45:36 +11:00
Christoph Oelckers
6c77d1c39e
- Duke: fixed setup of purely scripted enemies,
...
Some band-aid is still needed for the time being.
2023-02-09 17:34:59 +01:00
Mitchell Richters
cbcc4f7729
- SW: Repair pitch setup for all weapons not accounting for the player's view pitch offset.
...
* Long-standing omission from back in 0e3604ac9e
.
2023-02-04 17:18:47 +11:00
Simon
e28088380f
Fix crash in Shadow Warrior when player dies
2023-02-04 17:05:20 +11:00
Mitchell Richters
991ef5c27f
- Minor input tidy-up.
2023-02-04 17:05:18 +11:00
Christoph Oelckers
8052bc7e46
- fixed bad vector addition to incorrect variable.
2023-01-29 09:05:35 +01:00
Christoph Oelckers
4328016963
- move the remaining parts of spawninitdefault to DukeActor::Initialize.
...
This ensures proper execution of all code - spawninitdefault was designed to be the fallback for actors without a special case in spawninit.
2023-01-28 16:33:35 +01:00
Christoph Oelckers
38b278b12d
- fixed enemy setup.
...
All enemies now run a native init function to reduce script-induced problems.
this required adding a NOGRAVITY flag so that the recon can use the same code as well which was the only enemy relying on custom code.
2023-01-28 16:33:15 +01:00
Christoph Oelckers
0db441accb
- scriptified the native parts of the powder keg.
...
This was the last remaining actor with its own native ticking part.
2023-01-28 16:31:46 +01:00
Christoph Oelckers
9f01c87ccb
- scriptified the native part of FireflyFlyingEffect.
2023-01-28 16:31:45 +01:00
Christoph Oelckers
9783b8c402
- scriptified World Tour's flamethrowerflame.
...
The first of 3 mixed native/CON items which are the last things remaining in the main thinker loops.
2023-01-28 16:31:45 +01:00
Christoph Oelckers
dce0afe499
- Blood: fixed application of push velocity.
2023-01-28 12:43:46 +01:00
Christoph Oelckers
432021b8e7
- Exhumed: avoid shade hacks with palette emulation on.
...
This code only makes sense with true color rendering.
2023-01-28 11:44:05 +01:00
Christoph Oelckers
fc547f5ada
- Blood: fixed bad array resize.
2023-01-28 10:59:27 +01:00
Christoph Oelckers
3b8956c728
- Blood: make sure that tracking condition data is always properly initialized.
2023-01-28 10:11:34 +01:00
Christoph Oelckers
33f0d229fa
- Exhumed: fixed bad return values for two HUD functions.
2023-01-21 14:37:57 +01:00
Christoph Oelckers
19a58ddeb0
- Blood: fixed velocity for ejected shell casings.
2023-01-21 14:33:42 +01:00
Christoph Oelckers
9cc7f90410
- Blood: reverted GetSpriteExtents to integer math.
...
The change in precision was enough to make the game misbehave.
2023-01-21 13:56:14 +01:00
Christoph Oelckers
2198782ecb
- SW: make player sounds always follow the source.
...
Let's hope this fixes the issues with weapon sounds.
2023-01-21 12:01:32 +01:00
Christoph Oelckers
81f6899e72
- C++20 constant fixes.
...
Use of enums is deprecated in floating point calculations.
2023-01-21 10:34:44 +01:00
Christoph Oelckers
f6ff02c51e
- Blood: fixed incorrect defaults for relative sound volume in two places
2023-01-18 06:58:37 +01:00
Christoph Oelckers
bb7f00988a
- give Blood's sounds well defined names so they can be defined via SNDINFO.
2023-01-15 16:15:28 +01:00
Christoph Oelckers
841402a776
- allow setting loop points for WAV sounds or other simple formats.
2023-01-15 15:19:21 +01:00
Christoph Oelckers
f1c3a6548f
- use backend pitch features for Duke instead of replicating them on the game side.
2023-01-15 13:18:54 +01:00
Christoph Oelckers
ad0bff921b
- allow setting Duke's relevant sound properties through SNDINFO.
2023-01-15 11:54:24 +01:00
Christoph Oelckers
8001c4041f
- Duke: fixed hitscan vector for pistol's aim check.
2023-01-14 16:48:28 +01:00
Christoph Oelckers
97f14c0e0e
- Duke: fixed projectile offsetting for BOSS2 and BOSS3
2023-01-14 11:53:13 +01:00
Mitchell Richters
62c6131901
- Duke: Make screen backdrop setup the same as the other games.
2023-01-13 11:06:42 +11:00
Mitchell Richters
7f1add4786
- Exhumed: Remove unused local variable left over from 087aa7b2ee
.
2023-01-13 10:34:31 +11:00
Mitchell Richters
c7d2a64af0
- Blood: Use nullAngle
in one place.
2023-01-13 09:03:02 +11:00
Mitchell Richters
8ef7e0e4f3
- Duke: Only draw the screen border when the viewport isn't 100%.
2023-01-13 08:56:12 +11:00
Mitchell Richters
087aa7b2ee
- Exhumed: Tidy up DrawMap()
entrypoint.
2023-01-12 18:59:32 +11:00
Mitchell Richters
c606fc11da
- Add call to resetForcedSyncInput()
for all games.
...
* Blood was missing it.
* If it's pre-added to all games, it never needs thinking about.
2023-01-12 18:59:32 +11:00
Christoph Oelckers
b7799a5a3c
- fix kill counter in Blood (for real this time.)
2023-01-08 20:12:28 +01:00
Christoph Oelckers
d7d4bfe04b
- Blood: use a 3D unit vector to set Blood's projectile velocity.
2023-01-08 19:16:58 +01:00
Christoph Oelckers
532f994ccb
- RR: stop the bowling pins' tumbling animation when they come to a rest.
...
Fixes an original RR bug.
2023-01-08 18:46:42 +01:00
Christoph Oelckers
ff33dd7188
- Duke: fixed bad surface check.
...
Surfaces are not bit flags, they are values.
2023-01-08 18:32:38 +01:00
Mitchell Richters
4f8909db96
- SW: Don't interpolate the player's sprite in InterpSectorSprites()
, it's interpolated elsewhere.
...
* Fixes #845 .
2023-01-08 23:25:45 +11:00
Mitchell Richters
3271c2011e
- SW: Tune shadow drawing code so that it by default uses the sector's interpolated floorz when possible.
...
* Partially addresses #845 .
2023-01-08 23:03:59 +11:00
Christoph Oelckers
7262184d53
- SW: account for invalid player actors being passed to the sound engine.
2023-01-08 12:41:34 +01:00
Mitchell Richters
1f489d5dbe
- SW: Don't back up the actor's Z after changing it in KeepActorOnFloor()
.
...
* This seems completely wrong and kills Z interpolation on slopes, vators, etc.
* Thanks Graf 😁
* Fixes #844 .
* Partially addresses #845 .
2023-01-08 22:24:17 +11:00
Christoph Oelckers
1e3a285534
- Duke: fixed access card activation delay.
2023-01-08 10:34:14 +01:00
Mitchell Richters
165afbbfa9
- SW: Restore lost SetAngleFromChange(actor)
call from previous commit.
2023-01-07 22:49:22 +11:00
Christoph Oelckers
ae6af08cf1
- SW: cleaned up SlopeBounce and fixed some bad math.
2023-01-07 12:23:29 +01:00
Christoph Oelckers
2e35d6a6a8
- Exhumed: account for rounding errors in MoveSectorSprites
...
The formula here left no margin for error and minor rounding errors are inevitable with this code.
2023-01-07 10:45:15 +01:00
Christoph Oelckers
7cf13ed158
- fixed bad angle math in cl_showweapon handler.
2023-01-06 17:22:21 +01:00
Mitchell Richters
9a27cf025f
- Duke: Fix bad setup for stopping Duke's scream when putting the jetpack on.
2023-01-06 22:17:14 +11:00
Mitchell Richters
5e2991acc7
- Duke: Additional fixes for alterang()
.
...
- Initial issue started in 3c1970e9e0
.
- Fix in 4f59e8a3d1
was partial and not enough.
- Ensure delta angle is absolute in if statements as required, but don't use absangle as we need to apply the true delta in the last conditional.
- Fix incorrect random angle addition as compared to older source.
- Fixes #735 .
2023-01-06 21:39:55 +11:00
Mitchell Richters
1d0e9b369e
- Blood: Fix bad spawned actor angle for actFireMissile()
.
...
* Originating from a8cc6c1189
.
* Fixes #837 .
2023-01-06 17:55:40 +11:00
Mitchell Richters
1438bb5e80
- Blood: Ensure actor's XY pos is updated before calling Z slope utils.
...
* Originates from efc832ca5c
.
* Fixes #833 .
2023-01-06 17:08:56 +11:00
Mitchell Richters
f69bfe4959
- SW: Remove leftover debug prints from previous commit.
2023-01-06 12:10:19 +11:00
Christoph Oelckers
32ce8a97bf
- SW: do not double interpolate sectors that are both part of a sector object but also have a global interpolation attached.
...
In this case the SO interpolation must be skipped. The only use case for this combination is sine-wave animated water.
2023-01-05 19:26:42 +01:00
Mitchell Richters
179ec32d5f
- SW: Fix automap sprite angle which was not right with unsynchronised input.
2023-01-05 21:00:32 +11:00
Mitchell Richters
ba364a1cb6
- Duke: Fix automap sprite angle which was not right with unsynchronised input.
2023-01-05 21:00:31 +11:00
Mitchell Richters
676cdba259
- Blood: Adjust VDoorBusy()
setup from e133985fa0
.
...
* Changes to case 3 while visibly different, actually equates to the same algorithm for case 0.
* Revert case 3 back to original condition and send through 0 to `ZTranslateSector()` in `VDoorBusy()` if its 3 and we're not vanilla.
2023-01-05 20:59:14 +11:00
Mitchell Richters
a93342df85
- Duke: Only store one VMValue
member on the stack in CallInitialize()
.
2023-01-05 20:56:04 +11:00
Christoph Oelckers
220c1f0e76
- make sure the RPG's start spund plays.
...
This fix is just a temporary workaround due to the incomplete scriptfication
2023-01-04 20:20:10 +01:00
Mitchell Richters
a36cb45421
- Blood: Add VanillaMode()
test to previous commit.
2023-01-03 09:01:37 +11:00
Mitchell Richters
e133985fa0
- Blood: Adjust sine wave in GetWaveValue
for 4th type to use full curve of the wave.
...
* Initial setup would cause a very abrupt stop when coming to the top of an elevator, such as the one in E1M5.
* This would continue for an abrupt fall, causing the floor to essentially give out underneath the player or a dude actor.
* Lengthened wave allows the wave to start off softly and finish softly, with the elevator fastest in the middle of motion.
* Fixes #778 .
2023-01-02 23:42:37 +11:00
Mitchell Richters
95f05d51c5
- Blood: Increase precision of values used within GetWaveValue()
.
2023-01-02 23:26:54 +11:00
Mitchell Richters
30cacb1a70
- Blood: Fix bad cherry pick in bcd2d82bc7
.
2023-01-02 19:33:51 +11:00
bcd2d82bc7
- Blood: Allow fire button to be used for tnt/spray throw
...
Prevent alt fire blocking fire button for tnt/spray can throwing
* Advised of fix to Raze here: https://github.com/nukeykt/NBlood/pull/654#issuecomment-1253886969
* Fixes #671 .
2023-01-02 19:24:38 +11:00
Mitchell Richters
c5f27f28b7
- SW: Tidy up the player sprite pos variable a little.
2023-01-02 17:06:01 +11:00
Mitchell Richters
577099284f
- SW: Increment PlayClock
at the end of the tic, not at the start.
2023-01-02 16:49:02 +11:00
Mitchell Richters
deef767c5d
- Blood: Fix some nullptr issues in checkHit()
and checkFloorHit()
.
...
* Fixes #834 .
2023-01-02 15:02:57 +11:00
Mitchell Richters
b03d674a74
- SW: Fix tank track velocity.
...
* Originating from 8efe6f638b
.
* Velocity was correctly floatified initially but because it was unwrapped, it never got adjusted for Q28.4 later on.
2023-01-02 14:41:43 +11:00
Mitchell Richters
56d9ccfc9c
- SW: Fix tank tracks not working.
...
* Originating from 0c146e7ccb
.
2023-01-02 14:39:43 +11:00
Mitchell Richters
7760eff4ba
- SW: Fix issue with RC tank in $seabase.
...
* Originated from 8efe6f638b
.
* I'm sure this was meant to be 0.05, but became 0.5 by mistake.
* Use something closer to `12800. / 262144.`.
* Fixes #831 .
2023-01-02 14:36:55 +11:00
Mitchell Richters
f431d51c2f
- SW: Add inertia correction to PlayerWarpUpdatePos()
.
...
* Warping between sectors such as the clouds in $volcano now maintains perfect velocity, etc.
2023-01-02 11:53:10 +11:00
Mitchell Richters
ac13bd81af
- Fix bad Z test in WarpPlane()
.
...
* Originates from incomplete change in 7eba7aacbd
.
* Fixes #832 .
2023-01-02 11:00:47 +11:00
Christoph Oelckers
c72f5e2242
- SW: SECT_WALL_MOVE must consider tilenum 0 as 'no change'.
2022-12-29 14:40:18 +01:00
Christoph Oelckers
d064706f93
- got rid of wallpicnum and overpicnum.
...
All map geometry npw uses texture IDs and no longer depends on Build's tile system.
(What's missing is a new map format, though, but this was a necessary prerequisite to make that worthwile...)
2022-12-29 14:14:53 +01:00
Christoph Oelckers
f5e9e7d981
- got rid of most remaining references to wallpicnum and overpicnum.
...
What remains now needs changing the variables to texture IDs first.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
90702ae2f5
- consolidated the animwall code by using texture flags.
...
This is way too hacky for generalization. For that newly defined control actors are surely a better option.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
bfdfff7a42
- named all of SW's breakable wall textures.
...
We need this later when these get exported.
2022-12-29 14:14:53 +01:00
Christoph Oelckers
b980789ddf
- skip switch animation checks for custom switch actors.
2022-12-29 14:01:39 +01:00
Christoph Oelckers
95a2b85fae
- migrated the rest of the switch code to use the external data.
2022-12-29 13:35:21 +01:00
Christoph Oelckers
0c0199fbdc
- same procedure for wall switches
2022-12-29 13:33:02 +01:00
Christoph Oelckers
d9122a0482
- split out the sprite switch toggle handler into a common subfunction using the switch definitions.
2022-12-29 13:33:02 +01:00
Christoph Oelckers
4191a9493a
- split RRRA's tag10000specialswitch into a subfunction.
...
Unfortunately I have no idea where this gets used so it's untested for now.
2022-12-29 13:33:02 +01:00
Christoph Oelckers
97a5fc2948
- did a clean reimplementation of resetswitch.
2022-12-29 13:33:02 +01:00
Christoph Oelckers
564e9d2905
- use switch types to cut doen the first switch/case block in checkhitswitch
2022-12-29 13:33:01 +01:00
Christoph Oelckers
808fb3c433
- simplified several switch check blocks using the data from the definition files.
2022-12-29 13:32:30 +01:00
Christoph Oelckers
2386ea9930
- implemented the 3 special switches
...
That's the developer commentary icon in World Tour, the deactivation switch for the chicken processing plant in RR and one shootable alarm bell in RRRA.
2022-12-29 13:32:30 +01:00
Christoph Oelckers
0d9fe83cba
- implemented the switch parser and set up the external definitions.
2022-12-29 13:32:29 +01:00
Mitchell Richters
22f5c69b4c
- Duke: Fix bad checkaccessswitch_*()
calls.
...
* Fixes #815 .
2022-12-29 22:45:36 +11:00
Mitchell Richters
e528c3fbb8
- SW: Repair whoopsie in BunnyCheat()
.
2022-12-29 21:50:29 +11:00
Mitchell Richters
1d69ebe9b0
- Duke: Ensure that the expander hitscans when autoaim is "hitscan only".
...
* Fixes #827 .
2022-12-29 21:17:41 +11:00
Mitchell Richters
fbee05e760
- SW: Restore two original cheat codes lost long ago.
...
* Fixes #810 .
2022-12-29 20:59:19 +11:00
Mitchell Richters
9d5bae0c8e
- SW: Fix clipmove call within DoPlayerMoveVehicle()
.
...
* Originating from 05ad1e38e9
.
* Fixes #829 .
2022-12-29 20:32:58 +11:00
Mitchell Richters
ca2a427379
- SW: Re-add CVAR_SERVERINFO
back to sw_ninjahack
but leave commented out, it may be needed later.
2022-12-29 19:41:41 +11:00
Mitchell Richters
6065140f68
- SW: Remove CVAR_SERVERINFO
flag from sw_ninjahack
and take them out of the global space.
2022-12-29 19:36:18 +11:00
Mitchell Richters
b0b2f1bf1b
- SW: Only bring the weapon back up after doing chops if not on a vehicle with a weapon.
2022-12-29 19:25:17 +11:00
Mitchell Richters
c240c8e6ee
- SW: Fix two bad calls to pushmove()
where a fixed point adjustment was used.
...
* Came in from 3ac4e7ed2d
.
* Fixes #816 .
2022-12-29 19:02:56 +11:00
Mitchell Richters
dcd0e62466
- SW: Remove call to doYawKeys()
from DoPlayerDeathFollowKiller()
.
2022-12-29 14:35:42 +11:00
Mitchell Richters
96e8565ba7
- Blood: Reset player's render angle state only for the console player.
2022-12-29 14:35:42 +11:00
Mitchell Richters
572ec96467
- SW: Reset player's render angle state only for the console player.
2022-12-29 14:35:41 +11:00
Mitchell Richters
7593114fc7
- SW: Tidy up UpdatePlayerSprite()
a bit.
2022-12-29 14:35:41 +11:00
Mitchell Richters
774c7795b1
- SW: Apply same fix to DoPlayerClimb()
.
2022-12-29 14:35:38 +11:00
Mitchell Richters
7e1e447f98
- SW: Apply same fix to DoPlayerFly()
.
2022-12-29 14:27:59 +11:00
Mitchell Richters
09304ef298
- SW: Fix player diving height issues.
...
* Fixes #822 .
2022-12-29 14:27:59 +11:00
Mitchell Richters
6c7797a9f0
- SW: Clean up some noisy commented out calls to DoPlayerHeight()
.
2022-12-29 13:50:27 +11:00
Mitchell Richters
adc2396f31
- Duke: Extend fix from previous commit to appropriately resize the VMValue
array also.
2022-12-24 15:41:37 +11:00
CandiceJoy
a943652799
Fixed a Mac debug build crash where CallAnimate attempted to pass one too many parameters to the VM.
2022-12-23 10:38:59 +01:00