Skip to content

Commit

Permalink
- another batch of utility use
Browse files Browse the repository at this point in the history
  • Loading branch information
coelckers committed Aug 9, 2022
1 parent ac99131 commit ae9c207
Show file tree
Hide file tree
Showing 10 changed files with 43 additions and 48 deletions.
5 changes: 2 additions & 3 deletions source/games/duke/src/ccmds.cpp
Expand Up @@ -115,9 +115,8 @@ void GameInterface::WarpToCoords(int x, int y, int z, int ang, int horz)
{
player_struct* p = &ps[myconnectindex];

p->__int_opos.X = p->__int_pos.X = x;
p->__int_opos.Y = p->__int_pos.Y = y;
p->__int_opos.Z = p->__int_pos.Z = z;
p->__int_pos = { x, y, z };
p->backupxyz();

if (ang != INT_MIN)
{
Expand Down
8 changes: 4 additions & 4 deletions source/games/duke/src/gameexec.cpp
Expand Up @@ -2047,9 +2047,7 @@ int ParseState::parse(void)
if(!isRR() && ps[g_p].newOwner != nullptr)
{
ps[g_p].newOwner = nullptr;
ps[g_p].__int_pos.X = ps[g_p].player_int_opos().X;
ps[g_p].__int_pos.Y = ps[g_p].player_int_opos().Y;
ps[g_p].__int_pos.Z = ps[g_p].player_int_opos().Z;
ps[g_p].restorexyz();
ps[g_p].angle.restore();
updatesector(ps[g_p].player_int_pos().X,ps[g_p].player_int_pos().Y,&ps[g_p].cursector);

Expand Down Expand Up @@ -2226,7 +2224,9 @@ int ParseState::parse(void)
{
// I am not convinced this is even remotely smart to be executed from here..
pickrandomspot(g_p);
g_ac->set_int_pos({ ps[g_p].bobpos.X = ps[g_p].__int_opos.X = ps[g_p].player_int_pos().X, ps[g_p].bobpos.Y = ps[g_p].__int_opos.Y = ps[g_p].player_int_pos().Y, ps[g_p].__int_opos.Z = ps[g_p].__int_pos.Z });
g_ac->set_int_pos(ps[g_p].player_int_pos());
ps[g_p].backupxyz();
ps[g_p].setbobpos();
g_ac->backuppos();
updatesector(ps[g_p].player_int_pos().X, ps[g_p].player_int_pos().Y, &ps[g_p].cursector);
SetActor(ps[g_p].GetActor(), vec3_t( ps[g_p].player_int_pos().X, ps[g_p].player_int_pos().Y, ps[g_p].player_int_pos().Z + gs.int_playerheight ));
Expand Down
14 changes: 6 additions & 8 deletions source/games/duke/src/player.cpp
Expand Up @@ -215,10 +215,10 @@ int hitawall(struct player_struct* p, walltype** hitw)
{
HitInfo hit{};

hitscan(p->__int_pos, p->cursector, { p->angle.ang.bcos(), p->angle.ang.bsin(), 0 }, hit, CLIPMASK0);
hitscan(p->player_int_pos(), p->cursector, { p->angle.ang.bcos(), p->angle.ang.bsin(), 0 }, hit, CLIPMASK0);
if (hitw) *hitw = hit.hitWall;

return (FindDistance2D(hit.hitpos.vec2 - p->__int_pos.vec2));
return (FindDistance2D(hit.hitpos.vec2 - p->player_int_pos().vec2));
}


Expand Down Expand Up @@ -252,7 +252,7 @@ DDukeActor* aim(DDukeActor* actor, int aang)
int zvel = -plr->horizon.sum().asq16() >> 5;

HitInfo hit{};
hitscan(plr->__int_pos.withZOffset(1024), actor->sector(), { bcos(actor->spr.ang), bsin(actor->spr.ang), zvel }, hit, CLIPMASK1);
hitscan(plr->player_int_pos().withZOffset(1024), actor->sector(), { bcos(actor->spr.ang), bsin(actor->spr.ang), zvel }, hit, CLIPMASK1);

if (hit.actor() != nullptr)
{
Expand Down Expand Up @@ -765,16 +765,14 @@ void player_struct::backuppos(bool noclipping)
{
if (!noclipping)
{
__int_opos.X = player_int_pos().X;
__int_opos.Y = player_int_pos().Y;
backupxy();
}
else
{
__int_pos.X = player_int_opos().X;
__int_pos.Y = player_int_opos().Y;
restorexy();
}

__int_opos.Z = player_int_pos().Z;
backupz();
bobpos.X = player_int_pos().X;
bobpos.Y = player_int_pos().Y;
opyoff = pyoff;
Expand Down
4 changes: 2 additions & 2 deletions source/games/duke/src/player_d.cpp
Expand Up @@ -184,7 +184,7 @@ static void shootflamethrowerflame(DDukeActor* actor, int p, int sx, int sy, int
zvel = -MulScale(ps[p].horizon.sum().asq16(), 81, 16);
if (ps[p].GetActor()->spr.xvel != 0)
vel = (int)((((512 - (1024
- abs(abs(getangle(sx - ps[p].player_int_opos().X, sy - ps[p].__int_opos.Y) - sa) - 1024)))
- abs(abs(getangle(sx - ps[p].player_int_opos().X, sy - ps[p].player_int_opos().Y) - sa) - 1024)))
* 0.001953125f) * ps[p].GetActor()->spr.xvel) + 400);
if (actor->sector()->lotag == 2 && (krand() % 5) == 0)
spawned = spawn(actor, WATERBUBBLE);
Expand Down Expand Up @@ -2736,7 +2736,7 @@ void processinput_d(int snum)
p->spritebridge = 0;

shrunk = (pact->spr.yrepeat < 32);
getzrange(p->__int_pos, psectp, &cz, chz, &fz, clz, 163, CLIPMASK0);
getzrange(p->player_int_pos(), psectp, &cz, chz, &fz, clz, 163, CLIPMASK0);

j = getflorzofslopeptr(psectp, p->player_int_pos().X, p->player_int_pos().Y);

Expand Down
4 changes: 2 additions & 2 deletions source/games/duke/src/player_r.cpp
Expand Up @@ -3401,12 +3401,12 @@ void processinput_r(int snum)
int tempfz;
if (pact->spr.clipdist == 64)
{
getzrange(p->__int_pos, psectp, &cz, chz, &fz, clz, 163L, CLIPMASK0);
getzrange(p->player_int_pos(), psectp, &cz, chz, &fz, clz, 163L, CLIPMASK0);
tempfz = getflorzofslopeptr(psectp, p->player_int_pos().X, p->player_int_pos().Y);
}
else
{
getzrange(p->__int_pos, psectp, &cz, chz, &fz, clz, 4L, CLIPMASK0);
getzrange(p->player_int_pos(), psectp, &cz, chz, &fz, clz, 4L, CLIPMASK0);
tempfz = getflorzofslopeptr(psectp, p->player_int_pos().X, p->player_int_pos().Y);
}

Expand Down
20 changes: 10 additions & 10 deletions source/games/duke/src/premap.cpp
Expand Up @@ -95,9 +95,9 @@ void pickrandomspot(int snum)
i = krand()%numplayersprites;
else i = snum;

p->bobpos.X = p->__int_opos.X = p->__int_pos.X = po[i].opos.X;
p->bobpos.Y = p->__int_opos.Y = p->__int_pos.Y = po[i].opos.Y;
p->__int_opos.Z = p->__int_pos.Z = po[i].opos.Z;
p->__int_pos = po[i].opos;
p->backupxyz();
p->setbobpos();
p->angle.oang = p->angle.ang = buildang(po[i].oa);
p->setCursector(po[i].os);
}
Expand Down Expand Up @@ -615,9 +615,7 @@ void resetpspritevars(int g)
firsty = ps[0].player_int_pos().Y;
}

po[numplayersprites].opos.X = act->int_pos().X;
po[numplayersprites].opos.Y = act->int_pos().Y;
po[numplayersprites].opos.Z = act->int_pos().Z;
po[numplayersprites].opos = act->int_pos();
po[numplayersprites].oa = act->spr.ang;
po[numplayersprites].os = act->sector();

Expand Down Expand Up @@ -659,9 +657,9 @@ void resetpspritevars(int g)
ps[j].frag_ps = j;
act->SetOwner(act);

ps[j].bobpos.X = ps[j].__int_opos.X = ps[j].__int_pos.X = act->int_pos().X;
ps[j].bobpos.Y = ps[j].__int_opos.Y = ps[j].__int_pos.Y = act->int_pos().Y;
ps[j].__int_opos.Z = ps[j].__int_pos.Z = act->int_pos().Z;
ps[j].getposfromactor(act);
ps[j].backupxyz();
ps[j].setbobpos();
act->backuppos();
ps[j].angle.oang = ps[j].angle.ang = buildang(act->spr.ang);

Expand Down Expand Up @@ -1005,7 +1003,9 @@ static int LoadTheMap(MapRecord *mi, struct player_struct *p, int gamemode)
currentLevel = mi;
int sect;
SpawnSpriteDef sprites;
loadMap(mi->fileName, isShareware(), &p->__int_pos, &lbang, &sect, sprites);
vec3_t pos;
loadMap(mi->fileName, isShareware(), &pos, &lbang, &sect, sprites);
p->__int_pos = pos;
p->cursector = &sector[sect];

SECRET_SetMapName(mi->DisplayName(), mi->name);
Expand Down
4 changes: 1 addition & 3 deletions source/games/duke/src/savegame.cpp
Expand Up @@ -277,9 +277,7 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, player_struct& w,
.EndObject();

w.invdisptime = 0;
w.__int_opos.X = w.player_int_pos().X;
w.__int_opos.Y = w.player_int_pos().Y;
w.__int_opos.Z = w.player_int_pos().Z;
w.backupxyz();
w.opyoff = w.pyoff;
w.backupweapon();
w.sync.actions &= SB_CENTERVIEW|SB_CROUCH; // these are the only bits we need to preserve.
Expand Down
14 changes: 5 additions & 9 deletions source/games/duke/src/sectors_d.cpp
Expand Up @@ -482,7 +482,7 @@ bool checkhitswitch_d(int snum, walltype* wwal, DDukeActor *act)
return 1;
}

vec3_t v = { sx, sy, ps[snum].__int_pos.Z };
vec3_t v = { sx, sy, ps[snum].player_int_pos().Z };
switch (picnum)
{
default:
Expand Down Expand Up @@ -1441,9 +1441,7 @@ void checkhitsprite_d(DDukeActor* targ, DDukeActor* proj)
if (ps[p].newOwner != nullptr)
{
ps[p].newOwner = nullptr;
ps[p].__int_pos.X = ps[p].player_int_opos().X;
ps[p].__int_pos.Y = ps[p].player_int_opos().Y;
ps[p].__int_pos.Z = ps[p].player_int_opos().Z;
ps[p].restorexyz();
ps[p].angle.restore();

updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &ps[p].cursector);
Expand Down Expand Up @@ -1479,9 +1477,7 @@ void clearcameras(int i, player_struct* p)
{
if (i < 0)
{
p->__int_pos.X = p->player_int_opos().X;
p->__int_pos.Y = p->player_int_opos().Y;
p->__int_pos.Z = p->player_int_opos().Z;
p->restorexyz();
p->newOwner = nullptr;

updatesector(p->player_int_pos().X, p->player_int_pos().Y, &p->cursector);
Expand Down Expand Up @@ -1593,10 +1589,10 @@ void checksectors_d(int snum)
return;
}
if (p->newOwner != nullptr)
neartag({ p->player_int_opos().X, p->player_int_opos().Y, p->__int_opos.Z }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280L, 1);
neartag({ p->player_int_opos().X, p->player_int_opos().Y, p->player_int_opos().Z }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280L, 1);
else
{
neartag(p->__int_pos, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
neartag(p->player_int_pos(), p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
if (near.actor() == nullptr && near.hitWall == nullptr && near.hitSector == nullptr)
neartag({ p->player_int_pos().X, p->player_int_pos().Y, p->player_int_pos().Z + (8 << 8) }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
if (near.actor() == nullptr && near.hitWall == nullptr && near.hitSector == nullptr)
Expand Down
12 changes: 5 additions & 7 deletions source/games/duke/src/sectors_r.cpp
Expand Up @@ -681,7 +681,7 @@ bool checkhitswitch_r(int snum, walltype* wwal, DDukeActor* act)
setnextmap(false);
}

vec3_t v = { sx, sy, ps[snum].__int_pos.Z };
vec3_t v = { sx, sy, ps[snum].player_int_pos().Z };
switch (picnum)
{
default:
Expand Down Expand Up @@ -2373,9 +2373,7 @@ void checkhitsprite_r(DDukeActor* targ, DDukeActor* proj)
if (ps[p].newOwner != nullptr)
{
ps[p].newOwner = nullptr;
ps[p].__int_pos.X = ps[p].player_int_opos().X;
ps[p].__int_pos.Y = ps[p].player_int_opos().Y;
ps[p].__int_pos.Z = ps[p].player_int_opos().Z;
ps[p].restorexyz();

updatesector(ps[p].player_int_pos().X, ps[p].player_int_pos().Y, &ps[p].cursector);

Expand Down Expand Up @@ -2526,14 +2524,14 @@ void checksectors_r(int snum)
}
return;
}
neartag(p->__int_pos, p->GetActor()->sector(), p->angle.oang.asbuild(), near , 1280, 3);
neartag(p->player_int_pos(), p->GetActor()->sector(), p->angle.oang.asbuild(), near , 1280, 3);
}

if (p->newOwner != nullptr)
neartag({ p->player_int_opos().X, p->player_int_opos().Y, p->__int_opos.Z }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280L, 1);
neartag({ p->player_int_opos().X, p->player_int_opos().Y, p->player_int_opos().Z }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280L, 1);
else
{
neartag(p->__int_pos, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
neartag(p->player_int_pos(), p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
if (near.actor() == nullptr && near.hitWall == nullptr && near.hitSector == nullptr)
neartag({ p->player_int_pos().X, p->player_int_pos().Y, p->player_int_pos().Z + (8 << 8) }, p->GetActor()->sector(), p->angle.oang.asbuild(), near, 1280, 1);
if (near.actor() == nullptr && near.hitWall == nullptr && near.hitSector == nullptr)
Expand Down
6 changes: 6 additions & 0 deletions source/games/duke/src/types.h
Expand Up @@ -374,6 +374,12 @@ struct player_struct
__int_opos.Y = __int_pos.Y;
}

void restorexy()
{
__int_pos.X = __int_opos.X;
__int_pos.Y = __int_opos.Y;
}

void backupz()
{
__int_opos.Z = __int_pos.Z;
Expand Down

0 comments on commit ae9c207

Please sign in to comment.