- floatified GetAngleToSprite

This commit is contained in:
Christoph Oelckers 2022-09-10 21:30:26 +02:00
parent b5c315978c
commit f393b7e917
5 changed files with 14 additions and 14 deletions

View file

@ -224,7 +224,7 @@ DExhumedActor* FindPlayer(DExhumedActor* nSprite, int nDistance, bool dontengage
DExhumedActor* BuildCreatureChunk(DExhumedActor* pSrc, int nPic, bool bSpecial = false);
int PlotCourseToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
void CheckSectorFloor(sectortype* pSector, double z, DVector2& xy);
int GetAngleToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
DAngle GetAngleToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
DAngle GetWallNormal(walltype* nWall);
void MoveSector(sectortype* pSector, DAngle nAngle, DVector2& vel);
Collision AngleChase(DExhumedActor* nSprite, DExhumedActor* nSprite2, int ebx, int ecx, DAngle push1);

View file

@ -338,8 +338,8 @@ void AIFish::Tick(RunListEvent* ev)
pActor->nAction = 2;
pActor->nFrame = 0;
int nAngle = getangle(pTargetActor->spr.pos - pActor->spr.pos);
pActor->set_int_zvel(bsin(nAngle, -5));
DAngle nAngle = VecToAngle(pTargetActor->spr.pos - pActor->spr.pos);
pActor->vel.Z = nAngle.Sin() * 2;
pActor->nCount = RandomSize(6) + 90;
}

View file

@ -545,12 +545,12 @@ Collision MoveCreatureWithCaution(DExhumedActor* pActor)
return result;
}
int GetAngleToSprite(DExhumedActor* a1, DExhumedActor* a2)
DAngle GetAngleToSprite(DExhumedActor* a1, DExhumedActor* a2)
{
if (!a1 || !a2)
return -1;
return -minAngle;
return getangle(a2->spr.pos - a1->spr.pos);
return VecToAngle(a2->spr.pos - a1->spr.pos);
}
int PlotCourseToSprite(DExhumedActor* pActor1, DExhumedActor* pActor2)

View file

@ -964,9 +964,9 @@ void AIPlayer::Tick(RunListEvent* ev)
{
if (nTotalPlayers <= 1)
{
auto ang = GetAngleToSprite(pPlayerActor, pSpiritSprite) & kAngleMask;
PlayerList[nPlayer].angle.settarget(DAngle::fromBuild(ang), true);
pPlayerActor->set_int_ang(ang);
auto ang = GetAngleToSprite(pPlayerActor, pSpiritSprite);
PlayerList[nPlayer].angle.settarget(ang, true);
pPlayerActor->spr.angle = ang;
PlayerList[nPlayer].horizon.settarget(buildhoriz(0), true);

View file

@ -244,10 +244,10 @@ DExhumedActor* FindSnakeEnemy(int nSnake)
DExhumedActor* pActor = SnakeList[nSnake].pSprites[0]; // CHECKME
if (!pActor) return nullptr;
int nAngle = pActor->int_ang();
DAngle nAngle = pActor->spr.angle;
auto pSector =pActor->sector();
int esi = 2048;
DAngle maxangle = DAngle360;
DExhumedActor* pEnemy = nullptr;
@ -258,11 +258,11 @@ DExhumedActor* FindSnakeEnemy(int nSnake)
{
if (pAct2 != pPlayerActor && !(pAct2->spr.cstat & CSTAT_SPRITE_INVISIBLE))
{
int nAngle2 = (nAngle - GetAngleToSprite(pActor, pAct2)) & kAngleMask;
if (nAngle2 < esi)
DAngle nAngle2 = absangle(nAngle, GetAngleToSprite(pActor, pAct2));
if (nAngle2 < maxangle)
{
pEnemy = pAct2;
esi = nAngle2;
maxangle = nAngle2;
}
}
}