remove the native AISTATEs.

This commit is contained in:
Christoph Oelckers 2023-10-07 22:11:17 +02:00
parent a7317e700d
commit 8ee7c188b7
25 changed files with 0 additions and 861 deletions

View file

@ -32,9 +32,6 @@ BEGIN_BLD_NS
void RecoilDude(DBloodActor* actor);
AISTATE genIdle = { kAiStateGenIdle, 0, nullptr, 0, NULL, NULL, NULL, NULL };
AISTATE genRecoil = { kAiStateRecoil, 5, nullptr, 20, NULL, NULL, NULL, &genIdle };
const int gCultTeslaFireChance[5] = { 0x2000, 0x4000, 0x8000, 0xa000, 0xe000 };
//---------------------------------------------------------------------------

View file

@ -29,26 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
struct AISTATE {
int stateType; // By NoOne: current type of state. Basically required for kModernDudeTargetChanger, but can be used for something else.
int seqId;
VMNativeFunction** funcId;
int stateTicks;
#if 0
void(*enterFunc)(DBloodActor *);
void(*moveFunc)(DBloodActor *);
void(*thinkFunc)(DBloodActor *);
#else
VMNativeFunction** enterFunc;
VMNativeFunction** moveFunc;
VMNativeFunction** thinkFunc;
#endif
AISTATE *nextState;
};
extern AISTATE aiState[];
extern AISTATE genIdle;
extern AISTATE genRecoil;
enum AI_SFX_PRIORITY {
AI_SFX_PRIORITY_0 = 0,
AI_SFX_PRIORITY_1,

View file

@ -29,38 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void batThinkTarget(DBloodActor*);
static void batThinkSearch(DBloodActor*);
static void batThinkGoto(DBloodActor*);
static void batThinkPonder(DBloodActor*);
static void batMoveDodgeUp(DBloodActor*);
static void batMoveDodgeDown(DBloodActor*);
static void batThinkChase(DBloodActor*);
static void batMoveForward(DBloodActor*);
static void batMoveSwoop(DBloodActor*);
static void batMoveFly(DBloodActor*);
static void batMoveToCeil(DBloodActor*);
AISTATE batIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(batThinkTarget), NULL };
AISTATE batFlyIdle = { kAiStateIdle, 6, nullptr, 0, NULL, NULL, &AF(batThinkTarget), NULL };
AISTATE batChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(batMoveForward), &AF(batThinkChase), &batFlyIdle };
AISTATE batPonder = { kAiStateOther, 6, nullptr, 0, NULL, NULL, &AF(batThinkPonder), NULL };
AISTATE batGoto = { kAiStateMove, 6, nullptr, 600, NULL, &AF(batMoveForward), &AF(batThinkGoto), &batFlyIdle };
AISTATE batBite = { kAiStateChase, 7, &AF(batBiteSeqCallback), 60, NULL, NULL, NULL, &batPonder };
AISTATE batRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &batChase };
AISTATE batSearch = { kAiStateSearch, 6, nullptr, 120, NULL, &AF(batMoveForward), &AF(batThinkSearch), &batFlyIdle };
AISTATE batSwoop = { kAiStateOther, 6, nullptr, 60, NULL, &AF(batMoveSwoop), &AF(batThinkChase), &batChase };
AISTATE batFly = { kAiStateMove, 6, nullptr, 0, NULL, &AF(batMoveFly), &AF(batThinkChase), &batChase };
AISTATE batTurn = { kAiStateMove, 6, nullptr, 60, NULL, &AF(aiMoveTurn), NULL, &batChase };
AISTATE batHide = { kAiStateOther, 6, nullptr, 0, NULL, &AF(batMoveToCeil), &AF(batMoveForward), NULL };
AISTATE batDodgeUp = { kAiStateMove, 6, nullptr, 120, NULL, &AF(batMoveDodgeUp), 0, &batChase };
AISTATE batDodgeUpRight = { kAiStateMove, 6, nullptr, 90, NULL, &AF(batMoveDodgeUp), 0, &batChase };
AISTATE batDodgeUpLeft = { kAiStateMove, 6, nullptr, 90, NULL, &AF(batMoveDodgeUp), 0, &batChase };
AISTATE batDodgeDown = { kAiStateMove, 6, nullptr, 120, NULL, &AF(batMoveDodgeDown), 0, &batChase };
AISTATE batDodgeDownRight = { kAiStateMove, 6, nullptr, 90, NULL, &AF(batMoveDodgeDown), 0, &batChase };
AISTATE batDodgeDownLeft = { kAiStateMove, 6, nullptr, 90, NULL, &AF(batMoveDodgeDown), 0, &batChase };
void batBiteSeqCallback(DBloodActor* actor)
{
if (!actor->ValidateTarget(__FUNCTION__)) return;

View file

@ -29,38 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void MorphToBeast(DBloodActor*);
static void beastThinkSearch(DBloodActor*);
static void beastThinkGoto(DBloodActor*);
static void beastThinkChase(DBloodActor*);
static void beastThinkSwimGoto(DBloodActor*);
static void beastThinkSwimChase(DBloodActor*);
static void beastMoveForward(DBloodActor*);
static void beastMoveSwim(DBloodActor*);
static void beastMoveSwimAlt(DBloodActor*);
static void beastMoveIn(DBloodActor*);
AISTATE beastIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE beastChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(beastMoveForward), &AF(beastThinkChase), NULL };
AISTATE beastDodge = { kAiStateMove, 8, nullptr, 60, NULL, &AF(aiMoveDodge), NULL, &beastChase };
AISTATE beastGoto = { kAiStateMove, 8, nullptr, 600, NULL, &AF(beastMoveForward), &AF(beastThinkGoto), &beastIdle };
AISTATE beastSlash = { kAiStateChase, 6, &AF(SlashSeqCallback), 120, NULL, NULL, NULL, &beastChase };
AISTATE beastStomp = { kAiStateChase, 7, &AF(StompSeqCallback), 120, NULL, NULL, NULL, &beastChase };
AISTATE beastSearch = { kAiStateSearch, 8, nullptr, 120, NULL, &AF(beastMoveForward), &AF(beastThinkSearch), &beastIdle };
AISTATE beastRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &beastDodge };
AISTATE beastTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &beastDodge };
AISTATE beastSwimIdle = { kAiStateIdle, 9, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE beastSwimChase = { kAiStateChase, 9, nullptr, 0, NULL, &AF(beastMoveSwim), &AF(beastThinkSwimChase), NULL };
AISTATE beastSwimDodge = { kAiStateMove, 9, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &beastSwimChase };
AISTATE beastSwimGoto = { kAiStateMove, 9, nullptr, 600, NULL, &AF(beastMoveForward), &AF(beastThinkSwimGoto), &beastSwimIdle };
AISTATE beastSwimSearch = { kAiStateSearch, 9, nullptr, 120, NULL, &AF(beastMoveForward), &AF(beastThinkSearch), &beastSwimIdle };
AISTATE beastSwimSlash = { kAiStateChase, 9, &AF(SlashSeqCallback), 0, NULL, NULL, &AF(beastThinkSwimChase), &beastSwimChase };
AISTATE beastSwimRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &beastSwimDodge };
AISTATE beastMorphToBeast = { kAiStateOther, -1, nullptr, 0, &AF(MorphToBeast), NULL, NULL, &beastIdle };
AISTATE beastMorphFromCultist = { kAiStateOther, 2576, nullptr, 0, NULL, NULL, NULL, &beastMorphToBeast };
AISTATE beastMoveSwimChaseAlt = { kAiStateOther, 9, nullptr, 120, NULL, &AF(beastMoveSwimAlt), &AF(beastThinkSwimChase), &beastSwimChase };
AISTATE beastSwimAttack = { kAiStateOther, 9, nullptr, 0, NULL, &AF(beastMoveIn), &AF(beastThinkSwimChase), &beastSwimChase };
AISTATE beastSwimTurn = { kAiStateOther, 9, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &beastSwimChase };
void SlashSeqCallback(DBloodActor* actor)
{

View file

@ -29,37 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void eelThinkTarget(DBloodActor*);
static void eelThinkSearch(DBloodActor*);
static void eelThinkGoto(DBloodActor*);
static void eelThinkPonder(DBloodActor*);
static void eelMoveDodgeUp(DBloodActor*);
static void eelMoveDodgeDown(DBloodActor*);
static void eelThinkChase(DBloodActor*);
static void eelMoveForward(DBloodActor*);
static void eelMoveSwoop(DBloodActor*);
static void eelMoveAscend(DBloodActor* actor);
static void eelMoveToCeil(DBloodActor*);
AISTATE eelIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(eelThinkTarget), NULL };
AISTATE eelFlyIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(eelThinkTarget), NULL };
AISTATE eelChase = { kAiStateChase, 0, nullptr, 0, NULL, &AF(eelMoveForward), &AF(eelThinkChase), &eelIdle };
AISTATE eelPonder = { kAiStateOther, 0, nullptr, 0, NULL, NULL, &AF(eelThinkPonder), NULL };
AISTATE eelGoto = { kAiStateMove, 0, nullptr, 600, NULL, NULL, &AF(eelThinkGoto), &eelIdle };
AISTATE eelBite = { kAiStateChase, 7, &AF(eelBiteSeqCallback), 60, NULL, NULL, NULL, &eelChase };
AISTATE eelRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &eelChase };
AISTATE eelSearch = { kAiStateSearch, 0, nullptr, 120, NULL, &AF(eelMoveForward), &AF(eelThinkSearch), &eelIdle };
AISTATE eelSwoop = { kAiStateOther, 0, nullptr, 60, NULL, &AF(eelMoveSwoop), &AF(eelThinkChase), &eelChase };
AISTATE eelFly = { kAiStateMove, 0, nullptr, 0, NULL, &AF(eelMoveAscend), &AF(eelThinkChase), &eelChase };
AISTATE eelTurn = { kAiStateMove, 0, nullptr, 60, NULL, &AF(aiMoveTurn), NULL, &eelChase };
AISTATE eelHide = { kAiStateOther, 0, nullptr, 0, NULL, &AF(eelMoveToCeil), &AF(eelMoveForward), NULL };
AISTATE eelDodgeUp = { kAiStateMove, 0, nullptr, 120, NULL, &AF(eelMoveDodgeUp), NULL, &eelChase };
AISTATE eelDodgeUpRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(eelMoveDodgeUp), NULL, &eelChase };
AISTATE eelDodgeUpLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(eelMoveDodgeUp), NULL, &eelChase };
AISTATE eelDodgeDown = { kAiStateMove, 0, nullptr, 120, NULL, &AF(eelMoveDodgeDown), NULL, &eelChase };
AISTATE eelDodgeDownRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(eelMoveDodgeDown), NULL, &eelChase };
AISTATE eelDodgeDownLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(eelMoveDodgeDown), NULL, &eelChase };
void eelBiteSeqCallback(DBloodActor* actor)
{

View file

@ -29,46 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void burnThinkSearch(DBloodActor*);
static void burnThinkGoto(DBloodActor*);
static void burnThinkChase(DBloodActor*);
AISTATE cultistBurnIdle = { kAiStateIdle, 3, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE cultistBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE cultistBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &cultistBurnSearch };
AISTATE cultistBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), &cultistBurnSearch };
AISTATE cultistBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &cultistBurnChase };
AISTATE zombieABurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE zombieABurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &zombieABurnSearch };
AISTATE zombieABurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), NULL };
AISTATE zombieABurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &zombieABurnChase };
AISTATE zombieFBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE zombieFBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &zombieFBurnSearch };
AISTATE zombieFBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), NULL };
AISTATE zombieFBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &zombieFBurnChase };
AISTATE innocentBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE innocentBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &zombieFBurnSearch };
AISTATE innocentBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), NULL };
AISTATE innocentBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &zombieFBurnChase };
AISTATE beastBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE beastBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &beastBurnSearch };
AISTATE beastBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), &beastBurnSearch };
AISTATE beastBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &beastBurnChase };
AISTATE tinycalebBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE tinycalebBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &tinycalebBurnSearch };
AISTATE tinycalebBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), &tinycalebBurnSearch };
AISTATE tinycalebBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &tinycalebBurnChase };
AISTATE genDudeBurnIdle = { kAiStateIdle, 3, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE genDudeBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
AISTATE genDudeBurnGoto = { kAiStateMove, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkGoto), &genDudeBurnSearch };
AISTATE genDudeBurnSearch = { kAiStateSearch, 3, nullptr, 3600, NULL, &AF(aiMoveForward), &AF(burnThinkSearch), &genDudeBurnSearch };
AISTATE genDudeBurnAttack = { kAiStateChase, 3, &AF(BurnSeqCallback), 120, NULL, NULL, NULL, &genDudeBurnChase };
void BurnSeqCallback(DBloodActor*)
{

View file

@ -29,34 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void calebThinkSearch(DBloodActor*);
static void calebThinkGoto(DBloodActor*);
static void calebThinkChase(DBloodActor*);
static void calebThinkSwimGoto(DBloodActor*);
static void calebThinkSwimChase(DBloodActor*);
static void calebMoveSwimChase(DBloodActor*);
static void calebSwimUnused(DBloodActor*);
static void calebSwimMoveIn(DBloodActor*);
AISTATE tinycalebIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE tinycalebChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveForward), &AF(calebThinkChase), NULL };
AISTATE tinycalebDodge = { kAiStateMove, 6, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &tinycalebChase };
AISTATE tinycalebGoto = { kAiStateMove, 6, nullptr, 600, NULL, &AF(aiMoveForward), &AF(calebThinkGoto), &tinycalebIdle };
AISTATE tinycalebAttack = { kAiStateChase, 0, &AF(SeqAttackCallback), 120, NULL, NULL, NULL, &tinycalebChase };
AISTATE tinycalebSearch = { kAiStateSearch, 6, nullptr, 120, NULL, &AF(aiMoveForward), &AF(calebThinkSearch), &tinycalebIdle };
AISTATE tinycalebRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &tinycalebDodge };
AISTATE tinycalebTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &tinycalebDodge };
AISTATE tinycalebSwimIdle = { kAiStateIdle, 10, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE tinycalebSwimChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(calebMoveSwimChase), &AF(calebThinkSwimChase), NULL };
AISTATE tinycalebSwimDodge = { kAiStateMove, 8, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &tinycalebSwimChase };
AISTATE tinycalebSwimGoto = { kAiStateMove, 8, nullptr, 600, NULL, &AF(aiMoveForward), &AF(calebThinkSwimGoto), &tinycalebSwimIdle };
AISTATE tinycalebSwimSearch = { kAiStateSearch, 8, nullptr, 120, NULL, &AF(aiMoveForward), &AF(calebThinkSearch), &tinycalebSwimIdle };
AISTATE tinycalebSwimAttack = { kAiStateChase, 10, &AF(SeqAttackCallback), 0, NULL, NULL, NULL, &tinycalebSwimChase };
AISTATE tinycalebSwimRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &tinycalebSwimDodge };
AISTATE tinycalebSwimUnused = { kAiStateOther, 8, nullptr, 120, NULL, &AF(calebSwimUnused), &AF(calebThinkSwimChase), &tinycalebSwimChase };
AISTATE tinycalebSwimMoveIn = { kAiStateOther, 8, nullptr, 0, NULL, &AF(calebSwimMoveIn), &AF(calebThinkSwimChase), &tinycalebSwimChase };
AISTATE tinycalebSwimTurn = { kAiStateOther, 8, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &tinycalebSwimChase };
void SeqAttackCallback(DBloodActor* actor)
{
DVector3 vect(actor->spr.Angles.Yaw.ToVector(), actor->dudeSlope);

View file

@ -29,32 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void cerberusThinkSearch(DBloodActor* actor);
static void cerberusThinkTarget(DBloodActor* actor);
static void cerberusThinkGoto(DBloodActor* actor);
static void cerberusThinkChase(DBloodActor* actor);
AISTATE cerberusIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(cerberusThinkTarget), NULL };
AISTATE cerberusSearch = { kAiStateSearch, 7, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(cerberusThinkSearch), &cerberusIdle };
AISTATE cerberusChase = { kAiStateChase, 7, nullptr, 0, NULL, &AF(aiMoveForward), &AF(cerberusThinkChase), NULL };
AISTATE cerberusRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &cerberusSearch };
AISTATE cerberusTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &cerberusSearch };
AISTATE cerberusGoto = { kAiStateMove, 7, nullptr, 600, NULL, &AF(aiMoveForward), &AF(cerberusThinkGoto), &cerberusIdle };
AISTATE cerberusBite = { kAiStateChase, 6, &AF(cerberusBiteSeqCallback), 60, NULL, NULL, NULL, &cerberusChase };
AISTATE cerberusBurn = { kAiStateChase, 6, &AF(cerberusBurnSeqCallback), 60, NULL, NULL, NULL, &cerberusChase };
AISTATE cerberus3Burn = { kAiStateChase, 6, &AF(cerberusBurnSeqCallback2), 60, NULL, NULL, NULL, &cerberusChase };
AISTATE cerberus2Idle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(cerberusThinkTarget), NULL };
AISTATE cerberus2Search = { kAiStateSearch, 7, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(cerberusThinkSearch), &cerberus2Idle };
AISTATE cerberus2Chase = { kAiStateChase, 7, nullptr, 0, NULL, &AF(aiMoveForward), &AF(cerberusThinkChase), NULL };
AISTATE cerberus2Recoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &cerberus2Search };
AISTATE cerberus2Goto = { kAiStateMove, 7, nullptr, 600, NULL, &AF(aiMoveForward), &AF(cerberusThinkGoto), &cerberus2Idle };
AISTATE cerberus2Bite = { kAiStateChase, 6, &AF(cerberusBiteSeqCallback), 60, NULL, NULL, NULL, &cerberus2Chase };
AISTATE cerberus2Burn = { kAiStateChase, 6, &AF(cerberusBurnSeqCallback), 60, NULL, NULL, NULL, &cerberus2Chase };
AISTATE cerberus4Burn = { kAiStateChase, 6, &AF(cerberusBurnSeqCallback2), 60, NULL, NULL, NULL, &cerberus2Chase };
AISTATE cerberusTurn1 = { kAiStateOther, 7, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &cerberusChase };
AISTATE cerberusTurn2 = { kAiStateOther, 7, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &cerberusChase };
static constexpr double Cerberus_XYOff = 350. / 16;
static constexpr double Cerberus_ZOff = 100. / 256;

