From b92456975509fcaec21af818646beec71621c676 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sat, 3 Sep 2022 09:45:23 +0200 Subject: [PATCH] - started removing trivial vel wrappers --- source/core/coreactor.h | 17 +---------------- source/games/blood/src/actor.cpp | 24 ++++++++++++------------ source/games/blood/src/aiunicult.cpp | 2 +- source/games/blood/src/callback.cpp | 2 +- source/games/blood/src/nnexts.cpp | 10 +++++----- 5 files changed, 20 insertions(+), 35 deletions(-) diff --git a/source/core/coreactor.h b/source/core/coreactor.h index e82ef9718..e00cf16a0 100644 --- a/source/core/coreactor.h +++ b/source/core/coreactor.h @@ -210,11 +210,6 @@ public: vel.Y *= v; } - DVector3 fVel() const - { - return vel; - } - vec3_t int_vel() const { return vec3_t(FloatToFixed(vel.X), FloatToFixed(vel.Y), FloatToFixed(vel.Z)); @@ -240,16 +235,6 @@ public: vel = { FixedToFloat(x.X), FixedToFloat(x.Y), FixedToFloat(x.Z) }; } - void set_float_bvel(DVector3 x) - { - vel = x; - } - - void set_float_bvel_xy(DVector2 x) - { - vel.XY() = x; - } - void add_int_bvel_x(int x) { vel .X += FixedToFloat(x); @@ -265,7 +250,7 @@ public: vel .Z += FixedToFloat(x); } - void clear_vel_xy() + void ZeroVelocityXY() { vel .X = vel .Y = 0; } diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index 267bdae93..167a813d0 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -2592,10 +2592,10 @@ static void ConcussSprite(DBloodActor* source, DBloodActor* actor, const DVector void actWallBounceVector(DBloodActor* actor, walltype* pWall, double factor) { auto delta = pWall->delta().Unit(); - auto vel = actor->fVel().XY(); + auto vel = actor->vel.XY(); double t = vel.X * -delta.Y + vel.Y * delta.X; double t2 = t * (factor+1); - actor->set_float_bvel_xy(vel - DVector2(-delta.Y * t2, delta.X * t2)); + actor->vel.XY() = (vel - DVector2(-delta.Y * t2, delta.X * t2)); } //--------------------------------------------------------------------------- @@ -2611,7 +2611,7 @@ DVector4 actFloorBounceVector(DBloodActor* actor, double oldz, sectortype* pSect if (pSector->floorheinum == 0) { double t2 = oldz * t; - return { actor->fVel().X, actor->fVel().Y, oldz - t2, t2}; + return { actor->vel.X, actor->vel.Y, oldz - t2, t2}; } walltype* pWall = pSector->firstWall(); @@ -2951,7 +2951,7 @@ static bool actKillModernDude(DBloodActor* actor, DAMAGE_TYPE damageType) actDropObject(actor, actor->xspr.dropMsg); actor->spr.flags &= ~kPhysMove; - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); playGenDudeSound(actor, kGenDudeSndTransforming); int seqId = actor->xspr.data2 + kGenDudeSeqTransform; @@ -4615,7 +4615,7 @@ static Collision MoveThing(DBloodActor* actor) actor->spr.flags |= 4; auto vec4 = actFloorBounceVector(actor, FixedToFloat(v20), actor->sector(), FixedToFloat(pThingInfo->elastic)); - actor->set_float_bvel_xy(vec4.XY()); + actor->vel,XY() = vec4.XY(); int vax = FloatToFixed(vec4.W); int nDamage = MulScale(vax, vax, 30) - pThingInfo->dmgResist; @@ -5105,7 +5105,7 @@ void MoveDude(DBloodActor* actor) if (v30 > 0) { auto vec4 = actFloorBounceVector(actor, FixedToFloat(v30), actor->sector(), 0); - actor->set_float_bvel_xy(vec4.XY()); + actor->vel.XY() = vec4.XY(); int vax = FloatToFixed(vec4.W); int nDamage = MulScale(vax, vax, 30); @@ -5204,7 +5204,7 @@ void MoveDude(DBloodActor* actor) actor->add_int_bvel_y(-mulscale16r(actor->int_vel().Y, nDrag)); if (approxDist(actor->int_vel().X, actor->int_vel().Y) < 0x1000) - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); } } @@ -5249,7 +5249,7 @@ int MoveMissile(DBloodActor* actor) actor->add_int_bvel_z(deltaz); } } - auto vel = actor->fVel(); + auto vel = actor->vel; double top, bottom; GetActorExtents(actor, &top, &bottom); int i = 1; @@ -5314,9 +5314,9 @@ int MoveMissile(DBloodActor* actor) } if (cliptype >= 0 && cliptype != 3) { - double nVel = actor->fVel().XY().Length(); - ppos.XY() -= actor->fVel().XY() / nVel; - vel.Z -= actor->fVel().Z / nVel; + double nVel = actor->vel.XY().Length(); + ppos.XY() -= actor->vel.XY() / nVel; + vel.Z -= actor->vel.Z / nVel; updatesector(ppos, &pSector); pSector2 = pSector; } @@ -6009,7 +6009,7 @@ static void actCheckDudes() // handle incarnations of custom dude if (actor->spr.type == kDudeModernCustom && actor->xspr.txID > 0 && actor->xspr.sysData1 == kGenDudeTransformStatus) { - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); if (seqGetStatus(actor) < 0) genDudeTransform(actor); } #endif diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index 0d5fbfa40..7a66bf042 100644 --- a/source/games/blood/src/aiunicult.cpp +++ b/source/games/blood/src/aiunicult.cpp @@ -220,7 +220,7 @@ void genDudeAttack1(int, DBloodActor* actor) if (actor->GetTarget() == nullptr) return; int dx, dy, dz; - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); GENDUDEEXTRA* pExtra = &actor->genDudeExtra; int dispersion = pExtra->baseDispersion; diff --git a/source/games/blood/src/callback.cpp b/source/games/blood/src/callback.cpp index 876f1728f..2b1965fc6 100644 --- a/source/games/blood/src/callback.cpp +++ b/source/games/blood/src/callback.cpp @@ -527,7 +527,7 @@ void fxBouncingSleeve(DBloodActor* actor, sectortype*) // 16 else if (zv > 0) { auto vec4 = actFloorBounceVector(actor, FixedToFloat(zv), actor->sector(), FixedToFloat(0x9000)); - actor->set_float_bvel(vec4.XYZ()); + actor->vel = vec4.XYZ(); if (actor->sector()->velFloor == 0 && abs(actor->int_vel().Z) < 0x20000) { sleeveStopBouncing(actor); diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index ca438a7f3..2f61f205b 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -1786,7 +1786,7 @@ void debrisMove(int listIndex) { actor->xspr.physAttr |= kPhysFalling; auto vec4 = actFloorBounceVector(actor, FixedToFloat(v30), actor->sector(), FixedToFloat(tmpFraction)); - actor->set_float_bvel(vec4.XYZ()); + actor->vel = vec4.XYZ(); v30 = actor->int_vel().Z; if (abs(actor->int_vel().Z) < 0x10000) @@ -1872,7 +1872,7 @@ void debrisMove(int listIndex) actor->add_int_bvel_x(-mulscale16r(actor->int_vel().X, nDrag)); actor->add_int_bvel_y(-mulscale16r(actor->int_vel().Y, nDrag)); if (approxDist(actor->int_vel().X, actor->int_vel().Y) < 0x1000) - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); } //--------------------------------------------------------------------------- @@ -3138,7 +3138,7 @@ void useVelocityChanger(DBloodActor* actor, sectortype* sect, DBloodActor* initi if (toAng180) angl = DAngle180; else angl = DAngle::fromBuild(nAng - vAng); - auto velv = pSprite->fVel().XY(); + auto velv = pSprite->vel.XY(); auto pt = rotatepoint(pSprite->spr.pos.XY(), velv, angl); //actor->vel.XY() = pt; pSprite->set_int_bvel_x(pt.X * worldtoint); @@ -3292,7 +3292,7 @@ void useTeleportTarget(DBloodActor* sourceactor, DBloodActor* actor) // change movement direction according source angle if (sourceactor->xspr.data3 & kModernTypeFlag2) { - auto velv = actor->fVel().XY(); + auto velv = actor->vel.XY(); auto pt = rotatepoint(actor->spr.pos.XY(), velv, sourceactor->spr.angle - VecToAngle(velv)); //actor->vel.XY() = pt; actor->set_int_bvel_x(pt.X * worldtoint); @@ -8200,7 +8200,7 @@ void aiPatrolMove(DBloodActor* actor) if (abs(nAng) > goalAng || ((targetactor->xspr.waitTime > 0 || targetactor->xspr.data1 == targetactor->xspr.data2) && aiPatrolMarkerReached(actor))) { - actor->clear_vel_xy(); + actor->ZeroVelocityXY(); return; }