- floatified gs.playerfriction

This commit is contained in:
Christoph Oelckers 2022-09-12 00:08:42 +02:00
parent 477120923f
commit a5652655db
6 changed files with 25 additions and 38 deletions

View file

@ -3637,13 +3637,12 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if (xvel < 512)
{
ps[playernum].__vel.X = 0;
ps[playernum].__vel.Y = 0;
ps[playernum].vel.X = 0;
ps[playernum].vel.Y = 0;
}
else
{
ps[playernum].__vel.X = MulScaleF(ps[playernum].__vel.X, gs.playerfriction - 0x2000, 16);
ps[playernum].__vel.Y = MulScaleF(ps[playernum].__vel.Y, gs.playerfriction - 0x2000, 16);
ps[playernum].vel.XY() *= gs.playerfriction - 0.125;
}
}
else if (actor->spr.picnum != DRONE && actor->spr.picnum != SHARK && actor->spr.picnum != COMMANDER)

View file

@ -3669,13 +3669,12 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
if (xvel < 512)
{
ps[pnum].__vel.X = 0;
ps[pnum].__vel.Y = 0;
ps[pnum].vel.X = 0;
ps[pnum].vel.Y = 0;
}
else
{
ps[pnum].__vel.X = MulScaleF(ps[pnum].__vel.X, gs.playerfriction - 0x2000, 16);
ps[pnum].__vel.Y = MulScaleF(ps[pnum].__vel.Y, gs.playerfriction - 0x2000, 16);
ps[pnum].vel.XY() *= gs.playerfriction - 0.125;
}
}
else if ((isRRRA() && actor->spr.picnum != DRONE && actor->spr.picnum != SHARK && actor->spr.picnum != UFO1_RRRA) ||

View file

@ -1939,7 +1939,7 @@ int ConCompiler::parsecommand()
gs.max_armour_amount = parseone();
gs.respawnactortime = parseone();
gs.respawnitemtime = parseone();
gs.playerfriction = parseone();
gs.playerfriction = FixedToFloat(parseone());
if (isPlutoPak() || isRR()) gs.gravity = parseone();
gs.rpgblastradius = parseone();
gs.pipebombblastradius = parseone();
@ -3181,7 +3181,7 @@ void loadcons()
gs.morterblastradius = 2500;
gs.numfreezebounces = 3;
gs.pipebombblastradius = 2500;
gs.playerfriction = 0xCFD0;
gs.playerfriction = FixedToFloat(0xCFD0);
gs.rpgblastradius = 1780;
gs.seenineblastradius = 2048;
gs.shrinkerblastradius = 650;

View file

@ -2998,20 +2998,17 @@ void processinput_d(int snum)
else check = ((aplWeaponWorksLike(p->curr_weapon, snum) == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (actions & SB_CROUCH)));
if (check)
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x2000, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x2000, 16);
p->vel.XY() *= gs.playerfriction - 0.125;
}
else
{
if (psectlotag == 2)
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x1400, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x1400, 16);
p->vel.XY() *= gs.playerfriction - FixedToFloat(0x1400);
}
else
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction, 16);
p->vel.XY() *= gs.playerfriction;
}
}
@ -3020,10 +3017,7 @@ void processinput_d(int snum)
if (shrunk)
{
p->__vel.X =
MulScaleF(p->__vel.X, gs.playerfriction * 0.75, 16);
p->__vel.Y =
MulScaleF(p->__vel.Y, gs.playerfriction * 0.75, 16);
p->__vel.XY() *= gs.playerfriction * 0.75;
}
}

View file

@ -3712,20 +3712,17 @@ void processinput_r(int snum)
if (!isRRRA() && ((p->curr_weapon == KNEE_WEAPON && p->kickback_pic > 10 && p->on_ground) || (p->on_ground && (actions & SB_CROUCH))))
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x2000, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x2000, 16);
p->vel.XY() *= gs.playerfriction - 0.125;
}
else
{
if (psectlotag == 2)
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x1400, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x1400, 16);
p->vel.XY() *= gs.playerfriction - FixedToFloat(0x1400);
}
else
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction, 16);
p->vel.XY() *= gs.playerfriction;
}
}
@ -3746,8 +3743,7 @@ void processinput_r(int snum)
p->boot_amount--;
else
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction, 16);
p->vel.XY() *= gs.playerfriction;
}
}
else
@ -3758,8 +3754,7 @@ void processinput_r(int snum)
{
if (p->on_ground)
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x1800, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x1800, 16);
p->vel.XY() *= gs.playerfriction - FixedToFloat(0x1800);
}
}
else
@ -3767,20 +3762,16 @@ void processinput_r(int snum)
p->boot_amount--;
else
{
p->__vel.X = MulScaleF(p->__vel.X, gs.playerfriction - 0x1800, 16);
p->__vel.Y = MulScaleF(p->__vel.Y, gs.playerfriction - 0x1800, 16);
p->vel.XY() *= gs.playerfriction - FixedToFloat(0x1800);
}
}
if (abs(p->__vel.X) < 2048 && abs(p->__vel.Y) < 2048)
p->__vel.X = p->__vel.Y = 0;
p->vel.X = p->vel.Y = 0;
if (shrunk)
{
p->__vel.X =
MulScaleF(p->__vel.X, gs.playerfriction * 0.75, 16);
p->__vel.Y =
MulScaleF(p->__vel.Y, gs.playerfriction * 0.75, 16);
p->__vel.XY() *= gs.playerfriction * 0.75;
}
}

View file

@ -201,7 +201,11 @@ struct CraneDef
struct player_struct
{
DVector3 __vel;
union
{
DVector3 vel; // refactoring aid;
DVector3 __vel;
};
DVector3 pos, opos;
DVector2 bobpos;