- add_int_bvel_x

This commit is contained in:
Christoph Oelckers 2022-09-01 21:02:20 +02:00
parent 49f0e9c57d
commit 12e5fd133c
14 changed files with 121 additions and 121 deletions

View file

@ -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)

View file

@ -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;
}
}

View file

@ -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)

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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;

View file

@ -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);
}
}

View file

@ -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);

View file

@ -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);
}
}

View file

@ -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);
}
}