- Duke: Remove player_struct::posXY().

This commit is contained in:
Mitchell Richters 2022-11-20 19:07:23 +11:00 committed by Christoph Oelckers
parent 6f102e1171
commit 92dd6c9795
12 changed files with 56 additions and 61 deletions

View file

@ -779,7 +779,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball)
{
// if(actor->spr.pal == 12)
{
auto delta = absangle(ps[p].angle.ang, (actor->spr.pos.XY() - ps[p].posXY()).Angle());
auto delta = absangle(ps[p].angle.ang, (actor->spr.pos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle());
if (delta < DAngle22_5 / 2 && PlayerInput(p, SB_OPEN))
if (ps[p].toggle_key_flag == 1)
{
@ -789,7 +789,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball)
{
if (act2->spr.picnum == queball || act2->spr.picnum == stripeball)
{
delta = absangle(ps[p].angle.ang, (act2->spr.pos.XY() - ps[p].posXY()).Angle());
delta = absangle(ps[p].angle.ang, (act2->spr.pos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle());
if (delta < DAngle22_5 / 2)
{
double l;
@ -811,7 +811,7 @@ bool queball(DDukeActor *actor, int pocket, int queball, int stripeball)
}
if (x < 32 && actor->sector() == ps[p].cursector)
{
actor->spr.angle = (actor->spr.pos.XY() - ps[p].posXY()).Angle();
actor->spr.angle = (actor->spr.pos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle();
actor->vel.X = 3;
}
}
@ -963,7 +963,7 @@ void recon(DDukeActor *actor, int explosion, int firelaser, int attacksnd, int p
actor->temp_data[2] = 0;
}
else actor->temp_angle +=
deltaangle(actor->temp_angle, (ps[p].posXY() - actor->spr.pos.XY()).Angle()) / 3;
deltaangle(actor->temp_angle, (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle()) / 3;
}
else if (actor->temp_data[0] == 2 || actor->temp_data[0] == 3)
{
@ -990,7 +990,7 @@ void recon(DDukeActor *actor, int explosion, int firelaser, int attacksnd, int p
fi.shoot(actor, firelaser);
}
}
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].posXY() - actor->spr.pos.XY()).Angle()) * 0.25;
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle()) * 0.25;
}
if (actor->temp_data[0] != 2 && actor->temp_data[0] != 3 && Owner)
@ -1863,9 +1863,9 @@ void handle_se00(DDukeActor* actor)
ps[p].posZadd(zchange);
auto result = rotatepoint(Owner->spr.pos, ps[p].posXY(), ang_amount * direction);
auto result = rotatepoint(Owner->spr.pos, ps[p].GetActor()->spr.pos.XY(), ang_amount * direction);
ps[p].bobpos += (result - ps[p].posXY());
ps[p].bobpos += (result - ps[p].GetActor()->spr.pos.XY());
ps[p].GetActor()->spr.pos.XY() = result;
}
@ -1987,7 +1987,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
if (dist2 < 1280)//20480)
{
auto saved_angle = actor->spr.angle;
actor->spr.angle = (actor->spr.pos.XY() - ps[p].posXY()).Angle();
actor->spr.angle = (actor->spr.pos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle();
fi.shoot(actor, RPG);
actor->spr.angle = saved_angle;
}
@ -2009,7 +2009,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
updatesector(ps[p].posGet(), &sect);
if ((sect == nullptr && ud.clipping == 0) || (sect == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].posXY() = actor->spr.pos.XY();
ps[p].GetActor()->spr.pos.XY() = actor->spr.pos.XY();
ps[p].setCursector(actor->sector());
SetActor(ps[p].GetActor(), actor->spr.pos);
@ -2033,9 +2033,9 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
if (actor->sector() == psp->sector())
{
auto result = rotatepoint(actor->spr.pos.XY(), ps[p].posXY(), diffangle);
auto result = rotatepoint(actor->spr.pos.XY(), ps[p].GetActor()->spr.pos.XY(), diffangle);
ps[p].posXY() = result + vec;
ps[p].GetActor()->spr.pos.XY() = result + vec;
ps[p].bobpos += vec;
@ -2047,7 +2047,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
}
if (psp->spr.extra <= 0)
{
psp->spr.pos.XY() = ps[p].posXY();
psp->spr.pos.XY() = ps[p].GetActor()->spr.pos.XY();
}
}
}
@ -2084,7 +2084,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
updatesector(ps[p].posGet(), &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].posXY() = actor->spr.pos.XY();
ps[p].GetActor()->spr.pos.XY() = actor->spr.pos.XY();
ps[p].GetActor()->backupvec2();
ps[p].setCursector(actor->sector());
@ -2187,7 +2187,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
updatesector(ps[p].posGet(), &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].posXY() = actor->spr.pos.XY();
ps[p].GetActor()->spr.pos.XY() = actor->spr.pos.XY();
ps[p].setCursector(actor->sector());
SetActor(ps[p].GetActor(), actor->spr.pos);
@ -2243,7 +2243,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
updatesector(ps[p].posGet(), &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].posXY() = actor->spr.pos.XY();
ps[p].GetActor()->spr.pos.XY() = actor->spr.pos.XY();
ps[p].GetActor()->backupvec2();
ps[p].setCursector(actor->sector());
@ -2528,7 +2528,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
else
{
actor->temp_angle +=
deltaangle(actor->temp_angle + DAngle90, (ps[p].posXY() - actor->spr.pos.XY()).Angle()) * 0.25;
deltaangle(actor->temp_angle + DAngle90, (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle()) * 0.25;
sc->ceilingshade = 0;
}
j = fi.ifhitbyweapon(actor);
@ -3038,7 +3038,7 @@ void handle_se17(DDukeActor* actor)
int p = act3->PlayerIndex();
ps[p].posoldAdd(-ps[p].posGet());
ps[p].posXY() += act2->spr.pos.XY() - actor->spr.pos.XY();
ps[p].GetActor()->spr.pos.XY() += act2->spr.pos.XY() - actor->spr.pos.XY();
ps[p].posZadd(act2->sector()->floorz - sc->floorz);
ps[p].posoldAdd(ps[p].posGet());
@ -3489,7 +3489,7 @@ void handle_se27(DDukeActor* actor)
{
ud.cameraactor = actor;
actor->temp_data[0] = 999;
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].posXY() - actor->spr.pos.XY()).Angle()) * 0.125;
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle()) * 0.125;
actor->spr.yint = 100 + int((actor->spr.pos.Z - ps[p].posZget()) * (256. / 257.));
}
@ -3504,7 +3504,7 @@ void handle_se27(DDukeActor* actor)
}
else
{
actor->spr.angle = (ps[p].posXY() - actor->spr.pos.XY()).Angle();
actor->spr.angle = (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
if (actor->temp_data[0] == 999)
{

View file

@ -1665,7 +1665,7 @@ static void greenslime(DDukeActor *actor)
}
else if (xx < 64 && ps[p].quick_kick == 0)
{
auto ang = absangle(ps[p].angle.ang, (actor->spr.pos.XY() - ps[p].posXY()).Angle());
auto ang = absangle(ps[p].angle.ang, (actor->spr.pos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle());
if (ang < DAngle22_5)
ps[p].quick_kick = 14;
}
@ -1770,7 +1770,7 @@ static void greenslime(DDukeActor *actor)
double add = (BobVal(actor->temp_data[1]) * 2) * REPEAT_SCALE;
actor->spr.scale = DVector2(0.3125 + add, 0.234375 + add);
actor->spr.pos.XY() = ps[p].posXY() + ps[p].angle.ang.ToVector() * 8;
actor->spr.pos.XY() = ps[p].GetActor()->spr.pos.XY() + ps[p].angle.ang.ToVector() * 8;
return;
}
@ -1932,7 +1932,7 @@ static void greenslime(DDukeActor *actor)
{
if (actor->vel.X < 2) actor->vel.X += 0.25;
actor->vel.X = 4 - BobVal(512 + actor->temp_data[1]) * 2;
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].posXY() - actor->spr.pos.XY()).Angle()) * 0.125;
actor->spr.angle += deltaangle(actor->spr.angle, (ps[p].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle()) * 0.125;
// TJR
}
@ -3033,7 +3033,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
if (ps[playernum].newOwner != nullptr)
goalang = (ps[playernum].posoldXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[playernum].posXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[playernum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
angdif = deltaangle(actor->spr.angle, goalang) * 0.25;
if (angdif > -DAngle22_5 / 16 && angdif < nullAngle) angdif = nullAngle;
actor->spr.angle += angdif;
@ -3046,7 +3046,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
if (ps[playernum].newOwner != nullptr)
goalang = (ps[playernum].posoldXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[playernum].posXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[playernum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
angdif = DAngle22_5 * 0.25 * Sgn(deltaangle(actor->spr.angle, goalang).Degrees()); // this looks very wrong...
actor->spr.angle += angdif;
}
@ -3060,7 +3060,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if (a & face_player_smart)
{
DVector2 newpos = ps[playernum].posXY() + (ps[playernum].vel.XY() * (4. / 3.));
DVector2 newpos = ps[playernum].GetActor()->spr.pos.XY() + (ps[playernum].vel.XY() * (4. / 3.));
goalang = (newpos - actor->spr.pos.XY()).Angle();
angdif = deltaangle(actor->spr.angle, goalang) * 0.25;
if (angdif > -DAngle22_5/16 && angdif < nullAngle) angdif = nullAngle;
@ -3171,7 +3171,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
daxvel = -(1024 - xvel) * maptoworld;
angdif = (ps[playernum].posXY() - actor->spr.pos.XY()).Angle();
angdif = (ps[playernum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
if (xvel < 512)
{

View file

@ -3210,7 +3210,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
{
if (ps[pnum].newOwner != nullptr)
goalang = (ps[pnum].posoldXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[pnum].posXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[pnum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
angdif = deltaangle(actor->spr.angle, goalang) * 0.25;
if (angdif > -DAngle22_5 / 16 && angdif < nullAngle) angdif = nullAngle;
actor->spr.angle += angdif;
@ -3223,7 +3223,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
{
if (ps[pnum].newOwner != nullptr)
goalang = (ps[pnum].posoldXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[pnum].posXY() - actor->spr.pos.XY()).Angle();
else goalang = (ps[pnum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
angdif = DAngle22_5 * 0.25 * Sgn(deltaangle(actor->spr.angle, goalang).Degrees()); // this looks very wrong...
actor->spr.angle += angdif;
}
@ -3234,7 +3234,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
{
if (ps[pnum].newOwner != nullptr)
goalang = ((ps[pnum].posoldXY() - actor->spr.pos.XY()).Angle() + DAngle180);
else goalang = ((ps[pnum].posXY() - actor->spr.pos.XY()).Angle() + DAngle180);
else goalang = ((ps[pnum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle() + DAngle180);
angdif = DAngle22_5 * 0.25 * Sgn(deltaangle(actor->spr.angle, goalang).Degrees()); // this looks very wrong...
actor->spr.angle += angdif;
}
@ -3293,7 +3293,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
if (a & face_player_smart)
{
DVector2 newpos = ps[pnum].posXY() + (ps[pnum].vel.XY() * (4. / 3.));
DVector2 newpos = ps[pnum].GetActor()->spr.pos.XY() + (ps[pnum].vel.XY() * (4. / 3.));
goalang = (newpos - actor->spr.pos.XY()).Angle();
angdif = deltaangle(actor->spr.angle, goalang) * 0.25;
if (angdif > -DAngle22_5 / 16 && angdif < nullAngle) angdif = nullAngle;
@ -3393,7 +3393,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
{
daxvel = -(1024 - xvel) * maptoworld;
angdif = (ps[pnum].posXY() - actor->spr.pos.XY()).Angle();
angdif = (ps[pnum].GetActor()->spr.pos.XY() - actor->spr.pos.XY()).Angle();
if (xvel < 512)
{

View file

@ -217,7 +217,7 @@ void animatesprites_d(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
case FORCESPHERE:
if (t->statnum == STAT_MISC && OwnerAc)
{
auto sqa = ( OwnerAc->spr.pos.XY() - ps[screenpeek].posXY()).Angle();
auto sqa = ( OwnerAc->spr.pos.XY() - ps[screenpeek].GetActor()->spr.pos.XY()).Angle();
auto sqb = (OwnerAc->spr.pos.XY() - t->pos.XY()).Angle();
if (absangle(sqa, sqb) > DAngle90)
@ -566,7 +566,7 @@ void animatesprites_d(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
else
{
// Alter the shadow's position so that it appears behind the sprite itself.
auto look = (shadowspr->pos.XY() - ps[screenpeek].posXY()).Angle();
auto look = (shadowspr->pos.XY() - ps[screenpeek].GetActor()->spr.pos.XY()).Angle();
shadowspr->pos.XY() += look.ToVector() * 2;
}
}

View file

@ -209,7 +209,7 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
case FORCESPHERE:
if (t->statnum == STAT_MISC && OwnerAc)
{
auto sqa = (OwnerAc->spr.pos.XY() - ps[screenpeek].posXY()).Angle();
auto sqa = (OwnerAc->spr.pos.XY() - ps[screenpeek].GetActor()->spr.pos.XY()).Angle();
auto sqb = (OwnerAc->spr.pos.XY() - t->pos.XY()).Angle();
if (absangle(sqa, sqb) > DAngle90)
@ -730,7 +730,7 @@ void animatesprites_r(tspriteArray& tsprites, const DVector2& viewVec, DAngle vi
else
{
// Alter the shadow's position so that it appears behind the sprite itself.
auto look = (shadowspr->pos.XY() - ps[screenpeek].posXY()).Angle();
auto look = (shadowspr->pos.XY() - ps[screenpeek].GetActor()->spr.pos.XY()).Angle();
shadowspr->pos.XY() += look.ToVector() * 2;
}
}

View file

@ -2432,9 +2432,9 @@ int ParseState::parse(void)
{
DAngle ang;
if (g_ac->isPlayer() && ud.multimode > 1)
ang = absangle(ps[otherp].angle.ang, (ps[g_p].posXY() - ps[otherp].posXY()).Angle());
ang = absangle(ps[otherp].angle.ang, (ps[g_p].GetActor()->spr.pos.XY() - ps[otherp].GetActor()->spr.pos.XY()).Angle());
else
ang = absangle(ps[g_p].angle.ang, (g_ac->spr.pos.XY() - ps[g_p].posXY()).Angle());
ang = absangle(ps[g_p].angle.ang, (g_ac->spr.pos.XY() - ps[g_p].GetActor()->spr.pos.XY()).Angle());
j = ang < DAngle22_5;
}

View file

@ -211,7 +211,7 @@ inline bool playrunning()
inline void doslopetilting(player_struct* p, double const scaleAdjust = 1)
{
bool const canslopetilt = p->on_ground && p->insector() && p->cursector->lotag != ST_2_UNDERWATER && (p->cursector->floorstat & CSTAT_SECTOR_SLOPE);
p->horizon.calcviewpitch(p->posXY(), p->angle.ang, p->aim_mode == 0, canslopetilt, p->cursector, scaleAdjust);
p->horizon.calcviewpitch(p->GetActor()->spr.pos.XY(), p->angle.ang, p->aim_mode == 0, canslopetilt, p->cursector, scaleAdjust);
}
//---------------------------------------------------------------------------

View file

@ -35,7 +35,7 @@ int madenoise(int snum)
player_struct *p;
p = &ps[snum];
p->donoise = 1;
p->noise = p->posXY();
p->noise = p->GetActor()->spr.pos.XY();
return 1;
}

View file

@ -214,7 +214,7 @@ double hitawall(player_struct* p, walltype** hitw)
hitscan(p->posGet(), p->cursector, DVector3(p->angle.ang.ToVector() * 1024, 0), hit, CLIPMASK0);
if (hitw) *hitw = hit.hitWall;
return (hit.hitpos.XY() - p->posXY()).Length();
return (hit.hitpos.XY() - p->GetActor()->spr.pos.XY()).Length();
}
@ -618,7 +618,7 @@ void playerisdead(int snum, int psectlotag, double floorz, double ceilingz)
}
Collision coll;
clipmove(p->posXY(), p->posZget(), &p->cursector, DVector2( 0, 0), 10.25, 4., 4., CLIPMASK0, coll);
clipmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, DVector2( 0, 0), 10.25, 4., 4., CLIPMASK0, coll);
}
backupplayer(p);
@ -627,7 +627,7 @@ void playerisdead(int snum, int psectlotag, double floorz, double ceilingz)
updatesector(p->posGet(), &p->cursector);
pushmove(p->posXY(), p->posZget(), &p->cursector, 8, 4, 20, CLIPMASK0);
pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 8, 4, 20, CLIPMASK0);
if (floorz > ceilingz + 16 && actor->spr.pal != 1)
p->angle.rotscrnang = DAngle::fromBuild(p->dead_flag + ((floorz + p->posZget()) * 2));
@ -773,7 +773,7 @@ void player_struct::backuppos(bool noclipping)
}
posoldZset(posZget());
bobpos = posXY();
bobpos = GetActor()->spr.pos.XY();
opyoff = pyoff;
}

View file

@ -178,7 +178,7 @@ static void shootflamethrowerflame(DDukeActor* actor, int p, DVector3 spos, DAng
setFreeAimVelocity(vel, zvel, ps[p].horizon.sum(), 40.5);
// WTF???
DAngle myang = DAngle90 - (DAngle180 - abs(abs((spos.XY() - ps[p].posXY()).Angle() - sang) - DAngle180));
DAngle myang = DAngle90 - (DAngle180 - abs(abs((spos.XY() - ps[p].GetActor()->spr.pos.XY()).Angle() - sang) - DAngle180));
if (ps[p].GetActor()->vel.X != 0)
vel = ((myang / DAngle90) * ps[p].GetActor()->vel.X) + 25;
if (actor->sector()->lotag == 2 && (krand() % 5) == 0)
@ -2040,7 +2040,7 @@ int operateTripbomb(int snum)
if (act == nullptr && hit.hitWall != nullptr && (hit.hitWall->cstat & CSTAT_WALL_MASKED) == 0)
if ((hit.hitWall->twoSided() && hit.hitWall->nextSector()->lotag <= 2) || (!hit.hitWall->twoSided() && hit.hitSector->lotag <= 2))
{
auto delta = hit.hitpos.XY() - p->posXY();
auto delta = hit.hitpos.XY() - p->GetActor()->spr.pos.XY();
if (delta.LengthSquared() < (18.125 * 18.125))
{
p->posZset(p->posoldZget());
@ -2867,7 +2867,7 @@ void processinput_d(int snum)
p->playerweaponsway(pact->vel.X);
pact->vel.X = clamp((p->posXY() - p->bobpos).Length(), 0., 32.);
pact->vel.X = clamp((p->GetActor()->spr.pos.XY() - p->bobpos).Length(), 0., 32.);
if (p->on_ground) p->bobcounter += int(p->GetActor()->vel.X * 8);
p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector()));
@ -3033,12 +3033,12 @@ HORIZONLY:
Collision clip{};
if (ud.clipping)
{
p->posXY() += p->vel.XY() ;
p->GetActor()->spr.pos.XY() += p->vel.XY() ;
updatesector(p->posGet(), &p->cursector);
ChangeActorSect(pact, p->cursector);
}
else
clipmove(p->posXY(), p->posZget(), &p->cursector, p->vel, 10.25, 4., iif, CLIPMASK0, clip);
clipmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, p->vel, 10.25, 4., iif, CLIPMASK0, clip);
if (p->jetpack_on == 0 && psectlotag != 2 && psectlotag != 1 && shrunk)
p->posZadd(32);
@ -3090,7 +3090,7 @@ HORIZONLY:
while (ud.clipping == 0)
{
int blocked;
blocked = (pushmove(p->posXY(), p->posZget(), &p->cursector, 10.25, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
blocked = (pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 10.25, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
if (fabs(pact->floorz - pact->ceilingz) < 48 || blocked)
{

View file

@ -3532,7 +3532,7 @@ void processinput_r(int snum)
p->playerweaponsway(pact->vel.X);
pact->vel.X = clamp((p->posXY() - p->bobpos).Length(), 0., 32.);
pact->vel.X = clamp((p->GetActor()->spr.pos.XY() - p->bobpos).Length(), 0., 32.);
if (p->on_ground) p->bobcounter += int(p->GetActor()->vel.X * 8);
p->backuppos(ud.clipping == 0 && ((p->insector() && p->cursector->floorpicnum == MIRROR) || !p->insector()));
@ -3737,12 +3737,12 @@ HORIZONLY:
Collision clip{};
if (ud.clipping)
{
p->posXY() += p->vel.XY() ;
p->GetActor()->spr.pos.XY() += p->vel.XY() ;
updatesector(p->posGet(), &p->cursector);
ChangeActorSect(pact, p->cursector);
}
else
clipmove(p->posXY(), p->posZget(), &p->cursector, p->vel, 10.25, 4., iif, CLIPMASK0, clip);
clipmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, p->vel, 10.25, 4., iif, CLIPMASK0, clip);
if (p->jetpack_on == 0 && psectlotag != 2 && psectlotag != 1 && shrunk)
p->posZadd(32);
@ -3771,10 +3771,10 @@ HORIZONLY:
if (wal->lotag < 44)
{
dofurniture(clip.hitWall, p->cursector, snum);
pushmove(p->posXY(), p->posZget(), &p->cursector, 10.75, 4, 4, CLIPMASK0);
pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 10.75, 4, 4, CLIPMASK0);
}
else
pushmove(p->posXY(), p->posZget(), &p->cursector, 10.75, 4, 4, CLIPMASK0);
pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 10.75, 4, 4, CLIPMASK0);
}
}
}
@ -3875,9 +3875,9 @@ HORIZONLY:
{
int blocked;
if (pact->clipdist == 16)
blocked = (pushmove(p->posXY(), p->posZget(), &p->cursector, 8, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
blocked = (pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 8, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
else
blocked = (pushmove(p->posXY(), p->posZget(), &p->cursector, 1, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
blocked = (pushmove(p->GetActor()->spr.pos.XY(), p->posZget(), &p->cursector, 1, 4, 4, CLIPMASK0) < 0 && furthestangle(p->GetActor(), 8) < DAngle90);
if (fabs(pact->floorz - pact->ceilingz) < 48 || blocked)
{

View file

@ -336,11 +336,6 @@ struct player_struct
}
DVector2& posXY()
{
return GetActor()->spr.pos.XY();
}
void posZset(const double val)
{
GetActor()->spr.pos.Z = val - GetActor()->viewzoffset;