Commit graph

571 commits

Author SHA1 Message Date
Mitch Richters
79b3e10f2a - Blood: Replace internals of Sin() to use sintable[] array instead of costable[] array. 2021-10-30 10:24:15 +02:00
Mitch Richters
ead877450d - Blood: Replace CosScale16() with bsin() from backend. 2021-10-30 10:24:15 +02:00
Mitch Richters
3ec1767791 - Blood: Replace SinScale16() with bsin() from backend. 2021-10-30 10:24:15 +02:00
Mitch Richters
e699c264f0 - Blood: Fix missed change integer to enum change for StartQAV() call missed from 77704d54d9. 2021-10-30 10:24:15 +02:00
Mitch Richters
98d3850b95 - Blood: Fix horizon adjustment for death camera to avoid Fixed > Float > Fixed conversion. 2021-10-30 10:24:14 +02:00
Christoph Oelckers
7ebe492e94 - fixed map-spawned actor indexing in Blood.
This is needed for error reporting and the secret hint system.
2021-10-24 09:11:43 +02:00
Christoph Oelckers
da817a234b - fixed bad actor use in actCheckDudes. 2021-10-24 00:06:02 +02:00
Mitch Richters
d30c94c709 - Blood: Re-fix lighter when changing from TNT to aerosol.
* Fixes #564.
2021-10-20 20:58:10 +11:00
Mitch Richters
fc73c67bb1 - Blood: Fix TNT pickup accidentally equipping player with voodoo doll.
* Fixes #544.
* Thanks to @carnivoroussociety for pointing me in the right direction.
2021-10-20 19:58:07 +11:00
Christoph Oelckers
1214f8ba00 - properly macro-fy parsed strings from Blood's INI. 2021-10-19 21:49:03 +02:00
Mitch Richters
df88b23f63 - Blood: Backport GDX fix for lighter just appearing when switching to the aerosol.
* Fixes #564.
* Thanks to @carnivoroussociety for the heads up.
2021-10-19 11:20:44 +11:00
Christoph Oelckers
2396c89fb9 - migrated EVENT to use its actor pointer. 2021-10-14 21:59:49 +02:00
Christoph Oelckers
f430c28f88 - split up evSend
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-10-14 21:59:49 +02:00
Christoph Oelckers
efc791ee00 - route all remaining calls to evPost and evKill through type specific variants. 2021-10-14 21:59:41 +02:00
Christoph Oelckers
b64aede68e - made patrolBonkles local to the only function using this array. 2021-10-14 20:31:45 +02:00
Christoph Oelckers
71b144023d - renamed evPost to evPostActor and evKill to evKillActor for clarity. 2021-10-14 20:31:17 +02:00
Christoph Oelckers
0ab33b7ffe - need to pass the actor separately to getDataFieldOfObject.
We cannot use rxindex anymore.
2021-10-14 20:28:56 +02:00
Christoph Oelckers
e32ac93d96 - use the actor pointer in rxBuckets. 2021-10-14 20:27:36 +02:00
Christoph Oelckers
b449e0a43b - event redirectors for rxBuckets. 2021-10-14 20:26:42 +02:00
Christoph Oelckers
40a8cd7fa3 - playerQavSceneProcess handled for rxBuckets 2021-10-14 20:25:10 +02:00
Christoph Oelckers
db9d4efdc9 - handled 4 aiFight functions for rxBuckets. 2021-10-14 19:53:08 +02:00
Christoph Oelckers
0ef388538d - refactored 'mate' function for rxBucket. 2021-10-14 19:51:49 +02:00
Christoph Oelckers
1d04ce90e4 - first batch of rxBucket refactoring. 2021-10-14 19:49:18 +02:00
Christoph Oelckers
5d0086cb49 - renamed RXBUCKET.index to rxindex.
This will be needed for refactoring for easier lookup.
2021-10-14 19:41:22 +02:00
Christoph Oelckers
93e909dd58 - use actors in the CFX interface. 2021-10-14 19:41:01 +02:00
Christoph Oelckers
77c827e817 - renamed evKill and added an actor pointer to EVENT struct. 2021-10-14 19:37:53 +02:00
Christoph Oelckers
1e1764eda6 - got rid of fxSpawn. 2021-10-14 19:36:25 +02:00
Christoph Oelckers
085bd3a165 - replaced all fxSpawn calls with fxSpawnActor. 2021-10-14 19:35:05 +02:00
Christoph Oelckers
fbe2373972 - started cleanup of evPost calls by renaming the internal functions.
This just renames things - no changes in functionality.
2021-10-14 19:07:51 +02:00
Christoph Oelckers
2a1f31581c - added null pointer checks to all event callback functions. 2021-10-14 19:07:24 +02:00
Christoph Oelckers
add368433e - sanitized callback interface. 2021-10-14 19:07:00 +02:00
Christoph Oelckers
143e947839 - renamed variable for consistency. 2021-10-14 19:02:48 +02:00
Christoph Oelckers
562968262c - moved spriteMass into DBloodActor 2021-10-14 19:01:10 +02:00
Christoph Oelckers
5519596a94 - refactored global sprite index arrays into pointer arrays. 2021-10-14 18:43:56 +02:00
Christoph Oelckers
b60caa362e - fixed bad merge 2021-10-14 01:15:05 +02:00
Christoph Oelckers
62d0d3712e - use a sprite flag to mark mapped sprites.
This avoids another global array which needs to be addressed by sprite index.
2021-10-14 15:09:43 +02:00
Christoph Oelckers
88e86b4248 - added 0 checks to all divisions for calculating dudeSlope.
I had it happen once that an actor was targeting itself here which resulted in zero distance and a division by zero exception.
2021-10-14 00:06:34 +02:00
Christoph Oelckers
895ecc81bc - const-ified some static arrays.
# Conflicts:
#	source/games/blood/src/nnexts.cpp
2021-10-12 21:36:42 +02:00
Christoph Oelckers
3ea4c94266 - removed a few static array references. 2021-10-12 21:36:42 +02:00
Christoph Oelckers
a318129ff3 - iterators in ambient sound code. 2021-10-12 21:36:41 +02:00
Christoph Oelckers
3454fc397e - a few target_i removed.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-10-12 21:36:41 +02:00
Christoph Oelckers
dc5d32f510 - two missed iterators. 2021-10-12 21:36:41 +02:00
Christoph Oelckers
13348ca428 - a tiny bit of code cleanup. 2021-10-12 21:36:41 +02:00
Christoph Oelckers
b240d2b5bd - aiunicult.cpp is done. 2021-10-12 21:36:41 +02:00
Christoph Oelckers
013eadfd9f - genDudePrepare 2021-10-12 21:36:18 +02:00
Christoph Oelckers
fb5916a3dd - canSwim et.al. 2021-10-12 21:29:12 +02:00
Christoph Oelckers
acec23e034 - ensure the 'slave' array in genDudeExtra is always free of gaps.
This will ensure that adding entries won't accidentally overwrite things.
2021-10-12 21:29:11 +02:00
Christoph Oelckers
6bee3b5ba0 - updateTargetOfSlaves, also storing the slave data as pointers and major cleanup of this function. 2021-10-12 21:29:11 +02:00
Christoph Oelckers
c42e26351e - genDudeSpawn, genDudeTransform and updateTargetOfLeech. 2021-10-12 21:29:11 +02:00
Christoph Oelckers
e41fcb92ab - cleanup and formatting noise again. 2021-10-12 21:29:11 +02:00
Christoph Oelckers
f4fd2a770b - dudeLeechOperate 2021-10-12 21:29:11 +02:00
Christoph Oelckers
e415d93283 - doexplosion 2021-10-12 19:23:25 +02:00
Christoph Oelckers
b1f55434a2 - getRecoilChance + getDodgeChance 2021-10-12 19:23:25 +02:00
Christoph Oelckers
b70368050a - getDispersionModifier and getRangeAttackDist. 2021-10-12 19:23:25 +02:00
Christoph Oelckers
9801ce25dd - scaleDamage 2021-10-12 19:23:24 +02:00
Christoph Oelckers
544145fe4b - reformatting noise split from a larger commit. 2021-10-12 19:23:24 +02:00
Christoph Oelckers
c715ded287 - dudeIsMelee 2021-10-12 19:23:24 +02:00
Christoph Oelckers
eb478ba580 - getNextIncarnation
Event queue handling not refactored yet.
2021-10-12 19:23:24 +02:00
Christoph Oelckers
d892efb78a - killDudeLeech 2021-10-12 19:23:24 +02:00
Christoph Oelckers
040049f83e - more leech stuff.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-10-12 19:23:23 +02:00
Christoph Oelckers
d2f16ec8ab - leechIsDropped, pLifeLeech 2021-10-12 19:23:23 +02:00
Christoph Oelckers
d907627156 - spriteIsUnderwater 2021-10-12 19:23:23 +02:00
Christoph Oelckers
75258c8b29 - playGenDudeSound. 2021-10-12 19:23:23 +02:00
Christoph Oelckers
ea63229251 - some minor cleanup in aiunicult.cpp.
# Conflicts:
#	source/games/blood/src/aiunicult.cpp
2021-10-12 19:23:22 +02:00
Christoph Oelckers
05571de93a - genDudeUpdate handled. 2021-10-12 19:23:22 +02:00
Christoph Oelckers
49f75e6f51 - 2 more function changed to use actor parameters. 2021-10-12 19:23:22 +02:00
Christoph Oelckers
805ae48607 - ThrowThing cleanup.
Mostly use of VS's rename function.
2021-10-12 19:23:22 +02:00
Christoph Oelckers
c848518746 - use actor parameter in all calls to aiGenDudeNewState.
# Conflicts:
#	source/games/blood/src/aiunicult.cpp
2021-10-12 19:23:22 +02:00
Christoph Oelckers
9de6c7df46 - reformatting commit.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-10-12 19:23:22 +02:00
Christoph Oelckers
062b3dbf76 - route all access to genDudeExtra through the method in DBloodActor 2021-10-12 19:23:21 +02:00
Christoph Oelckers
cdacf8e470 - fixed badly resolved merge conflict 2021-10-12 00:07:24 +02:00
Christoph Oelckers
64b67291bc - properly write out the genPatrolStates in savegames. 2021-10-11 23:41:44 +02:00
Christoph Oelckers
f370c0f22f - fixed bad null check in aiProcessDudes. 2021-10-11 23:41:04 +02:00
Christoph Oelckers
c6dc564788 - fixed bad target check (again.) 2021-10-11 23:34:49 +02:00
Christoph Oelckers
351dabdb90 - actFireMissile. 2021-10-10 22:36:12 +02:00
Christoph Oelckers
bbe49eee7c - reformatting commit 2021-10-10 11:47:18 +02:00
Christoph Oelckers
c485fce958 - reformatted the actor and ai sources. 2021-10-10 11:47:18 +02:00
Christoph Oelckers
0ee81b2bb8 - refactored the remaining pieces in the ai code to use actors. 2021-10-10 11:47:18 +02:00
Christoph Oelckers
d4439b879c - Blood: added checks to the SEQ code to handle situation where their attached object has been removed from the game. 2021-10-10 11:46:38 +02:00
Christoph Oelckers
62502439d7 - eliminated HITINFO.hitsprite.
This was one of the more annoying sprite index variables because it is part of static global data.
2021-10-09 23:09:09 +02:00
Christoph Oelckers
9b4ee3dc2c - some remaining sprite[] access in ai.cpp
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-10-09 23:09:08 +02:00
Christoph Oelckers
f712a674ce - removed the few remaining uses of actDamageSprite_. 2021-10-09 23:09:08 +02:00
Christoph Oelckers
3ab636a13a - sfxPlay3DSound calls partially migrated. 2021-10-09 23:09:08 +02:00
Christoph Oelckers
741d24b9df - iterators in teslaHit. 2021-10-09 23:09:07 +02:00
Christoph Oelckers
ea7ff0b5eb - parameter stuff in a few weapon functions. 2021-10-09 23:09:07 +02:00
Christoph Oelckers
e64e359d07 - iterators in StompSeqCallback 2021-10-09 23:09:07 +02:00
Christoph Oelckers
39b9ddc04c - target stuff in aiInitSprite 2021-10-09 23:09:07 +02:00
Christoph Oelckers
b8d55feb1e - actor parameter substitution and a few bad constants. 2021-10-09 23:08:44 +02:00
Christoph Oelckers
fbae41ee0a - renamed the sprite variant of aiDamageSprite. 2021-10-09 23:08:43 +02:00
Christoph Oelckers
bbe3f333fa - replaced some GetSpriteExtents calls with GetActorExtents. 2021-10-09 23:08:43 +02:00
Christoph Oelckers
44b0e59127 - aiProcessDudes and aiInitSprite done, completing the main pass over ai.cpp. 2021-10-09 23:08:43 +02:00
Christoph Oelckers
29e245dfce - aiProcessDudes, getting rid of the global cumulDamage array and some reformatting 2021-10-09 23:04:29 +02:00
Christoph Oelckers
6968a072ae - another formatting-only commit.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-10-09 23:04:29 +02:00
Christoph Oelckers
fe92188b0c - removed the dudeIsPlayingSeq variant taking a sprite parameter. 2021-10-09 23:03:09 +02:00
Christoph Oelckers
890cc4947b - use actor parameters for aiSetTarget and aiActivateDude in several places. 2021-10-09 23:03:09 +02:00
Christoph Oelckers
61d9cd1b17 - switched all aiPlay3DSound calls to use actors. 2021-10-09 23:02:40 +02:00
Christoph Oelckers
bdba52aede - refactored aiDamageSprite. 2021-10-09 23:02:20 +02:00
Christoph Oelckers
8606b2ea5a - fixed warnings in Blood. 2021-10-08 19:09:26 +02:00
Christoph Oelckers
9b047c771c - reformatting of aiDamageSprite, no logic change here. 2021-10-07 22:54:18 +02:00
Christoph Oelckers
c8501f8ea6 - refactored aiSetTarget 2021-10-07 22:54:18 +02:00
carnivoroussociety
e6e9bac04b Add ifdef'd correct code for DUDEEXTRA struct saving 2021-10-07 22:51:43 +02:00
carnivoroussociety
8998d92688 Restore original savename variables for DUDEEXTRA struct 2021-10-07 22:51:42 +02:00
carnivoroussociety
8dbd0f10d3 Refactored DUDEEXTRA struct and correctly init state
# Conflicts:
#	source/games/blood/src/aiboneel.cpp
#	source/games/blood/src/aicerber.cpp
#	source/games/blood/src/aigarg.cpp
#	source/games/blood/src/aighost.cpp
#	source/games/blood/src/aitchern.cpp
2021-10-07 22:51:42 +02:00
Christoph Oelckers
8168c6f85c - use the vel() wrappers in a few more places. 2021-10-07 22:48:08 +02:00
Christoph Oelckers
595893a9a0 - added a few more ValidateTarget calls. 2021-10-07 22:48:08 +02:00
Christoph Oelckers
a3a5e7e90b - renamed aiSetTarget. 2021-10-07 22:48:08 +02:00
Mitch Richters
5732ea0233 Revert "- Blood: Use more precision for flicker, quake and tilt effects."
This reverts commit 3c09f41b43.

* Fixes #554.
2021-10-05 08:43:32 +11:00
Christoph Oelckers
95acafdbac - manual update of NBlood commit 24908021f3b844a73de05632565d55d5b71b577c
- Fix kModernCustomDude is not inheriting sprite size if SEQ have zero repeats
- Damage scale tweaks for kModernCustomDude
- Fix hitscan kModernCondition
2021-09-19 16:35:02 +02:00
Christoph Oelckers
1732d206bd - Blood: fixed flare gun no longer being able to set trees on fire.
Somehow a bad damage type got in here...
2021-09-18 20:13:05 +02:00
Christoph Oelckers
11aea1c5d4 - more target replacements. 2021-09-17 20:49:27 +02:00
Christoph Oelckers
b9f6120380 - handle target validations in AI functions properly.
Now they will all print the function name along with the message and not rely on assert abuse.
2021-09-17 20:49:27 +02:00
Christoph Oelckers
261301bdea - replacing target_i, batch 1.
This was the simple stuff, mostly done by search&replacing common patterns.
2021-09-17 20:49:27 +02:00
Christoph Oelckers
90091965ba - replaced most occurences of target_i in already refactored code. 2021-09-17 20:49:27 +02:00
Christoph Oelckers
7a6629ce6a - renamed XSPRITE::target to target_i.
This is to make searching for it easier as 'target' is a very common word in the source.
2021-09-17 20:49:26 +02:00
Christoph Oelckers
774a015e6b - aiChooseDirection and its subfunctions. 2021-09-17 20:49:26 +02:00
Christoph Oelckers
a79d362b40 - dudeIsPlayingSeq + aiPlay3DSound. 2021-09-17 20:49:26 +02:00
Christoph Oelckers
7054313dd4 - formatting only. 2021-09-17 20:49:26 +02:00
Christoph Oelckers
00d0099333 - removed a few compatibility wrappers. 2021-09-17 20:49:26 +02:00
Christoph Oelckers
6a1ffca34f - actCheckExplosion, removed array access from SEQ callbacks in actor.cpp and renamed the two which still had assembly names. 2021-09-17 20:49:25 +02:00
Christoph Oelckers
663ecc79d1 - actFireVector 2021-09-17 20:49:25 +02:00
Christoph Oelckers
d6724185b3 - removed a few redundant one-liner functions. 2021-09-17 20:49:25 +02:00
Christoph Oelckers
d7078dda48 - actGetRespawnTime + actCheckRespawn. 2021-09-17 20:49:25 +02:00
Christoph Oelckers
6db18e61d9 - Blood: use a TArray for gPost and store actors as pointers.
This also does not need to be serialized because it gets cleared at the end of each game tick and will always be empty when saving is done.
2021-09-17 20:49:05 +02:00
Christoph Oelckers
4526f4149b - actSpawnThing and actFireThing. 2021-09-16 00:11:20 +02:00
Christoph Oelckers
7c1826e909 - fixed typo in the actor variant of seqKill. 2021-09-16 00:04:18 +02:00
Christoph Oelckers
c5d7455317 - actSpawnDude. 2021-09-16 00:01:16 +02:00
Christoph Oelckers
7f485bfab1 - split off the extended sprite flags into their own word.
Some code overwrites the cstat field entirely (thanks Duke, for being sloppy with this...!)
2021-09-12 18:26:35 +02:00
Christoph Oelckers
61bc90949b - Blood: fixed super secret notification on the level summary screen. 2021-09-12 18:17:51 +02:00
Christoph Oelckers
3c3da13d3f - fixed seqKill actor variant. 2021-09-12 18:17:27 +02:00
Christoph Oelckers
bac1480997 - Blood: fixed use of bad index variable in condCheckSector 2021-08-28 18:00:13 +02:00
carnivoroussociety
deefbcf431 Use PlayerName() 2021-08-28 16:46:01 +10:00
carnivoroussociety
2b44f8e79d Carry over team flag fix from nblood 2021-08-28 16:46:01 +10:00
carnivoroussociety
049665e03e Fixed bug collecting lifeleech with ignited tnt/spray 2021-08-28 16:46:01 +10:00
Mitchell Richters
2fbfa82fe8 - Blood: Add interpolated weapon QAVs to WeaponInit() and WeaponPrecache() functions. 2021-08-28 16:43:17 +10:00
Mitchell Richters
726edc199e - Blood: Add SetQAV() static function to abstract away from directly setting the player's weaponQav variable to allow us to properly reset the framerate QAV timer values to 0 as well. 2021-08-28 16:43:17 +10:00
Mitchell Richters
3c09f41b43 - Blood: Use more precision for flicker, quake and tilt effects. 2021-08-28 16:43:16 +10:00
Christoph Oelckers
dc0d201275 - Blood: added serialization for the tracking conditions array. 2021-08-27 18:23:04 +02:00
Mitchell Richters
656ec8ef06 - Blood: Apply a slightly better fix for the akimbo shotgun animation kQAV2SHOTF2 (res_id: 61).
* The issue here is that `pPlayer->weaponTimer` reaches 0 before the animation plays out. This is because the QAV timer has its own ticrate independent of the game's timer.
* A workaround like this is still the best approach for now as its not easily possible to remove `weaponTimer` within the game without messing up the trigger system that runs at ticrate.
2021-08-27 22:18:57 +10:00
Christoph Oelckers
f3e10a595d - Blood: fixed pod fireballs not exploding.
Looks like something went wrong with cleaning out the broken code that once was here.
2021-08-27 13:25:01 +02:00
Christoph Oelckers
e010dce812 - Blood: fixed occasionally disappearing sprites when hitting something with the tesla gun. 2021-08-26 09:31:32 +02:00
Christoph Oelckers
9b061f9829 - Blood: fixed crash with Gargoyle projectiles.
Thanks, MSVC, for not warning about this... :(
2021-08-26 08:18:24 +02:00
Christoph Oelckers
1fbaeceada - Blood: avoid double free of sprites.
This happened to me once in Death Wish.
2021-08-26 08:18:23 +02:00
carnivoroussociety
03e6bb3696 Skip CheckProximityWall when newSectCheckMethod is set
Fixes edge case where CheckProximityWall misses
2021-08-26 08:02:11 +02:00
Mitchell Richters
6d06f063f6 - Blood: Directly use the incoming loopable bool from gi->AddQAVInterpProps() in the QAVInterpProps struct.
* During the initial implementation, there were more flags than this single one. I don't foresee any further flags coming so lets go for cleaner code.
2021-08-26 11:20:26 +10:00
Christoph Oelckers
c80831555c - Blood: fixed broken missile collision checks.
Curse that stupid bit masking madness in clipmove. As long as this code isn't properly abstracted, we still need to handle it on the game side.
2021-08-25 08:47:40 +02:00
Christoph Oelckers
0cad0b9258 - reformatting the mess created by TortoiseMerge. 2021-08-25 08:46:31 +02:00
Christoph Oelckers
c288de920d - Blood: don't abort the INI scanner if it finds a file with resource file index 0.
0 is also used for on-the-fly addition of data to the file system, so this must run through the entire directory to be safe.
2021-08-24 18:40:29 +02:00
Mitchell Richters
5a32000d1e - Blood: Interpolate the alpha and shade values when interpolating QAVs. 2021-08-24 10:07:58 +10:00
Mitchell Richters
b1fa923f02 - Blood: Re-organise QAVInterpProps struct so that when statically declaring forcedinterpdata, only the required value needs passing. 2021-08-24 10:06:54 +10:00
Mitchell Richters
542f005565 - Blood: Fixed weapon switching while using Voodoo Doll playing its idle animation.
* Fixes #517.
2021-08-24 07:25:52 +10:00