Commit graph

772 commits

Author SHA1 Message Date
Christoph Oelckers
cd3288860a - fixed automap player drawing for follpw mode off in all games. 2021-11-29 00:56:32 +01:00
Christoph Oelckers
adf3133fdc - use sectnum and wallnum to get an index from pointers instead of subtracting the array base. 2021-11-29 00:56:26 +01:00
Christoph Oelckers
7126aa22f4 - preparations in the map loader for dynamically sized data storage.
This also consolidates these parts for Blood with the other games.
2021-11-29 00:56:25 +01:00
Christoph Oelckers
12c26976f0 - GetClosestSpriteSectors: replace distance calculation with proper math.
No need to sample multiple points along the wall if we can just properly calculate the actual distance. :)
2021-11-29 00:55:44 +01:00
Christoph Oelckers
d2f0934726 - Blood: cleaned up GetClosestSpriteSectors
using BFSSearch now and avoiding pointless loop to avoid setting the checked bit.
The entire outcome was just as if the bit was never checked inside the loop, so do just that when not running in compatibility mode.
This simplifies the remaining code quite a lot because it now just needs to run over all walls with no special case considered.
2021-11-29 00:55:44 +01:00
Christoph Oelckers
1bbbeb8f4c - Blood: reworked GetClosestSpriteSectors to use dynamic arrays, deleted unused GetClosestSectors.
# Conflicts:
#	source/games/blood/src/aibeast.cpp