View file

@ -29,49 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void cultThinkSearch(DBloodActor*);
static void cultThinkGoto(DBloodActor*);
static void cultThinkChase(DBloodActor*);
AISTATE cultistIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE cultistProneIdle = { kAiStateIdle, 17, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE fanaticProneIdle = { kAiStateIdle, 17, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE cultistProneIdle3 = { kAiStateIdle, 17, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE cultistChase = { kAiStateChase, 9, nullptr, 0, NULL, &AF(aiMoveForward), &AF(cultThinkChase), NULL };
AISTATE fanaticChase = { kAiStateChase, 0, nullptr, 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), NULL };
AISTATE cultistDodge = { kAiStateMove, 9, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &cultistChase };
AISTATE cultistGoto = { kAiStateMove, 9, nullptr, 600, NULL, &AF(aiMoveForward), &AF(cultThinkGoto), &cultistIdle };
AISTATE cultistProneChase = { kAiStateChase, 14, nullptr, 0, NULL, &AF(aiMoveForward), &AF(cultThinkChase), NULL };
AISTATE cultistProneDodge = { kAiStateMove, 14, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &cultistProneChase };
AISTATE cultistTThrow = { kAiStateChase, 7, &AF(cultThrowSeqCallback), 120, NULL, NULL, NULL, &cultistTFire };
AISTATE cultistSThrow = { kAiStateChase, 7, &AF(cultThrowSeqCallback), 120, NULL, NULL, NULL, &cultistSFire };
AISTATE cultistTsThrow = { kAiStateChase, 7, &AF(cultThrowSeqCallback), 120, NULL, NULL, NULL, &cultistTsFire };
AISTATE cultistDThrow = { kAiStateChase, 7, &AF(cultThrowSeqCallback), 120, NULL, NULL, NULL, &cultistChase };
AISTATE cultistDThrow2 = { kAiStateChase, 7, &AF(cultThrowSeqCallback2), 120, NULL, NULL, NULL, &cultistChase };
AISTATE cultistDThrow3C = { kAiStateChase, 7, &AF(cultThrowSeqCallback3), 120, NULL, NULL, NULL, &cultistIdle };
AISTATE cultistDThrow3B = { kAiStateChase, 7, &AF(cultThrowSeqCallback3), 120, NULL, NULL, &AF(cultThinkSearch), &cultistDThrow3C };
AISTATE cultistDThrow3A = { kAiStateChase, 7, &AF(cultThrowSeqCallback3), 120, NULL, NULL, &AF(cultThinkSearch), &cultistDThrow3B };
AISTATE cultistDThrow4 = { kAiStateChase, 7, &AF(cultThrowSeqCallback3), 120, NULL, NULL, &AF(cultThinkSearch), &cultistDThrow4 };
AISTATE cultistSearch = { kAiStateSearch, 9, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(cultThinkSearch), &cultistIdle };
AISTATE cultistSFire = { kAiStateChase, 6, &AF(ShotSeqCallback), 60, NULL, NULL, NULL, &cultistChase };
AISTATE cultistTFire = { kAiStateChase, 6, &AF(TommySeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistTFire };
AISTATE cultistTsFire = { kAiStateChase, 6, &AF(TeslaSeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistChase };
AISTATE cultistSProneFire = { kAiStateChase, 8, &AF(ShotSeqCallback), 60, NULL, NULL, NULL, &cultistProneChase };
AISTATE cultistTProneFire = { kAiStateChase, 8, &AF(TommySeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistTProneFire };
AISTATE cultistTsProneFire = { kAiStateChase, 8, &AF(TeslaSeqCallback), 0, NULL, &AF(aiMoveTurn), NULL, &cultistTsProneFire }; // vanilla, broken
AISTATE cultistTsProneFireFixed = { kAiStateChase, 8, &AF(TeslaSeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistTsProneFireFixed };
AISTATE cultistRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &cultistDodge };
AISTATE cultistProneRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &cultistProneDodge };
AISTATE cultistTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &cultistDodge };
AISTATE cultistSwimIdle = { kAiStateIdle, 13, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE cultistSwimChase = { kAiStateChase, 13, nullptr, 0, NULL, &AF(aiMoveForward), &AF(cultThinkChase), NULL };
AISTATE cultistSwimDodge = { kAiStateMove, 13, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &cultistSwimChase };
AISTATE cultistSwimGoto = { kAiStateMove, 13, nullptr, 600, NULL, &AF(aiMoveForward), &AF(cultThinkGoto), &cultistSwimIdle };
AISTATE cultistSwimSearch = { kAiStateSearch, 13, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(cultThinkSearch), &cultistSwimIdle };
AISTATE cultistSSwimFire = { kAiStateChase, 8, &AF(ShotSeqCallback), 60, NULL, NULL, NULL, &cultistSwimChase };
AISTATE cultistTSwimFire = { kAiStateChase, 8, &AF(TommySeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistTSwimFire };
AISTATE cultistTsSwimFire = { kAiStateChase, 8, &AF(TeslaSeqCallback), 0, NULL, &AF(aiMoveTurn), &AF(cultThinkChase), &cultistTsSwimFire };
AISTATE cultistSwimRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &cultistSwimDodge };
void TommySeqCallback(DBloodActor* actor)
{

View file

@ -29,46 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void gargThinkTarget(DBloodActor*);
static void gargThinkSearch(DBloodActor*);
static void gargThinkGoto(DBloodActor*);
static void gargMoveDodgeUp(DBloodActor*);
static void gargMoveDodgeDown(DBloodActor*);
static void gargThinkChase(DBloodActor*);
static void entryFStatue(DBloodActor*);
static void entrySStatue(DBloodActor*);
static void gargMoveForward(DBloodActor*);
static void gargMoveSlow(DBloodActor*);
static void gargMoveSwoop(DBloodActor*);
static void gargMoveFly(DBloodActor*);
static void playStatueBreakSnd(DBloodActor*);
AISTATE gargoyleFIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(gargThinkTarget), NULL };
AISTATE gargoyleStatueIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, NULL, NULL };
AISTATE gargoyleFChase = { kAiStateChase, 0, nullptr, 0, NULL, &AF(gargMoveForward), &AF(gargThinkChase), &gargoyleFIdle };
AISTATE gargoyleFGoto = { kAiStateMove, 0, nullptr, 600, NULL, &AF(gargMoveForward), &AF(gargThinkGoto), &gargoyleFIdle };
AISTATE gargoyleFSlash = { kAiStateChase, 6, &AF(SlashFSeqCallback), 120, NULL, NULL, NULL, &gargoyleFChase };
AISTATE gargoyleFThrow = { kAiStateChase, 6, &AF(ThrowFSeqCallback), 120, NULL, NULL, NULL, &gargoyleFChase };
AISTATE gargoyleSThrow = { kAiStateChase, 6, &AF(ThrowSSeqCallback), 120, NULL, &AF(gargMoveForward), NULL, &gargoyleFChase };
AISTATE gargoyleSBlast = { kAiStateChase, 7, &AF(BlastSSeqCallback), 60, NULL, &AF(gargMoveSlow), NULL, &gargoyleFChase };
AISTATE gargoyleFRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &gargoyleFChase };
AISTATE gargoyleFSearch = { kAiStateSearch, 0, nullptr, 120, NULL, &AF(gargMoveForward), &AF(gargThinkSearch), &gargoyleFIdle };
AISTATE gargoyleFMorph2 = { kAiStateOther, -1, nullptr, 0, &AF(entryFStatue), NULL, NULL, &gargoyleFIdle };
AISTATE gargoyleFMorph = { kAiStateOther, 6, nullptr, 0, NULL, NULL, NULL, &gargoyleFMorph2 };
AISTATE gargoyleSMorph2 = { kAiStateOther, -1, nullptr, 0, &AF(entrySStatue), NULL, NULL, &gargoyleFIdle };
AISTATE gargoyleSMorph = { kAiStateOther, 6, nullptr, 0, NULL, NULL, NULL, &gargoyleSMorph2 };
AISTATE gargoyleSwoop = { kAiStateOther, 0, nullptr, 120, NULL, &AF(gargMoveSwoop), &AF(gargThinkChase), &gargoyleFChase };
AISTATE gargoyleFly = { kAiStateMove, 0, nullptr, 120, NULL, &AF(gargMoveFly), &AF(gargThinkChase), &gargoyleFChase };
AISTATE gargoyleTurn = { kAiStateMove, 0, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &gargoyleFChase };
AISTATE gargoyleDodgeUp = { kAiStateMove, 0, nullptr, 60, NULL, &AF(gargMoveDodgeUp), NULL, &gargoyleFChase };
AISTATE gargoyleFDodgeUpRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(gargMoveDodgeUp), NULL, &gargoyleFChase };
AISTATE gargoyleFDodgeUpLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(gargMoveDodgeUp), NULL, &gargoyleFChase };
AISTATE gargoyleDodgeDown = { kAiStateMove, 0, nullptr, 120, NULL, &AF(gargMoveDodgeDown), NULL, &gargoyleFChase };
AISTATE gargoyleFDodgeDownRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(gargMoveDodgeDown), NULL, &gargoyleFChase };
AISTATE gargoyleFDodgeDownLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(gargMoveDodgeDown), NULL, &gargoyleFChase };
AISTATE statueFBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entryFStatue), NULL, &AF(playStatueBreakSnd), &gargoyleFMorph2 };
AISTATE statueSBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entrySStatue), NULL, &AF(playStatueBreakSnd), &gargoyleSMorph2 };
static void playStatueBreakSnd(DBloodActor* actor) {

View file

@ -29,37 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void ghostThinkTarget(DBloodActor*);
static void ghostThinkSearch(DBloodActor*);
static void ghostThinkGoto(DBloodActor*);
static void ghostMoveDodgeUp(DBloodActor*);
static void ghostMoveDodgeDown(DBloodActor*);
static void ghostThinkChase(DBloodActor*);
static void ghostMoveForward(DBloodActor*);
static void ghostMoveSlow(DBloodActor*);
static void ghostMoveSwoop(DBloodActor*);
static void ghostMoveFly(DBloodActor*);
AISTATE ghostIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(ghostThinkTarget), NULL };
AISTATE ghostChase = { kAiStateChase, 0, nullptr, 0, NULL, &AF(ghostMoveForward), &AF(ghostThinkChase), &ghostIdle };
AISTATE ghostGoto = { kAiStateMove, 0, nullptr, 600, NULL, &AF(ghostMoveForward), &AF(ghostThinkGoto), &ghostIdle };
AISTATE ghostSlash = { kAiStateChase, 6, &AF(ghostSlashSeqCallback), 120, NULL, NULL, NULL, &ghostChase };
AISTATE ghostThrow = { kAiStateChase, 6, &AF(ghostThrowSeqCallback), 120, NULL, NULL, NULL, &ghostChase };
AISTATE ghostBlast = { kAiStateChase, 6, &AF(ghostBlastSeqCallback), 120, NULL, &AF(ghostMoveSlow), NULL, &ghostChase };
AISTATE ghostRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &ghostChase };
AISTATE ghostTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &ghostChase };
AISTATE ghostSearch = { kAiStateSearch, 0, nullptr, 120, NULL, &AF(ghostMoveForward), &AF(ghostThinkSearch), &ghostIdle };
AISTATE ghostSwoop = { kAiStateOther, 0, nullptr, 120, NULL, &AF(ghostMoveSwoop), &AF(ghostThinkChase), &ghostChase };
AISTATE ghostFly = { kAiStateMove, 0, nullptr, 0, NULL, &AF(ghostMoveFly), &AF(ghostThinkChase), &ghostChase };
AISTATE ghostTurn = { kAiStateMove, 0, nullptr, 120, NULL, &AF(aiMoveTurn), NULL, &ghostChase };
AISTATE ghostDodgeUp = { kAiStateMove, 0, nullptr, 60, NULL, &AF(ghostMoveDodgeUp), NULL, &ghostChase };
AISTATE ghostDodgeUpRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(ghostMoveDodgeUp), NULL, &ghostChase };
AISTATE ghostDodgeUpLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(ghostMoveDodgeUp), NULL, &ghostChase };
AISTATE ghostDodgeDown = { kAiStateMove, 0, nullptr, 120, NULL, &AF(ghostMoveDodgeDown), NULL, &ghostChase };
AISTATE ghostDodgeDownRight = { kAiStateMove, 0, nullptr, 90, NULL, &AF(ghostMoveDodgeDown), NULL, &ghostChase };
AISTATE ghostDodgeDownLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(ghostMoveDodgeDown), NULL, &ghostChase };
void ghostSlashSeqCallback(DBloodActor* actor)
{
if (!actor->ValidateTarget(__FUNCTION__)) return;

View file

@ -29,34 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void gillThinkSearch(DBloodActor*);
static void gillThinkGoto(DBloodActor*);
static void gillThinkChase(DBloodActor*);
static void gillThinkSwimGoto(DBloodActor*);
static void gillThinkSwimChase(DBloodActor*);
static void gillMoveSwimChase(DBloodActor*);
static void gillMoveSwimUnused(DBloodActor*);
static void gillSwimMoveIn(DBloodActor*);
AISTATE gillBeastIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE gillBeastChase = { kAiStateChase, 9, nullptr, 0, NULL, &AF(aiMoveForward), &AF(gillThinkChase), NULL };
AISTATE gillBeastDodge = { kAiStateMove, 9, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &gillBeastChase };
AISTATE gillBeastGoto = { kAiStateMove, 9, nullptr, 600, NULL, &AF(aiMoveForward), &AF(gillThinkGoto), &gillBeastIdle };
AISTATE gillBeastBite = { kAiStateChase, 6, &AF(GillBiteSeqCallback), 120, NULL, NULL, NULL, &gillBeastChase };
AISTATE gillBeastSearch = { kAiStateMove, 9, nullptr, 120, NULL, &AF(aiMoveForward), &AF(gillThinkSearch), &gillBeastIdle };
AISTATE gillBeastRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &gillBeastDodge };
AISTATE gillBeastSwimIdle = { kAiStateIdle, 10, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE gillBeastSwimChase = { kAiStateChase, 10, nullptr, 0, NULL, &AF(gillMoveSwimChase), &AF(gillThinkSwimChase), NULL };
AISTATE gillBeastSwimDodge = { kAiStateMove, 10, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &gillBeastSwimChase };
AISTATE gillBeastSwimGoto = { kAiStateMove, 10, nullptr, 600, NULL, &AF(aiMoveForward), &AF(gillThinkSwimGoto), &gillBeastSwimIdle };
AISTATE gillBeastSwimSearch = { kAiStateSearch, 10, nullptr, 120, NULL, &AF(aiMoveForward), &AF(gillThinkSearch), &gillBeastSwimIdle };
AISTATE gillBeastSwimBite = { kAiStateChase, 7, &AF(GillBiteSeqCallback), 0, NULL, NULL, &AF(gillThinkSwimChase), &gillBeastSwimChase };
AISTATE gillBeastSwimRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &gillBeastSwimDodge };
AISTATE gillBeastSwimUnused = { kAiStateOther, 10, nullptr, 120, NULL, &AF(gillMoveSwimUnused), &AF(gillThinkSwimChase), &gillBeastSwimChase };
AISTATE gillBeastSwimMoveIn = { kAiStateOther, 10, nullptr, 0, NULL, &AF(gillSwimMoveIn), &AF(gillThinkSwimChase), &gillBeastSwimChase };
AISTATE gillBeastSwimTurn = { kAiStateOther, 10, nullptr, 120, NULL, NULL, &AF(aiMoveTurn), &gillBeastSwimChase };
void GillBiteSeqCallback(DBloodActor* actor)
{
if (!actor->ValidateTarget(__FUNCTION__)) return;

View file

@ -29,18 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void handThinkSearch(DBloodActor*);
static void handThinkGoto(DBloodActor*);
static void handThinkChase(DBloodActor*);
AISTATE handIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE handChoke = { kAiStateOther, 0, nullptr, 0, NULL, NULL, NULL, NULL };
AISTATE handSearch = { kAiStateMove, 6, nullptr, 600, NULL, &AF(aiMoveForward), &AF(handThinkSearch), &handIdle };
AISTATE handChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveForward), &AF(handThinkChase), NULL };
AISTATE handRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &handSearch };
AISTATE handGoto = { kAiStateMove, 6, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(handThinkGoto), &handIdle };
AISTATE handJump = { kAiStateChase, 7, &AF(HandJumpSeqCallback), 120, NULL, NULL, NULL, &handChase };
void HandJumpSeqCallback(DBloodActor* actor)
{
if (!actor->ValidateTarget(__FUNCTION__)) return;

View file

@ -29,19 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void houndThinkSearch(DBloodActor*);
static void houndThinkGoto(DBloodActor*);
static void houndThinkChase(DBloodActor*);
AISTATE houndIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE houndSearch = { kAiStateMove, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(houndThinkSearch), &houndIdle };
AISTATE houndChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(houndThinkChase), NULL };
AISTATE houndRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &houndSearch };
AISTATE houndTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &houndSearch };
AISTATE houndGoto = { kAiStateMove, 8, nullptr, 600, NULL, &AF(aiMoveForward), &AF(houndThinkGoto), &houndIdle };
AISTATE houndBite = { kAiStateChase, 6, &AF(houndBiteSeqCallback), 60, NULL, NULL, NULL, &houndChase };
AISTATE houndBurn = { kAiStateChase, 7, &AF(houndBurnSeqCallback), 60, NULL, NULL, NULL, &houndChase };
void houndBiteSeqCallback(DBloodActor* actor)
{
if (!(actor->IsDudeActor())) {

View file

@ -29,17 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void innocThinkSearch(DBloodActor*);
static void innocThinkGoto(DBloodActor*);
static void innocThinkChase(DBloodActor*);
AISTATE innocentIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE innocentSearch = { kAiStateSearch, 6, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(innocThinkSearch), &innocentIdle };
AISTATE innocentChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveForward), &AF(innocThinkChase), NULL };
AISTATE innocentRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &innocentChase };
AISTATE innocentTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &innocentChase };
AISTATE innocentGoto = { kAiStateMove, 6, nullptr, 600, NULL, &AF(aiMoveForward), &AF(innocThinkGoto), &innocentIdle };
static void innocThinkSearch(DBloodActor* actor)
{
aiChooseDirection(actor, actor->xspr.goalAng);

View file

@ -29,27 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void aiPodSearch(DBloodActor* actor);
static void aiPodMove(DBloodActor* actor);
static void aiPodChase(DBloodActor* actor);
AISTATE podIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE podMove = { kAiStateMove, 7, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodMove), &podSearch };
AISTATE podSearch = { kAiStateSearch, 0, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodSearch), &podSearch };
AISTATE podStartChase = { kAiStateChase, 8, &AF(podAttack), 600, NULL, NULL, NULL, &podChase };
AISTATE podRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &podChase };
AISTATE podChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveTurn), &AF(aiPodChase), NULL };
AISTATE tentacleIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE tentacle13A6A8 = { kAiStateOther, 7, &AF(podPlaySound1), 0, NULL, NULL, NULL, &tentacle13A6C4 };
AISTATE tentacle13A6C4 = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleChase };
AISTATE tentacle13A6E0 = { kAiStateOther, 8, &AF(podPlaySound2), 0, NULL, NULL, NULL, &tentacle13A6FC };
AISTATE tentacle13A6FC = { kAiStateOther, -1, nullptr, 0, NULL, NULL, NULL, &tentacleIdle };
AISTATE tentacleMove = { kAiStateOther, 8, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodMove), &tentacleSearch };
AISTATE tentacleSearch = { kAiStateOther, 0, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodSearch), NULL };
AISTATE tentacleStartChase = { kAiStateOther, 6, &AF(podExplode), 120, NULL, NULL, NULL, &tentacleChase };
AISTATE tentacleRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &tentacleChase };
AISTATE tentacleChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveTurn), &AF(aiPodChase), NULL };
void podPlaySound1(DBloodActor* actor)
{
sfxPlay3DSound(actor, 2503, -1, 0);

View file

@ -29,18 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void ratThinkSearch(DBloodActor*);
static void ratThinkGoto(DBloodActor*);
static void ratThinkChase(DBloodActor*);
AISTATE ratIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE ratSearch = { kAiStateSearch, 7, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(ratThinkSearch), &ratIdle };
AISTATE ratChase = { kAiStateChase, 7, nullptr, 0, NULL, &AF(aiMoveForward), &AF(ratThinkChase), NULL };
AISTATE ratDodge = { kAiStateMove, 7, nullptr, 0, NULL, NULL, NULL, &ratChase };
AISTATE ratRecoil = { kAiStateRecoil, 7, nullptr, 0, NULL, NULL, NULL, &ratDodge };
AISTATE ratGoto = { kAiStateMove, 7, nullptr, 600, NULL, &AF(aiMoveForward), &AF(ratThinkGoto), &ratIdle };
AISTATE ratBite = { kAiStateChase, 6, &AF(ratBiteSeqCallback), 120, NULL, NULL, NULL, &ratChase };
void ratBiteSeqCallback(DBloodActor* actor)
{
assert(actor->IsDudeActor());

View file

@ -29,20 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void spidThinkSearch(DBloodActor*);
static void spidThinkGoto(DBloodActor*);
static void spidThinkChase(DBloodActor*);
AISTATE spidIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE spidChase = { kAiStateChase, 7, nullptr, 0, NULL, &AF(aiMoveForward), &AF(spidThinkChase), NULL };
AISTATE spidDodge = { kAiStateMove, 7, nullptr, 90, NULL, &AF(aiMoveDodge), NULL, &spidChase };
AISTATE spidGoto = { kAiStateMove, 7, nullptr, 600, NULL, &AF(aiMoveForward), &AF(spidThinkGoto), &spidIdle };
AISTATE spidSearch = { kAiStateSearch, 7, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(spidThinkSearch), &spidIdle };
AISTATE spidBite = { kAiStateChase, 6, &AF(SpidBiteSeqCallback), 60, NULL, NULL, NULL, &spidChase };
AISTATE spidJump = { kAiStateChase, 8, &AF(SpidJumpSeqCallback), 60, NULL, &AF(aiMoveForward), NULL, &spidChase };
AISTATE spidBirth = { kAiStateOther, 0, &AF(SpidBirthSeqCallback), 60, NULL, NULL, NULL, &spidIdle };
static void spidBlindEffect(DBloodActor* actor, int nBlind, int max)
{
if (actor->IsPlayerActor())

View file

@ -1,358 +0,0 @@
//-------------------------------------------------------------------------
/*
Copyright (C) 2010-2019 EDuke32 developers and contributors
Copyright (C) 2019 Nuke.YKT
This file is part of NBlood.
NBlood is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
//-------------------------------------------------------------------------
#pragma once
#include "ai.h"
BEGIN_BLD_NS
extern AISTATE batIdle;
extern AISTATE batFlyIdle;
extern AISTATE batChase;
extern AISTATE batPonder;
extern AISTATE batGoto;
extern AISTATE batBite;
extern AISTATE batRecoil;
extern AISTATE batSearch;
extern AISTATE batSwoop;
extern AISTATE batFly;
extern AISTATE batTurn;
extern AISTATE batHide;
extern AISTATE batDodgeUp;
extern AISTATE batDodgeUpRight;
extern AISTATE batDodgeUpLeft;
extern AISTATE batDodgeDown;
extern AISTATE batDodgeDownRight;
extern AISTATE batDodgeDownLeft;
extern AISTATE beastIdle;
extern AISTATE beastChase;
extern AISTATE beastDodge;
extern AISTATE beastGoto;
extern AISTATE beastSlash;
extern AISTATE beastStomp;
extern AISTATE beastSearch;
extern AISTATE beastRecoil;
extern AISTATE beastTeslaRecoil;
extern AISTATE beastSwimIdle;
extern AISTATE beastSwimChase;
extern AISTATE beastSwimDodge;
extern AISTATE beastSwimGoto;
extern AISTATE beastSwimSearch;
extern AISTATE beastSwimSlash;
extern AISTATE beastSwimRecoil;
extern AISTATE beastMorphToBeast;
extern AISTATE beastMorphFromCultist;
extern AISTATE beastMoveSwimChaseAlt;
extern AISTATE beastSwimAttack;
extern AISTATE beastSwimTurn;
extern AISTATE eelIdle;
extern AISTATE eelFlyIdle;
extern AISTATE eelChase;
extern AISTATE eelPonder;
extern AISTATE eelGoto;
extern AISTATE eelBite;
extern AISTATE eelRecoil;
extern AISTATE eelSearch;
extern AISTATE eelSwoop;
extern AISTATE eelFly;
extern AISTATE eelTurn;
extern AISTATE eelHide;
extern AISTATE eelDodgeUp;
extern AISTATE eelDodgeUpRight;
extern AISTATE eelDodgeUpLeft;
extern AISTATE eelDodgeDown;
extern AISTATE eelDodgeDownRight;
extern AISTATE eelDodgeDownLeft;
extern AISTATE cultistBurnIdle;
extern AISTATE cultistBurnChase;
extern AISTATE cultistBurnGoto;
extern AISTATE cultistBurnSearch;
extern AISTATE cultistBurnAttack;
extern AISTATE zombieABurnChase;
extern AISTATE zombieABurnGoto;
extern AISTATE zombieABurnSearch;
extern AISTATE zombieABurnAttack;
extern AISTATE zombieFBurnChase;
extern AISTATE zombieFBurnGoto;
extern AISTATE zombieFBurnSearch;
extern AISTATE zombieFBurnAttack;
extern AISTATE innocentBurnChase;
extern AISTATE innocentBurnGoto;
extern AISTATE innocentBurnSearch;
extern AISTATE innocentBurnAttack;
extern AISTATE beastBurnChase;
extern AISTATE beastBurnGoto;
extern AISTATE beastBurnSearch;
extern AISTATE beastBurnAttack;
extern AISTATE tinycalebBurnChase;
extern AISTATE tinycalebBurnGoto;
extern AISTATE tinycalebBurnSearch;
extern AISTATE tinycalebBurnAttack;
extern AISTATE genDudeBurnIdle;
extern AISTATE genDudeBurnChase;
extern AISTATE genDudeBurnGoto;
extern AISTATE genDudeBurnSearch;
extern AISTATE genDudeBurnAttack;
extern AISTATE tinycalebIdle;
extern AISTATE tinycalebChase;
extern AISTATE tinycalebDodge;
extern AISTATE tinycalebGoto;
extern AISTATE tinycalebAttack;
extern AISTATE tinycalebSearch;
extern AISTATE tinycalebRecoil;
extern AISTATE tinycalebTeslaRecoil;
extern AISTATE tinycalebSwimIdle;
extern AISTATE tinycalebSwimChase;
extern AISTATE tinycalebSwimDodge;
extern AISTATE tinycalebSwimGoto;
extern AISTATE tinycalebSwimSearch;
extern AISTATE tinycalebSwimAttack;
extern AISTATE tinycalebSwimRecoil;
extern AISTATE tinycalebSwimUnused;
extern AISTATE tinycalebSwimMoveIn;
extern AISTATE tinycalebSwimTurn;
extern AISTATE cerberusIdle;
extern AISTATE cerberusSearch;
extern AISTATE cerberusChase;
extern AISTATE cerberusRecoil;
extern AISTATE cerberusTeslaRecoil;
extern AISTATE cerberusGoto;
extern AISTATE cerberusBite;
extern AISTATE cerberusBurn;
extern AISTATE cerberus3Burn;
extern AISTATE cerberus2Idle;
extern AISTATE cerberus2Search;
extern AISTATE cerberus2Chase;
extern AISTATE cerberus2Recoil;
extern AISTATE cerberus2Goto;
extern AISTATE cerberus2Bite;
extern AISTATE cerberus2Burn;
extern AISTATE cerberus4Burn;
extern AISTATE cerberusTurn1;
extern AISTATE cerberusTurn2;
extern AISTATE cultistIdle;
extern AISTATE cultistProneIdle;
extern AISTATE fanaticProneIdle;
extern AISTATE cultistProneIdle3;
extern AISTATE cultistChase;
extern AISTATE fanaticChase;
extern AISTATE cultistDodge;
extern AISTATE cultistGoto;
extern AISTATE cultistProneChase;
extern AISTATE cultistProneDodge;
extern AISTATE cultistTThrow;
extern AISTATE cultistSThrow;
extern AISTATE cultistTsThrow;
extern AISTATE cultistDThrow;
extern AISTATE cultistDThrow2;
extern AISTATE cultistDThrow3C;
extern AISTATE cultistDThrow3B;
extern AISTATE cultistDThrow3A;
extern AISTATE cultistDThrow4;
extern AISTATE cultistSearch;
extern AISTATE cultistSFire;
extern AISTATE cultistTFire;
extern AISTATE cultistTsFire;
extern AISTATE cultistSProneFire;
extern AISTATE cultistTProneFire;
extern AISTATE cultistTsProneFire;
extern AISTATE cultistRecoil;
extern AISTATE cultistProneRecoil;
extern AISTATE cultistTeslaRecoil;
extern AISTATE cultistSwimIdle;
extern AISTATE cultistSwimChase;
extern AISTATE cultistSwimDodge;
extern AISTATE cultistSwimGoto;
extern AISTATE cultistSwimSearch;
extern AISTATE cultistSSwimFire;
extern AISTATE cultistTSwimFire;
extern AISTATE cultistTsSwimFire;
extern AISTATE cultistSwimRecoil;
extern AISTATE gargoyleFIdle;
extern AISTATE gargoyleStatueIdle;
extern AISTATE gargoyleFChase;
extern AISTATE gargoyleFGoto;
extern AISTATE gargoyleFSlash;
extern AISTATE gargoyleFThrow;
extern AISTATE gargoyleSThrow;
extern AISTATE gargoyleSBlast;
extern AISTATE gargoyleFRecoil;
extern AISTATE gargoyleFSearch;
extern AISTATE gargoyleFMorph2;
extern AISTATE gargoyleFMorph;
extern AISTATE gargoyleSMorph2;
extern AISTATE gargoyleSMorph;
extern AISTATE gargoyleSwoop;
extern AISTATE gargoyleFly;
extern AISTATE gargoyleTurn;
extern AISTATE gargoyleDodgeUp;
extern AISTATE gargoyleFDodgeUpRight;
extern AISTATE gargoyleFDodgeUpLeft;
extern AISTATE gargoyleDodgeDown;
extern AISTATE gargoyleFDodgeDownRight;
extern AISTATE gargoyleFDodgeDownLeft;
extern AISTATE statueFBreakSEQ;
extern AISTATE statueSBreakSEQ;
extern AISTATE ghostIdle;
extern AISTATE ghostChase;
extern AISTATE ghostGoto;
extern AISTATE ghostSlash;
extern AISTATE ghostThrow;
extern AISTATE ghostBlast;
extern AISTATE ghostRecoil;
extern AISTATE ghostTeslaRecoil;
extern AISTATE ghostSearch;
extern AISTATE ghostSwoop;
extern AISTATE ghostFly;
extern AISTATE ghostTurn;
extern AISTATE ghostDodgeUp;
extern AISTATE ghostDodgeUpRight;
extern AISTATE ghostDodgeUpLeft;
extern AISTATE ghostDodgeDown;
extern AISTATE ghostDodgeDownRight;
extern AISTATE ghostDodgeDownLeft;
extern AISTATE gillBeastIdle;
extern AISTATE gillBeastChase;
extern AISTATE gillBeastDodge;
extern AISTATE gillBeastGoto;
extern AISTATE gillBeastBite;
extern AISTATE gillBeastSearch;
extern AISTATE gillBeastRecoil;
extern AISTATE gillBeastSwimIdle;
extern AISTATE gillBeastSwimChase;
extern AISTATE gillBeastSwimDodge;
extern AISTATE gillBeastSwimGoto;
extern AISTATE gillBeastSwimSearch;
extern AISTATE gillBeastSwimBite;
extern AISTATE gillBeastSwimRecoil;
extern AISTATE gillBeastSwimUnused;
extern AISTATE gillBeastSwimMoveIn;
extern AISTATE gillBeastSwimTurn;
extern AISTATE handIdle;
extern AISTATE handChoke;
extern AISTATE handSearch;
extern AISTATE handChase;
extern AISTATE handRecoil;
extern AISTATE handGoto;
extern AISTATE handJump;
extern AISTATE houndIdle;
extern AISTATE houndSearch;
extern AISTATE houndChase;
extern AISTATE houndRecoil;
extern AISTATE houndTeslaRecoil;
extern AISTATE houndGoto;
extern AISTATE houndBite;
extern AISTATE houndBurn;
extern AISTATE innocentIdle;
extern AISTATE innocentSearch;
extern AISTATE innocentChase;
extern AISTATE innocentRecoil;
extern AISTATE innocentTeslaRecoil;
extern AISTATE innocentGoto;
extern AISTATE podIdle;
extern AISTATE podMove;
extern AISTATE podSearch;
extern AISTATE podStartChase;
extern AISTATE podRecoil;
extern AISTATE podChase;
extern AISTATE tentacleIdle;
extern AISTATE tentacle13A6A8;
extern AISTATE tentacle13A6C4;
extern AISTATE tentacle13A6E0;
extern AISTATE tentacle13A6FC;
extern AISTATE tentacleMove;
extern AISTATE tentacleSearch;
extern AISTATE tentacleStartChase;
extern AISTATE tentacleRecoil;
extern AISTATE tentacleChase;
extern AISTATE ratIdle;
extern AISTATE ratSearch;
extern AISTATE ratChase;
extern AISTATE ratDodge;
extern AISTATE ratRecoil;
extern AISTATE ratGoto;
extern AISTATE ratBite;
extern AISTATE spidIdle;
extern AISTATE spidChase;
extern AISTATE spidDodge;
extern AISTATE spidGoto;
extern AISTATE spidSearch;
extern AISTATE spidBite;
extern AISTATE spidJump;
extern AISTATE spidBirth;
extern AISTATE tchernobogIdle;
extern AISTATE tchernobogSearch;
extern AISTATE tchernobogChase;
extern AISTATE tchernobogRecoil;
extern AISTATE tchernobogGoto;
extern AISTATE tchernobogBurn1;
extern AISTATE tchernobogBurn2;
extern AISTATE tchernobogFireAtk;
extern AISTATE tchernobogTurn;
extern AISTATE zombieAIdle;
extern AISTATE zombieAChase;
extern AISTATE zombieAPonder;
extern AISTATE zombieAGoto;
extern AISTATE zombieAHack;
extern AISTATE zombieASearch;
extern AISTATE zombieARecoil;
extern AISTATE zombieATeslaRecoil;
extern AISTATE zombieARecoil2;
extern AISTATE zombieAStand;
extern AISTATE zombieEIdle;
extern AISTATE zombieEUp2;
extern AISTATE zombieEUp;
extern AISTATE zombie2Idle;
extern AISTATE zombie2Search;
extern AISTATE zombieSIdle;
extern AISTATE zombieEStand;
extern AISTATE zombieFIdle;
extern AISTATE zombieFChase;
extern AISTATE zombieFGoto;
extern AISTATE zombieFDodge;
extern AISTATE zombieFHack;
extern AISTATE zombieFPuke;
extern AISTATE zombieFThrow;
extern AISTATE zombieFSearch;
extern AISTATE zombieFRecoil;
extern AISTATE zombieFTeslaRecoil;
END_BLD_NS

View file

@ -29,22 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void tchernobogThinkSearch(DBloodActor*);
static void tchernobogThinkTarget(DBloodActor*);
static void tchernobogThinkGoto(DBloodActor*);
static void tchernobogThinkChase(DBloodActor*);
AISTATE tchernobogIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(tchernobogThinkTarget), NULL };
AISTATE tchernobogSearch = { kAiStateSearch, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(tchernobogThinkSearch), &tchernobogIdle };
AISTATE tchernobogChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(tchernobogThinkChase), NULL };
AISTATE tchernobogRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &tchernobogSearch };
AISTATE tchernobogGoto = { kAiStateMove, 8, nullptr, 600, NULL, &AF(aiMoveForward), &AF(tchernobogThinkGoto), &tchernobogIdle };
AISTATE tchernobogBurn1 = { kAiStateMove, 6, &AF(tchernobogBurnSeqCallback), 60, NULL, NULL, NULL, &tchernobogChase };
AISTATE tchernobogBurn2 = { kAiStateChase, 6, &AF(tchernobogBurnSeqCallback2), 60, NULL, NULL, NULL, &tchernobogChase };
AISTATE tchernobogFireAtk = { kAiStateChase, 7, &AF(tchernobogFire), 60, NULL, NULL, NULL, &tchernobogChase };
AISTATE tchernobogTurn = { kAiStateChase, 8, nullptr, 60, NULL, &AF(aiMoveTurn), NULL, &tchernobogChase };
static constexpr double Tchernnobog_XYOff = 350. / 16;
void tchernobogFire(DBloodActor* actor)

View file

@ -29,35 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void zombaThinkSearch(DBloodActor*);
static void zombaThinkGoto(DBloodActor*);
static void zombaThinkChase(DBloodActor*);
static void zombaThinkPonder(DBloodActor*);
static void myThinkTarget(DBloodActor*);
static void myThinkSearch(DBloodActor*);
static void entryEZombie(DBloodActor*);
static void entryAIdle(DBloodActor*);
static void entryEStand(DBloodActor*);
AISTATE zombieAIdle = { kAiStateIdle, 0, nullptr, 0, &AF(entryAIdle), NULL, &AF(aiThinkTarget), NULL };
AISTATE zombieAChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(zombaThinkChase), NULL };
AISTATE zombieAPonder = { kAiStateOther, 0, nullptr, 0, NULL, &AF(aiMoveTurn), &AF(zombaThinkPonder), NULL };
AISTATE zombieAGoto = { kAiStateMove, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(zombaThinkGoto), &zombieAIdle };
AISTATE zombieAHack = { kAiStateChase, 6, &AF(HackSeqCallback), 80, NULL, NULL, NULL, &zombieAPonder };
AISTATE zombieASearch = { kAiStateSearch, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(zombaThinkSearch), &zombieAIdle };
AISTATE zombieARecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &zombieAPonder };
AISTATE zombieATeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &zombieAPonder };
AISTATE zombieARecoil2 = { kAiStateRecoil, 1, nullptr, 360, NULL, NULL, NULL, &zombieAStand };
AISTATE zombieAStand = { kAiStateMove, 11, &AF(StandSeqCallback), 0, NULL, NULL, NULL, &zombieAPonder };
AISTATE zombieEIdle = { kAiStateIdle, 12, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE zombieEUp2 = { kAiStateMove, 0, nullptr, 1, &AF(entryEZombie), NULL, NULL, &zombieASearch };
AISTATE zombieEUp = { kAiStateMove, 9, nullptr, 180, &AF(entryEStand), NULL, NULL, &zombieEUp2 };
AISTATE zombie2Idle = { kAiStateIdle, 0, nullptr, 0, &AF(entryAIdle), NULL, &AF(myThinkTarget), NULL };
AISTATE zombie2Search = { kAiStateSearch, 8, nullptr, 1800, NULL, NULL, &AF(myThinkSearch), &zombie2Idle };
AISTATE zombieSIdle = { kAiStateIdle, 10, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE zombieEStand = { kAiStateOther, 11, &AF(StandSeqCallback), 0, &AF(entryEZombie), NULL, NULL, &zombieAPonder };
void HackSeqCallback(DBloodActor* actor)
{
auto target = actor->GetTarget();

View file

@ -29,22 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
BEGIN_BLD_NS
static void zombfThinkSearch(DBloodActor* actor);
static void zombfThinkGoto(DBloodActor* actor);
static void zombfThinkChase(DBloodActor* actor);
AISTATE zombieFIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
AISTATE zombieFChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(zombfThinkChase), NULL };
AISTATE zombieFGoto = { kAiStateMove, 8, nullptr, 600, NULL, &AF(aiMoveForward), &AF(zombfThinkGoto), &zombieFIdle };
AISTATE zombieFDodge = { kAiStateMove, 8, nullptr, 0, NULL, &AF(aiMoveDodge), &AF(zombfThinkChase), &zombieFChase };
AISTATE zombieFHack = { kAiStateChase, 6, &AF(zombfHackSeqCallback), 120, NULL, NULL, NULL, &zombieFChase };
AISTATE zombieFPuke = { kAiStateChase, 9, &AF(PukeSeqCallback), 120, NULL, NULL, NULL, &zombieFChase };
AISTATE zombieFThrow = { kAiStateChase, 6, &AF(ThrowSeqCallback), 120, NULL, NULL, NULL, &zombieFChase };
AISTATE zombieFSearch = { kAiStateSearch, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(zombfThinkSearch), &zombieFIdle };
AISTATE zombieFRecoil = { kAiStateRecoil, 5, nullptr, 0, NULL, NULL, NULL, &zombieFChase };
AISTATE zombieFTeslaRecoil = { kAiStateRecoil, 4, nullptr, 0, NULL, NULL, NULL, &zombieFChase };
void zombfHackSeqCallback(DBloodActor* actor)
{
if (actor->GetType() != kDudeZombieButcher)

View file

@ -36,7 +36,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#include "actor.h"
#include "ai.h"
#include "aistate.h"
#include "aiunicult.h"
#include "callback.h"
#include "db.h"

View file

@ -42,9 +42,6 @@ enum
#pragma pack(push, 1)
struct AISTATE;
struct MAPSIGNATURE {
char signature[4];
int16_t version;

View file

@ -57,7 +57,6 @@ struct walltypedisk
BEGIN_BLD_NS
class DBloodActor;
struct AISTATE;
struct XSPRITE {