- a few more

Enough of this - Duke is clearly clean of bad storage now
This commit is contained in:
Christoph Oelckers 2021-11-18 00:50:33 +01:00
parent 53122355fe
commit c31d8a93fd
4 changed files with 16 additions and 15 deletions

View file

@ -852,11 +852,11 @@ static void SpawnPortals()
{
if (processedTags.Find(spr->hitag) == processedTags.Size())
{
int s1 = spr->sectnum, s2 = spr2->sectnum;
sector[s1].portalflags = PORTAL_SECTOR_FLOOR;
sector[s2].portalflags = PORTAL_SECTOR_CEILING;
sector[s1].portalnum = portalAdd(PORTAL_SECTOR_FLOOR, s2, spr2->x - spr->x, spr2->y - spr->y, spr->hitag);
sector[s2].portalnum = portalAdd(PORTAL_SECTOR_CEILING, s1, spr->x - spr2->x, spr->y - spr2->y, spr->hitag);
sectortype* s1 = spr->sector(), *s2 = spr2->sector();
s1->portalflags = PORTAL_SECTOR_FLOOR;
s1->portalflags = PORTAL_SECTOR_CEILING;
s2->portalnum = portalAdd(PORTAL_SECTOR_FLOOR, sectnum(s2), spr2->x - spr->x, spr2->y - spr->y, spr->hitag);
s2->portalnum = portalAdd(PORTAL_SECTOR_CEILING, sectnum(s1), spr->x - spr2->x, spr->y - spr2->y, spr->hitag);
processedTags.Push(spr->hitag);
}
else

View file

@ -439,7 +439,7 @@ int setanimation(int animsect, int animtype, walltype* animtarget, int thegoal,
bool activatewarpelevators(DDukeActor* actor, int d) //Parm = sectoreffectornum
{
int sn = actor->s->sectnum;
auto sect = actor->s->sector();
// See if the sector exists
@ -449,8 +449,8 @@ bool activatewarpelevators(DDukeActor* actor, int d) //Parm = sectoreffectornum
{
if (act2->s->lotag == SE_17_WARP_ELEVATOR || (isRRRA() && act2->s->lotag == SE_18_INCREMENTAL_SECTOR_RISE_FALL))
if (act2->s->hitag == actor->s->hitag)
if ((abs(sector[sn].floorz - actor->temp_data[2]) > act2->s->yvel) ||
(act2->getSector()->hitag == (sector[sn].hitag - d)))
if ((abs(sect->floorz - actor->temp_data[2]) > act2->s->yvel) ||
(act2->getSector()->hitag == (sect->hitag - d)))
break;
}

View file

@ -1346,10 +1346,9 @@ void checkhitwall_r(DDukeActor* spr, walltype* wal, int x, int y, int z, int atw
if (sn < 0) return;
darkestwall = 0;
wal = sector[sn].firstWall();
for (i = sector[sn].wallnum; i > 0; i--, wal++)
if (wal->shade > darkestwall)
darkestwall = wal->shade;
for (auto& wl : wallsofsector(wal->nextsector))
if (wl.shade > darkestwall)
darkestwall = wl.shade;
j = krand() & 1;
DukeStatIterator it(STAT_EFFECTOR);
@ -2602,7 +2601,9 @@ void checksectors_r(int snum)
if (isanunderoperator(p->GetActor()->getSector()->lotag))
neartagsector = p->GetActor()->s->sectnum;
if (neartagsector >= 0 && (sector[neartagsector].lotag & 16384))
auto ntsect = neartagsector < 0? nullptr : &sector[neartagsector];
if (neartagsector >= 0 && (ntsect->lotag & 16384))
return;
if (neartagsprite == nullptr && neartagwall == -1)
@ -2739,7 +2740,7 @@ void checksectors_r(int snum)
}
}
if (neartagsector >= 0 && (sector[neartagsector].lotag & 16384) == 0 && isanearoperator(sector[neartagsector].lotag))
if (neartagsector >= 0 && (ntsect->lotag & 16384) == 0 && isanearoperator(ntsect->lotag))
{
DukeSectIterator it(neartagsector);
while (auto act = it.Next())

View file

@ -584,7 +584,7 @@ void S_StopSound(int sndNum, DDukeActor* actor, int channel)
else soundEngine->StopSound(SOURCE_Actor, actor, channel, -1);
// StopSound kills the actor reference so this cannot be delayed until ChannelEnded gets called. At that point the actor may also not be valid anymore.
if (S_IsAmbientSFX(actor) && sector[actor->s->sectnum].lotag < 3) // ST_2_UNDERWATER
if (S_IsAmbientSFX(actor) && actor->s->sector()->lotag < 3) // ST_2_UNDERWATER
actor->temp_data[0] = 0;
}
}