From b240d2b5bd142a12641fad2c78ec0415bd67f4f6 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 6 May 2021 10:55:56 +0200 Subject: [PATCH] - aiunicult.cpp is done. --- source/games/blood/src/actor.cpp | 4 ++-- source/games/blood/src/ai.cpp | 2 +- source/games/blood/src/aiunicult.cpp | 30 ++++++++++++++++++++++------ source/games/blood/src/aiunicult.h | 4 ++-- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index 3e8d3df7c..6cc0b9f05 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -3504,12 +3504,12 @@ void actKillDude(DBloodActor* killerActor, DBloodActor* actor, DAMAGE_TYPE damag #ifdef NOONE_EXTENSIONS case kDudeModernCustom: modernCustomDudeDeath(actor, nSeq, damageType); - genDudePostDeath(pSprite, damageType, damage); + genDudePostDeath(actor, damageType, damage); return; case kDudeModernCustomBurning: modernCustomDudeBurningDeath(actor, nSeq); - genDudePostDeath(pSprite, kDamageExplode, damage); + genDudePostDeath(actor, kDamageExplode, damage); return; #endif diff --git a/source/games/blood/src/ai.cpp b/source/games/blood/src/ai.cpp index 835946bcb..0eb340297 100644 --- a/source/games/blood/src/ai.cpp +++ b/source/games/blood/src/ai.cpp @@ -1900,7 +1900,7 @@ void aiInitSprite(DBloodActor* actor) case kDudeModernCustom: case kDudeModernCustomBurning: if (!gModernMap) break; - aiGenDudeInitSprite(pSprite, pXSprite); + aiGenDudeInitSprite(actor); genDudePrepare(actor, kGenDudePropertyAll); break; #endif diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index d331df08c..025c4f49e 100644 --- a/source/games/blood/src/aiunicult.cpp +++ b/source/games/blood/src/aiunicult.cpp @@ -2591,8 +2591,17 @@ bool genDudePrepare(DBloodActor* actor, int propId) return true; } -void genDudePostDeath(spritetype* pSprite, DAMAGE_TYPE damageType, int damage) { - if (damageType == kDamageExplode) { +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +void genDudePostDeath(DBloodActor* actor, DAMAGE_TYPE damageType, int damage) +{ + auto const pSprite = &actor->s(); + if (damageType == kDamageExplode) + { DUDEINFO* pDudeInfo = getDudeInfo(pSprite->type); for (int i = 0; i < 3; i++) if (pDudeInfo->nGibType[i] > -1) @@ -2608,11 +2617,20 @@ void genDudePostDeath(spritetype* pSprite, DAMAGE_TYPE damageType, int damage) { actPostSprite(pSprite->index, kStatThing); } -void aiGenDudeInitSprite(spritetype* pSprite, XSPRITE* pXSprite) +//--------------------------------------------------------------------------- +// +// +// +//--------------------------------------------------------------------------- + +void aiGenDudeInitSprite(DBloodActor* actor) { - auto actor = &bloodActors[pSprite->index]; - switch (pSprite->type) { - case kDudeModernCustom: { + auto const pSprite = &actor->s(); + auto const pXSprite = &actor->x(); + switch (pSprite->type) + { + case kDudeModernCustom: + { DUDEEXTRA_STATS* pDudeExtraE = &actor->dudeExtra.stats; pDudeExtraE->active = 0; aiGenDudeNewState(actor, &genDudeIdleL); diff --git a/source/games/blood/src/aiunicult.h b/source/games/blood/src/aiunicult.h index b4baa9c12..a7658b490 100644 --- a/source/games/blood/src/aiunicult.h +++ b/source/games/blood/src/aiunicult.h @@ -228,7 +228,7 @@ short inDuck(AISTATE* aiState); int genDudeSeqStartId(DBloodActor* pXSprite); bool genDudePrepare(DBloodActor* pSprite, int propId); void genDudeUpdate(DBloodActor* pSprite); -void genDudePostDeath(spritetype* pSprite, DAMAGE_TYPE damageType, int damage); -void aiGenDudeInitSprite(spritetype* pSprite, XSPRITE* pXSprite); +void genDudePostDeath(DBloodActor* actor, DAMAGE_TYPE damageType, int damage); +void aiGenDudeInitSprite(DBloodActor* actor); #endif END_BLD_NS