- floatified bobpos.

This commit is contained in:
Christoph Oelckers 2022-02-05 13:58:12 +01:00
parent b8eb66cccf
commit 29ae7f7a02
6 changed files with 17 additions and 18 deletions

View file

@ -2684,8 +2684,7 @@ void handle_se00(DDukeActor* actor)
auto result = rotatepoint(Owner->spr.pos, ps[p].pos.XY(), buildang(q * l));
ps[p].bobpos.X += (result.X - ps[p].pos.X) * worldtoint;
ps[p].bobpos.Y += (result.Y - ps[p].pos.Y) * worldtoint;
ps[p].bobpos += (result - ps[p].pos.XY());
ps[p].pos.X = result.X;
ps[p].pos.Y = result.Y;
@ -2864,8 +2863,8 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
ps[p].player_set_int_xy({ result.X + m, result.Y + x });
ps[p].bobpos.X += m;
ps[p].bobpos.Y += x;
ps[p].bobpos.X += m * inttoworld;
ps[p].bobpos.Y += x * inttoworld;
ps[p].angle.addadjustment(buildang(q));
@ -3039,8 +3038,8 @@ void handle_se30(DDukeActor *actor, int JIBS6)
ps[p].backupxy();
}
ps[p].bobpos.X += l;
ps[p].bobpos.Y += x;
ps[p].bobpos.X += l * inttoworld;
ps[p].bobpos.Y += x * inttoworld;
}
if (po[p].os == actor->sector())
@ -3165,8 +3164,8 @@ void handle_se02(DDukeActor* actor)
{
ps[p].player_add_int_xy({ m, x });
ps[p].bobpos.X += m;
ps[p].bobpos.Y += x;
ps[p].bobpos.X += m * inttoworld;
ps[p].bobpos.Y += x * inttoworld;
}
DukeSectIterator it(actor->sector());

View file

@ -368,13 +368,13 @@ void DoPlayer(bool bSet, int lVar1, int lLabelID, int lVar2, DDukeActor* sActor,
break;
case PLAYER_BOBPOSX:
if (bSet) ps[iPlayer].bobpos.X = lValue;
else SetGameVarID(lVar2, ps[iPlayer].bobpos.X, sActor, sPlayer);
if (bSet) ps[iPlayer].bobpos.X = lValue * maptoworld;
else SetGameVarID(lVar2, ps[iPlayer].bobpos.X * (1/maptoworld), sActor, sPlayer);
break;
case PLAYER_BOBPOSY:
if (bSet) ps[iPlayer].bobpos.Y = lValue;
else SetGameVarID(lVar2, ps[iPlayer].bobpos.Y, sActor, sPlayer);
if (bSet) ps[iPlayer].bobpos.Y = lValue * maptoworld;
else SetGameVarID(lVar2, ps[iPlayer].bobpos.Y * (1/maptoworld), sActor, sPlayer);
break;
case PLAYER_OPOSX:

View file

@ -779,8 +779,7 @@ void player_struct::backuppos(bool noclipping)
}
opos.Z = pos.Z;
bobpos.X = player_int_pos().X;
bobpos.Y = player_int_pos().Y;
bobpos = pos.XY();
opyoff = pyoff;
}

View file

@ -2855,7 +2855,7 @@ void processinput_d(int snum)
p->playerweaponsway(pact->spr.xvel);
pact->spr.xvel = clamp(ksqrt((p->player_int_pos().X - p->bobpos.X) * (p->player_int_pos().X - p->bobpos.X) + (p->player_int_pos().Y - p->bobpos.Y) * (p->player_int_pos().Y - p->bobpos.Y)), 0, 512);
pact->spr.xvel = int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint);
if (p->on_ground) p->bobcounter += p->GetActor()->spr.xvel >> 1;
p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector()));

View file

@ -3580,7 +3580,7 @@ void processinput_r(int snum)
p->playerweaponsway(pact->spr.xvel);
pact->spr.xvel = clamp(ksqrt((p->player_int_pos().X - p->bobpos.X) * (p->player_int_pos().X - p->bobpos.X) + (p->player_int_pos().Y - p->bobpos.Y) * (p->player_int_pos().Y - p->bobpos.Y)), 0, 512);
pact->spr.xvel = int(clamp((p->pos.XY() - p->bobpos).Length(), 0., 32.) * worldtoint);
if (p->on_ground) p->bobcounter += p->GetActor()->spr.xvel >> 1;
p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector()));

View file

@ -205,6 +205,7 @@ struct player_struct
{
vec3_t vel;
DVector3 pos, opos;
DVector2 bobpos;
// player's horizon and angle structs.
PlayerHorizon horizon;
@ -218,7 +219,7 @@ struct player_struct
PalEntry pals;
// this was a global variable originally.
vec2_t fric, exit, loogie[64], bobpos;
vec2_t fric, exit, loogie[64];
// weapon drawer variables and their interpolation counterparts.
int weapon_sway;
@ -379,7 +380,7 @@ struct player_struct
void setbobpos()
{
bobpos = player_int_pos().vec2;
bobpos = pos.XY();
}
void getposfromactor(DCoreActor* actor, double addz = 0)