- Duke: prefer calling the sector pointer variants of engine functions.

This commit is contained in:
Christoph Oelckers 2021-11-21 01:10:50 +01:00
parent ef7fcd824f
commit d115d90961
8 changed files with 48 additions and 43 deletions

View file

@ -2197,7 +2197,7 @@ bool money(DDukeActor* actor, int BLOODPOOL)
deletesprite(actor);
return false;
}
int l = getflorzofslope(s->sectnum, s->x, s->y);
int l = getflorzofslopeptr(s->sector(), s->x, s->y);
if (s->z > l)
{
@ -2330,7 +2330,7 @@ bool jibs(DDukeActor *actor, int JIBS6, bool timeout, bool callsetsprite, bool f
}
t[2]++;
}
l = getflorzofslope(s->sectnum, s->x, s->y);
l = getflorzofslopeptr(s->sector(), s->x, s->y);
s->z = l - (2 << 8);
s->xvel = 0;
@ -2772,7 +2772,7 @@ void handle_se00(DDukeActor* actor, int LASERLINE)
}
}
}
DukeSectIterator itp(s->sectnum);
DukeSectIterator itp(actor->sector());
while (auto ap = itp.Next())
{
auto sprp = ap->s;
@ -3179,7 +3179,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
{
if (a2->s->statnum == 1 && badguy(a2) && a2->s->picnum != SECTOREFFECTOR && a2->s->picnum != LOCATORS)
{
// if(a2->s->sectnum != s->sectnum)
// if(a2->s->sector != s->sector)
{
int k = a2->s->sectnum;
updatesector(a2->s->x, a2->s->y, &k);

View file

@ -645,7 +645,7 @@ void guts_d(DDukeActor* actor, int gtype, int n, int p)
else sx = sy = 32;
gutz = s->z - (8 << 8);
floorz = getflorzofslope(s->sectnum, s->x, s->y);
floorz = getflorzofslopeptr(s->sector(), s->x, s->y);
if (gutz > (floorz - (8 << 8)))
gutz = floorz - (8 << 8);
@ -2053,7 +2053,7 @@ void movetransports_d(void)
ps[p].bobposy = ps[p].oposy = ps[p].pos.y = Owner->s->y;
ps[p].oposz = ps[p].pos.z = Owner->s->z - gs.playerheight;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
ps[p].cursectnum = spr2->sectnum;
if (spr->pal == 0)
@ -2082,7 +2082,7 @@ void movetransports_d(void)
auto pa = ps[p].GetActor();
pa->s->opos = ps[p].pos;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
ps[p].cursectnum = Owner->s->sectnum;
break;
@ -2134,7 +2134,7 @@ void movetransports_d(void)
ps[p].transporter_hold = -2;
ps[p].cursectnum = Owner->s->sectnum;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
setsprite(ps[p].GetActor(), ps[p].pos.x, ps[p].pos.y, ps[p].pos.z + gs.playerheight);
if ((krand() & 255) < 32)
@ -2263,7 +2263,7 @@ void movetransports_d(void)
Owner->temp_data[0] = 13;
}
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
}
}
else
@ -2274,7 +2274,7 @@ void movetransports_d(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
}
break;
case 1:
@ -2284,7 +2284,7 @@ void movetransports_d(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
break;
case 2:
@ -2294,7 +2294,7 @@ void movetransports_d(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
break;
}
@ -3361,7 +3361,7 @@ void moveexplosions_d(void) // STATNUM 5
case MONEY + 1:
case MAIL + 1:
case PAPER + 1:
act->floorz = s->z = getflorzofslope(s->sectnum, s->x, s->y);
act->floorz = s->z = getflorzofslopeptr(s->sector(), s->x, s->y);
break;
case MONEY:
case MAIL:
@ -3877,14 +3877,14 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
if (spr->picnum == COMMANDER)
{
actor->floorz = l = getflorzofslope(spr->sectnum, spr->x, spr->y);
actor->floorz = l = getflorzofslopeptr(spr->sector(), spr->x, spr->y);
if (spr->z > (l - (8 << 8)))
{
if (spr->z > (l - (8 << 8))) spr->z = l - (8 << 8);
spr->zvel = 0;
}
actor->ceilingz = l = getceilzofslope(spr->sectnum, spr->x, spr->y);
actor->ceilingz = l = getceilzofslopeptr(spr->sector(), spr->x, spr->y);
if ((spr->z - l) < (80 << 8))
{
spr->z = l + (80 << 8);
@ -3895,13 +3895,13 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
{
if (spr->zvel > 0)
{
actor->floorz = l = getflorzofslope(spr->sectnum, spr->x, spr->y);
actor->floorz = l = getflorzofslopeptr(spr->sector(), spr->x, spr->y);
if (spr->z > (l - (30 << 8)))
spr->z = l - (30 << 8);
}
else
{
actor->ceilingz = l = getceilzofslope(spr->sectnum, spr->x, spr->y);
actor->ceilingz = l = getceilzofslopeptr(spr->sector(), spr->x, spr->y);
if ((spr->z - l) < (50 << 8))
{
spr->z = l + (50 << 8);
@ -3916,7 +3916,7 @@ void move_d(DDukeActor *actor, int playernum, int xvel)
spr->z = actor->floorz;
if (spr->zvel < 0)
{
l = getceilzofslope(spr->sectnum, spr->x, spr->y);
l = getceilzofslopeptr(spr->sector(), spr->x, spr->y);
if ((spr->z - l) < (66 << 8))
{
spr->z = l + (66 << 8);

View file

@ -467,7 +467,7 @@ void guts_r(DDukeActor* actor, int gtype, int n, int p)
else sx = sy = 32;
gutz = s->z - (8 << 8);
floorz = getflorzofslope(s->sectnum, s->x, s->y);
floorz = getflorzofslopeptr(s->sector(), s->x, s->y);
if (gutz > (floorz - (8 << 8)))
gutz = floorz - (8 << 8);
@ -1591,7 +1591,7 @@ void movetransports_r(void)
if (act->temp_data[0] > 0) act->temp_data[0]--;
DukeSectIterator itj(spr->sectnum);
DukeSectIterator itj(act->sector());
while (auto act2 = itj.Next())
{
auto spr2 = act2->s;
@ -1632,7 +1632,7 @@ void movetransports_r(void)
ps[p].bobposy = ps[p].oposy = ps[p].pos.y = Owner->s->y;
ps[p].oposz = ps[p].pos.z = Owner->s->z - (gs.playerheight - (4 << 8));
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
ps[p].cursectnum = spr2->sectnum;
auto beam = spawn(Owner, TRANSPORTERBEAM);
@ -1655,7 +1655,7 @@ void movetransports_r(void)
else ps[p].pos.z = Owner->s->z + 6144;
ps[p].oposz = ps[p].pos.z;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
ps[p].cursectnum = Owner->s->sectnum;
break;
@ -1720,7 +1720,7 @@ void movetransports_r(void)
ps[p].transporter_hold = -2;
ps[p].cursectnum = Owner->s->sectnum;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
if ((krand() & 255) < 32)
spawn(ps[p].GetActor(), WATERSPLASH2);
@ -1734,7 +1734,7 @@ void movetransports_r(void)
ps[p].transporter_hold = -2;
ps[p].cursectnum = Owner->s->sectnum;
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
}
}
break;
@ -1863,7 +1863,7 @@ void movetransports_r(void)
Owner->temp_data[0] = 13;
}
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
}
}
else
@ -1874,7 +1874,7 @@ void movetransports_r(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
}
break;
case ST_1_ABOVE_WATER:
@ -1884,7 +1884,7 @@ void movetransports_r(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
break;
case ST_2_UNDERWATER:
@ -1894,7 +1894,7 @@ void movetransports_r(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
break;
@ -1906,7 +1906,7 @@ void movetransports_r(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
movesprite_ex(act2, MulScale(spr2->xvel, bcos(spr2->ang), 14),
MulScale(spr2->xvel, bsin(spr2->ang), 14), 0, CLIPMASK1, coll);
@ -1920,7 +1920,7 @@ void movetransports_r(void)
spr2->backupz();
changeactorsect(act2, Owner->s->sectnum);
changeactorsect(act2, Owner->sector());
movesprite_ex(act2, MulScale(spr2->xvel, bcos(spr2->ang), 14),
MulScale(spr2->xvel, bsin(spr2->ang), 14), 0, CLIPMASK1, coll);
@ -3223,7 +3223,7 @@ void moveexplosions_r(void) // STATNUM 5
deletesprite(act);
continue;
case FEATHER + 1: // feather
act->floorz = s->z = getflorzofslope(s->sectnum, s->x, s->y);
act->floorz = s->z = getflorzofslopeptr(s->sector(), s->x, s->y);
if (s->sector()->lotag == 800)
{
deletesprite(act);
@ -3859,7 +3859,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
{
if (spr->zvel > 0)
{
actor->floorz = l = getflorzofslope(spr->sectnum, spr->x, spr->y);
actor->floorz = l = getflorzofslopeptr(spr->sector(), spr->x, spr->y);
if (isRRRA())
{
if (spr->z > (l - (28 << 8)))
@ -3873,7 +3873,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
}
else
{
actor->ceilingz = l = getceilzofslope(spr->sectnum, spr->x, spr->y);
actor->ceilingz = l = getceilzofslopeptr(spr->sector(), spr->x, spr->y);
if ((spr->z - l) < (50 << 8))
{
spr->z = l + (50 << 8);
@ -3885,7 +3885,7 @@ void move_r(DDukeActor *actor, int pnum, int xvel)
spr->z = actor->floorz;
if (spr->zvel < 0)
{
l = getceilzofslope(spr->sectnum, spr->x, spr->y);
l = getceilzofslopeptr(spr->sector(), spr->x, spr->y);
if ((spr->z - l) < (66 << 8))
{
spr->z = l + (66 << 8);

View file

@ -109,6 +109,11 @@ inline void changeactorsect(DDukeActor* a, int newsect)
::changespritesect(a->GetSpriteIndex(), newsect);
}
inline void changeactorsect(DDukeActor* a, sectortype* newsect)
{
::changespritesect(a->GetSpriteIndex(), sectnum(newsect));
}
inline int setsprite(DDukeActor* a, int x, int y, int z)
{
return ::setsprite(a->GetSpriteIndex(), x, y, z);

View file

@ -1135,7 +1135,7 @@ void operateactivators(int low, int plnum)
if (act->sector()->lotag < 3)
{
DukeSectIterator it(act->s->sectnum);
DukeSectIterator it(act->sector());
while (auto a2 = it.Next())
{
if (a2->s->statnum == 3) switch (a2->s->lotag)

View file

@ -1829,7 +1829,7 @@ void checksectors_d(int snum)
{
if (act->s->picnum == ACTIVATOR || act->s->picnum == MASTERSWITCH) return;
}
operatesectors(p->GetActor()->s->sector(), p->GetActor());
operatesectors(p->GetActor()->sector(), p->GetActor());
}
else fi.checkhitswitch(snum, ntwall, nullptr);
}

View file

@ -163,11 +163,11 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act)
{
if (spj->sector()->lotag == 2)
{
sp->z = getceilzofslope(sp->sectnum, sp->x, sp->y) + (16 << 8);
sp->z = getceilzofslopeptr(sp->sector(), sp->x, sp->y) + (16 << 8);
sp->cstat |= 8;
}
else if (spj->sector()->lotag == 1)
sp->z = getflorzofslope(sp->sectnum, sp->x, sp->y);
sp->z = getflorzofslopeptr(sp->sector(), sp->x, sp->y);
}
if (sectp->floorpicnum == FLOORSLIME ||
@ -300,7 +300,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act)
sp->cstat |= 32;
if (sp->picnum == LAVAPOOL) // Twentieth Anniversary World Tour
{
int fz = getflorzofslope(sp->sectnum, sp->x, sp->y);
int fz = getflorzofslopeptr(sp->sector(), sp->x, sp->y);
if (fz != sp->z)
sp->z = fz;
sp->z -= 200;
@ -644,7 +644,7 @@ DDukeActor* spawninit_d(DDukeActor* actj, DDukeActor* act)
if (spj)
{
int x = getflorzofslope(sp->sectnum, sp->x, sp->y);
int x = getflorzofslopeptr(sp->sector(), sp->x, sp->y);
if (sp->z > x - (12 << 8))
sp->z = x - (12 << 8);
}

View file

@ -215,11 +215,11 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act)
{
if (spj->sector()->lotag == 2)
{
sp->z = getceilzofslope(sp->sectnum, sp->x, sp->y) + (16 << 8);
sp->z = getceilzofslopeptr(sp->sector(), sp->x, sp->y) + (16 << 8);
sp->cstat |= 8;
}
else if (spj->sector()->lotag == 1)
sp->z = getflorzofslope(sp->sectnum, sp->x, sp->y);
sp->z = getflorzofslopeptr(sp->sector(), sp->x, sp->y);
}
if (sectp->floorpicnum == FLOORSLIME ||
@ -652,7 +652,7 @@ DDukeActor* spawninit_r(DDukeActor* actj, DDukeActor* act)
if (spj)
{
int x = getflorzofslope(sp->sectnum, sp->x, sp->y);
int x = getflorzofslopeptr(sp->sector(), sp->x, sp->y);
if (sp->z > x - (12 << 8))
sp->z = x - (12 << 8);
}