Commit graph

7203 commits

Author SHA1 Message Date
Christoph Oelckers
4af7a649b6 move kill/secret management into the shared code
Implemented for Blood so far, this gets rid of gKillMgr and gSecretMgr
2023-10-01 10:07:45 +02:00
Christoph Oelckers
26ba62dc62 Blood: cleanup of INI loading
* use snprintf instead of sprintf
* keep the IniFile object local
* get rid of the FreeGameData interface function, it only existed to free the global INI object.
2023-09-30 22:34:09 +02:00
Christoph Oelckers
bb6d6ae83b replaced Ini-parser with a reworked version from Blood RE.
This was mainly for the license.
2023-09-30 21:47:17 +02:00
Christoph Oelckers
31541fd8ae correct else placement in calebSwimChase. 2023-09-29 20:22:56 +02:00
Christoph Oelckers
e072380470 Blood: fixed bad order of random numbers. 2023-09-29 20:11:34 +02:00
Mitchell Richters
dc8be29354 - Exhumed: Use range-based loop in seq_LoadSequences(). 2023-09-28 22:16:31 +10:00
Mitchell Richters
ad87f9ba54 - Duke: Adjust doVehicleTilting() somewhat.
* Don't adjust and scale the player's roll, we can rely on `player_struct::TiltStatus` alone for this.
* Ensure maximum tilt via full keyboard turn == (20. * 360. / 2048. * 0.5), same as original code.
2023-09-28 22:16:31 +10:00
Mitchell Richters
8f9b413d38 - Always clear object in PlayerAngles::initialize() rather than expecting the caller to do it. 2023-09-28 22:16:30 +10:00
Mitchell Richters
7fa5df934b - Make playercmds[] non-global and pass through as pointer. 2023-09-28 22:16:30 +10:00
Mitchell Richters
ae39645169 - Duke: Slight cleanup on e0e459216d. 2023-09-28 22:16:29 +10:00
Mitchell Richters
4958241c57 - Blood: Slight cleanup on 32480dde16. 2023-09-28 22:16:29 +10:00
Christoph Oelckers
b05b409695 Blood: removed 3 unused members in PLAYER 2023-09-28 11:45:16 +02:00
Christoph Oelckers
f46db83ab3 removed two leftover floatification helpers. 2023-09-28 11:43:14 +02:00
Christoph Oelckers
aea46548bd moved all Is***Sprite function to animatesprite.cpp because that's the only place they still get used from.
Naked sprite pointers have been removed everywhere else.
2023-09-28 11:41:35 +02:00
Christoph Oelckers
7e63ccd57a Blood: get rid of the mirror struct and related data.
This is a relic of Polymost.
2023-09-26 23:34:08 +02:00
Christoph Oelckers
bcad8a85d2 renamed at* fields in gib.cpp 2023-09-26 23:34:08 +02:00
Christoph Oelckers
3625a510d2 took a hint from Blood-RE and replaced that awful reconstructed sorting function with the qsort call it most likely originally was. 2023-09-26 23:34:08 +02:00
Christoph Oelckers
8a0f79141b code cleanup
* gave reverb functions the proper 'S_' prefix for consistency.
* Blood: fixed license of 4 files which do not contain any NBlood code anymore (sound code was completely rewritten, and all such code has long been moved out of d_menu.cpp)
* Blood: renamed VIEWPOS_* constants
2023-09-26 23:30:38 +02:00
Mitchell Richters
e0e459216d - Reduce GameInput::processVehicle() interface by changing three bools to a bitfield. 2023-09-25 19:51:53 +10:00
Mitchell Richters
ce236c795f - Blood: Don't attenuate view rolling when swimming.
* Blood's input and drag system is much more developed than the other games and further attenuation is not needed here.
2023-09-25 17:00:10 +10:00
Mitchell Richters
9ad0af4479 - Blood: Better fix for view rolling under all circumstances.
* Why is everything so difficult in Blood? 😕
* Do StrafeVel drag/resistance before `MoveDude()` as it may never be called if there's no velocity.
* Avoid using `mulscale16r()` in algorithm as we simply don't need to here.
* Move `doRollInput()` call into same area where drag is applied so all the code is concentrated in one spot.
2023-09-25 16:42:11 +10:00
Mitchell Richters
2916fe596f - Blood: Fix view rolling while underwater. 2023-09-24 20:00:11 +10:00
Mitchell Richters
32480dde16 - Ensure all games preserve SB_CENTERVIEW and SB_CROUCH bits upon loading. 2023-09-24 17:22:38 +10:00
Mitchell Richters
ff8cea673e - Duke: Ensure player_struct Serialiser only attempts to set variables when reading, not unconditionally. 2023-09-24 17:21:17 +10:00
Mitchell Richters
29e021b5bf - Move crouch toggling back into the backend so the toggle key can be used as a swim key.
* Reverts 272dfa762d, but is a fresh implementation.
* I doubted anyone was doing this but apparently not.
* Exhumed needed a bit more work as it has very specific underwater checks.
2023-09-24 14:15:49 +10:00
Christoph Oelckers
615267dbd4 - fixed incorrect setup in Blood map loader. 2023-09-23 21:13:03 +02:00
Christoph Oelckers
4bb66fb44e - Duke: Fixed WT fallback for classic sounds in cases the user data does not exist.
currently that's only the case for CRANEGRAB which is aliased because of differences between Duke and RR.
2023-09-23 14:29:41 +02:00
Christoph Oelckers
d96a928738 - Exhumed: fixed sprite positioning issues
Apparently tile #1 has some significance here.
2023-09-23 10:30:52 +02:00
Christoph Oelckers
a41ebfeb73 - Duke: fixed the explosion's lighting hackery.
The animatesprites handler in the old code got called on the already animated sprite, meaning it will only activate for the first frame.
To do this right the code had to be moved to applyanimations and be guarded by a flag.
2023-09-10 20:42:26 +02:00
Christoph Oelckers
230c1b9041 - fix animatesprite loop aborts on sector effectors 2023-09-10 19:55:41 +02:00
Christoph Oelckers
82057bcd5a - Backend update from GZDoom-
This compiles but doesn't run.
2023-08-23 20:36:19 +02:00
Christoph Oelckers
b95a5a4b2b - yet another backend update. 2023-08-20 02:15:57 +02:00
Christoph Oelckers
d34bad3045 - adapted game side code. 2023-08-19 19:41:40 +02:00
Christoph Oelckers
32ede813e9 - new files for backend update. 2023-08-19 18:17:17 +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
76e77d4e64 - Duke: fix enemy counting 2023-08-06 09:59:33 +02:00
Christoph Oelckers
f0623c7098 - fix compilation 2023-08-06 09:22:07 +02:00
Christoph Oelckers
bd078cc3e6 - SW: Clear FinishTimer when starting a new level. 2023-08-03 17:53:25 +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
Christoph Oelckers
c19653262e - Duke: fix management of killit_flag.
This cannot be in the actor because event scripts can be called without a valid actor.
It is now part of the parse state, but execute allows returning it to the caller, which is needed in one place.
2023-07-22 10:24:20 +02:00
Christoph Oelckers
ce34ef2921 - Duke: fixed skill filter handling for CON defined enemies. 2023-07-17 00:32:27 +02:00
Christoph Oelckers
0380ef3b80 - SW: remove redundant ; in sector object serializer.
This caused the animtype field not to be saved.
2023-07-16 10:59:39 +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
1e2b5c2747 - added missing range checks to PlaySpriteSound.
This can be called with attr_none!
2023-06-29 18:28:16 +02:00
Christoph Oelckers
c4cb44f5f0 - RR: thunder may only be triggered when the player sees a sector with an activating texture as sky. 2023-06-19 20:45:16 +02:00
Christoph Oelckers
5bbcb82ef2 - unlimited the number of sectors to have window lightning. 2023-06-19 20:34:04 +02:00
Christoph Oelckers
b31e8dd8b4 - some initial preparations for exporting SW's actors. 2023-06-01 22:07:47 +02:00
Christoph Oelckers
d74c2ba52f - added a few texture names for picnum literals. 2023-05-31 21:53:14 +02:00
Christoph Oelckers
54335f7215 - got rid of the tilenum variant of hud_drawsprite. 2023-05-30 19:08:26 +02:00