Skip to content

Commit

Permalink
- floatification access method cleanup in actors.cpp.
Browse files Browse the repository at this point in the history
  • Loading branch information
coelckers committed Aug 9, 2022
1 parent bf4c9fd commit 4096d38
Showing 1 changed file with 27 additions and 24 deletions.
51 changes: 27 additions & 24 deletions source/games/duke/src/actors.cpp
Expand Up @@ -2810,7 +2810,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
if (x < 20480)
{
j = actor->spr.ang;
actor->spr.ang = getangle(actor->int_pos().X - ps[p].player_int_pos().X, actor->int_pos().Y - ps[p].player_int_pos().Y);
actor->spr.ang = getangle(actor->spr.pos.XY() - ps[p].pos.XY());
fi.shoot(actor, RPG);
actor->spr.ang = j;
}
Expand All @@ -2829,7 +2829,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
if (psp->spr.extra > 0)
{
auto k = ps[p].cursector;
updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &k);
updatesector(ps[p].pos, &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].getxyfromactor(actor);
Expand All @@ -2844,6 +2844,8 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)

int m = MulScale(actor->spr.xvel, bcos(actor->spr.ang), 14);
x = MulScale(actor->spr.xvel, bsin(actor->spr.ang), 14);
double mm = m * inttoworld;
double xx = x * inttoworld;

for (int p = connecthead; p >= 0; p = connectpoint2[p])
{
Expand All @@ -2852,19 +2854,19 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
{
if (po[p].os == actor->sector())
{
po[p].opos.X += m * inttoworld;
po[p].opos.Y += x * inttoworld;
po[p].opos.X += mm;
po[p].opos.Y += xx;
}

if (actor->sector() == psp->sector())
{
vec2_t result;
rotatepoint(actor->int_pos().vec2, ps[p].player_int_pos().vec2, q, &result);
auto result = rotatepoint(actor->spr.pos.XY(), ps[p].pos.XY(), buildang(q));

ps[p].player_set_int_xy({ result.X + m, result.Y + x });
ps[p].pos.X = result.X + mm;
ps[p].pos.Y = result.Y + xx;

ps[p].bobpos.X += m * inttoworld;
ps[p].bobpos.Y += x * inttoworld;
ps[p].bobpos.X += mm;
ps[p].bobpos.Y += xx;

ps[p].angle.addadjustment(buildang(q));

Expand All @@ -2874,7 +2876,8 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
}
if (psp->spr.extra <= 0)
{
psp->set_int_xy(ps[p].player_int_pos().X, ps[p].player_int_pos().Y);
psp->spr.pos.X = ps[p].pos.X;
psp->spr.pos.Y = ps[p].pos.Y;
}
}
}
Expand Down Expand Up @@ -2914,7 +2917,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
if (ps[p].GetActor()->spr.extra > 0)
{
auto k = ps[p].cursector;
updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &k);
updatesector(ps[p].pos, &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].getxyfromactor(actor);
Expand Down Expand Up @@ -3015,7 +3018,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
if (psp->spr.extra > 0)
{
auto k = ps[p].cursector;
updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &k);
updatesector(ps[p].pos, &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].getxyfromactor(actor);
Expand Down Expand Up @@ -3066,14 +3069,14 @@ void handle_se30(DDukeActor *actor, int JIBS6)
ms(actor);
//SetActor(actor, actor->int_pos());

