Christoph Oelckers
d34bad3045
- adapted game side code.
2023-08-19 19:41:40 +02:00
Christoph Oelckers
2095a2120c
- consolidated the 4 ReadSound functions.
2023-08-19 18:11:19 +02:00
Christoph Oelckers
3c695a5abd
- adapted to backend changes.
2023-08-19 18:08:27 +02:00
Christoph Oelckers
20b96501b6
- moved rnd_plasma into global space again.
...
C++'s init rules for local static variables are so dumb that this will cause undefined behavior with the RNG management, it's also very inefficient.
2023-08-03 12:55:23 +02:00
Kevin Caccamo
80ac9f6416
Fix a memory write issue with plasma_{A,B,C}
...
plasma_A[5] = {}; will write the default value for int to the sixth element of plasma_A, causing a global-buffer-overflow.
I assume the intention here was to fill these three arrays with zeroes, which is what I did with the memset calls.
2023-07-12 19:13:05 +10:00
Christoph Oelckers
1b2a249243
- got rid of all tile index constants in Exhumed.
2023-05-21 07:42:26 +02:00
Christoph Oelckers
9bf028b7f0
- eliminated use of one more tile index in Exhumed.
2023-05-20 18:27:12 +02:00
Christoph Oelckers
fd9a9232af
- cleanup of Exhumed's 2D code.
2023-05-20 18:08:59 +02:00
Christoph Oelckers
a2b2e2ec87
- got rid of tileHeight and tileWidth.
2023-05-20 18:08:40 +02:00
Christoph Oelckers
11ba136df1
- make autosaving happen immediately for other games than Blood only.
...
Blood does not like it, but for the others it should be ok.
2023-05-19 22:59:47 +02:00
Christoph Oelckers
6e060c2e83
Revert "- Tidy up autosaving for all the games."
...
This reverts commit 10445635cf
.
Contrary to what the reverted commit states, it is absolutely essential to have this delay. Duke and Blood initialize a lot of things in their first tick that are necessary before the world is stable to save.
2023-05-19 22:53:17 +02:00
Christoph Oelckers
ff24711710
-put the remaining directly accessed textures into the aTexIDs arrays for Blood and Exhumed.
2023-05-19 22:51:32 +02:00
Christoph Oelckers
481f139962
- put texture ID lists into a namespace.
...
These conflicted with each other.
2023-05-19 22:51:31 +02:00
Christoph Oelckers
9a703639cb
- final cleanup of Blood/Exhumed changes.
2023-04-29 11:32:04 +02:00
Christoph Oelckers
01b6d9f27f
- eliminated all remaining uses of picnum in Exhumed.
2023-04-29 11:32:03 +02:00
Christoph Oelckers
44e9a66319
- handle 3 more of Exhumed's picnums that were quick to refactor
2023-04-29 11:32:03 +02:00
Christoph Oelckers
0e097903c4
- got rid of a large chunk of picnum accesses in Exhumed.
2023-04-29 11:32:03 +02:00
Christoph Oelckers
44f4104eda
- got rid of the last tilenum uses in Duke.
...
This meant refactoring the crosshair drawer to work on a named texture called "CROSSHAIR" and hard coding the magic numbers for spawndebris.
2023-04-29 09:54:15 +02:00
Mitchell Richters
ef81e713e2
- Exhumed: Clamp off vale in fix from adbd5c3c69
.
...
* Fixes example situations where the player is underwater and smashing against the ceiling, etc.
2023-04-28 19:30:14 +10:00
Mitchell Richters
742d76a4bf
- Exhumed: Tidy up some unnecessarily nested if statements in movespritez()
.
2023-04-27 22:51:30 +10:00
Mitchell Richters
adbd5c3c69
- Exhumed: Fix velocity loss in movespritez()
when warping.
...
* Old code was adjusting the actor's Z to right off the ceiling with no factoring in of the old interpolation position.
* Due to this, we were hitting the `nCamerapos.Z = min(max(nCamerapos.Z, pSector->ceilingz + 1), pSector->floorz - 1);` bounding in the draw code.
* Since game puts you right at the ceiling, we apply this to the old interpolation position, as well as the current position, however we then add their velocity back onto the current position to make the warp seamless.
2023-04-27 22:51:30 +10:00
Mitchell Richters
78df82e1ed
- Exhumed: Clean up loHit
global in move.cpp
.
...
* More lazy arg passing via a global...
2023-04-27 22:51:30 +10:00
Mitchell Richters
4c5339274d
- Exhumed: Fix bad velocity zeroing from ece41ac84c
.
2023-04-27 21:32:36 +10:00
Mitchell Richters
3edc1a5a5a
- Exhumed: Make getSequence()
return a pointer instead of a reference.
...
* Gets rid of the awkward `operator[]()` calls.
* Gets rid of `std::ref()` setup in gun.cpp.
* Ensures a copy isn't made if the caller accidentally leaves off an ampersand.
* Allows us to use a consistent getter for native code and VM exports.
2023-04-27 20:16:14 +10:00
Mitchell Richters
ea7fe0e0b4
- Exhumed: Add fixSeqs()
and use it to patch OOB issue with skulstrt.seq
.
2023-04-26 20:27:28 +10:00
Mitchell Richters
33d4809663
- Exhumed: Ensure sequence data cannot be changed via the getters.
2023-04-26 20:13:26 +10:00
Mitchell Richters
64c47b0385
- Exhumed: Slightly tune damage pushback from previous commit.
...
* The logic here is that the player's running/double speed velocity is scaled by 0.375 in `updatePlayerVelocity()`, so 0.1875 is half of that scale.
2023-04-25 20:07:10 +10:00
Mitchell Richters
64745dff89
- Exhumed: Allow damage pushback behind CVAR cl_exdamagepush
.
...
* Fixes #907 .
* Works in conjunction with ece41ac84c
by using the player actor's velocity.
* Original game blanket reset the sprite/actor's vel each tic which cancelled this out.
* Original damage value is far, far too high. Had to scale it back by 1024 units to make it reasonable!
2023-04-25 19:55:05 +10:00
Mitchell Richters
0a6ff79f4f
- Exhumed: Give runlist_CheckRadialDamage()
a bit of a tidy.
2023-04-25 19:44:25 +10:00
Mitchell Richters
ece41ac84c
- Exhumed: Move player's velocity back into the actor, again.
...
* Was done in 67c7dd65f9
but caused issues.
* Reverted in 3d6f1e1a04
to ensure the game worked as expected.
* Actual problem identified and isolated to remove this duplication.
2023-04-25 19:36:46 +10:00
Mitchell Richters
7c2bd266b9
- Exhumed: Fix incorrect distance check operator for the rat.
2023-04-25 18:39:56 +10:00
Mitchell Richters
fe356f3183
- Exhumed: Fix OOB frame with the rat.
...
* No idea what this does in the original source... plays the first frame of the next sequence?
2023-04-25 18:18:26 +10:00
Mitchell Richters
6004a9fb5a
- Exhumed: Fix bad jump setup from c252b19e9a
.
2023-04-24 23:27:02 +10:00
Mitchell Richters
11181f51f8
- Allow roll input through the packet system, giving us 6DOF for VR usage, etc.
2023-04-24 21:31:21 +10:00
Mitchell Richters
c252b19e9a
- Exhumed: Hook up InputPacket::uvel
to relevant code.
2023-04-24 19:06:48 +10:00
Mitchell Richters
80f2afd6a4
- Exhumed: Slightly tidy up updatePlayerWeapon()
.
2023-04-24 19:06:46 +10:00
Mitchell Richters
e29726370c
- Exhumed: Tidy up two if statements in AIPlayer::Damage()
.
2023-04-24 19:03:04 +10:00
Mitchell Richters
eca8526c11
- Exhumed: Unlimit the SeqNames[]
array.
2023-04-23 19:20:19 +10:00
Mitchell Richters
19501f3ed0
- Exhumed: Fix some typos in comments.
2023-04-23 19:19:47 +10:00
Mitchell Richters
83365a9a14
- Fix typo in menu and clean up leftover variable in Exhumed's doPlayerCameraEffects()
.
2023-04-23 10:20:10 +10:00
Mitchell Richters
71d833f9ea
- Make Exhumed's new view tilting features accessible for all games.
2023-04-22 19:34:53 +10:00
Mitchell Richters
faaffa0d40
- Exhumed: Change formula for cl_exviewtilting 2
.
...
* Makes this proper strafe rolling based on the actual strafe velocity.
* Implement movement rolling as `cl_exviewtilting 3` as well.
2023-04-22 14:10:10 +10:00
Mitchell Richters
b93a2cf61b
- Exhumed: Move UpdateCreepySounds()
into MoveThings()
so its processing time can be clocked.
2023-04-21 21:13:19 +10:00
Mitchell Richters
b958ae2340
- Exhumed: Move bobangle
global into Player struct.
2023-04-21 21:13:19 +10:00
Mitchell Richters
6799322544
- Exhumed: Add view bobbing, with defaults matching intensity of Powerslave Exhumed.
...
* `cl_viewbob` extended from bool to int, and allowing two modes: 1 == Powerslave Exhumed bobbing, 2 == Duke 3D-style bobbing.
* Height and speed of bobbing customisable.
2023-04-21 21:13:19 +10:00
Mitchell Richters
8283895828
- Exhumed: Increase precision of Player::totalvel
.
2023-04-21 21:13:18 +10:00
Mitchell Richters
e0964eef7a
- Exhumed: Add toggle-able jump rebounding.
2023-04-21 21:13:18 +10:00
Mitchell Richters
8255a23833
- Exhumed: Move bTouchFloor
into Player
struct.
...
* No need to save this out either, it's reset at the start of every tic.
2023-04-21 21:13:18 +10:00
Mitchell Richters
bb19997a2c
- Apply pitch/yaw input along-side the key inputs.
...
* Removes a lot of duplicated code.
2023-04-21 21:13:18 +10:00
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
Mitchell Richters
e82981929d
- Exhumed: Make overridesect
global local to movespritez()
.
...
* Fixes #933 .
2023-04-16 19:30:35 +10:00
Christoph Oelckers
ecd0c8c1ff
- fixed a few bad scaling values.
2023-04-15 12:20:10 +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
Mitchell Richters
a68fcfc71c
- Remove GameInterface::getConsoleAngles()
, it's not needed anymore.
2023-04-04 07:02:39 +10:00