mirror of
https://github.com/ZDoom/Raze.git
synced 2024-11-26 05:51:30 +00:00
remove static declarators from exported action functions.
This made GCC error out.
This commit is contained in:
parent
1298f17c38
commit
66db6c5855
19 changed files with 113 additions and 230 deletions
|
@ -29,17 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 batIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(batThinkTarget), NULL };
|
||||||
|
@ -75,7 +64,7 @@ void batBiteSeqCallback(DBloodActor* actor)
|
||||||
actFireVector(actor, 0., 0., DVector3(actor->spr.Angles.Yaw.ToVector() * 64, height2 - height), kVectorBatBite);
|
actFireVector(actor, 0., 0., DVector3(actor->spr.Angles.Yaw.ToVector() * 64, height2 - height), kVectorBatBite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batThinkTarget(DBloodActor* actor)
|
void batThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -125,13 +114,13 @@ static void batThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batThinkSearch(DBloodActor* actor)
|
void batThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
batThinkTarget(actor);
|
batThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batThinkGoto(DBloodActor* actor)
|
void batThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -144,7 +133,7 @@ static void batThinkGoto(DBloodActor* actor)
|
||||||
batThinkTarget(actor);
|
batThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batThinkPonder(DBloodActor* actor)
|
void batThinkPonder(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -196,7 +185,7 @@ static void batThinkPonder(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batMoveDodgeUp(DBloodActor* actor)
|
void batMoveDodgeUp(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -213,7 +202,7 @@ static void batMoveDodgeUp(DBloodActor* actor)
|
||||||
actor->vel.Z = FixedToFloat(-0x52aaa);
|
actor->vel.Z = FixedToFloat(-0x52aaa);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batMoveDodgeDown(DBloodActor* actor)
|
void batMoveDodgeDown(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -232,7 +221,7 @@ static void batMoveDodgeDown(DBloodActor* actor)
|
||||||
actor->vel.Z = 4.26666;
|
actor->vel.Z = 4.26666;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batThinkChase(DBloodActor* actor)
|
void batThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -294,7 +283,7 @@ static void batThinkChase(DBloodActor* actor)
|
||||||
aiNewState(actor, &batHide);
|
aiNewState(actor, &batHide);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batMoveForward(DBloodActor* actor)
|
void batMoveForward(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -319,7 +308,7 @@ static void batMoveForward(DBloodActor* actor)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batMoveSwoop(DBloodActor* actor)
|
void batMoveSwoop(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -343,7 +332,7 @@ static void batMoveSwoop(DBloodActor* actor)
|
||||||
actor->vel.Z = 4.26666;
|
actor->vel.Z = 4.26666;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void batMoveFly(DBloodActor* actor)
|
void batMoveFly(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
|
|
@ -29,16 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 beastIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE beastChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(beastMoveForward), &AF(beastThinkChase), NULL };
|
AISTATE beastChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(beastMoveForward), &AF(beastThinkChase), NULL };
|
||||||
|
@ -156,19 +146,19 @@ void StompSeqCallback(DBloodActor* actor)
|
||||||
sfxPlay3DSound(actor, 9015 + Random(2), -1, 0);
|
sfxPlay3DSound(actor, 9015 + Random(2), -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void MorphToBeast(DBloodActor* actor)
|
void MorphToBeast(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
actHealDude(actor, dudeInfo[51].startHealth, dudeInfo[51].startHealth);
|
actHealDude(actor, dudeInfo[51].startHealth, dudeInfo[51].startHealth);
|
||||||
actor->ChangeType(kDudeBeast);
|
actor->ChangeType(kDudeBeast);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastThinkSearch(DBloodActor* actor)
|
void beastThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastThinkGoto(DBloodActor* actor)
|
void beastThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -189,7 +179,7 @@ static void beastThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastThinkChase(DBloodActor* actor)
|
void beastThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -320,7 +310,7 @@ static void beastThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastThinkSwimGoto(DBloodActor* actor)
|
void beastThinkSwimGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -333,7 +323,7 @@ static void beastThinkSwimGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastThinkSwimChase(DBloodActor* actor)
|
void beastThinkSwimChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -387,7 +377,7 @@ static void beastThinkSwimChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastMoveForward(DBloodActor* actor)
|
void beastMoveForward(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -403,7 +393,7 @@ static void beastMoveForward(DBloodActor* actor)
|
||||||
actor->vel.XY() += actor->spr.Angles.Yaw.ToVector() * pDudeInfo->FrontSpeed();
|
actor->vel.XY() += actor->spr.Angles.Yaw.ToVector() * pDudeInfo->FrontSpeed();
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastMoveSwim(DBloodActor* actor)
|
void beastMoveSwim(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -427,7 +417,7 @@ static void beastMoveSwim(DBloodActor* actor)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastMoveSwimAlt(DBloodActor* actor)
|
void beastMoveSwimAlt(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -457,7 +447,7 @@ static void beastMoveSwimAlt(DBloodActor* actor)
|
||||||
actor->vel.Z = -dz / 256;
|
actor->vel.Z = -dz / 256;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void beastMoveIn(DBloodActor* actor)
|
void beastMoveIn(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
|
|
@ -29,17 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 eelIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(eelThinkTarget), NULL };
|
||||||
|
@ -87,7 +76,7 @@ void eelBiteSeqCallback(DBloodActor* actor)
|
||||||
actFireVector(actor, 0., 0., vect, kVectorBoneelBite);
|
actFireVector(actor, 0., 0., vect, kVectorBoneelBite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelThinkTarget(DBloodActor* actor)
|
void eelThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -138,13 +127,13 @@ static void eelThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelThinkSearch(DBloodActor* actor)
|
void eelThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
eelThinkTarget(actor);
|
eelThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelThinkGoto(DBloodActor* actor)
|
void eelThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -157,7 +146,7 @@ static void eelThinkGoto(DBloodActor* actor)
|
||||||
eelThinkTarget(actor);
|
eelThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelThinkPonder(DBloodActor* actor)
|
void eelThinkPonder(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -211,7 +200,7 @@ static void eelThinkPonder(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelMoveDodgeUp(DBloodActor* actor)
|
void eelMoveDodgeUp(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -228,7 +217,7 @@ static void eelMoveDodgeUp(DBloodActor* actor)
|
||||||
actor->vel.Z = -0.5;
|
actor->vel.Z = -0.5;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelMoveDodgeDown(DBloodActor* actor)
|
void eelMoveDodgeDown(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -247,7 +236,7 @@ static void eelMoveDodgeDown(DBloodActor* actor)
|
||||||
actor->vel.Z = 4.26666;
|
actor->vel.Z = 4.26666;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelThinkChase(DBloodActor* actor)
|
void eelThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -304,7 +293,7 @@ static void eelThinkChase(DBloodActor* actor)
|
||||||
aiNewState(actor, &eelSearch);
|
aiNewState(actor, &eelSearch);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelMoveForward(DBloodActor* actor)
|
void eelMoveForward(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -329,7 +318,7 @@ static void eelMoveForward(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelMoveSwoop(DBloodActor* actor)
|
void eelMoveSwoop(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -350,7 +339,7 @@ static void eelMoveSwoop(DBloodActor* actor)
|
||||||
actor->vel.Z = FixedToFloat(0x22222);
|
actor->vel.Z = FixedToFloat(0x22222);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void eelMoveAscend(DBloodActor* actor)
|
void eelMoveAscend(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 cultistBurnIdle = { kAiStateIdle, 3, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE cultistBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
|
AISTATE cultistBurnChase = { kAiStateChase, 3, nullptr, 0, NULL, &AF(aiMoveForward), &AF(burnThinkChase), NULL };
|
||||||
|
@ -74,13 +71,13 @@ void BurnSeqCallback(DBloodActor*)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
static void burnThinkSearch(DBloodActor* actor)
|
void burnThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void burnThinkGoto(DBloodActor* actor)
|
void burnThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -120,7 +117,7 @@ static void burnThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void burnThinkChase(DBloodActor* actor)
|
void burnThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,14 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 tinycalebIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE tinycalebChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveForward), &AF(calebThinkChase), NULL };
|
AISTATE tinycalebChase = { kAiStateChase, 6, nullptr, 0, NULL, &AF(aiMoveForward), &AF(calebThinkChase), NULL };
|
||||||
|
@ -79,13 +71,13 @@ void SeqAttackCallback(DBloodActor* actor)
|
||||||
sfxPlay3DSound(actor, 1002, -1, 0);
|
sfxPlay3DSound(actor, 1002, -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebThinkSearch(DBloodActor* actor)
|
void calebThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebThinkGoto(DBloodActor* actor)
|
void calebThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -107,7 +99,7 @@ static void calebThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebThinkChase(DBloodActor* actor)
|
void calebThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
auto pSector = actor->sector();
|
auto pSector = actor->sector();
|
||||||
auto pXSector = pSector->hasX() ? &pSector->xs() : nullptr;
|
auto pXSector = pSector->hasX() ? &pSector->xs() : nullptr;
|
||||||
|
@ -208,7 +200,7 @@ static void calebThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebThinkSwimGoto(DBloodActor* actor)
|
void calebThinkSwimGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -221,7 +213,7 @@ static void calebThinkSwimGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebThinkSwimChase(DBloodActor* actor)
|
void calebThinkSwimChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -272,7 +264,7 @@ static void calebThinkSwimChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebMoveSwimChase(DBloodActor* actor)
|
void calebMoveSwimChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -297,7 +289,7 @@ static void calebMoveSwimChase(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebSwimUnused(DBloodActor* actor)
|
void calebSwimUnused(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -325,7 +317,7 @@ static void calebSwimUnused(DBloodActor* actor)
|
||||||
actor->vel.Z = -dz / 256;
|
actor->vel.Z = -dz / 256;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void calebSwimMoveIn(DBloodActor* actor)
|
void calebSwimMoveIn(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
|
|
@ -29,10 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 cerberusIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(cerberusThinkTarget), NULL };
|
||||||
|
@ -207,13 +203,13 @@ void cerberusBurnSeqCallback2(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cerberusThinkSearch(DBloodActor* actor)
|
void cerberusThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cerberusThinkTarget(DBloodActor* actor)
|
void cerberusThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -269,7 +265,7 @@ static void cerberusThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cerberusThinkGoto(DBloodActor* actor)
|
void cerberusThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -294,7 +290,7 @@ static void cerberusThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cerberusThinkChase(DBloodActor* actor)
|
void cerberusThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr) {
|
if (actor->GetTarget() == nullptr) {
|
||||||
switch (actor->GetType()) {
|
switch (actor->GetType()) {
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 cultistIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE cultistProneIdle = { kAiStateIdle, 17, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
AISTATE cultistProneIdle = { kAiStateIdle, 17, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
|
@ -163,7 +160,7 @@ void cultThrowSeqCallback3(DBloodActor* actor)
|
||||||
pMissile->xspr.Impact = 1;
|
pMissile->xspr.Impact = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool TargetNearExplosion(sectortype* sector)
|
bool TargetNearExplosion(sectortype* sector)
|
||||||
{
|
{
|
||||||
BloodSectIterator it(sector);
|
BloodSectIterator it(sector);
|
||||||
while (auto actor = it.Next())
|
while (auto actor = it.Next())
|
||||||
|
@ -174,13 +171,13 @@ static bool TargetNearExplosion(sectortype* sector)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cultThinkSearch(DBloodActor* actor)
|
void cultThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiLookForTarget(actor);
|
aiLookForTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cultThinkGoto(DBloodActor* actor)
|
void cultThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -204,7 +201,7 @@ static void cultThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void cultThinkChase(DBloodActor* actor)
|
void cultThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,19 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 gargoyleFIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(gargThinkTarget), NULL };
|
||||||
AISTATE gargoyleStatueIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, NULL, NULL };
|
AISTATE gargoyleStatueIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, NULL, NULL };
|
||||||
|
@ -70,7 +57,7 @@ AISTATE gargoyleFDodgeDownLeft = { kAiStateMove, 0, nullptr, 90, NULL, &AF(gargM
|
||||||
AISTATE statueFBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entryFStatue), NULL, &AF(playStatueBreakSnd), &gargoyleFMorph2 };
|
AISTATE statueFBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entryFStatue), NULL, &AF(playStatueBreakSnd), &gargoyleFMorph2 };
|
||||||
AISTATE statueSBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entrySStatue), NULL, &AF(playStatueBreakSnd), &gargoyleSMorph2 };
|
AISTATE statueSBreakSEQ = { kAiStateOther, 5, nullptr, 0, &AF(entrySStatue), NULL, &AF(playStatueBreakSnd), &gargoyleSMorph2 };
|
||||||
|
|
||||||
static void playStatueBreakSnd(DBloodActor* actor) {
|
void playStatueBreakSnd(DBloodActor* actor) {
|
||||||
|
|
||||||
aiPlay3DSound(actor, 313, AI_SFX_PRIORITY_1, -1);
|
aiPlay3DSound(actor, 313, AI_SFX_PRIORITY_1, -1);
|
||||||
}
|
}
|
||||||
|
@ -173,7 +160,7 @@ void ThrowSSeqCallback(DBloodActor* actor)
|
||||||
actFireThing(actor, 0., 0., actor->dudeSlope * 0.25 - 0.11444, kThingBone, Chance(0x6000) ? 19.2 : 17.066666);
|
actFireThing(actor, 0., 0., actor->dudeSlope * 0.25 - 0.11444, kThingBone, Chance(0x6000) ? 19.2 : 17.066666);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargThinkTarget(DBloodActor* actor)
|
void gargThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -226,13 +213,13 @@ static void gargThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargThinkSearch(DBloodActor* actor)
|
void gargThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiLookForTarget(actor);
|
aiLookForTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargThinkGoto(DBloodActor* actor)
|
void gargThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -248,7 +235,7 @@ static void gargThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveDodgeUp(DBloodActor* actor)
|
void gargMoveDodgeUp(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -268,7 +255,7 @@ static void gargMoveDodgeUp(DBloodActor* actor)
|
||||||
actor->vel.Z = FixedToFloat(-0x1d555);
|
actor->vel.Z = FixedToFloat(-0x1d555);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveDodgeDown(DBloodActor* actor)
|
void gargMoveDodgeDown(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -290,7 +277,7 @@ static void gargMoveDodgeDown(DBloodActor* actor)
|
||||||
actor->vel.Z = 4.26666;
|
actor->vel.Z = 4.26666;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargThinkChase(DBloodActor* actor)
|
void gargThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -469,21 +456,21 @@ static void gargThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entryFStatue(DBloodActor* actor)
|
void entryFStatue(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
DUDEINFO* pDudeInfo = &dudeInfo[6];
|
DUDEINFO* pDudeInfo = &dudeInfo[6];
|
||||||
actHealDude(actor, pDudeInfo->startHealth, pDudeInfo->startHealth);
|
actHealDude(actor, pDudeInfo->startHealth, pDudeInfo->startHealth);
|
||||||
actor->ChangeType(kDudeGargoyleFlesh);
|
actor->ChangeType(kDudeGargoyleFlesh);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entrySStatue(DBloodActor* actor)
|
void entrySStatue(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
DUDEINFO* pDudeInfo = &dudeInfo[7];
|
DUDEINFO* pDudeInfo = &dudeInfo[7];
|
||||||
actHealDude(actor, pDudeInfo->startHealth, pDudeInfo->startHealth);
|
actHealDude(actor, pDudeInfo->startHealth, pDudeInfo->startHealth);
|
||||||
actor->ChangeType(kDudeGargoyleStone);
|
actor->ChangeType(kDudeGargoyleStone);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveForward(DBloodActor* actor)
|
void gargMoveForward(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -511,7 +498,7 @@ static void gargMoveForward(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveSlow(DBloodActor* actor)
|
void gargMoveSlow(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -546,7 +533,7 @@ static void gargMoveSlow(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveSwoop(DBloodActor* actor)
|
void gargMoveSwoop(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -581,7 +568,7 @@ static void gargMoveSwoop(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gargMoveFly(DBloodActor* actor)
|
void gargMoveFly(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
|
|
@ -29,16 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 ghostIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(ghostThinkTarget), NULL };
|
||||||
|
@ -154,7 +144,7 @@ void ghostBlastSeqCallback(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostThinkTarget(DBloodActor* actor)
|
void ghostThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -206,13 +196,13 @@ static void ghostThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostThinkSearch(DBloodActor* actor)
|
void ghostThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostThinkGoto(DBloodActor* actor)
|
void ghostThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -228,7 +218,7 @@ static void ghostThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveDodgeUp(DBloodActor* actor)
|
void ghostMoveDodgeUp(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -248,7 +238,7 @@ static void ghostMoveDodgeUp(DBloodActor* actor)
|
||||||
actor->vel.Z = FixedToFloat(-0x1d555);
|
actor->vel.Z = FixedToFloat(-0x1d555);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveDodgeDown(DBloodActor* actor)
|
void ghostMoveDodgeDown(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -269,7 +259,7 @@ static void ghostMoveDodgeDown(DBloodActor* actor)
|
||||||
actor->vel.Z = 4.26666;
|
actor->vel.Z = 4.26666;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostThinkChase(DBloodActor* actor)
|
void ghostThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -379,7 +369,7 @@ static void ghostThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveForward(DBloodActor* actor)
|
void ghostMoveForward(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -406,7 +396,7 @@ static void ghostMoveForward(DBloodActor* actor)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveSlow(DBloodActor* actor)
|
void ghostMoveSlow(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -437,7 +427,7 @@ static void ghostMoveSlow(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveSwoop(DBloodActor* actor)
|
void ghostMoveSwoop(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -467,7 +457,7 @@ static void ghostMoveSwoop(DBloodActor* actor)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ghostMoveFly(DBloodActor* actor)
|
void ghostMoveFly(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
|
|
@ -29,14 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 gillBeastIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
|
@ -69,13 +61,13 @@ void GillBiteSeqCallback(DBloodActor* actor)
|
||||||
actFireVector(actor, 0, 0, vec, kVectorGillBite);
|
actFireVector(actor, 0, 0, vec, kVectorGillBite);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillThinkSearch(DBloodActor* actor)
|
void gillThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillThinkGoto(DBloodActor* actor)
|
void gillThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -97,7 +89,7 @@ static void gillThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillThinkChase(DBloodActor* actor)
|
void gillThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
auto pSector = actor->sector();
|
auto pSector = actor->sector();
|
||||||
auto pXSector = pSector->hasX() ? &pSector->xs() : nullptr;
|
auto pXSector = pSector->hasX() ? &pSector->xs() : nullptr;
|
||||||
|
@ -192,7 +184,7 @@ static void gillThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillThinkSwimGoto(DBloodActor* actor)
|
void gillThinkSwimGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -205,7 +197,7 @@ static void gillThinkSwimGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillThinkSwimChase(DBloodActor* actor)
|
void gillThinkSwimChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -260,7 +252,7 @@ static void gillThinkSwimChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillMoveSwimChase(DBloodActor* actor)
|
void gillMoveSwimChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -285,7 +277,7 @@ static void gillMoveSwimChase(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillMoveSwimUnused(DBloodActor* actor)
|
void gillMoveSwimUnused(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -312,7 +304,7 @@ static void gillMoveSwimUnused(DBloodActor* actor)
|
||||||
actor->vel.Z = -(target->spr.pos.Z - actor->spr.pos.Z) / 256.;
|
actor->vel.Z = -(target->spr.pos.Z - actor->spr.pos.Z) / 256.;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gillSwimMoveIn(DBloodActor* actor)
|
void gillSwimMoveIn(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 handIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE hand13A3B4 = { kAiStateOther, 0, nullptr, 0, NULL, NULL, NULL, NULL };
|
AISTATE hand13A3B4 = { kAiStateOther, 0, nullptr, 0, NULL, NULL, NULL, NULL };
|
||||||
|
@ -56,13 +53,13 @@ void HandJumpSeqCallback(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handThinkSearch(DBloodActor* actor)
|
void handThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handThinkGoto(DBloodActor* actor)
|
void handThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -75,7 +72,7 @@ static void handThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void handThinkChase(DBloodActor* actor)
|
void handThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 houndIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE houndSearch = { kAiStateMove, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(houndThinkSearch), &houndIdle };
|
AISTATE houndSearch = { kAiStateMove, 8, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(houndThinkSearch), &houndIdle };
|
||||||
|
@ -61,13 +58,13 @@ void houndBurnSeqCallback(DBloodActor* actor)
|
||||||
actFireMissile(actor, 0, 0, DVector3(actor->spr.Angles.Yaw.ToVector(), 0), kMissileFlameHound);
|
actFireMissile(actor, 0, 0, DVector3(actor->spr.Angles.Yaw.ToVector(), 0), kMissileFlameHound);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void houndThinkSearch(DBloodActor* actor)
|
void houndThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void houndThinkGoto(DBloodActor* actor)
|
void houndThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -84,7 +81,7 @@ static void houndThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void houndThinkChase(DBloodActor* actor)
|
void houndThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 innocentIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE innocentSearch = { kAiStateSearch, 6, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(innocThinkSearch), &innocentIdle };
|
AISTATE innocentSearch = { kAiStateSearch, 6, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(innocThinkSearch), &innocentIdle };
|
||||||
|
@ -46,7 +43,7 @@ static void innocThinkSearch(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void innocThinkGoto(DBloodActor* actor)
|
void innocThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -59,7 +56,7 @@ static void innocThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void innocThinkChase(DBloodActor* actor)
|
void innocThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 podIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE podMove = { kAiStateMove, 7, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodMove), &podSearch };
|
AISTATE podMove = { kAiStateMove, 7, nullptr, 3600, NULL, &AF(aiMoveTurn), &AF(aiPodMove), &podSearch };
|
||||||
|
@ -122,13 +119,13 @@ void podExplode(DBloodActor* actor)
|
||||||
actRadiusDamage(actor, actor->spr.pos, actor->sector(), nDist, 1, 5 * (1 + gGameOptions.nDifficulty), dmgType, 2, nBurn);
|
actRadiusDamage(actor, actor->spr.pos, actor->sector(), nDist, 1, 5 * (1 + gGameOptions.nDifficulty), dmgType, 2, nBurn);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void aiPodSearch(DBloodActor* actor)
|
void aiPodSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void aiPodMove(DBloodActor* actor)
|
void aiPodMove(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -156,7 +153,7 @@ static void aiPodMove(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void aiPodChase(DBloodActor* actor)
|
void aiPodChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr) {
|
if (actor->GetTarget() == nullptr) {
|
||||||
switch (actor->GetType()) {
|
switch (actor->GetType()) {
|
||||||
|
|
|
@ -29,10 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 ratIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE ratSearch = { kAiStateSearch, 7, nullptr, 1800, NULL, &AF(aiMoveForward), &AF(ratThinkSearch), &ratIdle };
|
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 ratChase = { kAiStateChase, 7, nullptr, 0, NULL, &AF(aiMoveForward), &AF(ratThinkChase), NULL };
|
||||||
|
@ -53,13 +49,13 @@ void ratBiteSeqCallback(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ratThinkSearch(DBloodActor* actor)
|
void ratThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ratThinkGoto(DBloodActor* actor)
|
void ratThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -72,7 +68,7 @@ static void ratThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void ratThinkChase(DBloodActor* actor)
|
void ratThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,9 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 spidIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
|
@ -161,13 +158,13 @@ void SpidBirthSeqCallback(DBloodActor* actor)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spidThinkSearch(DBloodActor* actor)
|
void spidThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spidThinkGoto(DBloodActor* actor)
|
void spidThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -180,7 +177,7 @@ static void spidThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void spidThinkChase(DBloodActor* actor)
|
void spidThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,10 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 tchernobogIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(tchernobogThinkTarget), NULL };
|
||||||
|
@ -171,13 +167,13 @@ void tchernobogBurnSeqCallback2(DBloodActor* actor)
|
||||||
actFireMissile(actor, -Tchernnobog_XYOff, 0, Aim2, kMissileFireballTchernobog);
|
actFireMissile(actor, -Tchernnobog_XYOff, 0, Aim2, kMissileFireballTchernobog);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tchernobogThinkSearch(DBloodActor* actor)
|
void tchernobogThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tchernobogThinkTarget(DBloodActor* actor)
|
void tchernobogThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -232,7 +228,7 @@ static void tchernobogThinkTarget(DBloodActor* actor)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tchernobogThinkGoto(DBloodActor* actor)
|
void tchernobogThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (!(actor->IsDudeActor())) {
|
if (!(actor->IsDudeActor())) {
|
||||||
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
Printf(PRINT_HIGH, "actor->IsDudeActor()");
|
||||||
|
@ -248,7 +244,7 @@ static void tchernobogThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tchernobogThinkChase(DBloodActor* actor)
|
void tchernobogThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
|
@ -29,15 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 zombieAIdle = { kAiStateIdle, 0, nullptr, 0, &AF(entryAIdle), NULL, &AF(aiThinkTarget), NULL };
|
||||||
|
@ -80,13 +71,13 @@ void StandSeqCallback(DBloodActor* actor)
|
||||||
sfxPlay3DSound(actor, 1102, -1, 0);
|
sfxPlay3DSound(actor, 1102, -1, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombaThinkSearch(DBloodActor* actor)
|
void zombaThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiLookForTarget(actor);
|
aiLookForTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombaThinkGoto(DBloodActor* actor)
|
void zombaThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -99,7 +90,7 @@ static void zombaThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombaThinkChase(DBloodActor* actor)
|
void zombaThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -151,7 +142,7 @@ static void zombaThinkChase(DBloodActor* actor)
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombaThinkPonder(DBloodActor* actor)
|
void zombaThinkPonder(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -203,7 +194,7 @@ static void zombaThinkPonder(DBloodActor* actor)
|
||||||
aiNewState(actor, &zombieAChase);
|
aiNewState(actor, &zombieAChase);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void myThinkTarget(DBloodActor* actor)
|
void myThinkTarget(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -245,24 +236,24 @@ static void myThinkTarget(DBloodActor* actor)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
static void myThinkSearch(DBloodActor* actor)
|
void myThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
myThinkTarget(actor);
|
myThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entryEZombie(DBloodActor* actor)
|
void entryEZombie(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
actor->ChangeType(kDudeZombieAxeNormal);
|
actor->ChangeType(kDudeZombieAxeNormal);
|
||||||
actor->spr.flags |= 1;
|
actor->spr.flags |= 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entryAIdle(DBloodActor* actor)
|
void entryAIdle(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
actor->SetTarget(nullptr);
|
actor->SetTarget(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void entryEStand(DBloodActor* actor)
|
void entryEStand(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
sfxPlay3DSound(actor, 1100, -1, 0);
|
sfxPlay3DSound(actor, 1100, -1, 0);
|
||||||
actor->spr.Angles.Yaw = (actor->xspr.TargetPos - actor->spr.pos).Angle();
|
actor->spr.Angles.Yaw = (actor->xspr.TargetPos - actor->spr.pos).Angle();
|
||||||
|
|
|
@ -29,10 +29,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
|
|
||||||
BEGIN_BLD_NS
|
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 zombieFIdle = { kAiStateIdle, 0, nullptr, 0, NULL, NULL, &AF(aiThinkTarget), NULL };
|
||||||
AISTATE zombieFChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(zombfThinkChase), NULL };
|
AISTATE zombieFChase = { kAiStateChase, 8, nullptr, 0, NULL, &AF(aiMoveForward), &AF(zombfThinkChase), NULL };
|
||||||
|
@ -80,13 +76,13 @@ void ThrowSeqCallback(DBloodActor* actor)
|
||||||
actFireMissile(actor, 0, 0, DVector3(actor->spr.Angles.Yaw.ToVector(), 0), kMissileButcherKnife);
|
actFireMissile(actor, 0, 0, DVector3(actor->spr.Angles.Yaw.ToVector(), 0), kMissileButcherKnife);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombfThinkSearch(DBloodActor* actor)
|
void zombfThinkSearch(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
aiChooseDirection(actor, actor->xspr.goalAng);
|
aiChooseDirection(actor, actor->xspr.goalAng);
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombfThinkGoto(DBloodActor* actor)
|
void zombfThinkGoto(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
assert(actor->IsDudeActor());
|
assert(actor->IsDudeActor());
|
||||||
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
DUDEINFO* pDudeInfo = getDudeInfo(actor);
|
||||||
|
@ -99,7 +95,7 @@ static void zombfThinkGoto(DBloodActor* actor)
|
||||||
aiThinkTarget(actor);
|
aiThinkTarget(actor);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void zombfThinkChase(DBloodActor* actor)
|
void zombfThinkChase(DBloodActor* actor)
|
||||||
{
|
{
|
||||||
if (actor->GetTarget() == nullptr)
|
if (actor->GetTarget() == nullptr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue