- migrated a few functions to use actors.

This commit is contained in:
Christoph Oelckers 2021-10-20 23:02:23 +02:00
parent 345667f945
commit 6d3f9ca0d6
4 changed files with 12 additions and 11 deletions

View file

@ -278,7 +278,7 @@ inline int PlotCourseToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2)
return PlotCourseToSprite(nSprite1->GetSpriteIndex(), nSprite2->GetSpriteIndex());
}
void CheckSectorFloor(short nSector, int z, int *x, int *y);
int GetAngleToSprite(int nSprite1, int nSprite2);
int GetAngleToSprite(DExhumedActor* nSprite1, DExhumedActor* nSprite2);
int GetWallNormal(short nWall);
int GetUpAngle(short nSprite1, int nVal, short nSprite2, int ecx);
int GetUpAngle(DExhumedActor* nSprite1, int nVal, DExhumedActor* nSprite2, int ecx)

View file

@ -702,13 +702,13 @@ int MoveCreatureWithCaution(int nSprite)
return ecx;
}
int GetAngleToSprite(int nSprite1, int nSprite2)
int GetAngleToSprite(DExhumedActor* a1, DExhumedActor* a2)
{
if (nSprite1 < 0 || nSprite2 < 0)
if (!a1 || !a2)
return -1;
auto pSprite1 = &sprite[nSprite1];
auto pSprite2 = &sprite[nSprite2];
auto pSprite1 = &a1->s();
auto pSprite2 = &a2->s();
return GetMyAngle(pSprite2->x - pSprite1->x, pSprite2->y - pSprite1->y);
}
@ -1465,7 +1465,7 @@ int BuildCreatureChunk(int nVal, int nPic)
pSprite->y = sprite[nVal].y;
pSprite->z = sprite[nVal].z;
mychangespritesect(actor->GetSpriteIndex(), sprite[nVal].sectnum);
ChangeActorSect(actor, sprite[nVal].sectnum);
pSprite->cstat = 0x80;
pSprite->shade = -12;

View file

@ -800,8 +800,9 @@ void AIPlayer::Tick(RunListEvent* ev)
short nPlayer = RunData[ev->nRun].nObjIndex;
assert(nPlayer >= 0 && nPlayer < kMaxPlayers);
short nPlayerSprite = PlayerList[nPlayer].nSprite;
auto pPlayerSprite = &sprite[nPlayerSprite];
auto pPlayerActor = PlayerList[nPlayer].Actor();
int nPlayerSprite = PlayerList[nPlayer].nSprite;
auto pPlayerSprite = &pPlayerActor->s();
short nDopple = nDoppleSprite[nPlayer];
@ -904,7 +905,7 @@ void AIPlayer::Tick(RunListEvent* ev)
// pPlayerSprite->zvel is modified within Gravity()
short zVel = pPlayerSprite->zvel;
Gravity(nPlayerSprite);
Gravity(pPlayerActor);
if (pPlayerSprite->zvel >= 6500 && zVel < 6500)
{
@ -994,7 +995,7 @@ void AIPlayer::Tick(RunListEvent* ev)
{
if (nTotalPlayers <= 1)
{
auto ang = GetAngleToSprite(nPlayerSprite, nSpiritSprite) & kAngleMask;
auto ang = GetAngleToSprite(pPlayerActor, &exhumedActors[nSpiritSprite]) & kAngleMask;
PlayerList[nPlayer].angle.settarget(ang, true);
pPlayerSprite->ang = ang;

View file

@ -288,7 +288,7 @@ DExhumedActor* FindSnakeEnemy(short nSnake)
{
if (pAct2 != pPlayerActor && !(pSpr2->cstat & 0x8000))
{
int nAngle2 = (nAngle - GetAngleToSprite(pActor->GetSpriteIndex(), pAct2->GetSpriteIndex())) & kAngleMask;
int nAngle2 = (nAngle - GetAngleToSprite(pActor, pAct2)) & kAngleMask;
if (nAngle2 < esi)
{
pEnemy = pAct2;