- floatified zombaThinkChase and zombaThinkPonder

This commit is contained in:
Christoph Oelckers 2022-09-27 22:26:32 +02:00
parent 4388401e6e
commit 523400772e

View file

@ -113,9 +113,9 @@ static void zombaThinkChase(DBloodActor* actor)
auto target = actor->GetTarget();
auto dvec = target->spr.pos.XY() - actor->spr.pos.XY();
int nAngle = getangle(dvec);
int nDist = approxDist(dvec);
aiChooseDirection(actor, DAngle::fromBuild(nAngle));
DAngle nAngle = VecToAngle(dvec);
double nDist = dvec.Length();
aiChooseDirection(actor, nAngle);
if (target->xspr.health == 0)
{
@ -132,16 +132,16 @@ static void zombaThinkChase(DBloodActor* actor)
actor->spr.type = kDudeZombieAxeNormal;
if (nDist <= pDudeInfo->seeDist)
if (nDist <= pDudeInfo->SeeDist())
{
int nDeltaAngle = getincangle(actor->int_ang(), nAngle);
DAngle nDeltaAngle = absangle(actor->spr.angle, nAngle);
double height = (pDudeInfo->eyeHeight * actor->spr.yrepeat) * REPEAT_SCALE;
if (cansee(target->spr.pos, target->sector(), actor->spr.pos.plusZ(-height), actor->sector()))
{
if (abs(nDeltaAngle) <= pDudeInfo->periphery)
if (nDeltaAngle <= pDudeInfo->Periphery())
{
aiSetTarget(actor, actor->GetTarget());
if (nDist < 0x400 && abs(nDeltaAngle) < 85)
if (nDist < 0x40 && nDeltaAngle < DAngle15)
aiNewState(actor, &zombieAHack);
return;
}
@ -165,9 +165,9 @@ static void zombaThinkPonder(DBloodActor* actor)
auto target = actor->GetTarget();
auto dvec = target->spr.pos.XY() - actor->spr.pos.XY();
int nAngle = getangle(dvec);
int nDist = approxDist(dvec);
aiChooseDirection(actor, DAngle::fromBuild(nAngle));
DAngle nAngle = VecToAngle(dvec);
double nDist = dvec.Length();
aiChooseDirection(actor, nAngle);
if (target->xspr.health == 0)
{
aiNewState(actor, &zombieASearch);
@ -179,18 +179,18 @@ static void zombaThinkPonder(DBloodActor* actor)
return;
}
if (nDist <= pDudeInfo->seeDist)
if (nDist <= pDudeInfo->SeeDist())
{
int nDeltaAngle = getincangle(actor->int_ang(), nAngle);
DAngle nDeltaAngle = absangle(actor->spr.angle, nAngle);
double height = (pDudeInfo->eyeHeight * actor->spr.yrepeat) * REPEAT_SCALE;
if (cansee(target->spr.pos, target->sector(), actor->spr.pos.plusZ(-height), actor->sector()))
{
if (abs(nDeltaAngle) <= pDudeInfo->periphery)
if (nDeltaAngle <= pDudeInfo->Periphery())
{
aiSetTarget(actor, actor->GetTarget());
if (nDist < 0x400)
if (nDist < 0x40)
{
if (abs(nDeltaAngle) < 85)
if (nDeltaAngle < DAngle15)
{
sfxPlay3DSound(actor, 1101, 1, 0);
aiNewState(actor, &zombieAHack);