Commit graph

535 commits

Author SHA1 Message Date
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
Christoph Oelckers
feb11a2f9a - fixed one merge conflict that managed to slip through. 2021-08-23 19:24:56 +02:00
Christoph Oelckers
0e7c61dc33 - tabified code. 2021-08-23 19:21:41 +02:00
Christoph Oelckers
ac40e86ab2 - actSpawnSprite
# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:20:05 +02:00
Christoph Oelckers
ebdb4927cc - got rid of a few sprite/xsprite references.
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:19:36 +02:00
Christoph Oelckers
2cfb4f908e - actProcessSprites done.
# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:18:22 +02:00
Christoph Oelckers
7faebdcbf1 - first two loops of actProcessSprites split off and redone.
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:15:18 +02:00
Christoph Oelckers
ddcb12a8b2 - MoveMissile + actExplodeSprite.
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:15:08 +02:00
Christoph Oelckers
29c2e68270 - tabified MoveDude
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:13:29 +02:00
Christoph Oelckers
8c01c363a9 - replaced remaining access to sprite[] and xsprite[] in processed code.
# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp

# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:13:28 +02:00
Christoph Oelckers
c1d52f7393 - replaced all occurences of gDudeExtra and moved that struct into DBloodActor.
# Conflicts:
#	source/games/blood/src/ai.cpp
2021-08-23 19:13:28 +02:00
Christoph Oelckers
4fed1debe4 - moveDude part 1. 2021-08-23 19:13:28 +02:00
Christoph Oelckers
3aa9d6f8be - MoveThing.
# Conflicts:
#	source/games/blood/src/actor.cpp
2021-08-23 19:12:58 +02:00
carnivoroussociety
e74e581637 Fix issues with self collision on MoveMissile()
Only with new accurate clipmove() use
2021-08-23 18:40:38 +02:00
Mitchell Richters
4ffd02b1e1 - Blood: Declare qavGetInterpType() as static within qav.cpp. 2021-08-23 21:00:45 +10:00
Mitchell Richters
276c000f9f - Blood: Add mechanism to be able to force QAV interpolation based on picnum for testing purposes and not for end-user usage. 2021-08-23 20:54:30 +10:00
carnivoroussociety
2365be7c95 Add modern map kViewEffectSpotProgress support
Fix kViewEffectShowWeapon positional/angle offset for voodoo doll
2021-08-23 19:28:32 +10:00
Mitchell Richters
62e1fdf709 - Blood: Fix handling of QAVs defined as loopable while interpolating. 2021-08-23 12:05:13 +10:00
Mitchell Richters
ddc7b3d730
Merge branch 'master' into master 2021-08-23 11:40:05 +10:00
Mitchell Richters
ebdc9c31f2 - Blood: Ensure new QAV timer doesn't process while game is paused. 2021-08-23 11:05:08 +10:00
Mitchell Richters
1ee6fd76c4 Merge branch 'blood-qavrework'
# Conflicts:
#	source/core/gamecvars.cpp
#	source/core/gamecvars.h
#	source/games/blood/src/weapon.cpp
2021-08-23 11:02:09 +10:00
Mitchell Richters
d7450e12f0 - Blood: Re-add interpolated weapon QAVs in an externalised, disabled-by-default fashion. 2021-08-23 10:55:08 +10:00
Mitchell Richters
6975997ae3 - Blood: Remove weaponQAV[] array entirely. 2021-08-23 10:49:47 +10:00
Mitchell Richters
5bfdd74844 - Blood: Revert "- Blood: Ensure looped QAVs interpolate using last frame in the array." 2021-08-23 09:32:00 +10:00
Mitchell Richters
916241dcdb - Blood: Implement defineqav DEF parser with hookup to game-side code. 2021-08-23 09:00:47 +10:00
Mitchell Richters
da78160cd1 - Blood: Revert code to dump out QAVs to disk and remove all hard-coded interpolation repairs. 2021-08-22 21:20:15 +10:00
carnivoroussociety
72225c9b8c Added various missing item/ammo types to common_game.h
Renamed kAmmoItemVoodooDoll->kItemAmmoVoodooDoll
Renamed kMissileFireballNapam->kMissileFireballNapalm
2021-08-22 17:49:02 +10:00
Mitchell Richters
499e400cdb - Blood: Add command-line switch to dump repaired QAVs back out to disk so that they can be included in raze.pk3.
* This required restoring the original struct temporarily to ensure contents dumped to disk were 1:1 with how they came in.
2021-08-22 15:22:58 +10:00
Mitchell Richters
a681aad281 - Blood: Add interpolation repair and properties for kQAVLITEFLAM (res_id: 5). 2021-08-22 15:03:20 +10:00
Mitchell Richters
6256de8013 - Blood: Extend interpolation repair for kQAVBUNUP (res_id: 16) to add missing tile in first frame. 2021-08-22 11:23:29 +10:00
Mitchell Richters
2edbd3447c - Blood: Extend interpolation properties for kQAVBUNFUSE (res_id: 21) to stop interpolating all tiles after frame 6 and not just tile index 4. 2021-08-22 10:55:01 +10:00
Mitchell Richters
7e8ec89a68 - Blood: Add interpolation repair for kQAVSTAFDOWN (res_id: 119). 2021-08-22 08:18:17 +10:00
Mitchell Richters
a03848d1f8 - Blood: Add interpolation repair for kQAVSTAFIRE4 (res_id: 116). 2021-08-22 08:18:14 +10:00
Mitchell Richters
fb084734e3 - Blood: Add interpolation repair for kQAVVDSPEL1 (res_id: 110). 2021-08-22 08:18:00 +10:00
Mitchell Richters
0172373650 - Blood: Add interpolation repair for kQAVVDDOWN (res_id: 109). 2021-08-22 08:17:50 +10:00
Mitchell Richters
95878bcea1 - Blood: Add interpolation repair for kQAVVDFIRE4 (res_id: 106) and kQAVVDFIRE5 (res_id: 107). 2021-08-22 08:17:47 +10:00
Mitchell Richters
d34fd124b7 - Blood: Add interpolation repair for kQAVVDFIRE3 (res_id: 105). 2021-08-22 08:17:44 +10:00