Skip to content

Commit

Permalink
- floatification access method cleanup in actors_d.cpp.
Browse files Browse the repository at this point in the history
  • Loading branch information
coelckers committed Aug 9, 2022
1 parent 4096d38 commit 8899ed3
Showing 1 changed file with 20 additions and 21 deletions.
41 changes: 20 additions & 21 deletions source/games/duke/src/actors_d.cpp
Expand Up @@ -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)))
{
Expand All @@ -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;
Expand All @@ -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;
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
Expand All @@ -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())
Expand Down Expand Up @@ -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;
}

Expand Down Expand Up @@ -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
}

Expand Down Expand Up @@ -2711,7 +2712,7 @@ static void heavyhbomb(DDukeActor *actor)
}
}
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)
Expand Down Expand Up @@ -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:
Expand Down Expand Up @@ -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))
{
Expand Down Expand Up @@ -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;
Expand All @@ -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)
{
Expand All @@ -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;
Expand Down Expand Up @@ -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)
{
Expand Down

0 comments on commit 8899ed3

Please sign in to comment.