diff --git a/source/core/coreactor.h b/source/core/coreactor.h index 6595c4cd9..350027266 100644 --- a/source/core/coreactor.h +++ b/source/core/coreactor.h @@ -223,32 +223,32 @@ public: void set_int_bvel_x(int x) { - __int_vel.X = x; + __int_vel .X = x; } void set_int_bvel_y(int x) { - __int_vel.Y = x; + __int_vel .Y = x; } void set_int_bvel_z(int x) { - __int_vel.Z = x; + __int_vel .Z = x; } void add_int_bvel_x(int x) { - __int_vel.X += x; + __int_vel .X += x; } void add_int_bvel_y(int x) { - __int_vel.Y += x; + __int_vel .Y += x; } void clear_vel_xy() { - __int_vel.X = __int_vel.Y = 0; + __int_vel .X = __int_vel .Y = 0; } void add_int_bvel_z(int x) diff --git a/source/games/blood/src/actor.cpp b/source/games/blood/src/actor.cpp index b86095433..4d5fd9838 100644 --- a/source/games/blood/src/actor.cpp +++ b/source/games/blood/src/actor.cpp @@ -2575,7 +2575,7 @@ static void ConcussSprite(DBloodActor* source, DBloodActor* actor, const DVector { int size = (tileWidth(actor->spr.picnum) * actor->spr.xrepeat * tileHeight(actor->spr.picnum) * actor->spr.yrepeat) >> 1; int t = Scale(damage, size, mass); - actor->__int_vel.X += (int)MulScaleF(t, vect.X, 12); + actor->add_int_bvel_x((int)MulScaleF(t, vect.X, 12)); actor->__int_vel.Y += (int)MulScaleF(t, vect.Y, 12); actor->__int_vel.Z += (int)MulScaleF(t, vect.Z, 12); } @@ -2950,7 +2950,7 @@ static bool actKillModernDude(DBloodActor* actor, DAMAGE_TYPE damageType) actDropObject(actor, actor->xspr.dropMsg); actor->spr.flags &= ~kPhysMove; - actor->__int_vel.X = actor->__int_vel.Y = 0; + actor->clear_vel_xy(); playGenDudeSound(actor, kGenDudeSndTransforming); int seqId = actor->xspr.data2 + kGenDudeSeqTransform; @@ -4159,13 +4159,13 @@ static void checkCeilHit(DBloodActor* actor) if (pThingInfo->flags & 1) actor2->spr.flags |= 1; if (pThingInfo->flags & 2) actor2->spr.flags |= 4; // Inlined ? - actor2->__int_vel.X += int(adelta.X * 16); + actor2->add_int_bvel_x(int(adelta.X * 16)); actor2->__int_vel.Y += int(adelta.Y * 16); } else { actor2->spr.flags |= 5; - actor2->__int_vel.X += int(adelta.X * 16); + actor2->add_int_bvel_x(int(adelta.X * 16)); actor2->__int_vel.Y += int(adelta.Y * 16); #ifdef NOONE_EXTENSIONS // add size shroom abilities @@ -4501,7 +4501,7 @@ void actAirDrag(DBloodActor* actor, int a2) wind_y = MulScale(wind, Sin(pXSector->windAng), 30); } } - actor->__int_vel.X += MulScale(wind_x - actor->int_vel().X, a2, 16); + actor->add_int_bvel_x(MulScale(wind_x - actor->int_vel().X, a2, 16)); actor->__int_vel.Y += MulScale(wind_y - actor->int_vel().Y, a2, 16); actor->__int_vel.Z -= MulScale(actor->int_vel().Z, a2, 16); } @@ -4697,7 +4697,7 @@ static Collision MoveThing(DBloodActor* actor) auto hitActor = coll.actor(); if ((hitActor->spr.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) == CSTAT_SPRITE_ALIGNMENT_FACING) { - actor->__int_vel.X += MulScale(4, actor->int_pos().X - hitActor->int_pos().X, 2); + actor->add_int_bvel_x(MulScale(4, actor->int_pos().X - hitActor->int_pos().X, 2)); actor->__int_vel.Y += MulScale(4, actor->int_pos().Y - hitActor->int_pos().Y, 2); lhit = actor->hit.hit; } @@ -5180,7 +5180,7 @@ void MoveDude(DBloodActor* actor) auto hitAct = floorColl.actor(); if ((hitAct->spr.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) == CSTAT_SPRITE_ALIGNMENT_FACING) { - actor->__int_vel.X += MulScale(4, actor->int_pos().X - hitAct->int_pos().X, 2); + actor->add_int_bvel_x(MulScale(4, actor->int_pos().X - hitAct->int_pos().X, 2)); actor->__int_vel.Y += MulScale(4, actor->int_pos().Y - hitAct->int_pos().Y, 2); return; } @@ -5196,7 +5196,7 @@ void MoveDude(DBloodActor* actor) actor->__int_vel.Y -= mulscale16r(actor->int_vel().Y, nDrag); if (approxDist(actor->int_vel().X, actor->int_vel().Y) < 0x1000) - actor->__int_vel.X = actor->__int_vel.Y = 0; + actor->clear_vel_xy(); } } @@ -5671,7 +5671,7 @@ static void actCheckThings() } if (pSector->floorstat & CSTAT_SECTOR_ALIGN) angle = (angle + GetWallAngle(pSector->firstWall()) + 512) & 2047; - actor->__int_vel.X += MulScale(speed, Cos(angle), 30); + actor->add_int_bvel_x(MulScale(speed, Cos(angle), 30)); actor->__int_vel.Y += MulScale(speed, Sin(angle), 30); } } @@ -6001,7 +6001,7 @@ static void actCheckDudes() // handle incarnations of custom dude if (actor->spr.type == kDudeModernCustom && actor->xspr.txID > 0 && actor->xspr.sysData1 == kGenDudeTransformStatus) { - actor->__int_vel.X = actor->__int_vel.Y = 0; + actor->clear_vel_xy(); if (seqGetStatus(actor) < 0) genDudeTransform(actor); } #endif @@ -6099,7 +6099,7 @@ static void actCheckDudes() angle = (angle + GetWallAngle(pSector->firstWall()) + 512) & 2047; int dx = MulScale(speed, Cos(angle), 30); int dy = MulScale(speed, Sin(angle), 30); - actor->__int_vel.X += dx; + actor->add_int_bvel_x(dx); actor->__int_vel.Y += dy; } } @@ -6403,7 +6403,7 @@ DBloodActor* actFireThing(DBloodActor* actor, int a2, int a3, int a4, int thingT fired->__int_vel.X = MulScale(a6, Cos(fired->int_ang()), 30); fired->__int_vel.Y = MulScale(a6, Sin(fired->int_ang()), 30); fired->__int_vel.Z = MulScale(a6, a4, 14); - fired->__int_vel.X += actor->int_vel().X / 2; + fired->add_int_bvel_x(actor->int_vel().X / 2); fired->__int_vel.Y += actor->int_vel().Y / 2; fired->__int_vel.Z += actor->int_vel().Z / 2; return fired; @@ -6448,7 +6448,7 @@ void actBuildMissile(DBloodActor* spawned, DBloodActor* actor) break; case kMissileFlameHound: seqSpawn(27, spawned, -1); - spawned->__int_vel.X += actor->int_vel().X / 2 + Random2(0x11111); + spawned->add_int_bvel_x(actor->int_vel().X / 2 + Random2(0x11111)); spawned->__int_vel.Y += actor->int_vel().Y / 2 + Random2(0x11111); spawned->__int_vel.Z += actor->int_vel().Z / 2 + Random2(0x11111); break; @@ -6458,14 +6458,14 @@ void actBuildMissile(DBloodActor* spawned, DBloodActor* actor) break; case kMissileFireballTchernobog: seqSpawn(23, spawned, dword_2192D8); - spawned->__int_vel.X += actor->int_vel().X / 2 + Random2(0x11111); + spawned->add_int_bvel_x(actor->int_vel().X / 2 + Random2(0x11111)); spawned->__int_vel.Y += actor->int_vel().Y / 2 + Random2(0x11111); spawned->__int_vel.Z += actor->int_vel().Z / 2 + Random2(0x11111); break; case kMissileFlameSpray: if (Chance(0x8000)) seqSpawn(0, spawned, -1); else seqSpawn(1, spawned, -1); - spawned->__int_vel.X += actor->int_vel().X / 2 + Random2(0x11111); + spawned->add_int_bvel_x(actor->int_vel().X / 2 + Random2(0x11111)); spawned->__int_vel.Y += actor->int_vel().Y / 2 + Random2(0x11111); spawned->__int_vel.Z += actor->int_vel().Z / 2 + Random2(0x11111); break; @@ -6769,7 +6769,7 @@ void actFireVector(DBloodActor* shooter, int a2, int a3, int a4, int a5, int a6, if (t > 0 && pVectorData->impulse) { int t2 = DivScale(pVectorData->impulse, t, 8); - actor->__int_vel.X += MulScale(a4, t2, 16); + actor->add_int_bvel_x(MulScale(a4, t2, 16)); actor->__int_vel.Y += MulScale(a5, t2, 16); actor->__int_vel.Z += MulScale(a6, t2, 16); } @@ -6799,7 +6799,7 @@ void actFireVector(DBloodActor* shooter, int a2, int a3, int a4, int a5, int a6, if (t > 0 && pVectorData->impulse) { int t2 = DivScale(pVectorData->impulse, t, 8); - actor->__int_vel.X += MulScale(a4, t2, 16); + actor->add_int_bvel_x(MulScale(a4, t2, 16)); actor->__int_vel.Y += MulScale(a5, t2, 16); actor->__int_vel.Z += MulScale(a6, t2, 16); } @@ -6857,7 +6857,7 @@ void actFireVector(DBloodActor* shooter, int a2, int a3, int a4, int a5, int a6, if (actor->xspr.physAttr & kPhysDebrisVector) { int impulse = DivScale(pVectorData->impulse, ClipLow(actor->spriteMass.mass, 10), 6); - actor->__int_vel.X += MulScale(a4, impulse, 16); + actor->add_int_bvel_x(MulScale(a4, impulse, 16)); actor->__int_vel.Y += MulScale(a5, impulse, 16); actor->__int_vel.Z += MulScale(a6, impulse, 16); @@ -6926,7 +6926,7 @@ void FireballSeqCallback(int, DBloodActor* actor) auto pFX = gFX.fxSpawnActor(FX_11, actor->sector(), actor->spr.pos, 0); if (pFX) { - pFX->__int_vel = actor->int_vel(); + pFX->__int_vel = actor->__int_vel; } } @@ -6935,7 +6935,7 @@ void NapalmSeqCallback(int, DBloodActor* actor) auto pFX = gFX.fxSpawnActor(FX_12, actor->sector(), actor->spr.pos, 0); if (pFX) { - pFX->__int_vel = actor->int_vel(); + pFX->__int_vel = actor->__int_vel; } } @@ -6944,7 +6944,7 @@ void Fx32Callback(int, DBloodActor* actor) auto pFX = gFX.fxSpawnActor(FX_32, actor->sector(), actor->spr.pos, 0); if (pFX) { - pFX->__int_vel = actor->int_vel(); + pFX->__int_vel = actor->__int_vel; } } @@ -6953,7 +6953,7 @@ void Fx33Callback(int, DBloodActor* actor) auto pFX = gFX.fxSpawnActor(FX_33, actor->sector(), actor->spr.pos, 0); if (pFX) { - pFX->__int_vel = actor->int_vel(); + pFX->__int_vel = actor->__int_vel; } } diff --git a/source/games/blood/src/ai.cpp b/source/games/blood/src/ai.cpp index ceed7f5db..7cb90704c 100644 --- a/source/games/blood/src/ai.cpp +++ b/source/games/blood/src/ai.cpp @@ -253,8 +253,8 @@ void aiChooseDirection(DBloodActor* actor, int a3) int vc = getincangle(actor->int_ang(), a3); int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int vsi = ((t1 * 15) >> 12) / 2; int v8 = 341; @@ -303,7 +303,7 @@ void aiMoveForward(DBloodActor* actor) actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange); if (abs(nAng) > DAngle60) return; - actor->__int_vel.X += MulScale(pDudeInfo->frontSpeed, Cos(actor->int_ang()), 30); + actor->add_int_bvel_x(MulScale(pDudeInfo->frontSpeed, Cos(actor->int_ang()), 30)); actor->__int_vel.Y += MulScale(pDudeInfo->frontSpeed, Sin(actor->int_ang()), 30); } @@ -339,8 +339,8 @@ void aiMoveDodge(DBloodActor* actor) { int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) diff --git a/source/games/blood/src/aibat.cpp b/source/games/blood/src/aibat.cpp index 393bfab47..be994cd6b 100644 --- a/source/games/blood/src/aibat.cpp +++ b/source/games/blood/src/aibat.cpp @@ -205,8 +205,8 @@ static void batMoveDodgeUp(DBloodActor* actor) actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange); int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -230,8 +230,8 @@ static void batMoveDodgeDown(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -321,8 +321,8 @@ static void batMoveForward(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -352,8 +352,8 @@ static void batMoveSwoop(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; @@ -381,8 +381,8 @@ static void batMoveFly(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aibeast.cpp b/source/games/blood/src/aibeast.cpp index 0574ae389..83b9cb018 100644 --- a/source/games/blood/src/aibeast.cpp +++ b/source/games/blood/src/aibeast.cpp @@ -402,7 +402,7 @@ static void beastMoveForward(DBloodActor* actor) int nDist = approxDist(dvec); if (nDist <= 0x400 && Random(64) < 32) return; - actor->__int_vel.X += MulScale(pDudeInfo->frontSpeed, Cos(actor->int_ang()), 30); + actor->add_int_bvel_x(MulScale(pDudeInfo->frontSpeed, Cos(actor->int_ang()), 30)); actor->__int_vel.Y += MulScale(pDudeInfo->frontSpeed, Sin(actor->int_ang()), 30); } @@ -424,8 +424,8 @@ static void sub_628A0(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -460,8 +460,8 @@ static void sub_62AE0(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel; @@ -494,8 +494,8 @@ static void sub_62D7C(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aiboneel.cpp b/source/games/blood/src/aiboneel.cpp index 25e6c8b7d..1a321e99f 100644 --- a/source/games/blood/src/aiboneel.cpp +++ b/source/games/blood/src/aiboneel.cpp @@ -220,8 +220,8 @@ static void eelMoveDodgeUp(DBloodActor* actor) actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange); int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -245,8 +245,8 @@ static void eelMoveDodgeDown(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -333,8 +333,8 @@ static void eelMoveForward(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -361,8 +361,8 @@ static void eelMoveSwoop(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; @@ -387,8 +387,8 @@ static void eelMoveAscend(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aicaleb.cpp b/source/games/blood/src/aicaleb.cpp index b938c6403..98a8f048a 100644 --- a/source/games/blood/src/aicaleb.cpp +++ b/source/games/blood/src/aicaleb.cpp @@ -292,8 +292,8 @@ static void sub_65D04(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -329,8 +329,8 @@ static void sub_65F44(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel; @@ -364,8 +364,8 @@ static void sub_661E0(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aigarg.cpp b/source/games/blood/src/aigarg.cpp index db4adac42..e52ea7455 100644 --- a/source/games/blood/src/aigarg.cpp +++ b/source/games/blood/src/aigarg.cpp @@ -281,8 +281,8 @@ static void gargMoveDodgeUp(DBloodActor* actor) actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange); int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -309,8 +309,8 @@ static void gargMoveDodgeDown(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -534,8 +534,8 @@ static void gargMoveForward(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -568,8 +568,8 @@ static void gargMoveSlow(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 = nAccel >> 1; @@ -608,8 +608,8 @@ static void gargMoveSwoop(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; @@ -647,8 +647,8 @@ static void gargMoveFly(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aighost.cpp b/source/games/blood/src/aighost.cpp index 33cdb9a48..ce703809f 100644 --- a/source/games/blood/src/aighost.cpp +++ b/source/games/blood/src/aighost.cpp @@ -260,8 +260,8 @@ static void ghostMoveDodgeUp(DBloodActor* actor) actor->spr.angle += clamp(nAng, -nTurnRange, nTurnRange); int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -288,8 +288,8 @@ static void ghostMoveDodgeDown(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int dx = actor->int_vel().X; - int dy = actor->int_vel().Y; + int dx = actor->__int_vel.X; + int dy = actor->__int_vel.Y; int t1 = DMulScale(dx, nCos, dy, nSin, 30); int t2 = DMulScale(dx, nSin, -dy, nCos, 30); if (actor->xspr.dodgeDir > 0) @@ -430,8 +430,8 @@ static void ghostMoveForward(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -464,8 +464,8 @@ static void ghostMoveSlow(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 = nAccel >> 1; @@ -501,8 +501,8 @@ static void ghostMoveSwoop(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; @@ -537,8 +537,8 @@ static void ghostMoveFly(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aigilbst.cpp b/source/games/blood/src/aigilbst.cpp index b59eb06d4..51396ebab 100644 --- a/source/games/blood/src/aigilbst.cpp +++ b/source/games/blood/src/aigilbst.cpp @@ -279,8 +279,8 @@ static void sub_6CB00(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -315,8 +315,8 @@ static void sub_6CD74(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel; @@ -349,8 +349,8 @@ static void sub_6D03C(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); t1 += nAccel >> 1; diff --git a/source/games/blood/src/aiunicult.cpp b/source/games/blood/src/aiunicult.cpp index 157c9c76f..4b94f4d48 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->__int_vel.X = actor->__int_vel.Y = 0; + actor->clear_vel_xy(); GENDUDEEXTRA* pExtra = &actor->genDudeExtra; int dispersion = pExtra->baseDispersion; @@ -487,8 +487,8 @@ static void unicultThinkChase(DBloodActor* actor) // quick hack to prevent spinning around or changing attacker's sprite angle on high movement speeds // when attacking the target. It happens because vanilla function takes in account x and y velocity, // so i use fake velocity with fixed value and pass it as argument. - int xvelocity = actor->int_vel().X; - int yvelocity = actor->int_vel().Y; + int xvelocity = actor->__int_vel.X; + int yvelocity = actor->__int_vel.Y; if (inAttack(actor->xspr.aiState)) xvelocity = yvelocity = ClipLow(actor->spr.clipdist >> 1, 1); @@ -1128,8 +1128,8 @@ void aiGenDudeMoveForward(DBloodActor* actor) return; int nCos = Cos(actor->int_ang()); int nSin = Sin(actor->int_ang()); - int vx = actor->int_vel().X; - int vy = actor->int_vel().Y; + int vx = actor->__int_vel.X; + int vy = actor->__int_vel.Y; int t1 = DMulScale(vx, nCos, vy, nSin, 30); int t2 = DMulScale(vx, nSin, -vy, nCos, 30); if (actor->GetTarget() == nullptr) @@ -1152,7 +1152,7 @@ void aiGenDudeMoveForward(DBloodActor* actor) int cos = Cos(actor->int_ang()); int frontSpeed = actor->genDudeExtra.moveSpeed; - actor->__int_vel.X += MulScale(cos, frontSpeed, 30); + actor->add_int_bvel_x(MulScale(cos, frontSpeed, 30)); actor->__int_vel.Y += MulScale(sin, frontSpeed, 30); } } diff --git a/source/games/blood/src/callback.cpp b/source/games/blood/src/callback.cpp index f886a128c..4e15b1421 100644 --- a/source/games/blood/src/callback.cpp +++ b/source/games/blood/src/callback.cpp @@ -108,7 +108,7 @@ void FlareBurst(DBloodActor* actor, sectortype*) // 2 dz >>= 1; } RotateVector(&dx, &dy, nAngle); - spawnedactor->__int_vel.X += dx; + spawnedactor->add_int_bvel_x(dx); spawnedactor->__int_vel.Y += dy; spawnedactor->__int_vel.Z += dz; evPostActor(spawnedactor, 960, kCallbackRemove); @@ -243,9 +243,9 @@ void fxDynPuff(DBloodActor* actor, sectortype*) // 8 auto pFX = gFX.fxSpawnActor(FX_7, actor->sector(), x, y, z, 0); if (pFX) { - pFX->__int_vel.X = actor->int_vel().X; - pFX->__int_vel.Y = actor->int_vel().Y; - pFX->__int_vel.Z = actor->int_vel().Z; + pFX->__int_vel.X = actor->__int_vel.X; + pFX->__int_vel.Y = actor->__int_vel.Y; + pFX->__int_vel.Z = actor->__int_vel.Z; } } evPostActor(actor, 12, kCallbackFXDynPuff); diff --git a/source/games/blood/src/nnexts.cpp b/source/games/blood/src/nnexts.cpp index 1a26f5586..617754dad 100644 --- a/source/games/blood/src/nnexts.cpp +++ b/source/games/blood/src/nnexts.cpp @@ -1314,7 +1314,7 @@ void nnExtProcessSuperSprites() angle = (angle + GetWallAngle(debrisactor->sector()->firstWall()) + 512) & 2047; int dx = MulScale(speed, Cos(angle), 30); int dy = MulScale(speed, Sin(angle), 30); - debrisactor->__int_vel.X += dx; + debrisactor->add_int_bvel_x(dx); debrisactor->__int_vel.Y += dy; } } @@ -1334,7 +1334,7 @@ void nnExtProcessSuperSprites() int nSpeed = approxDist(pact->int_vel().X, pact->int_vel().Y); nSpeed = ClipLow(nSpeed - MulScale(nSpeed, mass, 6), 0x9000 - (mass << 3)); - debrisactor->__int_vel.X += MulScale(nSpeed, Cos(pPlayer->actor->int_ang()), 30); + debrisactor->add_int_bvel_x(MulScale(nSpeed, Cos(pPlayer->actor->int_ang()), 30)); debrisactor->__int_vel.Y += MulScale(nSpeed, Sin(pPlayer->actor->int_ang()), 30); debrisactor->hit.hit.setSprite(pPlayer->actor); @@ -1581,7 +1581,7 @@ void debrisConcuss(DBloodActor* owneractor, int listIndex, int x, int y, int z, { int t = Scale(dmg, size, actor->spriteMass.mass); - actor->__int_vel.X += MulScale(t, dx, 16); + actor->add_int_bvel_x(MulScale(t, dx, 16)); actor->__int_vel.Y += MulScale(t, dy, 16); actor->__int_vel.Z += MulScale(t, dz, 16); } @@ -1854,7 +1854,7 @@ void debrisMove(int listIndex) if ((floorColl.actor()->spr.cstat & CSTAT_SPRITE_ALIGNMENT_MASK) == 0) { - actor->__int_vel.X += MulScale(4, actor->int_pos().X - floorColl.actor()->int_pos().X, 2); + actor->add_int_bvel_x(MulScale(4, actor->int_pos().X - floorColl.actor()->int_pos().X, 2)); actor->__int_vel.Y += MulScale(4, actor->int_pos().Y - floorColl.actor()->int_pos().Y, 2); return; } @@ -1871,7 +1871,7 @@ void debrisMove(int listIndex) actor->__int_vel.X -= mulscale16r(actor->int_vel().X, nDrag); actor->__int_vel.Y -= mulscale16r(actor->int_vel().Y, nDrag); if (approxDist(actor->int_vel().X, actor->int_vel().Y) < 0x1000) - actor->__int_vel.X = actor->__int_vel.Y = 0; + actor->clear_vel_xy(); } //--------------------------------------------------------------------------- @@ -3118,7 +3118,7 @@ void useVelocityChanger(DBloodActor* actor, sectortype* sect, DBloodActor* initi if (relative) { - pSprite->__int_vel.X += xv; + pSprite->add_int_bvel_x(xv); pSprite->__int_vel.Y += yv; pSprite->__int_vel.Z += zv; } @@ -8223,7 +8223,7 @@ void aiPatrolMove(DBloodActor* actor) } frontSpeed = aiPatrolGetVelocity(pDudeInfo->frontSpeed, targetactor->xspr.busyTime); - actor->__int_vel.X += MulScale(frontSpeed, Cos(actor->int_ang()), 30); + actor->add_int_bvel_x(MulScale(frontSpeed, Cos(actor->int_ang()), 30)); actor->__int_vel.Y += MulScale(frontSpeed, Sin(actor->int_ang()), 30); } @@ -9232,7 +9232,7 @@ void callbackUniMissileBurst(DBloodActor* actor, sectortype*) // 22 dz >>= 1; } RotateVector(&dx, &dy, nAngle); - burstactor->__int_vel.X += dx; + burstactor->add_int_bvel_x(dx); burstactor->__int_vel.Y += dy; burstactor->__int_vel.Z += dz; evPostActor(burstactor, 960, kCallbackRemove); @@ -9297,7 +9297,7 @@ void triggerTouchSprite(DBloodActor* actor, DBloodActor* hActor) trTriggerSprite(hActor, kCmdSpriteTouch, actor); // enough to reset gSpriteHit values - actor->__int_vel.X += 5; + actor->add_int_bvel_x(5); } } @@ -9309,7 +9309,7 @@ void triggerTouchWall(DBloodActor* actor, walltype* pHWall) trTriggerWall(pHWall, kCmdWallTouch, actor); // enough to reset gSpriteHit values - actor->__int_vel.X += 5; + actor->add_int_bvel_x(5); } } diff --git a/source/games/blood/src/player.cpp b/source/games/blood/src/player.cpp index 12ecf5746..e955294cc 100644 --- a/source/games/blood/src/player.cpp +++ b/source/games/blood/src/player.cpp @@ -1451,7 +1451,7 @@ int ActionScan(PLAYER* pPlayer, HitInfo* out) if (nMass) { int t2 = DivScale(0xccccc, nMass, 8); - hitactor->__int_vel.X += MulScale(x, t2, 16); + hitactor->add_int_bvel_x(MulScale(x, t2, 16)); hitactor->__int_vel.Y += MulScale(y, t2, 16); hitactor->__int_vel.Z += MulScale(z, t2, 16); } @@ -1600,14 +1600,14 @@ void ProcessInput(PLAYER* pPlayer) forward = MulScale(pPosture->frontAccel, forward, 8); else forward = MulScale(pPosture->backAccel, forward, 8); - actor->__int_vel.X += MulScale(forward, x, 30); + actor->add_int_bvel_x(MulScale(forward, x, 30)); actor->__int_vel.Y += MulScale(forward, y, 30); } if (pInput->svel) { int strafe = pInput->svel; strafe = MulScale(pPosture->sideAccel, strafe, 8); - actor->__int_vel.X += MulScale(strafe, y, 30); + actor->add_int_bvel_x(MulScale(strafe, y, 30)); actor->__int_vel.Y -= MulScale(strafe, x, 30); } } @@ -1627,7 +1627,7 @@ void ProcessInput(PLAYER* pPlayer) forward = MulScale(pPosture->backAccel, forward, 8); if (actor->xspr.height) forward = MulScale(forward, speed, 16); - actor->__int_vel.X += MulScale(forward, x, 30); + actor->add_int_bvel_x(MulScale(forward, x, 30)); actor->__int_vel.Y += MulScale(forward, y, 30); } if (pInput->svel) @@ -1636,7 +1636,7 @@ void ProcessInput(PLAYER* pPlayer) strafe = MulScale(pPosture->sideAccel, strafe, 8); if (actor->xspr.height) strafe = MulScale(strafe, speed, 16); - actor->__int_vel.X += MulScale(strafe, y, 30); + actor->add_int_bvel_x(MulScale(strafe, y, 30)); actor->__int_vel.Y -= MulScale(strafe, x, 30); } }