From cf6e75ad549f7ea618f41684a69b470501189f0b Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Thu, 25 Nov 2021 18:41:58 +0100 Subject: [PATCH] - the final doable sector[] replacements. The rest needs to be done with the backend. --- source/games/sw/src/weapon.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index fd468fa4d..f9889d665 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -101,7 +101,7 @@ int SpawnSmokePuff(DSWActor* actor); bool WarpToUnderwater(sectortype** sectnum, int *x, int *y, int *z); bool WarpToSurface(sectortype** sectnum, int *x, int *y, int *z); int InitElectroJump(SPRITEp wp, SPRITEp sp); -bool TestDontStickSector(short hit_sect); +bool TestDontStickSector(sectortype* hit_sect); ANIMATOR SpawnShrapX; bool WeaponMoveHit(DSWActor* actor); void SpawnMidSplash(DSWActor* actor); @@ -4592,7 +4592,7 @@ int DoFireballFlames(DSWActor* actor) } } - if (TestDontStickSector(sp->sectnum)) + if (TestDontStickSector(sp->sector())) { KillActor(actor); return 0; @@ -4667,7 +4667,7 @@ int DoBreakFlames(DSWActor* actor) } } - if (TestDontStickSector(sp->sectnum)) + if (TestDontStickSector(sp->sector())) { KillActor(actor); return 0; @@ -7292,7 +7292,7 @@ short StatBreakList[] = STAT_DEAD_ACTOR, }; -void TraverseBreakableWalls(short start_sect, int x, int y, int z, short ang, int radius) +void TraverseBreakableWalls(sectortype* start_sect, int x, int y, int z, short ang, int radius) { int k; int xmid,ymid; @@ -7309,7 +7309,7 @@ void TraverseBreakableWalls(short start_sect, int x, int y, int z, short ang, in break_count = 0; - BFSSectorSearch search(§or[start_sect]); + BFSSectorSearch search(start_sect); while (auto sect = search.GetNext()) { for(auto& wal : wallsofsector(sect)) @@ -7330,7 +7330,7 @@ void TraverseBreakableWalls(short start_sect, int x, int y, int z, short ang, in sectortype* sectp = nullptr; if (WallBreakPosition(&wal, §p, &hit_x, &hit_y, &hit_z, &wall_ang)) { - if (hit_x != INT32_MAX && sectp != nullptr && FAFcansee(x, y, z, §or[start_sect], hit_x, hit_y, hit_z, sectp)) + if (hit_x != INT32_MAX && sectp != nullptr && FAFcansee(x, y, z, start_sect, hit_x, hit_y, hit_z, sectp)) { HitBreakWall(&wal, INT32_MAX, INT32_MAX, INT32_MAX, ang, 0); @@ -7422,7 +7422,7 @@ int DoExpDamageTest(DSWActor* actor) if (wu->ID == MUSHROOM_CLOUD) return 0; // Central Nuke doesn't break stuff // Only secondaries do that - TraverseBreakableWalls(wp->sectnum, wp->x, wp->y, wp->z, wp->ang, wu->Radius); + TraverseBreakableWalls(wp->sector(), wp->x, wp->y, wp->z, wp->ang, wu->Radius); break_count = 0; max_stat = SIZ(StatBreakList); @@ -10185,7 +10185,7 @@ void SpawnFireballFlames(DSWActor* actor, DSWActor* enemyActor) } else { - if (TestDontStickSector(np->sectnum)) + if (TestDontStickSector(np->sector())) { KillActor(actorNew); return; @@ -18553,9 +18553,9 @@ bool TestDontStick(DSWActor* actor, walltype* hit_wall) return false; } -bool TestDontStickSector(short hit_sect) +bool TestDontStickSector(sectortype* hit_sect) { - if (TEST(sector[hit_sect].extra, SECTFX_DYNAMIC_AREA|SECTFX_SECTOR_OBJECT)) + if (TEST(hit_sect->extra, SECTFX_DYNAMIC_AREA|SECTFX_SECTOR_OBJECT)) return true; return false; @@ -18679,7 +18679,7 @@ int QueueFloorBlood(DSWActor* actor) if (TEST(hsp->sector()->extra, SECTFX_LIQUID_MASK) == SECTFX_LIQUID_LAVA) return -1; // Not in lave either - if (TestDontStickSector(hsp->sectnum)) + if (TestDontStickSector(hsp->sector())) return -1; // Not on special sectors you don't if (FloorBloodQueue[FloorBloodQueueHead] != nullptr) @@ -18775,7 +18775,7 @@ int QueueFootPrint(DSWActor* actor) if (TEST(hsp->sector()->extra, SECTFX_LIQUID_MASK) == SECTFX_LIQUID_LAVA) return -1; // Not in lave either - if (TestDontStickSector(hsp->sectnum)) + if (TestDontStickSector(hsp->sector())) return -1; // Not on special sectors you don't // So, are we like, done checking now!? @@ -19081,7 +19081,7 @@ void QueueGeneric(DSWActor* actor, short pic) return; } - if (TestDontStickSector(sp->sectnum)) + if (TestDontStickSector(sp->sector())) { KillActor(actor); return; @@ -19595,7 +19595,7 @@ void QueueLoWangs(DSWActor* actor) return; } - if (TestDontStickSector(sp->sectnum)) + if (TestDontStickSector(sp->sector())) { return; }