# Conflicts:
#	source/games/blood/src/aibeast.cpp
#	source/games/blood/src/gameutil.h
2021-11-29 00:55:43 +01:00
Christoph Oelckers
28eca1a023 ‚char‘ review in Blood - part 2 2021-11-29 00:55:42 +01:00
Christoph Oelckers
5422bff683 ‚char‘ review in Blood - part 1 2021-11-29 00:55:42 +01:00
Christoph Oelckers
53998c9cb7 - Blood: remove unneeded replacement functions.
changespritesect is the only one called from the engine.
2021-11-29 00:55:42 +01:00
Christoph Oelckers
e9c79292ff - Blood: use wider integer types for a few more things
Mainly removing shorts from all function signatures, except the engine replace interface, replacing them either with int or bool, depending on the use case.
2021-11-29 00:55:41 +01:00
Christoph Oelckers
b685163ab1 - Blood: extend all 16 bit fields holding sector or wall indices to 32 bit. 2021-11-29 00:55:41 +01:00
Christoph Oelckers
499dc9953b - reduction of 'short' noise in Blood.
Mainly using int16_t for deliberately sized struct fields, auto for temporary saves of global data and making several local variables full int.
This changes nothing substantial.
2021-11-29 00:55:41 +01:00
Mitch Richters
974ca7bd1d - Remove a lot of reference values on primitive data types from Blood's QAV interpolation system. Also use move assignments on the ignoredata TMap when we're adding it to the game-side after processing it. 2021-11-29 00:55:31 +01:00
Christoph Oelckers
01abe7b2ac - addressed most unused/uninitialized variable warnings from MSVC. 2021-11-29 00:55:30 +01:00
Christoph Oelckers
c6bd5c04c7 - fixed most warnings GCC pointed out in game code. 2021-11-29 00:55:29 +01:00
Mitch Richters
e491d15ff9 - Move InputScale() out of inputstate.cpp and into i_time.cpp as I_GetInputFrac() to make it available to GZDoom for potential future requirements.
* As part of this, feed the output of `I_GetInputFrac()` to `gi->GetInput()` instead of having each game's virtual override calling it locally.
2021-11-29 00:55:01 +01:00
Christoph Oelckers
08bc31e6e2 - use GetIndex function where appropriate. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
ad95033c64 - removed temporary workaround 2021-11-29 00:55:00 +01:00
Christoph Oelckers
40b22a90e9 - Blood: cleaned out some crutches needed to deal with the broken vanilla savegame code.
Raze has fixed its savegame format so that it can fully restore a game session from it.
As a result, nnExtInitModernStuff was never called with 'saveload' set to true and none of this code ever executed.
2021-11-29 00:55:00 +01:00
Christoph Oelckers
b6d00667de - something insignificant that was missed. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
433764fd91 - mark all places using a sprite index that needs addressing with a GetSpriteIndex function. 2021-11-29 00:55:00 +01:00
Christoph Oelckers
c40266625b - moved gInterpolateSprite into DBloodActor 2021-11-29 00:55:00 +01:00
Christoph Oelckers
bac40ddb05 - viewBackupSpriteLoc calls 2021-11-29 00:54:59 +01:00
Christoph Oelckers
98a3564ee6 - use GetIndex for error messages and deleted several unused index variables. 2021-11-29 00:54:59 +01:00
Christoph Oelckers
21a208e59e - eliminated most references to spritetype::extra
This was all places that could have been done earlier but had been overlooked.
2021-11-29 00:54:59 +01:00
Christoph Oelckers
3d63c44aae - GCC warned about this. 2021-11-29 00:54:59 +01:00
Christoph Oelckers
fb95f0fff7 - store an actual actor pointer in PLAYER.
# Conflicts:
#	source/games/blood/src/player.cpp
2021-11-29 00:54:58 +01:00
Christoph Oelckers
812b18e49a - some xsprite cleanup 2021-11-29 00:54:58 +01:00
Christoph Oelckers
3e452994d8 - handle all of gUpper/gLowerLink.
This completes the removal of all access to the global arrays outside of setup code.
2021-11-29 00:54:58 +01:00
Christoph Oelckers
5b9152abfd - eliminated the last access to playerActors in trigger.cpp and made AimTargets a pointer array. 2021-11-29 00:54:58 +01:00
Christoph Oelckers
6dd7cbe8fa - GetCrushedSpriteExtents and leftover bloodActors references. 2021-11-29 00:54:58 +01:00
Christoph Oelckers
d2bc254e03 - the rest of triggers.cpp. 2021-11-29 00:54:57 +01:00
Christoph Oelckers
9349e7bcb1 - several simple functions.
Also two fixes involving trTriggerSprite.
2021-11-29 00:54:57 +01:00
Christoph Oelckers
0ae664e9ca - SetSpriteState 2021-11-29 00:53:57 +01:00
Christoph Oelckers
7e8fc3fe65 - target in UpdateAimVector, teslaHit. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
7d1c81626e - changed all naked Stat/SectIterator loops to use the Blood... variants. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
9016256ac2 - savegame hackery for sequences. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
4e1e9ca0c9 - proper actor managements in SEQINST. 2021-11-29 00:53:56 +01:00
Christoph Oelckers
7204b8e026 - deal with QAV::nIndex.
This was totally redundant. Since the player already gets passed as 'Data', we can just make that pointer a PLAYER type and use it instead to retrieve the playing actor for sound purposes.
2021-11-29 00:53:56 +01:00
Christoph Oelckers
70cd4d9466 - minor sprite[] stuff. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
8f974dc1d8 - the remaining functions of player.cpp. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
fddc213fa8 - made PLAYER::fragger an actor pointer. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
abee5c5eaa - parameters in Pickup functions, getting rid of all (x)sprite[] references in player.cpp. 2021-11-29 00:53:55 +01:00
Christoph Oelckers
07e88e36f6 - ActionScan cleanup plus smaller bits in player.cpp
# Conflicts:
#	source/games/blood/src/player.cpp
2021-11-29 00:53:55 +01:00
Christoph Oelckers
e95936efd6 - made PLAYER::used2 an actor array and renamed it to match its purpose.
Note: Renaming this for savegames is fine, as it's not relevant in singleplayer.
2021-11-29 00:53:54 +01:00
Christoph Oelckers
165b2f29ff - removed last remaining accesses to sprite[] and xsprite[] from nnexts.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
85c4b96177 - removed all access to sprite[] from mirrors.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
826fd7ddb2 - optimized vector math. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
50f9b67598 - removed all sprite[] references from gameutil.cpp. 2021-11-29 00:53:54 +01:00
Christoph Oelckers
7a2c661ff9 - GetZRange 2021-11-29 00:53:54 +01:00
Christoph Oelckers
626deed960 - VectorScan 2021-11-29 00:53:53 +01:00
Christoph Oelckers
0466186440 - HitScan 2021-11-29 00:53:53 +01:00
Christoph Oelckers
c2916259d7 - CheckProximity
# Conflicts:
#	source/games/blood/src/aibeast.cpp
2021-11-29 00:53:53 +01:00
Christoph Oelckers
db75e4d2bf - moved basePath into XSECTOR.
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-11-29 00:53:53 +01:00
Christoph Oelckers
0d2da892e8 - made marker0 and marker1 actor pointers. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
f4b900c540 - moved velocity data into DBloodActor. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
6a8f59e991 - removed remaining direct access to the velocity arrays. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
ff9a86b7b4 - proper way to get player actor. 2021-11-29 00:53:52 +01:00
Christoph Oelckers
1cb98593f1 - removed compatible savegame handling for SPRITEHIT.
This does not need to be preserved, unlike the other refactored global arrays.
2021-11-29 00:53:51 +01:00
Christoph Oelckers
54f70ec1bb - moved baseSprite into DBloodActor. 2021-11-29 00:53:51 +01:00
Christoph Oelckers
14ace49c3e - owner stuff.
This reduces the number of direct references to spritetype.owner by half in the Blood code.
2021-11-29 00:53:51 +01:00
Christoph Oelckers
3b1ba88a41 - gib stuff. 2021-11-29 00:53:51 +01:00
Christoph Oelckers
344e7e840e - remove leftover index dependencies for sprite events. 2021-11-29 00:53:51 +01:00
Christoph Oelckers
245581e00d - cleanup 2021-11-29 00:53:50 +01:00
Christoph Oelckers
b2de1e5209 - added BloodSpriteIterator and BloodLinearSpriteIterator to get rid of explicit loops over the sprite array. 2021-11-29 00:53:50 +01:00
Christoph Oelckers
484d016172 - cleaned up burn code. 2021-11-29 00:53:50 +01:00
Christoph Oelckers
c0b013ac0c - moved gSpriteHit into DBloodActor. 2021-11-29 00:53:50 +01:00
Christoph Oelckers
c34c9deb4e - deleted old condPush variant. 2021-11-29 00:53:50 +01:00
Christoph Oelckers
be0e2a9b93 - todo markers 2021-11-29 00:53:49 +01:00
Christoph Oelckers
3e9bcacc22 - condUpdateObjectIndex + nnExtTriggerObject 2021-11-29 00:53:49 +01:00
Christoph Oelckers
9965245449 - condCheckSprite 2021-11-29 00:53:49 +01:00
Christoph Oelckers
0ff9afde61 - condCheckPlayer + condCheckDude 2021-11-29 00:53:49 +01:00
Christoph Oelckers
9205556b4e - condCheckSector + condCheckWall 2021-11-29 00:53:49 +01:00
Christoph Oelckers
f6e7c5f440 - condCheckMixed + condCheckGame. 2021-11-29 00:53:48 +01:00
Christoph Oelckers
69395383a4 - fix condPush
- better abstraction of the condition storage.