if ((sc->int_floorz() - sc->int_ceilingz()) < (108 << 8))
if ((sc->floorz - sc->ceilingz) < 108)
{
if (ud.clipping == 0)
for (int p = connecthead; p >= 0; p = connectpoint2[p])
if (ps[p].GetActor()->spr.extra > 0)
{
auto k = ps[p].cursector;
updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &k);
updatesector(ps[p].pos, &k);
if ((k == nullptr && ud.clipping == 0) || (k == actor->sector() && ps[p].cursector != actor->sector()))
{
ps[p].getxyfromactor(actor);
Expand Down Expand Up @@ -3313,7 +3316,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
if (x < 8192)
{
j = actor->spr.ang;
actor->spr.ang = getangle(actor->int_pos().X - ps[p].player_int_pos().X, actor->int_pos().Y - ps[p].player_int_pos().Y);
actor->spr.ang = getangle(actor->spr.pos.XY() - ps[p].pos);
fi.shoot(actor, FIRELASER);
actor->spr.ang = j;
}
Expand Down Expand Up @@ -3341,21 +3344,21 @@ void handle_se05(DDukeActor* actor, int FIRELASER)

actor->SetOwner(Owner);
if (!Owner) return; // Undefined case - was not checked.
actor->spr.zvel = Sgn(Owner->int_pos().Z - actor->int_pos().Z) << 4;
actor->spr.zvel = Sgn(Owner->spr.pos.Z - actor->spr.pos.Z) << 4;
}

if (ldist(Owner, actor) < 1024)
{
auto ta = actor->spr.ang;
actor->spr.ang = getangle(ps[p].player_int_pos().X - actor->int_pos().X, ps[p].player_int_pos().Y - actor->int_pos().Y);
actor->spr.ang = getangle(ps[p].pos.XY() - actor->spr.pos.XY());
actor->spr.ang = ta;
actor->SetOwner(nullptr);
return;

}
else actor->spr.xvel = 256;

x = getangle(Owner->int_pos().X - actor->int_pos().X, Owner->int_pos().Y - actor->int_pos().Y);
x = getangle(Owner->spr.pos.XY() - actor->spr.pos.XY());
int q = getincangle(actor->spr.ang, x) >> 3;
actor->spr.ang += q;

Expand All @@ -3367,7 +3370,7 @@ void handle_se05(DDukeActor* actor, int FIRELASER)
else
{
actor->temp_data[2] +=
getincangle(actor->temp_data[2] + 512, getangle(ps[p].player_int_pos().X - actor->int_pos().X, ps[p].player_int_pos().Y - actor->int_pos().Y)) >> 2;
getincangle(actor->temp_data[2] + 512, getangle(ps[p].pos.XY() - actor->spr.pos.XY())) >> 2;
sc->ceilingshade = 0;
}
j = fi.ifhitbyweapon(actor);
Expand Down Expand Up @@ -4317,14 +4320,14 @@ void handle_se27(DDukeActor* actor)
}
else if (ud.recstat == 2 && ps[p].newOwner == nullptr)
{
if (cansee(actor->int_pos().X, actor->int_pos().Y, actor->int_pos().Z, 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, actor->sector(), ps[p].pos, ps[p].cursector))
{
if (x < sh)
{
ud.cameraactor = actor;
actor->temp_data[0] = 999;
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;
actor->spr.yvel = 100 + ((actor->int_pos().Z - ps[p].player_int_pos().Z) / 257);
actor->spr.ang += getincangle(actor->spr.ang, getangle(ps[p].pos.XY() - actor->spr.pos.XY())) >> 3;
actor->spr.yvel = 100 + int((actor->spr.pos.Z - ps[p].pos.Z) * (256. / 257.));

}
else if (actor->temp_data[0] == 999)
Expand All @@ -4338,7 +4341,7 @@ void handle_se27(DDukeActor* actor)
}
else
{
actor->spr.ang = getangle(ps[p].player_int_pos().X - actor->int_pos().X, ps[p].player_int_pos().Y - actor->int_pos().Y);
actor->spr.ang = getangle(ps[p].pos.XY() - actor->spr.pos.XY());

if (actor->temp_data[0] == 999)
{
Expand Down Expand Up @@ -4405,7 +4408,7 @@ void handle_se24(DDukeActor *actor, bool scroll, int shift)
{
if (ps[p].cursector == actor->sector() && ps[p].on_ground)
{
if (abs(ps[p].player_int_pos().Z - ps[p].truefz * zworldtoint) < gs.int_playerheight + (9 << 8))
if (abs(ps[p].pos.Z - ps[p].truefz) < gs.playerheight + 9)
{
ps[p].fric.X += x << 3;
ps[p].fric.Y += y << 3;
Expand Down

0 comments on commit 4096d38

Please sign in to comment.