- use insector and sector pointer initialization for iterator

This commit is contained in:
Christoph Oelckers 2021-11-21 01:04:16 +01:00
parent 2979fb9e03
commit ef7fcd824f
7 changed files with 29 additions and 30 deletions

View file

@ -978,7 +978,7 @@ void movemasterswitch(DDukeActor *actor, int spectype1, int spectype2)
{ {
operatesectors(spri->sector(), actor); operatesectors(spri->sector(), actor);
DukeSectIterator it(spri->sectnum); DukeSectIterator it(actor->sector());
while (auto effector = it.Next()) while (auto effector = it.Next())
{ {
auto sj = effector->s; auto sj = effector->s;
@ -2255,7 +2255,7 @@ bool jibs(DDukeActor *actor, int JIBS6, bool timeout, bool callsetsprite, bool f
if (callsetsprite) setsprite(actor, s->pos); if (callsetsprite) setsprite(actor, s->pos);
// this was after the slope calls, but we should avoid calling that for invalid sectors. // this was after the slope calls, but we should avoid calling that for invalid sectors.
if (!validSectorIndex(s->sectnum)) if (!s->insector())
{ {
deletesprite(actor); deletesprite(actor);
return false; return false;
@ -2451,7 +2451,7 @@ void shell(DDukeActor* actor, bool morecheck)
ssp(actor, CLIPMASK0); ssp(actor, CLIPMASK0);
if (s->sectnum < 0 || morecheck) if (!s->insector() || morecheck)
{ {
deletesprite(actor); deletesprite(actor);
return; return;
@ -2506,7 +2506,7 @@ void glasspieces(DDukeActor* actor)
makeitfall(actor); makeitfall(actor);
if (s->zvel > 4096) s->zvel = 4096; if (s->zvel > 4096) s->zvel = 4096;
if (s->sectnum < 0) if (!s->insector())
{ {
deletesprite(actor); deletesprite(actor);
return; return;
@ -3006,7 +3006,7 @@ void handle_se14(DDukeActor* actor, bool checkstat, int RPG, int JIBS6)
auto Owner = actor->GetOwner(); auto Owner = actor->GetOwner();
if (Owner) if (Owner)
{ {
DukeSectIterator itr(Owner->s->sectnum); DukeSectIterator itr(Owner->sector());
while (auto a2 = itr.Next()) while (auto a2 = itr.Next())
{ {
if (a2->s->statnum == 1 && badguy(a2) && a2->s->picnum != SECTOREFFECTOR && a2->s->picnum != LOCATORS) if (a2->s->statnum == 1 && badguy(a2) && a2->s->picnum != SECTOREFFECTOR && a2->s->picnum != LOCATORS)
@ -3174,7 +3174,7 @@ void handle_se30(DDukeActor *actor, int JIBS6)
if (Owner) if (Owner)
{ {
DukeSectIterator it(Owner->s->sectnum); DukeSectIterator it(Owner->sector());
while (auto a2 = it.Next()) while (auto a2 = it.Next())
{ {
if (a2->s->statnum == 1 && badguy(a2) && a2->s->picnum != SECTOREFFECTOR && a2->s->picnum != LOCATORS) if (a2->s->statnum == 1 && badguy(a2) && a2->s->picnum != SECTOREFFECTOR && a2->s->picnum != LOCATORS)
@ -3990,7 +3990,7 @@ void handle_se17(DDukeActor* actor)
if (act2 == nullptr) return; if (act2 == nullptr) return;
auto spr2 = act2->s; auto spr2 = act2->s;
DukeSectIterator its(s->sectnum); DukeSectIterator its(actor->sector());
while (auto act3 = its.Next()) while (auto act3 = its.Next())
{ {
auto spr3 = act3->s; auto spr3 = act3->s;
@ -4065,7 +4065,7 @@ void handle_se18(DDukeActor *actor, bool morecheck)
sc->floorz += sc->extra; sc->floorz += sc->extra;
if (morecheck) if (morecheck)
{ {
DukeSectIterator it(actor->s->sectnum); DukeSectIterator it(actor->sector());
while (auto a2 = it.Next()) while (auto a2 = it.Next())
{ {
if (a2->s->picnum == TILE_APLAYER && a2->GetOwner()) if (a2->s->picnum == TILE_APLAYER && a2->GetOwner())
@ -4102,7 +4102,7 @@ void handle_se18(DDukeActor *actor, bool morecheck)
sc->floorz -= sc->extra; sc->floorz -= sc->extra;
if (morecheck) if (morecheck)
{ {
DukeSectIterator it(actor->s->sectnum); DukeSectIterator it(actor->sector());
while (auto a2 = it.Next()) while (auto a2 = it.Next())
{ {
if (a2->s->picnum == TILE_APLAYER && a2->GetOwner()) if (a2->s->picnum == TILE_APLAYER && a2->GetOwner())
@ -4489,7 +4489,7 @@ void handle_se24(DDukeActor *actor, const int16_t *list1, const int16_t *list2,
int x = MulScale(actor->s->yvel, bcos(actor->s->ang), 18); int x = MulScale(actor->s->yvel, bcos(actor->s->ang), 18);
int l = MulScale(actor->s->yvel, bsin(actor->s->ang), 18); int l = MulScale(actor->s->yvel, bsin(actor->s->ang), 18);
DukeSectIterator it(actor->s->sectnum); DukeSectIterator it(actor->sector());
while (auto a2 = it.Next()) while (auto a2 = it.Next())
{ {
auto s2 = a2->s; auto s2 = a2->s;

View file

@ -1413,7 +1413,7 @@ void movestandables_d(void)
{ {
int picnum = act->s->picnum; int picnum = act->s->picnum;
if (act->s->sectnum < 0) if (!act->insector())
{ {
deletesprite(act); deletesprite(act);
continue; continue;
@ -1794,7 +1794,7 @@ static void weaponcommon_d(DDukeActor* proj)
if (FindDistance2D(s->x - proj->temp_actor->s->x, s->y - proj->temp_actor->s->y) < 256) if (FindDistance2D(s->x - proj->temp_actor->s->x, s->y - proj->temp_actor->s->y) < 256)
coll.setSprite(proj->temp_actor); coll.setSprite(proj->temp_actor);
if (s->sectnum < 0) if (!s->insector())
{ {
deletesprite(proj); deletesprite(proj);
return; return;
@ -1927,7 +1927,7 @@ void moveweapons_d(void)
DukeStatIterator it(STAT_PROJECTILE); DukeStatIterator it(STAT_PROJECTILE);
while (auto act = it.Next()) while (auto act = it.Next())
{ {
if (act->s->sectnum < 0) if (!act->insector())
{ {
deletesprite(act); deletesprite(act);
continue; continue;
@ -2009,7 +2009,7 @@ void movetransports_d(void)
if (act->temp_data[0] > 0) act->temp_data[0]--; if (act->temp_data[0] > 0) act->temp_data[0]--;
DukeSectIterator itj(spr->sectnum); DukeSectIterator itj(act->sector());
while (auto act2 = itj.Next()) while (auto act2 = itj.Next())
{ {
auto spr2 = act2->s; auto spr2 = act2->s;
@ -2757,7 +2757,7 @@ static void flamethrowerflame(DDukeActor *actor)
movesprite_ex(actor, MulScale(xvel, bcos(s->ang), 14), movesprite_ex(actor, MulScale(xvel, bcos(s->ang), 14),
MulScale(xvel, bsin(s->ang), 14), s->zvel, CLIPMASK1, coll); MulScale(xvel, bsin(s->ang), 14), s->zvel, CLIPMASK1, coll);
if (s->sectnum < 0) if (!s->insector())
{ {
deletesprite(actor); deletesprite(actor);
return; return;
@ -3268,7 +3268,7 @@ void moveexplosions_d(void) // STATNUM 5
{ {
auto s = act->s; auto s = act->s;
if (s->sectnum < 0 || s->xrepeat == 0) if (!s->insector() || s->xrepeat == 0)
{ {
deletesprite(act); deletesprite(act);
continue; continue;

View file

@ -986,7 +986,7 @@ void movestandables_r(void)
{ {
int picnum = act->s->picnum; int picnum = act->s->picnum;
if (act->s->sectnum < 0) if (!act->insector())
{ {
deletesprite(act); deletesprite(act);
continue; continue;
@ -1406,7 +1406,7 @@ static void weaponcommon_r(DDukeActor *proj)
if (FindDistance2D(s->x - proj->temp_actor->s->x, s->y - proj->temp_actor->s->y) < 256) if (FindDistance2D(s->x - proj->temp_actor->s->x, s->y - proj->temp_actor->s->y) < 256)
coll.setSprite(proj->temp_actor); coll.setSprite(proj->temp_actor);
if (s->sectnum < 0) // || (isRR() && s->sector()->filler == 800)) if (!s->insector()) // || (isRR() && s->sector()->filler == 800))
{ {
deletesprite(proj); deletesprite(proj);
return; return;
@ -1504,7 +1504,7 @@ void moveweapons_r(void)
DukeStatIterator it(STAT_PROJECTILE); DukeStatIterator it(STAT_PROJECTILE);
while (auto proj = it.Next()) while (auto proj = it.Next())
{ {
if (proj->s->sectnum < 0) if (!proj->insector())
{ {
deletesprite(proj); deletesprite(proj);
continue; continue;
@ -2854,7 +2854,7 @@ void moveactors_r(void)
auto s = act->s; auto s = act->s;
bool deleteafterexecute = false; // taking a cue here from RedNukem to not run scripts on deleted sprites. bool deleteafterexecute = false; // taking a cue here from RedNukem to not run scripts on deleted sprites.
if( s->xrepeat == 0 || !validSectorIndex(s->sectnum)) if( s->xrepeat == 0 || !s->insector())
{ {
deletesprite(act); deletesprite(act);
continue; continue;
@ -3124,7 +3124,7 @@ void moveexplosions_r(void) // STATNUM 5
t = &act->temp_data[0]; t = &act->temp_data[0];
auto sectp = s->sector(); auto sectp = s->sector();
if (s->sectnum < 0 || s->xrepeat == 0) if (!s->insector() || s->xrepeat == 0)
{ {
deletesprite(act); deletesprite(act);
continue; continue;

View file

@ -164,7 +164,6 @@ void animatesprites_r(spritetype* tsprite, int& spritesortcnt, int x, int y, int
t->pos = s->interpolatedvec3(smoothratio); t->pos = s->interpolatedvec3(smoothratio);
} }
//sect = s->sectnum;
auto sectp = s->sector(); auto sectp = s->sector();
t1 = h->temp_data[1]; t1 = h->temp_data[1];
t3 = h->temp_data[3]; t3 = h->temp_data[3];

View file

@ -2113,7 +2113,7 @@ int ParseState::parse(void)
break; break;
case concmd_spawn: case concmd_spawn:
insptr++; insptr++;
if(validSectorIndex(g_sp->sectnum)) if(g_ac->insector())
spawn(g_ac,*insptr); spawn(g_ac,*insptr);
insptr++; insptr++;
break; break;
@ -2147,7 +2147,7 @@ int ParseState::parse(void)
insptr++; insptr++;
bool weap = fi.spawnweapondebris(g_sp->picnum, dnum); bool weap = fi.spawnweapondebris(g_sp->picnum, dnum);
if(validSectorIndex(g_sp->sectnum)) if(g_ac->insector())
for(j=(*insptr)-1;j>=0;j--) for(j=(*insptr)-1;j>=0;j--)
{ {
if(weap) if(weap)
@ -2858,7 +2858,7 @@ int ParseState::parse(void)
lIn = *insptr++; lIn = *insptr++;
lIn = GetGameVarID(lIn, g_ac, g_p); lIn = GetGameVarID(lIn, g_ac, g_p);
if(validSectorIndex(g_sp->sectnum)) if(g_ac->insector())
lReturn = spawn(g_ac, lIn); lReturn = spawn(g_ac, lIn);
SetGameVarID(g_iReturnVarID, ActorToScriptIndex(lReturn), g_ac, g_p); SetGameVarID(g_iReturnVarID, ActorToScriptIndex(lReturn), g_ac, g_p);
@ -2868,7 +2868,7 @@ int ParseState::parse(void)
{ {
DDukeActor* lReturn = nullptr; DDukeActor* lReturn = nullptr;
insptr++; insptr++;
if(validSectorIndex(g_sp->sectnum)) if(g_ac->insector())
lReturn = spawn(g_ac, *insptr); lReturn = spawn(g_ac, *insptr);
insptr++; insptr++;
SetGameVarID(g_iReturnVarID, ActorToScriptIndex(lReturn), g_ac, g_p); SetGameVarID(g_iReturnVarID, ActorToScriptIndex(lReturn), g_ac, g_p);
@ -3668,7 +3668,7 @@ void LoadActor(DDukeActor *actor, int p, int x)
s.killit_flag = 0; s.killit_flag = 0;
if(!validSectorIndex(actor->s->sectnum)) if(!actor->insector())
{ {
deletesprite(actor); deletesprite(actor);
return; return;
@ -3757,7 +3757,7 @@ void execute(DDukeActor *actor,int p,int x)
s.killit_flag = 0; s.killit_flag = 0;
if(!validSectorIndex(actor->s->sectnum)) if(!actor->insector())
{ {
if(badguy(actor)) if(badguy(actor))
ps[p].actors_killed++; ps[p].actors_killed++;

View file

@ -1824,7 +1824,7 @@ void checksectors_d(int snum)
{ {
if (isanunderoperator(p->GetActor()->sector()->lotag)) if (isanunderoperator(p->GetActor()->sector()->lotag))
{ {
DukeSectIterator it(p->GetActor()->s->sectnum); DukeSectIterator it(p->GetActor()->sector());
while (auto act = it.Next()) while (auto act = it.Next())
{ {
if (act->s->picnum == ACTIVATOR || act->s->picnum == MASTERSWITCH) return; if (act->s->picnum == ACTIVATOR || act->s->picnum == MASTERSWITCH) return;

View file

@ -2774,7 +2774,7 @@ void checksectors_r(int snum)
{ {
if (isanunderoperator(p->GetActor()->sector()->lotag)) if (isanunderoperator(p->GetActor()->sector()->lotag))
{ {
DukeSectIterator it(p->GetActor()->s->sectnum); DukeSectIterator it(p->GetActor()->sector());
while (auto act = it.Next()) while (auto act = it.Next())
{ {
if (act->s->picnum == ACTIVATOR || act->s->picnum == MASTERSWITCH) if (act->s->picnum == ACTIVATOR || act->s->picnum == MASTERSWITCH)