- floatification access method cleanup in actors_d.cpp.

This commit is contained in:
Christoph Oelckers 2022-02-05 23:47:14 +01:00
parent f5abeb97e4
commit 8bba3b24b5

View file

@ -1824,7 +1824,7 @@ void movetransports_d(void)
}
else if (!(sectlotag == 1 && ps[p].on_ground == 1)) break;
if (onfloorz == 0 && abs(act->int_pos().Z - ps[p].player_int_pos().Z) < 6144)
if (onfloorz == 0 && abs(act->spr.pos.Z - ps[p].pos.Z) < 24)
if ((ps[p].jetpack_on == 0) || (ps[p].jetpack_on && (PlayerInput(p, SB_JUMP))) ||
(ps[p].jetpack_on && PlayerInput(p, SB_CROUCH)))
{
@ -1848,7 +1848,7 @@ void movetransports_d(void)
int k = 0;
if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].player_int_pos().Z > (sectp->int_floorz() - (16 << 8)) && (PlayerInput(p, SB_CROUCH) || ps[p].vel.Z > 2048))
if (onfloorz && sectlotag == ST_1_ABOVE_WATER && ps[p].on_ground && ps[p].pos.Z > (sectp->floorz - 16) && (PlayerInput(p, SB_CROUCH) || ps[p].vel.Z > 2048))
// if( onfloorz && sectlotag == 1 && ps[p].pos.z > (sectp->floorz-(6<<8)) )
{
k = 1;
@ -1866,7 +1866,7 @@ void movetransports_d(void)
}
if (onfloorz && sectlotag == ST_2_UNDERWATER && ps[p].player_int_pos().Z < (sectp->int_ceilingz() + (6 << 8)))
if (onfloorz && sectlotag == ST_2_UNDERWATER && ps[p].pos.Z < (sectp->ceilingz + 6))
{
k = 1;
// if( act2->spr.extra <= 0) break;
@ -2126,7 +2126,7 @@ static void greenslime(DDukeActor *actor)
}
else if (x < 1024 && ps[p].quick_kick == 0)
{
j = getincangle(ps[p].angle.ang.asbuild(), getangle(actor->int_pos().X - ps[p].player_int_pos().X, actor->int_pos().Y - ps[p].player_int_pos().Y));
j = getincangle(ps[p].angle.ang.asbuild(), getangle(actor->spr.pos.XY() - ps[p].pos.XY()));
if (j > -128 && j < 128)
ps[p].quick_kick = 14;
}
@ -2174,7 +2174,7 @@ static void greenslime(DDukeActor *actor)
return;
}
actor->set_int_z(ps[p].player_int_pos().Z + ps[p].pyoff - actor->temp_data[2] + (8 << 8) - (ps[p].horizon.horiz.asq16() >> 12));
actor->spr.pos.Z = ps[p].pos.Z + 8 + (ps[p].pyoff - actor->temp_data[2] - (ps[p].horizon.horiz.asq16() >> 12)) * zinttoworld;
if (actor->temp_data[2] > 512)
actor->temp_data[2] -= 128;
@ -2188,7 +2188,7 @@ static void greenslime(DDukeActor *actor)
ps[p].restorexyz();
ps[p].angle.restore();
updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &ps[p].cursector);
updatesector(ps[p].pos, &ps[p].cursector);
DukeStatIterator it(STAT_ACTOR);
while (auto ac = it.Next())
@ -2223,7 +2223,8 @@ static void greenslime(DDukeActor *actor)
actor->spr.xrepeat = 20 + bsin(actor->temp_data[1], -13);
actor->spr.yrepeat = 15 + bsin(actor->temp_data[1], -13);
actor->set_int_xy(ps[p].player_int_pos().X + ps[p].angle.ang.bcos(-7), ps[p].player_int_pos().Y + ps[p].angle.ang.bsin(-7));
actor->spr.pos.X = ps[p].pos.X + ps[p].angle.ang.fcos() * 8;
actor->spr.pos.Y = ps[p].pos.Y + ps[p].angle.ang.fsin() * 8;
return;
}
@ -2382,7 +2383,7 @@ static void greenslime(DDukeActor *actor)
actor->spr.xvel = 64 - bcos(actor->temp_data[1], -9);
actor->spr.ang += getincangle(actor->spr.ang,
getangle(ps[p].player_int_pos().X - actor->int_pos().X, ps[p].player_int_pos().Y - actor->int_pos().Y)) >> 3;
getangle(ps[p].pos.XY() - actor->spr.pos.XY())) >> 3;
// TJR
}
@ -2711,7 +2712,7 @@ DETONATEB:
}
}
else if (actor->spr.picnum == HEAVYHBOMB && x < 788 && actor->temp_data[0] > 7 && actor->spr.xvel == 0)
if (cansee(actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z - (8 << 8), actor->sector(), ps[p].player_int_pos().X, ps[p].player_int_pos().Y, ps[p].player_int_pos().Z, ps[p].cursector))
if (cansee(actor->spr.pos.plusZ(-8), actor->sector(), ps[p].pos, ps[p].cursector))
if (ps[p].ammo_amount[HANDBOMB_WEAPON] < gs.max_ammo_amount[HANDBOMB_WEAPON])
{
if (ud.coop >= 1 && Owner == actor)
@ -2871,7 +2872,7 @@ void moveactors_d(void)
continue;
case RECON:
recon(act, EXPLOSION2, FIRELASER, RECO_ATTACK, RECO_PAIN, RECO_ROAM, 10, [](DDukeActor* i)->int { return PIGCOP; });
recon(act, EXPLOSION2, FIRELASER, RECO_ATTACK, RECO_PAIN, RECO_ROAM, 4, [](DDukeActor* i)->int { return PIGCOP; });
continue;
case OOZ:
@ -3257,7 +3258,7 @@ static void handle_se28(DDukeActor* actor)
}
else if (actor->temp_data[2] > (actor->temp_data[1] >> 3) && actor->temp_data[2] < (actor->temp_data[1] >> 2))
{
int j = !!cansee(actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, actor->sector(), ps[screenpeek].player_int_pos().X, ps[screenpeek].player_int_pos().Y, ps[screenpeek].player_int_pos().Z, ps[screenpeek].cursector);
int j = !!cansee(actor->spr.pos, actor->sector(), ps[screenpeek].pos, ps[screenpeek].cursector);
if (rnd(192) && (actor->temp_data[2] & 1))
{
@ -3508,8 +3509,8 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if (a & face_player)
{
if (ps[playernum].newOwner != nullptr)
goalang = getangle(ps[playernum].player_int_opos().X - actor->int_pos().X, ps[playernum].player_int_opos().Y - actor->int_pos().Y);
else goalang = getangle(ps[playernum].player_int_pos().X - actor->int_pos().X, ps[playernum].player_int_pos().Y - actor->int_pos().Y);
goalang = getangle(ps[playernum].opos.XY() - actor->spr.pos.XY());
else goalang = getangle(ps[playernum].pos.XY() - actor->spr.pos.XY());
angdif = getincangle(actor->spr.ang, goalang) >> 2;
if (angdif > -8 && angdif < 0) angdif = 0;
actor->spr.ang += angdif;
@ -3521,8 +3522,8 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if (a & face_player_slow)
{
if (ps[playernum].newOwner != nullptr)
goalang = getangle(ps[playernum].player_int_opos().X - actor->int_pos().X, ps[playernum].player_int_opos().Y - actor->int_pos().Y);
else goalang = getangle(ps[playernum].player_int_pos().X - actor->int_pos().X, ps[playernum].player_int_pos().Y - actor->int_pos().Y);
goalang = getangle(ps[playernum].opos.XY() - actor->spr.pos.XY());
else goalang = getangle(ps[playernum].pos.XY() - actor->spr.pos.XY());
angdif = Sgn(getincangle(actor->spr.ang, goalang)) << 5;
if (angdif > -32 && angdif < 0)
{
@ -3541,11 +3542,9 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
if (a & face_player_smart)
{
int newx, newy;
newx = ps[playernum].player_int_pos().X + (ps[playernum].vel.X / 768);
newy = ps[playernum].player_int_pos().Y + (ps[playernum].vel.Y / 768);
goalang = getangle(newx - actor->int_pos().X, newy - actor->int_pos().Y);
double newx = ps[playernum].pos.X + (ps[playernum].vel.X / 768) * inttoworld;
double newy = ps[playernum].pos.Y + (ps[playernum].vel.Y / 768) * inttoworld;
goalang = getangle(newx - actor->spr.pos.X, newy - actor->spr.pos.Y);
angdif = getincangle(actor->spr.ang, goalang) >> 2;
if (angdif > -8 && angdif < 0) angdif = 0;
actor->spr.ang += angdif;
@ -3650,7 +3649,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
daxvel = -(1024 - xvel);
angdif = getangle(ps[playernum].player_int_pos().X - actor->int_pos().X, ps[playernum].player_int_pos().Y - actor->int_pos().Y);
angdif = getangle(ps[playernum].pos.XY() - actor->spr.pos.XY());
if (xvel < 512)
{