Hiding targetX/Y as much as possible for easier refactoring later.
2021-11-29 00:53:48 +01:00
Christoph Oelckers
f84e2343ca - formatting only. 2021-11-29 00:53:48 +01:00
Christoph Oelckers
9062eb5996 - condError 2021-11-29 00:53:48 +01:00
Christoph Oelckers
fb4fcef2c2 - cleanup 2021-11-29 00:53:48 +01:00
Christoph Oelckers
aef95b52bc - the remaining functions in nnexts.cpp 2021-11-29 00:53:47 +01:00
Christoph Oelckers
ca13a35ccf - formatting
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-11-29 00:53:47 +01:00
Christoph Oelckers
cc4309f7eb - aiPatrolThink + aiPatrolFlagsMgr 2021-11-29 00:53:47 +01:00
Christoph Oelckers
9004b102fe - formatting 2021-11-29 00:53:47 +01:00
Christoph Oelckers
a67da5003a - made voodooTarget a pointer and removed most direct references to target_i. 2021-11-29 00:53:47 +01:00
Christoph Oelckers
bf424b6439 - aiPatrolSearchTargets 2021-11-29 00:53:46 +01:00
Christoph Oelckers
c2ff8b0941 - formatting 2021-11-29 00:53:46 +01:00
Christoph Oelckers
a1d01d5419 - spritesTouching, readyForCrit 2021-11-29 00:53:46 +01:00
Christoph Oelckers
5ff17fec35 - patrolalarm 2021-11-29 00:53:46 +01:00
Christoph Oelckers
ffdb976f5b - marker stuff. 2021-11-29 00:53:46 +01:00
Christoph Oelckers
af7164c91d - partial rework of aiPatrolSetMarker 2021-11-29 00:53:45 +01:00
Christoph Oelckers
f8a4ecc90f - findNextMarker + markerIsNode 2021-11-29 00:53:45 +01:00
Christoph Oelckers
a76f2feb63 - aiPatrolStop API changed to actors. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
7175439496 - aiPatrolStop cleaned up. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
5c1b2bee37 - minor cleanup. 2021-11-29 00:53:45 +01:00
Christoph Oelckers
e11f118d3c - formatting 2021-11-29 00:53:45 +01:00
Christoph Oelckers
2f5be23171 - validate actors before processing them in the event queue. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
118b3e1d70 - all calls to CheckSpriteSect/Stat handled. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
48073a2cd6 - sanitized the abuse of using XSPRITE's target field to pass along some info with explosions.
This is neither safe nor future proof, so now it uses a separate variable.
2021-11-29 00:53:44 +01:00
Christoph Oelckers
146de69169 - some more patrol code. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
4ae32fb223 - first part of patrol code. 2021-11-29 00:53:44 +01:00
Christoph Oelckers
2044f591f2 - formatting and cleanup. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
3928407eae - several is...() functions. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
49879af921 - usePictureChanger 2021-11-29 00:53:43 +01:00
Christoph Oelckers
088fa6690c - reformatting only. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
94ae3c22d5 - final part and cleanup of useTargetChanger. 2021-11-29 00:53:43 +01:00
Christoph Oelckers
6c465dff3c - the fourth block 2021-11-29 00:53:42 +01:00
Christoph Oelckers
dc4c632b08 - the third block. 2021-11-29 00:53:42 +01:00
Christoph Oelckers
ff29570675 - second block. 2021-11-29 00:53:42 +01:00
Christoph Oelckers
c3a1e8f46b - targetactor in the first block of useTargetChanger 2021-11-29 00:53:42 +01:00
Christoph Oelckers
17bd466801 - first pass over useTargetChanger
using 'actor' wherever easily doable.
2021-11-29 00:53:42 +01:00
Christoph Oelckers
d59f78a5f0 - formatting only 2021-11-29 00:53:41 +01:00
Christoph Oelckers
a60617c688 - more use* functions. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
c54dd079fb - formatting only. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
e3b8980ecd - sprite2sectorSlope + useSlopeChanger 2021-11-29 00:53:41 +01:00
Christoph Oelckers
b7465ab67b - spriteGetSlope/spriteSetSlope take spritetype pointer arguments. 2021-11-29 00:53:41 +01:00
Christoph Oelckers
c32ff483a9 - formatting only 2021-11-29 00:53:41 +01:00
Christoph Oelckers
ca131f2dcf - fixed a few oversights. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
c2f6084988 - merged genDudeExtra into DBloodActor. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
017bcb056f - useIncDecGen + setDataValueOfObject 2021-11-29 00:53:40 +01:00
Christoph Oelckers
ab41ac9e05 - formatting only. 2021-11-29 00:53:40 +01:00
Christoph Oelckers
239faad4c5 - useSoundGen 2021-11-29 00:53:39 +01:00
Christoph Oelckers
a8ee9b3969 - useUniMissileGen 2021-11-29 00:53:39 +01:00
Christoph Oelckers
c65c936d27 - useCondition + 2021-11-29 00:53:39 +01:00
Christoph Oelckers
24a11b3f2f - txIsRanged and several of its callers. 2021-11-29 00:53:39 +01:00
Christoph Oelckers
174783e57b - formatting only 2021-11-29 00:53:39 +01:00
Christoph Oelckers
a4f7fabbfa - modernTypeOperateSprite 2021-11-29 00:53:39 +01:00
Christoph Oelckers
fe3da5eaab - split off formatting 2021-11-29 00:53:38 +01:00
Christoph Oelckers
766999118c - sectorKillSounds + useDudeSpawn 2021-11-29 00:53:38 +01:00
Christoph Oelckers
3761424501 - the remaining AIFight stuff. 2021-11-29 00:53:38 +01:00
Christoph Oelckers
a5471b1079 - aiFightDudeIsAffected + aiFightGetDudesForBattle 2021-11-29 00:53:38 +01:00
Christoph Oelckers
55716c9409 - aiFightGet(Fine)TargetDist 2021-11-29 00:53:38 +01:00
Christoph Oelckers
baf4bb0785 - formatting only. 2021-11-29 00:53:37 +01:00
Christoph Oelckers
57c3571555 - several aiFight functions. 2021-11-29 00:53:37 +01:00
Christoph Oelckers
ca3d7c9bdf - formatting only 2021-11-29 00:53:37 +01:00
Christoph Oelckers
78cbb4ed0a - aiFightGetTargetInRange 2021-11-29 00:53:37 +01:00
Christoph Oelckers
a449d97b86 - modernTypeTrigger 2021-11-29 00:53:37 +01:00
Christoph Oelckers
ea8166871a - formatting only. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
43e9e07910 - 2 modernType functions. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
1ff6dc7c69 - useSeqSpawnerGen 2021-11-29 00:53:36 +01:00
Christoph Oelckers
c59a6bbb86 - clean up some loops 2021-11-29 00:53:36 +01:00
Christoph Oelckers
9714febaab - eliminated the actPostSprite wrapper with an index parameter. 2021-11-29 00:53:36 +01:00
Christoph Oelckers
e0f1948ccc - wrapped all setsprite calls in Blood and adapted a few leftover uses of the index version of actPostSprite. 2021-11-29 00:53:35 +01:00
Christoph Oelckers
5cda9d0858 - tabified two files in Duke that were missed somehow, plus some comment cleanup elsewhere. 2021-11-29 00:53:35 +01:00
Christoph Oelckers
b54d3f3567 - useSpriteDamager + damageSprite 2021-11-29 00:53:35 +01:00
Christoph Oelckers
1689efe698 - useEffectGen + useSectorWindGen 2021-11-29 00:53:35 +01:00
Christoph Oelckers
1847b905ba - useTeleportTarget 2021-11-29 00:53:35 +01:00
Christoph Oelckers
f21dc51207 - usePropertiesChanger 2021-11-29 00:53:34 +01:00
Christoph Oelckers
cd98e940aa - useObjResizer 2021-11-29 00:53:34 +01:00
Christoph Oelckers
63ae861765 - DropVoodooCb 2021-11-29 00:53:34 +01:00
Christoph Oelckers
be9e423d7c - trPlayer* functions. 2021-11-29 00:53:34 +01:00
Christoph Oelckers
470f82bc26 - Blood: fixed loading of actors with extended AI states. 2021-11-29 00:51:35 +01:00