diff --git a/source/games/exhumed/src/anims.cpp b/source/games/exhumed/src/anims.cpp index 6ad87fb97..5e00a1cb8 100644 --- a/source/games/exhumed/src/anims.cpp +++ b/source/games/exhumed/src/anims.cpp @@ -136,42 +136,41 @@ void AIAnim::Tick(RunListEvent* ev) if (pIgniter) { - auto pSpriteB = &pIgniter->s(); - pActor->spr.pos.X = pSpriteB->pos.X; - pActor->spr.pos.Y = pSpriteB->pos.Y; - pActor->spr.pos.Z = pSpriteB->pos.Z; + pActor->spr.pos.X = pIgniter->spr.pos.X; + pActor->spr.pos.Y = pIgniter->spr.pos.Y; + pActor->spr.pos.Z = pIgniter->spr.pos.Z; - if (pSpriteB->sector() != pActor->spr.sector()) + if (pIgniter->spr.sector() != pActor->spr.sector()) { - if (!pSpriteB->sector()) + if (!pIgniter->spr.sector()) { DestroyAnim(pActor); return; } else { - ChangeActorSect(pActor, pSpriteB->sector()); + ChangeActorSect(pActor, pIgniter->spr.sector()); } } if (!nIndex) { - if (pSpriteB->cstat != CSTAT_SPRITE_INVISIBLE) + if (pIgniter->spr.cstat != CSTAT_SPRITE_INVISIBLE) { - int hitag2 = pSpriteB->hitag; - pSpriteB->hitag--; + int hitag2 = pIgniter->spr.hitag; + pIgniter->spr.hitag--; if (hitag2 >= 15) { - runlist_DamageEnemy(pIgniter, nullptr, (pSpriteB->hitag - 14) * 2); + runlist_DamageEnemy(pIgniter, nullptr, (pIgniter->spr.hitag - 14) * 2); - if (pSpriteB->shade < 100) + if (pIgniter->spr.shade < 100) { - pSpriteB->pal = 0; - pSpriteB->shade++; + pIgniter->spr.pal = 0; + pIgniter->spr.shade++; } - if (!(pSpriteB->cstat & CSTAT_SPRITE_BLOCK_ALL)) // was 101 (decimal), GDX had 0x101 which appears to be correct. + if (!(pIgniter->spr.cstat & CSTAT_SPRITE_BLOCK_ALL)) // was 101 (decimal), GDX had 0x101 which appears to be correct. { DestroyAnim(pActor); return; @@ -179,13 +178,13 @@ void AIAnim::Tick(RunListEvent* ev) } else { - pSpriteB->hitag = 1; + pIgniter->spr.hitag = 1; DestroyAnim(pActor); } } else { - pSpriteB->hitag = 1; + pIgniter->spr.hitag = 1; DestroyAnim(pActor); } } diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index c565caa33..1b1e35c3e 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -384,9 +384,9 @@ void AIAnubis::Damage(RunListEvent* ev) if (ev->pOtherActor == nullptr) { return; } - auto pTarget = &ev->pOtherActor->s(); + auto statnum = ev->pOtherActor->spr.statnum; - if (pTarget->statnum == 100 || pTarget->statnum < 199) + if (statnum == 100 || statnum < 199) { if (!RandomSize(5)) { ap->pTarget = ev->pOtherActor; @@ -398,14 +398,13 @@ void AIAnubis::Damage(RunListEvent* ev) if (nAction >= 6 && nAction <= 10) { auto pDrumActor = insertActor(ap->spr.sector(), kStatAnubisDrum); - auto pDrumSprite = &pDrumActor->s(); - pDrumSprite->pos.X = ap->spr.pos.X; - pDrumSprite->pos.Y = ap->spr.pos.Y; - pDrumSprite->pos.Z = pDrumSprite->sector()->floorz; - pDrumSprite->xrepeat = 40; - pDrumSprite->yrepeat = 40; - pDrumSprite->shade = -64; + pDrumActor->spr.pos.X = ap->spr.pos.X; + pDrumActor->spr.pos.Y = ap->spr.pos.Y; + pDrumActor->spr.pos.Z = pDrumActor->spr.sector()->floorz; + pDrumActor->spr.xrepeat = 40; + pDrumActor->spr.yrepeat = 40; + pDrumActor->spr.shade = -64; BuildObject(pDrumActor, 2, 0); } diff --git a/source/games/exhumed/src/exhumed.cpp b/source/games/exhumed/src/exhumed.cpp index 2248199c1..30dcbef1a 100644 --- a/source/games/exhumed/src/exhumed.cpp +++ b/source/games/exhumed/src/exhumed.cpp @@ -207,9 +207,8 @@ void DoRedAlert(int nVal) { if (nVal) { - auto spri = &ac->s(); - PlayFXAtXYZ(StaticSound[kSoundAlarm], spri->pos.X, spri->pos.Y, spri->pos.Z); - AddFlash(spri->sector(), spri->pos.X, spri->pos.Y, spri->pos.Z, 192); + PlayFXAtXYZ(StaticSound[kSoundAlarm], ac->spr.pos.X, ac->spr.pos.Y, ac->spr.pos.Z); + AddFlash(ac->spr.sector(), ac->spr.pos.X, ac->spr.pos.Y, ac->spr.pos.Z, 192); } } } diff --git a/source/games/exhumed/src/fish.cpp b/source/games/exhumed/src/fish.cpp index 48f05b78f..247fd77c0 100644 --- a/source/games/exhumed/src/fish.cpp +++ b/source/games/exhumed/src/fish.cpp @@ -43,36 +43,35 @@ static actionSeq FishSeq[] = { void BuildFishLimb(DExhumedActor* pActor, int anim) { auto pChunkActor = insertActor(pActor->spr.sector(), 99); - auto pSprite2 = &pChunkActor->s(); pChunkActor->nCount = anim + 40; pChunkActor->nFrame = RandomSize(3) % SeqSize[SeqOffsets[kSeqFish] + anim + 40]; - pSprite2->pos.X = pActor->spr.pos.X; - pSprite2->pos.Y = pActor->spr.pos.Y; - pSprite2->pos.Z = pActor->spr.pos.Z; - pSprite2->cstat = 0; - pSprite2->shade = -12; - pSprite2->pal = 0; - pSprite2->xvel = (RandomSize(5) - 16) << 8; - pSprite2->yvel = (RandomSize(5) - 16) << 8; - pSprite2->xrepeat = 64; - pSprite2->yrepeat = 64; - pSprite2->xoffset = 0; - pSprite2->yoffset = 0; - pSprite2->zvel = (-(RandomByte() + 512)) * 2; + pChunkActor->spr.pos.X = pActor->spr.pos.X; + pChunkActor->spr.pos.Y = pActor->spr.pos.Y; + pChunkActor->spr.pos.Z = pActor->spr.pos.Z; + pChunkActor->spr.cstat = 0; + pChunkActor->spr.shade = -12; + pChunkActor->spr.pal = 0; + pChunkActor->spr.xvel = (RandomSize(5) - 16) << 8; + pChunkActor->spr.yvel = (RandomSize(5) - 16) << 8; + pChunkActor->spr.xrepeat = 64; + pChunkActor->spr.yrepeat = 64; + pChunkActor->spr.xoffset = 0; + pChunkActor->spr.yoffset = 0; + pChunkActor->spr.zvel = (-(RandomByte() + 512)) * 2; seq_GetSeqPicnum(kSeqFish, pChunkActor->nCount, 0); - pSprite2->picnum = anim; - pSprite2->lotag = runlist_HeadRun() + 1; - pSprite2->clipdist = 0; + pChunkActor->spr.picnum = anim; + pChunkActor->spr.lotag = runlist_HeadRun() + 1; + pChunkActor->spr.clipdist = 0; // GrabTimeSlot(3); - pSprite2->extra = -1; - pSprite2->owner = runlist_AddRunRec(pSprite2->lotag - 1, pChunkActor, 0x200000); - pSprite2->hitag = runlist_AddRunRec(NewRun, pChunkActor, 0x200000); + pChunkActor->spr.extra = -1; + pChunkActor->spr.owner = runlist_AddRunRec(pChunkActor->spr.lotag - 1, pChunkActor, 0x200000); + pChunkActor->spr.hitag = runlist_AddRunRec(NewRun, pChunkActor, 0x200000); } void BuildBlood(int x, int y, int z, sectortype* pSector) @@ -463,11 +462,11 @@ void AIFish::Tick(RunListEvent* ev) else if (coll.type == kHitSprite) { - auto pHitSpr = &coll.actor()->s(); - if (pHitSpr->statnum == 100) + auto pHitAct = coll.actor(); + if (pHitAct->spr.statnum == 100) { pActor->pTarget = coll.actor(); - pActor->spr.ang = GetMyAngle(pHitSpr->pos.X - pActor->spr.pos.X, pHitSpr->pos.Y - pActor->spr.pos.Y); + pActor->spr.ang = GetMyAngle(pHitAct->spr.pos.X - pActor->spr.pos.X, pHitAct->spr.pos.Y - pActor->spr.pos.Y); if (nAction != 3) { diff --git a/source/games/exhumed/src/lavadude.cpp b/source/games/exhumed/src/lavadude.cpp index d7588c789..9bb3b3c86 100644 --- a/source/games/exhumed/src/lavadude.cpp +++ b/source/games/exhumed/src/lavadude.cpp @@ -40,31 +40,30 @@ static actionSeq LavadudeSeq[] = { DExhumedActor* BuildLavaLimb(DExhumedActor* pActor, int move, int ebx) { auto pLimbActor = insertActor(pActor->spr.sector(), 118); - auto pLimbSprite = &pLimbActor->s(); - pLimbSprite->pos.X = pActor->spr.pos.X; - pLimbSprite->pos.Y = pActor->spr.pos.Y; - pLimbSprite->pos.Z = pActor->spr.pos.Z - RandomLong() % ebx; - pLimbSprite->cstat = 0; - pLimbSprite->shade = -127; - pLimbSprite->pal = 1; - pLimbSprite->xvel = (RandomSize(5) - 16) << 8; - pLimbSprite->yvel = (RandomSize(5) - 16) << 8; - pLimbSprite->zvel = 2560 - (RandomSize(5) << 8); - pLimbSprite->xoffset = 0; - pLimbSprite->yoffset = 0; - pLimbSprite->xrepeat = 90; - pLimbSprite->yrepeat = 90; - pLimbSprite->picnum = (move & 3) % 3; - pLimbSprite->hitag = 0; - pLimbSprite->lotag = runlist_HeadRun() + 1; - pLimbSprite->clipdist = 0; + pLimbActor->spr.pos.X = pActor->spr.pos.X; + pLimbActor->spr.pos.Y = pActor->spr.pos.Y; + pLimbActor->spr.pos.Z = pActor->spr.pos.Z - RandomLong() % ebx; + pLimbActor->spr.cstat = 0; + pLimbActor->spr.shade = -127; + pLimbActor->spr.pal = 1; + pLimbActor->spr.xvel = (RandomSize(5) - 16) << 8; + pLimbActor->spr.yvel = (RandomSize(5) - 16) << 8; + pLimbActor->spr.zvel = 2560 - (RandomSize(5) << 8); + pLimbActor->spr.xoffset = 0; + pLimbActor->spr.yoffset = 0; + pLimbActor->spr.xrepeat = 90; + pLimbActor->spr.yrepeat = 90; + pLimbActor->spr.picnum = (move & 3) % 3; + pLimbActor->spr.hitag = 0; + pLimbActor->spr.lotag = runlist_HeadRun() + 1; + pLimbActor->spr.clipdist = 0; // GrabTimeSlot(3); - pLimbSprite->extra = -1; - pLimbSprite->owner = runlist_AddRunRec(pLimbSprite->lotag - 1, pLimbActor, 0x160000); - pLimbSprite->hitag = runlist_AddRunRec(NewRun, pLimbActor, 0x160000); + pLimbActor->spr.extra = -1; + pLimbActor->spr.owner = runlist_AddRunRec(pLimbActor->spr.lotag - 1, pLimbActor, 0x160000); + pLimbActor->spr.hitag = runlist_AddRunRec(NewRun, pLimbActor, 0x160000); return pLimbActor; } diff --git a/source/games/exhumed/src/map.cpp b/source/games/exhumed/src/map.cpp index 3242067a1..35cdd401e 100644 --- a/source/games/exhumed/src/map.cpp +++ b/source/games/exhumed/src/map.cpp @@ -49,10 +49,9 @@ void DrawMap(double const smoothratio) if (!nFreeze && automapMode != am_off) { auto pPlayerActor = PlayerList[nLocalPlayer].Actor(); - auto psp = &pPlayerActor->s(); - int x = psp->interpolatedx(smoothratio); - int y = psp->interpolatedy(smoothratio); + int x = pPlayerActor->spr.interpolatedx(smoothratio); + int y = pPlayerActor->spr.interpolatedy(smoothratio); int ang = (!SyncInput() ? PlayerList[nLocalPlayer].angle.sum() : PlayerList[nLocalPlayer].angle.interpolatedsum(smoothratio)).asbuild(); DrawOverheadMap(x, y, ang, smoothratio); } diff --git a/source/games/exhumed/src/mummy.cpp b/source/games/exhumed/src/mummy.cpp index 14416f68b..4c2e6a4ad 100644 --- a/source/games/exhumed/src/mummy.cpp +++ b/source/games/exhumed/src/mummy.cpp @@ -99,17 +99,15 @@ void CheckMummyRevive(DExhumedActor* pActor) if (pOther->nAction != 5) { continue; } - auto pSprite2 = &pOther->s(); - - int x = abs(pSprite2->pos.X - pActor->spr.pos.X) >> 8; - int y = abs(pSprite2->pos.Y - pActor->spr.pos.Y) >> 8; + int x = abs(pOther->spr.pos.X - pActor->spr.pos.X) >> 8; + int y = abs(pOther->spr.pos.Y - pActor->spr.pos.Y) >> 8; if (x <= 20 && y <= 20) { if (cansee(pActor->spr.pos.X, pActor->spr.pos.Y, pActor->spr.pos.Z - 8192, pActor->spr.sector(), - pSprite2->pos.X, pSprite2->pos.Y, pSprite2->pos.Z - 8192, pSprite2->sector())) + pOther->spr.pos.X, pOther->spr.pos.Y, pOther->spr.pos.Z - 8192, pOther->spr.sector())) { - pSprite2->cstat = 0; + pOther->spr.cstat = 0; pOther->nAction = 6; pOther->nFrame = 0; } diff --git a/source/games/exhumed/src/ra.cpp b/source/games/exhumed/src/ra.cpp index 0adac9432..e359f7795 100644 --- a/source/games/exhumed/src/ra.cpp +++ b/source/games/exhumed/src/ra.cpp @@ -86,9 +86,8 @@ void FreeRa(int nPlayer) void BuildRa(int nPlayer) { auto pPlayerActor = PlayerList[nPlayer].Actor(); - auto pPlayerSprite = &pPlayerActor->s(); - auto pActor = insertActor(pPlayerSprite->sector(), 203); + auto pActor = insertActor(pPlayerActor->spr.sector(), 203); pActor->spr.cstat = CSTAT_SPRITE_INVISIBLE; pActor->spr.xvel = 0; @@ -101,7 +100,7 @@ void BuildRa(int nPlayer) pActor->spr.pal = 1; pActor->spr.xrepeat = 64; pActor->spr.yrepeat = 64; - pActor->spr.pos = pPlayerSprite->pos; + pActor->spr.pos = pPlayerActor->spr.pos; // GrabTimeSlot(3); diff --git a/source/games/exhumed/src/rat.cpp b/source/games/exhumed/src/rat.cpp index f808d1938..7f8be3ce4 100644 --- a/source/games/exhumed/src/rat.cpp +++ b/source/games/exhumed/src/rat.cpp @@ -137,8 +137,7 @@ DExhumedActor* FindFood(DExhumedActor* pActor) DExhumedActor* pActor2 = nChunkSprite[RandomSize(7) % nChunkTotal]; if (pActor2 != nullptr) { - auto pSprite2 = &pActor2->s(); - if (cansee(x, y, z2, pSector, pSprite2->pos.X, pSprite2->pos.Y, pSprite2->pos.Z, pSprite2->sector())) { + if (cansee(x, y, z2, pSector, pActor2->spr.pos.X, pActor2->spr.pos.Y, pActor2->spr.pos.Z, pActor2->spr.sector())) { return pActor2; } } @@ -151,10 +150,9 @@ DExhumedActor* FindFood(DExhumedActor* pActor) DExhumedActor* pActor2 = nBodySprite[RandomSize(7) % nBodyTotal]; if (pActor2 != nullptr) { - auto pSprite2 = &pActor2->s(); - if (nPlayerPic == pSprite2->picnum) + if (nPlayerPic == pActor2->spr.picnum) { - if (cansee(x, y, z, pSector, pSprite2->pos.X, pSprite2->pos.Y, pSprite2->pos.Z, pSprite2->sector())) { + if (cansee(x, y, z, pSector, pActor2->spr.pos.X, pActor2->spr.pos.Y, pActor2->spr.pos.Z, pActor2->spr.sector())) { return pActor2; } } diff --git a/source/games/exhumed/src/rex.cpp b/source/games/exhumed/src/rex.cpp index 414555889..b2f02d2bd 100644 --- a/source/games/exhumed/src/rex.cpp +++ b/source/games/exhumed/src/rex.cpp @@ -336,9 +336,9 @@ void AIRex::Tick(RunListEvent* ev) pActor->nAction = 3; pActor->nFrame = 0; - auto pSprite2 = &nMov.actor()->s(); + auto pHitActor = nMov.actor(); - if (pSprite2->statnum && pSprite2->statnum < 107) + if (pHitActor->spr.statnum && pHitActor->spr.statnum < 107) { int nAngle = pActor->spr.ang; @@ -347,18 +347,18 @@ void AIRex::Tick(RunListEvent* ev) int xVel = bcos(nAngle) * 15; int yVel = bsin(nAngle) * 15; - if (pSprite2->statnum == 100) + if (pHitActor->spr.statnum == 100) { auto nPlayer = GetPlayerFromActor(nMov.actor()); PlayerList[nPlayer].nXDamage += (xVel << 4); PlayerList[nPlayer].nYDamage += (yVel << 4); - pSprite2->zvel = -3584; + pHitActor->spr.zvel = -3584; } else { - pSprite2->xvel += (xVel >> 3); - pSprite2->yvel += (yVel >> 3); - pSprite2->zvel = -2880; + pHitActor->spr.xvel += (xVel >> 3); + pHitActor->spr.yvel += (yVel >> 3); + pHitActor->spr.zvel = -2880; } } diff --git a/source/games/exhumed/src/runlist.cpp b/source/games/exhumed/src/runlist.cpp index 3416c8581..42cdaea6c 100644 --- a/source/games/exhumed/src/runlist.cpp +++ b/source/games/exhumed/src/runlist.cpp @@ -1588,8 +1588,6 @@ void runlist_ProcessWallTag(walltype* pWall, int nLotag, int nHitag) int runlist_CheckRadialDamage(DExhumedActor* pActor) { - auto pRadialSpr = &pRadialActor->s(); - if (pActor == pRadialActor) { return 0; } @@ -1598,7 +1596,7 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor) return 0; } - if (pActor->spr.statnum >= kMaxStatus || pRadialSpr->statnum >= kMaxStatus) { + if (pActor->spr.statnum >= kMaxStatus || pRadialActor->spr.statnum >= kMaxStatus) { return 0; } @@ -1606,9 +1604,9 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor) return 0; } - int x = (pActor->spr.pos.X - pRadialSpr->pos.X) >> 8; - int y = (pActor->spr.pos.Y - pRadialSpr->pos.Y) >> 8; - int z = (pActor->spr.pos.Z - pRadialSpr->pos.Z) >> 12; + int x = (pActor->spr.pos.X - pRadialActor->spr.pos.X) >> 8; + int y = (pActor->spr.pos.Y - pRadialActor->spr.pos.Y) >> 8; + int z = (pActor->spr.pos.Z - pRadialActor->spr.pos.Z) >> 12; if (abs(x) > nDamageRadius) { return 0; @@ -1643,10 +1641,10 @@ int runlist_CheckRadialDamage(DExhumedActor* pActor) pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; if (((kStatExplodeTarget - pActor->spr.statnum) <= 1) || - cansee(pRadialSpr->pos.X, - pRadialSpr->pos.Y, - pRadialSpr->pos.Z - 512, - pRadialSpr->sector(), + cansee(pRadialActor->spr.pos.X, + pRadialActor->spr.pos.Y, + pRadialActor->spr.pos.Z - 512, + pRadialActor->spr.sector(), pActor->spr.pos.X, pActor->spr.pos.Y, pActor->spr.pos.Z - 8192,