From 3e79c917f2b581514286ab3450ee4236673122d1 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 26 Dec 2021 00:13:31 +0100 Subject: [PATCH] - the last u in weapon.cpp that are not actor->u() --- source/games/sw/src/weapon.cpp | 35 +++++++++------------------------- 1 file changed, 9 insertions(+), 26 deletions(-) diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 653b57135..9b484d573 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -5421,6 +5421,7 @@ bool PlayerTakeDamage(PLAYERp pp, DSWActor* weapActor) if (weapActor == nullptr) return true; + DSWActor* actor = pp->actor; USERp u = pp->Actor()->u(); auto weapOwner = GetOwner(weapActor); @@ -7061,7 +7062,6 @@ const char *DeathString(DSWActor* actor) int DoDamageTest(DSWActor* actor) { - USERp u; int i; unsigned stat; int dist, tx, ty; @@ -7072,11 +7072,8 @@ int DoDamageTest(DSWActor* actor) SWStatIterator it(StatDamageList[stat]); while (auto itActor = it.Next()) { - u = itActor->u(); - - DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); - if ((unsigned)dist > actor->user.Radius + u->Radius) + if ((unsigned)dist > actor->user.Radius + itActor->user.Radius) continue; if (actor == itActor) @@ -7125,7 +7122,6 @@ static void DoHitscanDamage(DSWActor* weaponActor, DSWActor* hitActor) int DoFlamesDamageTest(DSWActor* actor) { - USERp u; int i; unsigned stat; int dist, tx, ty; @@ -7136,9 +7132,7 @@ int DoFlamesDamageTest(DSWActor* actor) SWStatIterator it(StatDamageList[stat]); while (auto itActor = it.Next()) { - u = itActor->u(); - - switch (u->ID) + switch (itActor->user.ID) { case TRASHCAN: case PACHINKO1: @@ -7151,7 +7145,7 @@ int DoFlamesDamageTest(DSWActor* actor) DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); - if ((unsigned)dist > actor->user.Radius + u->Radius) + if ((unsigned)dist > actor->user.Radius + itActor->user.Radius) continue; if (actor == itActor) @@ -7260,7 +7254,6 @@ void TraverseBreakableWalls(sectortype* start_sect, int x, int y, int z, short a int DoExpDamageTest(DSWActor* actor) { - USERp u; short i, stat; int dist, tx, ty; int tmin; @@ -7287,11 +7280,9 @@ int DoExpDamageTest(DSWActor* actor) SWStatIterator it(StatDamageList[stat]); while (auto itActor = it.Next()) { - u = itActor->u(); - DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); - if ((unsigned)dist > actor->user.Radius + u->Radius) + if ((unsigned)dist > actor->user.Radius + itActor->user.Radius) continue; if (itActor == actor) @@ -7303,7 +7294,7 @@ int DoExpDamageTest(DSWActor* actor) } else { - if ((unsigned)FindDistance3D(itActor->spr.pos.X - actor->spr.pos.X, itActor->spr.pos.Y - actor->spr.pos.Y, itActor->spr.pos.Z - actor->spr.pos.Z) > actor->user.Radius + u->Radius) + if ((unsigned)FindDistance3D(itActor->spr.pos.X - actor->spr.pos.X, itActor->spr.pos.Y - actor->spr.pos.Y, itActor->spr.pos.Z - actor->spr.pos.Z) > actor->user.Radius + itActor->user.Radius) continue; // added hitscan block because mines no long clip against actors/players @@ -7334,8 +7325,6 @@ int DoExpDamageTest(DSWActor* actor) SWStatIterator it(StatBreakList[stat]); while (auto itActor = it.Next()) { - u = itActor->u(); - DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); if ((unsigned)dist > actor->user.Radius) continue; @@ -7402,7 +7391,6 @@ int DoExpDamageTest(DSWActor* actor) int DoMineExpMine(DSWActor* actor) { - USERp u; int i; int dist, tx, ty; int tmin; @@ -7411,10 +7399,8 @@ int DoMineExpMine(DSWActor* actor) SWStatIterator it(STAT_MINE_STUCK); while (auto itActor = it.Next()) { - u = itActor->u(); - DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); - if ((unsigned)dist > actor->user.Radius + u->Radius) + if ((unsigned)dist > actor->user.Radius + itActor->user.Radius) continue; if (itActor == actor) @@ -7425,7 +7411,7 @@ int DoMineExpMine(DSWActor* actor) // Explosions are spherical, not planes, so let's check that way, well cylindrical at least. zdist = abs(itActor->spr.pos.Z - actor->spr.pos.Z)>>4; - if (SpriteOverlap(actor, itActor) || (unsigned)zdist < actor->user.Radius + u->Radius) + if (SpriteOverlap(actor, itActor) || (unsigned)zdist < actor->user.Radius + itActor->user.Radius) { DoDamage(itActor, actor); // only explode one mine at a time @@ -8677,7 +8663,6 @@ bool OwnerIsPlayer(DSWActor* actor) int DoMineRangeTest(DSWActor* actor, int range) { - USERp u; unsigned stat; int dist, tx, ty; int tmin; @@ -8690,8 +8675,6 @@ int DoMineRangeTest(DSWActor* actor, int range) SWStatIterator it(StatDamageList[stat]); while (auto itActor = it.Next()) { - u = itActor->u(); - DISTANCE(itActor->spr.pos.X, itActor->spr.pos.Y, actor->spr.pos.X, actor->spr.pos.Y, dist, tx, ty, tmin); if (dist > range) continue; @@ -8705,7 +8688,7 @@ int DoMineRangeTest(DSWActor* actor, int range) if (!TEST(itActor->spr.extra, SPRX_PLAYER_OR_ENEMY)) continue; - if (u->ID == GIRLNINJA_RUN_R0 && !ownerisplayer) + if (itActor->user.ID == GIRLNINJA_RUN_R0 && !ownerisplayer) continue; dist = FindDistance3D(actor->spr.pos.X - itActor->spr.pos.X, actor->spr.pos.Y - itActor->spr.pos.Y, actor->spr.pos.Z - itActor->spr.pos.Z);