From fc47cec222c08c3cf781fbea2ecbf36b5641ee7f Mon Sep 17 00:00:00 2001 From: Mitchell Richters Date: Wed, 7 Sep 2022 17:48:05 +1000 Subject: [PATCH] - Exhumed: Change `inita` into a DAngle. --- source/games/exhumed/src/aistuff.h | 28 +++++++++---------- source/games/exhumed/src/anubis.cpp | 8 +++--- source/games/exhumed/src/bubbles.cpp | 2 +- source/games/exhumed/src/bullet.cpp | 40 ++++++++++++--------------- source/games/exhumed/src/engine.h | 2 +- source/games/exhumed/src/exhumed.cpp | 6 ++-- source/games/exhumed/src/fish.cpp | 6 ++-- source/games/exhumed/src/gun.cpp | 12 ++++---- source/games/exhumed/src/init.cpp | 38 +++++++++++++------------ source/games/exhumed/src/lavadude.cpp | 8 +++--- source/games/exhumed/src/lion.cpp | 6 ++-- source/games/exhumed/src/move.cpp | 2 +- source/games/exhumed/src/mummy.cpp | 8 +++--- source/games/exhumed/src/object.cpp | 2 +- source/games/exhumed/src/player.cpp | 12 ++++---- source/games/exhumed/src/player.h | 4 +-- source/games/exhumed/src/queen.cpp | 10 +++---- source/games/exhumed/src/rat.cpp | 8 +++--- source/games/exhumed/src/rex.cpp | 6 ++-- source/games/exhumed/src/roach.cpp | 8 +++--- source/games/exhumed/src/scorp.cpp | 10 +++---- source/games/exhumed/src/set.cpp | 8 +++--- source/games/exhumed/src/sound.cpp | 6 ++-- source/games/exhumed/src/spider.cpp | 6 ++-- source/games/exhumed/src/view.cpp | 8 +++--- source/games/exhumed/src/wasp.cpp | 6 ++-- 26 files changed, 129 insertions(+), 131 deletions(-) diff --git a/source/games/exhumed/src/aistuff.h b/source/games/exhumed/src/aistuff.h index ac6da6263..707464e55 100644 --- a/source/games/exhumed/src/aistuff.h +++ b/source/games/exhumed/src/aistuff.h @@ -38,7 +38,7 @@ void BuildSplash(DExhumedActor* actor, sectortype* pSector); // anubis -void BuildAnubis(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, uint8_t bIsDrummer); +void BuildAnubis(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, uint8_t bIsDrummer); void FuncAnubis(int, int a, int b, int c); // bubbles @@ -76,7 +76,7 @@ int GrabBullet(); void DestroyBullet(int nRun); int MoveBullet(int nBullet); void SetBulletEnemy(int nBullet, DExhumedActor* nEnemy); -DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int val1, int nAngle, DExhumedActor* pTarget, int val3, int horiz = 0); +DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int val1, DAngle nAngle, DExhumedActor* pTarget, int val3, int horiz = 0); void IgniteSprite(DExhumedActor* nSprite); void FuncBullet(int, int, int, int); @@ -84,7 +84,7 @@ void BackUpBullet(int *x, int *y, int nAngle); // fish -void BuildFish(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle); +void BuildFish(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle); void FuncFish(int, int, int, int); void FuncFishLimb(int a, int b, int c); @@ -166,7 +166,7 @@ void DoRegenerates(); // lavadude -void BuildLava(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel); +void BuildLava(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel); DExhumedActor* BuildLavaLimb(DExhumedActor* nSprite, int edx, int ebx); void FuncLavaLimb(int, int, int, int); void FuncLava(int, int, int, int); @@ -188,7 +188,7 @@ void AddFlicker(sectortype* pSector, int nVal); // lion -void BuildLion(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle); +void BuildLion(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle); void FuncLion(int, int, int, int); // move @@ -242,7 +242,7 @@ void SetQuake(DExhumedActor* nSprite, int nVal); enum { kMaxMummies = 150 }; -void BuildMummy(DExhumedActor* val, const DVector3& pos, sectortype* pSector, int nAngle); +void BuildMummy(DExhumedActor* val, const DVector3& pos, sectortype* pSector, DAngle nAngle); // object @@ -298,7 +298,7 @@ int BuildSlide(int nChannel, walltype* edx, walltype* ebx, walltype* ecx, wallty // queen void InitQueens(); -void BuildQueen(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, int nVal); +void BuildQueen(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nVal); void FuncQueenEgg(int, int, int, int); void FuncQueenHead(int, int, int, int); void FuncQueen(int, int, int, int); @@ -329,17 +329,17 @@ void FuncRa(int, int, int, int); // rat void InitRats(); -void BuildRat(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle); +void BuildRat(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle); void FuncRat(int a, int, int b, int nRun); // rex -void BuildRex(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel); +void BuildRex(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel); void FuncRex(int, int, int, int); // roach -void BuildRoach(int nType, DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int angle); +void BuildRoach(int nType, DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle angle); void FuncRoach(int a, int, int nDamage, int nRun); // runlist @@ -701,12 +701,12 @@ void runlist_ExecObjects(); // scorp -void BuildScorp(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel); +void BuildScorp(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel); void FuncScorp(int, int, int, int); // set -void BuildSet(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel); +void BuildSet(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel); void FuncSoul(int, int, int, int); void FuncSet(int, int, int, int); @@ -739,7 +739,7 @@ void FuncSnake(int, int, int, int); // spider -DExhumedActor* BuildSpider(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle); +DExhumedActor* BuildSpider(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle); void FuncSpider(int a, int, int b, int nRun); // switch @@ -765,7 +765,7 @@ std::pair BuildSwPressWall(int nChannel, int nLink, walltype* pWall); // wasp -DExhumedActor* BuildWasp(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, int nAngle, bool bEggWasp); +DExhumedActor* BuildWasp(DExhumedActor* nSprite, const DVector3& pos, sectortype* pSector, DAngle nAngle, bool bEggWasp); void FuncWasp(int eax, int, int edx, int nRun); diff --git a/source/games/exhumed/src/anubis.cpp b/source/games/exhumed/src/anubis.cpp index ecc0e45fb..a9e8a7794 100644 --- a/source/games/exhumed/src/anubis.cpp +++ b/source/games/exhumed/src/anubis.cpp @@ -43,7 +43,7 @@ static const actionSeq AnubisSeq[] = { { 43, 1 }, }; -void BuildAnubis(DExhumedActor* ap, const DVector3& pos, sectortype* pSector, int nAngle, uint8_t bIsDrummer) +void BuildAnubis(DExhumedActor* ap, const DVector3& pos, sectortype* pSector, DAngle nAngle, uint8_t bIsDrummer) { if (ap == nullptr) { @@ -55,7 +55,7 @@ void BuildAnubis(DExhumedActor* ap, const DVector3& pos, sectortype* pSector, in ChangeActorStat(ap, 101); ap->spr.pos.Z = ap->sector()->floorz; - nAngle = ap->int_ang(); + nAngle = ap->spr.angle; } ap->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -65,7 +65,7 @@ void BuildAnubis(DExhumedActor* ap, const DVector3& pos, sectortype* pSector, in ap->spr.picnum = 1; ap->spr.pal = ap->sector()->ceilingpal; ap->spr.clipdist = 60; - ap->set_int_ang(nAngle); + ap->spr.angle = nAngle; ap->spr.xrepeat = 40; ap->spr.yrepeat = 40; ap->vel.X = 0; @@ -265,7 +265,7 @@ void AIAnubis::Tick(RunListEvent* ev) // loc_25718: if (nFlag & 0x80) { - BuildBullet(ap, 8, -1, ap->int_ang(), pTarget, 1); + BuildBullet(ap, 8, -1, ap->spr.angle, pTarget, 1); } } diff --git a/source/games/exhumed/src/bubbles.cpp b/source/games/exhumed/src/bubbles.cpp index e7264d8ed..fc071db60 100644 --- a/source/games/exhumed/src/bubbles.cpp +++ b/source/games/exhumed/src/bubbles.cpp @@ -52,7 +52,7 @@ DExhumedActor* BuildBubble(const DVector3& pos, sectortype* pSector) pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; pActor->spr.picnum = 1; - pActor->set_int_ang(inita); + pActor->spr.angle = inita; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->set_int_zvel(-1200); diff --git a/source/games/exhumed/src/bullet.cpp b/source/games/exhumed/src/bullet.cpp index 98fb4556a..08a01180a 100644 --- a/source/games/exhumed/src/bullet.cpp +++ b/source/games/exhumed/src/bullet.cpp @@ -533,7 +533,7 @@ void SetBulletEnemy(int nBullet, DExhumedActor* pEnemy) } } -DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int nAngle, DExhumedActor* pTarget, int nDoubleDamage, int nPitch) +DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, DAngle nAngle, DExhumedActor* pTarget, int nDoubleDamage, int nPitch) { Bullet sBullet; bulletInfo *pBulletInfo = &BulletInfo[nType]; @@ -548,7 +548,7 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n sBullet.nDoubleDamage = nDoubleDamage; sBullet.pActor = insertActor(pActor->sector(), 200); - sBullet.pActor->set_int_ang(nAngle); + sBullet.pActor->spr.angle = nAngle; double nHeight = GetActorHeightF(pTarget); @@ -616,7 +616,7 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n pBulletActor->spr.yrepeat = (uint8_t)nRepeat; pBulletActor->spr.xoffset = 0; pBulletActor->spr.yoffset = 0; - pBulletActor->set_int_ang(nAngle); + pBulletActor->spr.angle = nAngle; pBulletActor->vel.X = 0; pBulletActor->vel.Y = 0; pBulletActor->vel.Z = 0; @@ -703,43 +703,39 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n int var_20 = pTarget->int_pos().Z - nHeight; - int x, y; + DVector2 xy; if (pActor != nullptr && pActor->spr.statnum != 100) { - x = pTarget->int_pos().X; - y = pTarget->int_pos().Y; + xy = pTarget->spr.pos.XY(); if (pTarget->spr.statnum != 100) { - x += (pTarget->int_xvel() * 20) >> 6; - y += (pTarget->int_yvel() * 20) >> 6; + xy += pTarget->vel.XY() * (10. / 32.); } else { int nPlayer = GetPlayerFromActor(pTarget); if (nPlayer > -1) { - x += PlayerList[nPlayer].nPlayerD.X * 15; - y += PlayerList[nPlayer].nPlayerD.Y * 15; + xy.X += PlayerList[nPlayer].nPlayerD.X * (15. / 16.); + xy.Y += PlayerList[nPlayer].nPlayerD.Y * (15. / 16.); } } - x -= pBulletActor->int_pos().X; - y -= pBulletActor->int_pos().Y; + xy -= pBulletActor->spr.pos.XY(); - nAngle = getangle(x, y); - pActor->set_int_ang(nAngle); + nAngle = xy.Angle(); + pActor->spr.angle = nAngle; } else { // loc_2ABA3: - x = pTarget->int_pos().X - pBulletActor->int_pos().X; - y = pTarget->int_pos().Y - pBulletActor->int_pos().Y; + xy = pTarget->spr.pos.XY() - pBulletActor->spr.pos.XY(); } - int nSqrt = lsqrt(y*y + x*x); - if ((unsigned int)nSqrt > 0) + int nSqrt = (xy * worldtoint).Length(); + if (nSqrt > 0) { var_18 = ((var_20 - pBulletActor->int_pos().Z) * pBulletInfo->field_4) / nSqrt; } @@ -751,8 +747,8 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n } pBullet->z = 0; - pBullet->x = (pActor->spr.clipdist << 2) * bcos(nAngle); - pBullet->y = (pActor->spr.clipdist << 2) * bsin(nAngle); + pBullet->x = (pActor->spr.clipdist << 2) * nAngle.Cos() * (1 << 14); + pBullet->y = (pActor->spr.clipdist << 2) * nAngle.Sin() * (1 << 14); BulletList[nBullet].pEnemy = nullptr; @@ -763,8 +759,8 @@ DExhumedActor* BuildBullet(DExhumedActor* pActor, int nType, int nZOffset, int n else { pBullet->field_10 = pBulletInfo->field_4; - pBullet->x = bcos(nAngle, -3) * pBulletInfo->field_4; - pBullet->y = bsin(nAngle, -3) * pBulletInfo->field_4; + pBullet->x = nAngle.Cos() * (1 << 11) * pBulletInfo->field_4; + pBullet->y = nAngle.Sin() * (1 << 11) * pBulletInfo->field_4; pBullet->z = var_18 >> 3; } diff --git a/source/games/exhumed/src/engine.h b/source/games/exhumed/src/engine.h index 538380ce1..b53f515ea 100644 --- a/source/games/exhumed/src/engine.h +++ b/source/games/exhumed/src/engine.h @@ -53,7 +53,7 @@ enum { }; extern DVector3 initpos; -extern int16_t inita; +extern DAngle inita; extern sectortype* initsectp; extern int nCurChunkNum; diff --git a/source/games/exhumed/src/exhumed.cpp b/source/games/exhumed/src/exhumed.cpp index 89a7f9c17..36dfeb395 100644 --- a/source/games/exhumed/src/exhumed.cpp +++ b/source/games/exhumed/src/exhumed.cpp @@ -334,12 +334,12 @@ void GameInterface::Ticker() } else if (EndLevel == 0) { - inita &= kAngleMask; + inita = inita.Normalized360(); for (int i = 0; i < 4; i++) { - lPlayerXVel += localInput.fvel * bcos(inita) + localInput.svel * bsin(inita); - lPlayerYVel += localInput.fvel * bsin(inita) - localInput.svel * bcos(inita); + lPlayerXVel += localInput.fvel * bcos(inita.Buildang()) + localInput.svel * bsin(inita.Buildang()); + lPlayerYVel += localInput.fvel * bsin(inita.Buildang()) - localInput.svel * bcos(inita.Buildang()); lPlayerXVel -= (lPlayerXVel >> 5) + (lPlayerXVel >> 6); lPlayerYVel -= (lPlayerYVel >> 5) + (lPlayerYVel >> 6); } diff --git a/source/games/exhumed/src/fish.cpp b/source/games/exhumed/src/fish.cpp index dce656fb2..40d46cdd9 100644 --- a/source/games/exhumed/src/fish.cpp +++ b/source/games/exhumed/src/fish.cpp @@ -138,7 +138,7 @@ void AIFishLimb::Draw(RunListEvent* ev) } -void BuildFish(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle) +void BuildFish(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle) { if (pActor == nullptr) { @@ -147,7 +147,7 @@ void BuildFish(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, } else { - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; ChangeActorStat(pActor, 103); } @@ -163,7 +163,7 @@ void BuildFish(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->spr.lotag = runlist_HeadRun() + 1; pActor->spr.hitag = 0; pActor->spr.extra = -1; diff --git a/source/games/exhumed/src/gun.cpp b/source/games/exhumed/src/gun.cpp index b123c68ee..801df51e2 100644 --- a/source/games/exhumed/src/gun.cpp +++ b/source/games/exhumed/src/gun.cpp @@ -632,11 +632,11 @@ loc_flag: } int nAmmoType = WeaponInfo[nWeapon].nAmmoType; - int nAngle = pPlayerActor->int_ang(); + DAngle nAngle = pPlayerActor->spr.angle; auto thePos = pPlayerActor->spr.pos; - int ebp = bcos(nAngle) * (pPlayerActor->spr.clipdist << 3); - int ebx = bsin(nAngle) * (pPlayerActor->spr.clipdist << 3); + int ebp = nAngle.Cos() * (1 << 14) * (pPlayerActor->spr.clipdist << 3); + int ebx = nAngle.Sin() * (1 << 14) * (pPlayerActor->spr.clipdist << 3); if (WeaponInfo[nWeapon].c) { @@ -648,9 +648,9 @@ loc_flag: else ecx = theVal; - int var_44 = (nAngle + 512) & kAngleMask; - ebp += bcos(var_44, -11) * ecx; - ebx += bsin(var_44, -11) * ecx; + DAngle var_44 = (nAngle + DAngle90).Normalized360(); + ebp += var_44.Cos() * (1 << 3) * ecx; + ebx += var_44.Sin() * (1 << 3) * ecx; } int nHeight = (-GetActorHeight(pPlayerActor)) >> 1; diff --git a/source/games/exhumed/src/init.cpp b/source/games/exhumed/src/init.cpp index 3e6421bcd..2745dc431 100644 --- a/source/games/exhumed/src/init.cpp +++ b/source/games/exhumed/src/init.cpp @@ -40,7 +40,7 @@ enum }; DVector3 initpos; -int16_t inita; +DAngle inita; sectortype* initsectp; int nCurChunkNum = 0; @@ -142,7 +142,9 @@ uint8_t LoadLevel(MapRecord* map) int initsect; SpawnSpriteDef spawned; - loadMap(currentLevel->fileName, 0, &initpos, &inita, &initsect, spawned); + int16_t mapang; + loadMap(currentLevel->fileName, 0, &initpos, &mapang, &initsect, spawned); + inita = DAngle::fromBuild(mapang); initsectp = §or[initsect]; auto actors = spawnactors(spawned); @@ -422,7 +424,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildAnubis(pActor, nulvec, nullptr, 0, 1); + BuildAnubis(pActor, nulvec, nullptr, nullAngle, 1); return; } case 117: @@ -432,27 +434,27 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildWasp(pActor, nulvec, nullptr, 0, false); + BuildWasp(pActor, nulvec, nullptr, nullAngle, false); return; } case 116: { - BuildRat(pActor, nulvec, nullptr, -1); + BuildRat(pActor, nulvec, nullptr, DAngle::fromBam(unsigned(-1))); return; } case 115: // Rat (eating) { - BuildRat(pActor, nulvec, nullptr, 0); + BuildRat(pActor, nulvec, nullptr, nullAngle); return; } case 113: { - BuildQueen(pActor, nulvec, nullptr, 0, nChannel); + BuildQueen(pActor, nulvec, nullptr, nullAngle, nChannel); return; } case 112: { - BuildScorp(pActor, nulvec, nullptr, 0, nChannel); + BuildScorp(pActor, nulvec, nullptr, nullAngle, nChannel); return; } case 111: @@ -462,7 +464,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildSet(pActor, nulvec, nullptr, 0, nChannel); + BuildSet(pActor, nulvec, nullptr, nullAngle, nChannel); return; } case 108: @@ -472,7 +474,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildLava(pActor, nulvec, nullptr, 0, nChannel); + BuildLava(pActor, nulvec, nullptr, nullAngle, nChannel); return; } case 107: @@ -482,7 +484,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildRex(pActor, nulvec, nullptr, 0, nChannel); + BuildRex(pActor, nulvec, nullptr, nullAngle, nChannel); return; } case 106: @@ -492,7 +494,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildFish(pActor, nulvec, nullptr, 0); + BuildFish(pActor, nulvec, nullptr, nullAngle); return; } case 105: @@ -502,7 +504,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildSpider(pActor, nulvec, nullptr, 0); + BuildSpider(pActor, nulvec, nullptr, nullAngle); return; } case 104: @@ -512,7 +514,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildRoach(1, pActor, nulvec, nullptr, 0); + BuildRoach(1, pActor, nulvec, nullptr, nullAngle); return; } case 103: @@ -522,7 +524,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildRoach(0, pActor, nulvec, nullptr, 0); + BuildRoach(0, pActor, nulvec, nullptr, nullAngle); return; } case 102: @@ -532,7 +534,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildLion(pActor, nulvec, nullptr, 0); + BuildLion(pActor, nulvec, nullptr, nullAngle); return; } case 101: @@ -542,7 +544,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildMummy(pActor, nulvec, nullptr, 0); + BuildMummy(pActor, nulvec, nullptr, nullAngle); return; } case 100: @@ -552,7 +554,7 @@ void ProcessSpriteTag(DExhumedActor* pActor, int nLotag, int nHitag) return; } - BuildAnubis(pActor, nulvec, nullptr, 0, 0); + BuildAnubis(pActor, nulvec, nullptr, nullAngle, 0); return; } case 99: // underwater type 2 diff --git a/source/games/exhumed/src/lavadude.cpp b/source/games/exhumed/src/lavadude.cpp index 252ab0523..b33333e85 100644 --- a/source/games/exhumed/src/lavadude.cpp +++ b/source/games/exhumed/src/lavadude.cpp @@ -97,7 +97,7 @@ void AILavaDudeLimb::Draw(RunListEvent* ev) } -void BuildLava(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel) +void BuildLava(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel) { if (pActor == nullptr) { @@ -107,7 +107,7 @@ void BuildLava(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, else { pSector = pActor->sector(); - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; pActor->spr.pos.Z = pSector->floorz; ChangeActorStat(pActor, 118); @@ -125,7 +125,7 @@ void BuildLava(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->spr.hitag = 0; pActor->spr.lotag = runlist_HeadRun() + 1; @@ -347,7 +347,7 @@ void AILavaDude::Tick(RunListEvent* ev) int nHeight = GetActorHeight(pActor); GetUpAngle(pActor, -64000, pTarget, (-(nHeight >> 1))); - BuildBullet(pActor, 10, -1, pActor->int_ang(), pTarget, 1); + BuildBullet(pActor, 10, -1, pActor->spr.angle, pTarget, 1); } else if (var_1C) { diff --git a/source/games/exhumed/src/lion.cpp b/source/games/exhumed/src/lion.cpp index 89bea1ab4..45228dec4 100644 --- a/source/games/exhumed/src/lion.cpp +++ b/source/games/exhumed/src/lion.cpp @@ -41,7 +41,7 @@ static actionSeq LionSeq[] = { }; -void BuildLion(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle) +void BuildLion(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle) { if (pActor == nullptr) { @@ -52,7 +52,7 @@ void BuildLion(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, { ChangeActorStat(pActor, 104); pActor->spr.pos.Z = pActor->sector()->floorz; - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -64,7 +64,7 @@ void BuildLion(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; diff --git a/source/games/exhumed/src/move.cpp b/source/games/exhumed/src/move.cpp index 5859d730a..d4b0cb3ca 100644 --- a/source/games/exhumed/src/move.cpp +++ b/source/games/exhumed/src/move.cpp @@ -1041,7 +1041,7 @@ void MoveSector(sectortype* pSector, int nAngle, int *nXVel, int *nYVel) */ auto pActor = PlayerList[nLocalPlayer].pActor; initpos = pActor->spr.pos; - inita = pActor->int_ang(); + inita = pActor->spr.angle; initsectp = pActor->sector(); } diff --git a/source/games/exhumed/src/mummy.cpp b/source/games/exhumed/src/mummy.cpp index dca13b81b..fefce18a6 100644 --- a/source/games/exhumed/src/mummy.cpp +++ b/source/games/exhumed/src/mummy.cpp @@ -37,7 +37,7 @@ static actionSeq MummySeq[] = { }; -void BuildMummy(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle) +void BuildMummy(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle) { if (pActor == nullptr) { @@ -46,7 +46,7 @@ void BuildMummy(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, } else { - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; ChangeActorStat(pActor, 102); } @@ -61,7 +61,7 @@ void BuildMummy(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->spr.picnum = 1; pActor->spr.hitag = 0; pActor->spr.lotag = runlist_HeadRun() + 1; @@ -320,7 +320,7 @@ void AIMummy::Tick(RunListEvent* ev) SetQuake(pActor, 100); // low 16 bits of returned var contains the sprite index, the high 16 the bullet number - auto pBullet = BuildBullet(pActor, 9, -15360, pActor->int_ang(), pTarget, 1); + auto pBullet = BuildBullet(pActor, 9, -15360, pActor->spr.angle, pTarget, 1); CheckMummyRevive(pActor); if (pBullet) diff --git a/source/games/exhumed/src/object.cpp b/source/games/exhumed/src/object.cpp index e9b51a835..019450065 100644 --- a/source/games/exhumed/src/object.cpp +++ b/source/games/exhumed/src/object.cpp @@ -1308,7 +1308,7 @@ void AITrap::Tick(RunListEvent* ev) return; } - auto pBullet = BuildBullet(pActor, nType, 0, pActor->int_ang(), nullptr, 1); + auto pBullet = BuildBullet(pActor, nType, 0, pActor->spr.angle, nullptr, 1); if (pBullet) { if (nType == 15) diff --git a/source/games/exhumed/src/player.cpp b/source/games/exhumed/src/player.cpp index 510932883..623d4bd0a 100644 --- a/source/games/exhumed/src/player.cpp +++ b/source/games/exhumed/src/player.cpp @@ -101,7 +101,7 @@ size_t MarkPlayers() return 5 * kMaxPlayers; } -void SetSavePoint(int nPlayer, const DVector3& pos, sectortype* pSector, int nAngle) +void SetSavePoint(int nPlayer, const DVector3& pos, sectortype* pSector, DAngle nAngle) { PlayerList[nPlayer].sPlayerSave.pos = pos; PlayerList[nPlayer].sPlayerSave.pSector = pSector; @@ -278,7 +278,7 @@ void RestartPlayer(int nPlayer) { pActor->spr.pos.XY() = plr->sPlayerSave.pos.XY(); pActor->spr.pos.Z = plr->sPlayerSave.pSector->floorz; - plr->angle.ang = DAngle::fromBuild(plr->sPlayerSave.nAngle&kAngleMask); + plr->angle.ang = plr->sPlayerSave.nAngle; pActor->spr.angle = plr->angle.ang; floorsprt = nullptr; @@ -591,8 +591,8 @@ static void pickupMessage(int no) void UpdatePlayerSpriteAngle(Player* pPlayer) { - inita = pPlayer->angle.ang.Buildang(); - if (pPlayer->pActor) pPlayer->pActor->set_int_ang(inita); + inita = pPlayer->angle.ang; + if (pPlayer->pActor) pPlayer->pActor->spr.angle = inita; } void AIPlayer::Draw(RunListEvent* ev) @@ -2170,7 +2170,7 @@ sectdone: ChangeActorStat(pActorB, 899); } - SetSavePoint(nPlayer, pPlayerActor->spr.pos, pPlayerActor->sector(), pPlayerActor->int_ang()); + SetSavePoint(nPlayer, pPlayerActor->spr.pos, pPlayerActor->sector(), pPlayerActor->spr.angle); break; } @@ -2515,7 +2515,7 @@ sectdone: { initpos = pPlayerActor->spr.pos; initsectp = pPlayerActor->sector(); - inita = pPlayerActor->int_ang(); + inita = pPlayerActor->spr.angle; } if (!PlayerList[nPlayer].nHealth) diff --git a/source/games/exhumed/src/player.h b/source/games/exhumed/src/player.h index 86a8b7055..a3bb3b514 100644 --- a/source/games/exhumed/src/player.h +++ b/source/games/exhumed/src/player.h @@ -23,7 +23,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. BEGIN_PS_NS -void SetSavePoint(int nPlayer, const DVector3& pos, sectortype* pSector, int nAngle); +void SetSavePoint(int nPlayer, const DVector3& pos, sectortype* pSector, DAngle nAngle); void InitPlayer(); void InitPlayerKeys(int nPlayer); int GrabPlayer(); @@ -47,7 +47,7 @@ struct PlayerSave { sectortype* pSector; DVector3 pos; - int16_t nAngle; + DAngle nAngle; }; struct Player diff --git a/source/games/exhumed/src/queen.cpp b/source/games/exhumed/src/queen.cpp index 82ab3c8dd..6d04afdb9 100644 --- a/source/games/exhumed/src/queen.cpp +++ b/source/games/exhumed/src/queen.cpp @@ -628,7 +628,7 @@ void AIQueenEgg::Tick(RunListEvent* ev) pEgg->nCounter--; if (pEgg->nCounter <= 0) { - auto pWaspSprite = BuildWasp(nullptr, pActor->spr.pos, pActor->sector(), pActor->int_ang(), true); + auto pWaspSprite = BuildWasp(nullptr, pActor->spr.pos, pActor->sector(), pActor->spr.angle, true); pActor->spr.pos.Z = pWaspSprite->spr.pos.Z; DestroyEgg(nEgg); @@ -1066,7 +1066,7 @@ void AIQueenHead::Draw(RunListEvent* ev) seq_PlotSequence(ev->nParam, nSeq, QueenHead.nFrame, edx); } -void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel) +void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel) { QueenCount--; @@ -1084,7 +1084,7 @@ void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, { ChangeActorStat(pActor, 121); pActor->spr.pos.Z = pActor->sector()->floorz; - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -1096,7 +1096,7 @@ void BuildQueen(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; pActor->spr.picnum = 1; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; @@ -1314,7 +1314,7 @@ void AIQueen::Tick(RunListEvent* ev) if (!si) { - BuildBullet(pActor, 12, -1, pActor->int_ang(), pTarget, 1); + BuildBullet(pActor, 12, -1, pActor->spr.angle, pTarget, 1); } else { diff --git a/source/games/exhumed/src/rat.cpp b/source/games/exhumed/src/rat.cpp index 9ff78ba4d..33a13986a 100644 --- a/source/games/exhumed/src/rat.cpp +++ b/source/games/exhumed/src/rat.cpp @@ -72,7 +72,7 @@ void SetRatVel(DExhumedActor* pActor) pActor->VelFromAngle(-2); } -void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle) +void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle) { if (pActor == nullptr) { @@ -83,7 +83,7 @@ void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i { ChangeActorStat(pActor, 108); pActor->spr.pos.Z = pActor->sector()->floorz; - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -93,7 +93,7 @@ void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i pActor->spr.picnum = 1; pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.clipdist = 30; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->spr.xrepeat = 50; pActor->spr.yrepeat = 50; pActor->vel.X = 0; @@ -103,7 +103,7 @@ void BuildRat(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i pActor->spr.hitag = 0; pActor->spr.extra = -1; - if (nAngle >= 0) { + if (nAngle.Degrees() >= 0) { pActor->nAction = 2; } else { diff --git a/source/games/exhumed/src/rex.cpp b/source/games/exhumed/src/rex.cpp index 098b2e60a..d8eeb91e7 100644 --- a/source/games/exhumed/src/rex.cpp +++ b/source/games/exhumed/src/rex.cpp @@ -37,7 +37,7 @@ static actionSeq RexSeq[] = { {28, 1} }; -void BuildRex(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel) +void BuildRex(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel) { if (pActor == nullptr) { @@ -46,7 +46,7 @@ void BuildRex(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i } else { - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; pActor->spr.pos.Z = pActor->sector()->floorz; ChangeActorStat(pActor, 119); } @@ -60,7 +60,7 @@ void BuildRex(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; diff --git a/source/games/exhumed/src/roach.cpp b/source/games/exhumed/src/roach.cpp index 5015ab3b4..7e156d8a7 100644 --- a/source/games/exhumed/src/roach.cpp +++ b/source/games/exhumed/src/roach.cpp @@ -35,7 +35,7 @@ static actionSeq RoachSeq[] = { }; // TODO - make nType a bool? -void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int angle) +void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle angle) { if (pActor == nullptr) { @@ -46,7 +46,7 @@ void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortyp { ChangeActorStat(pActor, 105); pActor->spr.pos.Z = pActor->sector()->floorz; - angle = pActor->int_ang(); + angle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -56,7 +56,7 @@ void BuildRoach(int nType, DExhumedActor* pActor, const DVector3& pos, sectortyp pActor->spr.picnum = 1; pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.clipdist = 60; - pActor->set_int_ang(angle); + pActor->spr.angle = angle; pActor->spr.xrepeat = 40; pActor->spr.yrepeat = 40; pActor->vel.X = 0; @@ -338,7 +338,7 @@ void AIRoach::Tick(RunListEvent* ev) { if (nFlag & 0x80) { - BuildBullet(pActor, 13, -1, pActor->int_ang(), pTarget, 1); + BuildBullet(pActor, 13, -1, pActor->spr.angle, pTarget, 1); } } diff --git a/source/games/exhumed/src/scorp.cpp b/source/games/exhumed/src/scorp.cpp index 25fae7f12..347d28ace 100644 --- a/source/games/exhumed/src/scorp.cpp +++ b/source/games/exhumed/src/scorp.cpp @@ -38,7 +38,7 @@ static actionSeq ScorpSeq[] = { {53, 1} }; -void BuildScorp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel) +void BuildScorp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel) { if (pActor == nullptr) { @@ -49,7 +49,7 @@ void BuildScorp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, { ChangeActorStat(pActor, 122); pActor->spr.pos.Z = pActor->sector()->floorz; - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -61,7 +61,7 @@ void BuildScorp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0; @@ -312,7 +312,7 @@ void AIScorp::Tick(RunListEvent* ev) return; } - auto nBulletSprite = BuildBullet(pActor, 16, -1, pActor->int_ang(), pTarget, 1); + auto nBulletSprite = BuildBullet(pActor, 16, -1, pActor->spr.angle, pTarget, 1); if (nBulletSprite) { PlotCourseToSprite(nBulletSprite, pTarget); @@ -362,7 +362,7 @@ void AIScorp::Tick(RunListEvent* ev) return; } - auto pSpiderActor = BuildSpider(nullptr, pActor->spr.pos, pActor->sector(), pActor->int_ang()); + auto pSpiderActor = BuildSpider(nullptr, pActor->spr.pos, pActor->sector(), pActor->spr.angle); if (pSpiderActor) { pSpiderActor->set_int_ang(RandomSize(11)); diff --git a/source/games/exhumed/src/set.cpp b/source/games/exhumed/src/set.cpp index 94a9ccabb..8cfe360c6 100644 --- a/source/games/exhumed/src/set.cpp +++ b/source/games/exhumed/src/set.cpp @@ -39,7 +39,7 @@ static actionSeq SetSeq[] = { {74, 1} }; -void BuildSet(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, int nChannel) +void BuildSet(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, int nChannel) { if (pActor == nullptr) { @@ -50,7 +50,7 @@ void BuildSet(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i { ChangeActorStat(pActor, 120); pActor->spr.pos.Z = pActor->sector()->floorz; - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; } pActor->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -64,7 +64,7 @@ void BuildSet(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, i pActor->spr.pal = pActor->sector()->ceilingpal; pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->spr.picnum = 1; pActor->spr.hitag = 0; pActor->spr.lotag = runlist_HeadRun() + 1; @@ -490,7 +490,7 @@ void AISet::Tick(RunListEvent* ev) { if (nFlag & 0x80) { - auto pBullet = BuildBullet(pActor, 11, -1, pActor->int_ang(), pTarget, 1); + auto pBullet = BuildBullet(pActor, 11, -1, pActor->spr.angle, pTarget, 1); if (pBullet) SetBulletEnemy(pBullet->nPhase, pTarget); diff --git a/source/games/exhumed/src/sound.cpp b/source/games/exhumed/src/sound.cpp index 8a003972e..4a064d0e2 100644 --- a/source/games/exhumed/src/sound.cpp +++ b/source/games/exhumed/src/sound.cpp @@ -499,12 +499,12 @@ void GameInterface::UpdateSounds() return; DVector3 pos; - int ang; + DAngle ang; if (nSnakeCam > -1) { Snake *pSnake = &SnakeList[nSnakeCam]; pos = pSnake->pSprites[0]->spr.pos; - ang = pSnake->pSprites[0]->int_ang(); + ang = pSnake->pSprites[0]->spr.angle; } else { @@ -512,7 +512,7 @@ void GameInterface::UpdateSounds() ang = inita; } SoundListener listener; - listener.angle = float(-ang * BAngRadian); // Build uses a period of 2048. + listener.angle = float(-ang.Radians()); // Build uses a period of 2048. listener.velocity.Zero(); listener.position = GetSoundPos(pos); listener.underwater = false; diff --git a/source/games/exhumed/src/spider.cpp b/source/games/exhumed/src/spider.cpp index 828b8c419..d31ca03cb 100644 --- a/source/games/exhumed/src/spider.cpp +++ b/source/games/exhumed/src/spider.cpp @@ -36,7 +36,7 @@ static actionSeq SpiderSeq[] = { }; -DExhumedActor* BuildSpider(DExhumedActor* spp, const DVector3& pos, sectortype* pSector, int nAngle) +DExhumedActor* BuildSpider(DExhumedActor* spp, const DVector3& pos, sectortype* pSector, DAngle nAngle) { if (spp == nullptr) { @@ -48,7 +48,7 @@ DExhumedActor* BuildSpider(DExhumedActor* spp, const DVector3& pos, sectortype* ChangeActorStat(spp, 99); spp->spr.pos.Z = spp->sector()->floorz; - nAngle = spp->int_ang(); + nAngle = spp->spr.angle; } spp->spr.cstat = CSTAT_SPRITE_BLOCK_ALL; @@ -62,7 +62,7 @@ DExhumedActor* BuildSpider(DExhumedActor* spp, const DVector3& pos, sectortype* spp->spr.pal = spp->sector()->ceilingpal; spp->spr.xoffset = 0; spp->spr.yoffset = 0; - spp->set_int_ang(nAngle); + spp->spr.angle = nAngle; spp->spr.picnum = 1; spp->spr.hitag = 0; spp->spr.lotag = runlist_HeadRun() + 1; diff --git a/source/games/exhumed/src/view.cpp b/source/games/exhumed/src/view.cpp index 995ad24c1..2483a10cd 100644 --- a/source/games/exhumed/src/view.cpp +++ b/source/games/exhumed/src/view.cpp @@ -332,13 +332,13 @@ void DrawView(double interpfrac, bool sceneonly) pPlayerActor->spr.cstat |= CSTAT_SPRITE_INVISIBLE; - int ang2 = nCameraang.Buildang() - pPlayerActor->int_ang(); - if (ang2 < 0) + auto ang2 = nCameraang - pPlayerActor->spr.angle; + if (ang2.Degrees() < 0) ang2 = -ang2; - if (ang2 > 10) + if (ang2 > DAngle::fromBuild(10)) { - inita -= (ang2 >> 3); + inita -= ang2 * (1. / 8.); return; } diff --git a/source/games/exhumed/src/wasp.cpp b/source/games/exhumed/src/wasp.cpp index dcec4f8e0..6cc8ad116 100644 --- a/source/games/exhumed/src/wasp.cpp +++ b/source/games/exhumed/src/wasp.cpp @@ -39,7 +39,7 @@ void SetWaspVel(DExhumedActor* pActor) pActor->VelFromAngle(); } -DExhumedActor* BuildWasp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, int nAngle, bool bEggWasp) +DExhumedActor* BuildWasp(DExhumedActor* pActor, const DVector3& pos, sectortype* pSector, DAngle nAngle, bool bEggWasp) { if (pActor == nullptr) { @@ -49,7 +49,7 @@ DExhumedActor* BuildWasp(DExhumedActor* pActor, const DVector3& pos, sectortype* } else { - nAngle = pActor->int_ang(); + nAngle = pActor->spr.angle; ChangeActorStat(pActor, 107); } @@ -72,7 +72,7 @@ DExhumedActor* BuildWasp(DExhumedActor* pActor, const DVector3& pos, sectortype* pActor->spr.xoffset = 0; pActor->spr.yoffset = 0; pActor->spr.picnum = 1; - pActor->set_int_ang(nAngle); + pActor->spr.angle = nAngle; pActor->vel.X = 0; pActor->vel.Y = 0; pActor->vel.Z = 0;