From 3ac4b6300fd0b0ed1e59533455a7de3eee8c29e3 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 21 Aug 2022 21:57:41 +0200 Subject: [PATCH] - code cleanup to eliminate wrappers. --- source/games/sw/src/actor.cpp | 5 ++--- source/games/sw/src/ai.cpp | 10 +++++----- source/games/sw/src/coolg.cpp | 2 +- source/games/sw/src/copysect.cpp | 11 ++++------- 4 files changed, 12 insertions(+), 16 deletions(-) diff --git a/source/games/sw/src/actor.cpp b/source/games/sw/src/actor.cpp index dd4333c81..ec0d1aa5b 100644 --- a/source/games/sw/src/actor.cpp +++ b/source/games/sw/src/actor.cpp @@ -471,7 +471,7 @@ int DoGenerateSewerDebris(DSWActor* actor) { actor->user.Tics = actor->user.WaitTics; - auto spawned = SpawnActor(STAT_DEAD_ACTOR, 0, Debris[RANDOM_P2(4<<8)>>8], actor->sector(), actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->int_ang(), 200); + auto spawned = SpawnActor(STAT_DEAD_ACTOR, 0, Debris[RANDOM_P2(4<<8)>>8], actor->sector(), actor->spr.pos, actor->spr.angle, 200); SetOwner(actor, spawned); } @@ -560,8 +560,7 @@ void KeepActorOnFloor(DSWActor* actor) { double ceilz, florz; Collision ctrash, ftrash; - FAFgetzrangepoint(actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->sector(), - &ceilz, &ctrash, &florz, &ftrash); + FAFgetzrangepoint(actor->spr.pos, actor->sector(),&ceilz, &ctrash, &florz, &ftrash); actor->spr.pos.Z = actor->user.oz = florz; actor->backupz(); diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 1b366269a..b610b6ecd 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -839,7 +839,7 @@ int DoActorMoveCloser(DSWActor* actor) else { // turn to face player - actor->set_int_ang(getangle(actor->user.targetActor->int_pos().X - actor->int_pos().X, actor->user.targetActor->int_pos().Y - actor->int_pos().Y)); + actor->spr.angle = VecToAngle(actor->user.targetActor->spr.pos - actor->spr.pos); } } @@ -863,7 +863,7 @@ int FindTrackToPlayer(DSWActor* actor) int point, track_dir, track; int i, size; const uint16_t* type; - int zdiff; + double zdiff; static const uint16_t PlayerAbove[] = { @@ -894,9 +894,9 @@ int FindTrackToPlayer(DSWActor* actor) BIT(TT_SCAN) }; - zdiff = int_ActorUpperZ(actor->user.targetActor) - (actor->int_pos().Z - int_ActorSizeZ(actor) + Z(8)); + zdiff = ActorUpperZ(actor->user.targetActor) - (actor->spr.pos.Z - ActorSizeZ(actor) + 8); - if (abs(zdiff) <= Z(20)) + if (abs(zdiff) <= 20) { type = PlayerOnLevel; size = SIZ(PlayerOnLevel); @@ -1100,7 +1100,7 @@ int InitActorAttack(DSWActor* actor) //NewStateGroup(actor, actor->user.ActorActionSet->Stand); // face player when attacking - actor->set_int_ang(NORM_ANGLE(getangle(actor->user.targetActor->int_pos().X - actor->int_pos().X, actor->user.targetActor->int_pos().Y - actor->int_pos().Y))); + actor->spr.angle = VecToAngle(actor->user.targetActor->spr.pos - actor->spr.pos); // If it's your own kind, lay off! if (actor->user.ID == actor->user.targetActor->user.ID && !actor->user.targetActor->user.PlayerP) diff --git a/source/games/sw/src/coolg.cpp b/source/games/sw/src/coolg.cpp index 14f5589fe..c51f78c10 100644 --- a/source/games/sw/src/coolg.cpp +++ b/source/games/sw/src/coolg.cpp @@ -541,7 +541,7 @@ int NewCoolg(DSWActor* actor) { ANIMATOR DoActorDecide; - auto actorNew = SpawnActor(STAT_ENEMY, COOLG_RUN_R0, &s_CoolgBirth[0], actor->sector(), actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->int_ang(), 50); + auto actorNew = SpawnActor(STAT_ENEMY, COOLG_RUN_R0, &s_CoolgBirth[0], actor->sector(), actor->spr.pos, actor->spr.angle, 50); ChangeState(actorNew, &s_CoolgBirth[0]); actorNew->user.StateEnd = s_CoolgDie; diff --git a/source/games/sw/src/copysect.cpp b/source/games/sw/src/copysect.cpp index 33da4e244..a4a2e3ad9 100644 --- a/source/games/sw/src/copysect.cpp +++ b/source/games/sw/src/copysect.cpp @@ -160,20 +160,17 @@ void CopySectorMatch(int match) // don't move ST1 Copy Tags if (SP_TAG1(itActor) != SECT_COPY_SOURCE) { - int sx,sy,dx,dy,src_xoff,src_yoff,trash; - // move sprites from source to dest - use center offset // get center of src and dest sect - SectorMidPoint(sActor->sector(), &sx, &sy, &trash); - SectorMidPoint(dActor->sector(), &dx, &dy, &trash); + auto spos =SectorMidPoint(sActor->sector()); + auto dpos = SectorMidPoint(dActor->sector()); // get offset - src_xoff = sx - itActor->int_pos().X; - src_yoff = sy - itActor->int_pos().Y; + auto src_off = spos.XY() - itActor->spr.pos.XY(); // move sprite to dest sector - itActor->set_int_xy(dx - src_xoff, dy - src_yoff); + itActor->spr.pos.XY() = dpos.XY() - src_off; // change sector ChangeActorSect(itActor, dsectp);