From 2ea426be38f37b80ddbf7a43110e03a83fa02026 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 14 Sep 2022 22:57:42 +0200 Subject: [PATCH] - handle several int_angle calls. --- source/games/duke/src/actors_d.cpp | 13 ++++++------- source/games/duke/src/actors_r.cpp | 15 +++++++-------- source/games/duke/src/player_w.cpp | 2 +- source/games/duke/src/premap.cpp | 2 +- source/games/duke/src/spawn.cpp | 2 +- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/source/games/duke/src/actors_d.cpp b/source/games/duke/src/actors_d.cpp index ecb78a4f1..083cd69e5 100644 --- a/source/games/duke/src/actors_d.cpp +++ b/source/games/duke/src/actors_d.cpp @@ -1416,8 +1416,8 @@ static bool weaponhitwall(DDukeActor *proj, walltype* wal, const DVector3 &oldpo (!isWorldTour() || proj->spr.picnum != FIREBALL) && (wal->overpicnum == MIRROR || wal->picnum == MIRROR)) { - int k = getangle(wal->delta()); - proj->set_int_ang(((k << 1) - proj->int_ang()) & 2047); + DAngle k = VecToAngle(wal->delta()); + proj->spr.angle = k * 2 - proj->spr.angle; proj->SetOwner(proj); spawn(proj, TRANSPORTERSTAR); return true; @@ -1435,8 +1435,8 @@ static bool weaponhitwall(DDukeActor *proj, walltype* wal, const DVector3 &oldpo proj->spr.yint--; } - int k = getangle(wal->delta()); - proj->set_int_ang(((k << 1) - proj->int_ang()) & 2047); + DAngle k = VecToAngle(wal->delta()); + proj->spr.angle = k * 2 - proj->spr.angle; return true; } } @@ -2639,9 +2639,8 @@ static void heavyhbomb(DDukeActor *actor) auto wal = coll.hitWall; fi.checkhitwall(actor, wal, actor->spr.pos, actor->spr.picnum); - int k = getangle(wal->delta()); - - actor->set_int_ang(((k << 1) - actor->int_ang()) & 2047); + DAngle k = VecToAngle(wal->delta()); + actor->spr.angle = k * 2 - actor->spr.angle; actor->vel.X *= 0.5; } diff --git a/source/games/duke/src/actors_r.cpp b/source/games/duke/src/actors_r.cpp index 3b8cf0588..21b4cc499 100644 --- a/source/games/duke/src/actors_r.cpp +++ b/source/games/duke/src/actors_r.cpp @@ -1090,7 +1090,7 @@ static bool weaponhitwall(DDukeActor *proj, walltype* wal, const DVector3& oldpo j->spr.xrepeat = 8; j->spr.yrepeat = 8; j->spr.cstat = CSTAT_SPRITE_ALIGNMENT_WALL; - j->set_int_ang((j->int_ang() + 512) & 2047); + j->spr.angle += DAngle90; j->set_native_clipdist(MulScale(proj->spr.xrepeat, tileWidth(proj->spr.picnum), 7)); } } @@ -1103,8 +1103,8 @@ static bool weaponhitwall(DDukeActor *proj, walltype* wal, const DVector3& oldpo proj->spr.yint--; } - int k = getangle(wal->delta()); - proj->set_int_ang(((k << 1) - proj->int_ang()) & 2047); + DAngle k = VecToAngle(wal->delta()); + proj->spr.angle = k * 2 - proj->spr.angle; return true; } } @@ -2410,8 +2410,6 @@ static void heavyhbomb(DDukeActor *actor) auto wal = coll.hitWall; fi.checkhitwall(actor, wal, actor->spr.pos, actor->spr.picnum); - int k = getangle(wal->delta()); - if (actor->spr.picnum == CHEERBOMB) { actor->temp_data[3] = 1; @@ -2420,7 +2418,8 @@ static void heavyhbomb(DDukeActor *actor) actor->vel.X = 0; goto DETONATEB; } - actor->set_int_ang(((k << 1) - actor->int_ang()) & 2047); + DAngle k = VecToAngle(wal->delta()); + actor->spr.angle = k * 2 - actor->spr.angle; actor->vel.X *= 0.5; } @@ -2547,8 +2546,8 @@ static int henstand(DDukeActor *actor) { if (coll.type == kHitWall) { - int k = getangle(coll.hitWall->delta()); - actor->set_int_ang(((k << 1) - actor->int_ang()) & 2047); + DAngle k = VecToAngle(coll.hitWall->delta()); + actor->spr.angle = k * 2 - actor->spr.angle; } else if (coll.type == kHitSprite) { diff --git a/source/games/duke/src/player_w.cpp b/source/games/duke/src/player_w.cpp index 14235c953..6b899ca87 100644 --- a/source/games/duke/src/player_w.cpp +++ b/source/games/duke/src/player_w.cpp @@ -125,7 +125,7 @@ void DoSpawn(player_struct *p, int snum) else if((aplWeaponFlags(p->curr_weapon, snum) & WEAPON_FLAG_SPAWNTYPE3 ) ) { // like chaingun shells - j->set_int_ang((j->int_ang() + 1024) & 2047); + j->spr.angle += DAngle90; j->vel.X += 2.; j->spr.pos.Z += 3; ssp(j,CLIPMASK0); diff --git a/source/games/duke/src/premap.cpp b/source/games/duke/src/premap.cpp index 7bf4fb3c4..454f42dc6 100644 --- a/source/games/duke/src/premap.cpp +++ b/source/games/duke/src/premap.cpp @@ -71,7 +71,7 @@ void premapcontroller(DDukeActor* ac) cyclers[numcyclers].shade1 = ac->spr.shade; cyclers[numcyclers].shade2 = ac->sector()->floorshade; cyclers[numcyclers].hitag = ac->spr.hitag; - cyclers[numcyclers].state = (ac->int_ang() == 1536); + cyclers[numcyclers].state = (ac->spr.angle == DAngle270); numcyclers++; deletesprite(ac); break; diff --git a/source/games/duke/src/spawn.cpp b/source/games/duke/src/spawn.cpp index ab7ceebe4..dcd553374 100644 --- a/source/games/duke/src/spawn.cpp +++ b/source/games/duke/src/spawn.cpp @@ -862,7 +862,7 @@ void spawneffector(DDukeActor* actor, TArray* actors) break; case SE_11_SWINGING_DOOR://Pivitor rotater - if (actor->int_ang() > 1024) actor->temp_data[3] = 2; + if (actor->spr.intangle > 1024) actor->temp_data[3] = 2; else actor->temp_data[3] = -2; [[fallthrough]]; case SE_0_ROTATING_SECTOR: