From e302c45a0bd1b91434be8909e02bdefd20231e0d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers <coelckers@users.noreply.github.com> Date: Sun, 2 Jan 2022 17:35:12 +0100 Subject: [PATCH] Revert "- added two FAFcansee variants that take shorter parameter lists for clearer code." This reverts commit 29da39dda092919cd8c0c9c4c2f9f42b3ef8d0c0. Something in here was wrong, so back to the start with it. The positive effect was too small anyway. --- source/games/sw/src/ai.cpp | 6 +++--- source/games/sw/src/bunny.cpp | 2 +- source/games/sw/src/game.h | 17 ----------------- source/games/sw/src/jweapon.cpp | 6 +++--- source/games/sw/src/miscactr.cpp | 24 ++++++++++++------------ source/games/sw/src/player.cpp | 6 +++--- source/games/sw/src/sector.cpp | 2 +- source/games/sw/src/sprite.cpp | 2 +- source/games/sw/src/track.cpp | 3 ++- source/games/sw/src/weapon.cpp | 24 ++++++++++++------------ 10 files changed, 38 insertions(+), 54 deletions(-) diff --git a/source/games/sw/src/ai.cpp b/source/games/sw/src/ai.cpp index 31a29b5ea..f9c5c458a 100644 --- a/source/games/sw/src/ai.cpp +++ b/source/games/sw/src/ai.cpp @@ -219,7 +219,7 @@ bool CanSeePlayer(DSWActor* actor) // if actor can still see the player int look_height = ActorZOfTop(actor); - if (actor->user.targetActor && FAFcansee(actor, look_height, actor->user.targetActor, ActorUpperZ(actor->user.targetActor))) + if (actor->user.targetActor && FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, look_height, actor->sector(), actor->user.targetActor->spr.pos.X, actor->user.targetActor->spr.pos.Y, ActorUpperZ(actor->user.targetActor), actor->user.targetActor->sector())) return true; else return false; @@ -353,7 +353,7 @@ int DoActorPickClosePlayer(DSWActor* actor) DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, pp->pos.X, pp->pos.Y, dist, a, b, c); DSWActor* plActor = pp->actor; - if (dist < near_dist && FAFcansee(actor, look_height, plActor, ActorUpperZ(plActor))) + if (dist < near_dist && FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, look_height, actor->sector(), plActor->spr.pos.X, plActor->spr.pos.Y, ActorUpperZ(plActor), plActor->sector())) { near_dist = dist; actor->user.targetActor = pp->actor; @@ -379,7 +379,7 @@ TARGETACTOR: DISTANCE(actor->spr.pos.X, actor->spr.pos.Y, itActor->spr.pos.X, itActor->spr.pos.Y, dist, a, b, c); - if (dist < near_dist && FAFcansee(actor, look_height, itActor, ActorUpperZ(itActor))) + if (dist < near_dist && FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, look_height, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ActorUpperZ(itActor), itActor->sector())) { near_dist = dist; actor->user.targetActor = itActor; diff --git a/source/games/sw/src/bunny.cpp b/source/games/sw/src/bunny.cpp index 429b99750..4d141fa9e 100644 --- a/source/games/sw/src/bunny.cpp +++ b/source/games/sw/src/bunny.cpp @@ -908,7 +908,7 @@ void DoPickCloseBunny(DSWActor* actor) if (dist > near_dist) continue; - ICanSee = FAFcansee(actor, look_height, itActor, ActorUpperZ(itActor)); + ICanSee = FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, look_height, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ActorUpperZ(itActor), itActor->sector()); if (ICanSee && dist < near_dist && itActor->user.ID == BUNNY_RUN_R0) { diff --git a/source/games/sw/src/game.h b/source/games/sw/src/game.h index 3908e6aed..bf7426197 100644 --- a/source/games/sw/src/game.h +++ b/source/games/sw/src/game.h @@ -1698,8 +1698,6 @@ void FAFhitscan(int32_t x, int32_t y, int32_t z, sectortype* sect, int32_t xvect, int32_t yvect, int32_t zvect, HitInfo& hit, int32_t clipmask); - - bool FAFcansee(int32_t xs, int32_t ys, int32_t zs, sectortype* sects, int32_t xe, int32_t ye, int32_t ze, sectortype* secte); void FAFgetzrange(vec3_t pos, sectortype* sect, @@ -2101,21 +2099,6 @@ inline void PlaySound(int num, DSWActor* actor, int flags, int channel = 8, ECha _PlaySound(num, actor, nullptr, nullptr, flags, channel, sndflags); } -inline bool FAFcansee(DSWActor* source, DSWActor* dest) -{ - return FAFcansee(source->spr.pos.X, source->spr.pos.Y, source->spr.pos.Z, source->sector(), dest->spr.pos.X, dest->spr.pos.Y, dest->spr.pos.Z, dest->sector()); -} - -inline bool FAFcansee(DSWActor* source, int srcz, DSWActor* dest, int destz) -{ - return FAFcansee(source->spr.pos.X, source->spr.pos.Y, srcz, source->sector(), dest->spr.pos.X, dest->spr.pos.Y, destz, dest->sector()); -} - -inline bool FAFcanseeOfs(DSWActor* source, int srcz, DSWActor* dest, int destz) -{ - return FAFcansee(source->spr.pos.X, source->spr.pos.Y, source->spr.pos.Z + srcz, source->sector(), dest->spr.pos.X, dest->spr.pos.Y, dest->spr.pos.Z + destz, dest->sector()); -} - struct ANIM { int animtype, animindex; diff --git a/source/games/sw/src/jweapon.cpp b/source/games/sw/src/jweapon.cpp index ccd4c5222..f73700e34 100644 --- a/source/games/sw/src/jweapon.cpp +++ b/source/games/sw/src/jweapon.cpp @@ -1436,7 +1436,7 @@ int PlayerInitFlashBomb(PLAYER* pp) if (!(actor->spr.cstat & CSTAT_SPRITE_BLOCK)) continue; - if (!FAFcanseeOfs(itActor, 0, actor, - ActorSizeZ(actor))) + if (!FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, itActor->spr.pos.Z, itActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z - ActorSizeZ(actor), actor->sector())) continue; damage = GetDamage(itActor, pp->actor, DMG_FLASHBOMB); @@ -1495,7 +1495,7 @@ int InitFlashBomb(DSWActor* actor) if (!(actor->spr.cstat & CSTAT_SPRITE_BLOCK)) continue; - if (!FAFcanseeOfs(itActor, 0, actor, -ActorSizeZ(actor))) + if (!FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, itActor->spr.pos.Z, itActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z - ActorSizeZ(actor), actor->sector())) continue; damage = GetDamage(itActor, actor, DMG_FLASHBOMB); @@ -1897,7 +1897,7 @@ DSWActor* DoFlagRangeTest(DSWActor* actor, int range) if (!(itActor->spr.extra & SPRX_PLAYER_OR_ENEMY)) continue; - if (!FAFcansee(itActor, actor)) + if (!FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, itActor->spr.pos.Z, itActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->sector())) continue; dist = FindDistance3D(actor->spr.pos - itActor->spr.pos); diff --git a/source/games/sw/src/miscactr.cpp b/source/games/sw/src/miscactr.cpp index 04e5d39e6..cefa6c5b7 100644 --- a/source/games/sw/src/miscactr.cpp +++ b/source/games/sw/src/miscactr.cpp @@ -146,7 +146,7 @@ int DoToiletGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (actor->user.FlagOwner != 1) { @@ -199,7 +199,7 @@ int NullToiletGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); @@ -366,7 +366,7 @@ int DoWashGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (RandomRange(1000) > 980 && actor->user.ShellNum <= 0) { @@ -428,7 +428,7 @@ int NullWashGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); @@ -1154,7 +1154,7 @@ int DoCarGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (actor->user.FlagOwner == 1) { @@ -1198,7 +1198,7 @@ int NullCarGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); @@ -1354,7 +1354,7 @@ int DoMechanicGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (actor->user.FlagOwner == 1) { @@ -1398,7 +1398,7 @@ int NullMechanicGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); @@ -1555,7 +1555,7 @@ int DoSailorGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (actor->user.FlagOwner == 1) { @@ -1604,7 +1604,7 @@ int NullSailorGirl(DSWActor* actor) static short alreadythrew = 0; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); @@ -1748,7 +1748,7 @@ int DoPruneGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,ActorZOfMiddle(actor->user.targetActor),actor->user.targetActor->sector()); if (actor->user.FlagOwner == 1) { @@ -1808,7 +1808,7 @@ int NullPruneGirl(DSWActor* actor) bool ICanSee = false; DoActorPickClosePlayer(actor); - ICanSee = FAFcansee(actor, ActorZOfMiddle(actor), actor->user.targetActor, ActorZOfMiddle(actor->user.targetActor)); + ICanSee = FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),actor->user.targetActor->spr.pos.X,actor->user.targetActor->spr.pos.Y,actor->user.targetActor->spr.pos.Z,actor->user.targetActor->sector()); if (!(actor->user.Flags & SPR_CLIMBING)) KeepActorOnFloor(actor); diff --git a/source/games/sw/src/player.cpp b/source/games/sw/src/player.cpp index e7cb610cd..a38812346 100644 --- a/source/games/sw/src/player.cpp +++ b/source/games/sw/src/player.cpp @@ -1195,9 +1195,9 @@ DSWActor* DoPickTarget(DSWActor* actor, uint32_t max_delta_ang, int skip_targets ezhl = ActorZOfBottom(itActor) - (ActorSizeZ(itActor) >> 2); // If you can't see 'em you can't shoot 'em - if (!FAFcansee(actor, zh, itActor, ezh) && - !FAFcansee(actor, zh, itActor, ezhm) && - !FAFcansee(actor, zh, itActor, ezhl) + if (!FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, zh, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ezh, itActor->sector()) && + !FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, zh, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ezhm, itActor->sector()) && + !FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, zh, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ezhl, itActor->sector()) ) continue; diff --git a/source/games/sw/src/sector.cpp b/source/games/sw/src/sector.cpp index cdf8bf71b..716456dad 100644 --- a/source/games/sw/src/sector.cpp +++ b/source/games/sw/src/sector.cpp @@ -1148,7 +1148,7 @@ void WeaponExplodeSectorInRange(DSWActor* wActor) if ((unsigned int)dist > (wActor->user.Radius/2) + radius) continue; - if (!FAFcansee(wActor, actor)) + if (!FAFcansee(wActor->spr.pos.X,wActor->spr.pos.Y,wActor->spr.pos.Z,wActor->sector(),actor->spr.pos.X,actor->spr.pos.Y,actor->spr.pos.Z,actor->sector())) continue; diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index f6ad7cdfc..f886a3d27 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -5915,7 +5915,7 @@ void AdjustActiveRange(PLAYER* pp, DSWActor* actor, int dist) // if actor can still see the player look_height = ActorZOfTop(actor); - if (FAFcansee(actor, look_height, plActor, ActorUpperZ(plActor))) + if (FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, look_height, actor->sector(), plActor->spr.pos.X, plActor->spr.pos.Y, ActorUpperZ(plActor), plActor->sector())) { // Player is visible // adjust update range of this sprite diff --git a/source/games/sw/src/track.cpp b/source/games/sw/src/track.cpp index 337b1cacf..a5286bc7a 100644 --- a/source/games/sw/src/track.cpp +++ b/source/games/sw/src/track.cpp @@ -2781,7 +2781,8 @@ void DoAutoTurretObject(SECTOR_OBJECT* sop) if (sActor->spr.statnum == STAT_SO_SHOOT_POINT) { - if (!FAFcansee(sActor, sActor->spr.pos.Z -Z(4), actor, ActorUpperZ(actor->user.targetActor))) + if (!FAFcansee(sActor->spr.pos.X, sActor->spr.pos.Y, sActor->spr.pos.Z-Z(4), sActor->sector(), + actor->user.targetActor->spr.pos.X, actor->user.targetActor->spr.pos.Y, ActorUpperZ(actor->user.targetActor), actor->user.targetActor->sector())) { return; } diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 3100ffa70..fea6416ba 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -7033,7 +7033,7 @@ int DoDamageTest(DSWActor* actor) // For speed's sake, try limiting check only to radius weapons! if (actor->user.Radius > 200) { - if (!FAFcansee(itActor, ActorUpperZ(actor), actor, actor->spr.pos.Z)) + if (!FAFcansee(itActor->spr.pos.X,itActor->spr.pos.Y, ActorUpperZ(actor), itActor->sector(),actor->spr.pos.X,actor->spr.pos.Y,actor->spr.pos.Z,actor->sector())) continue; } @@ -7106,7 +7106,7 @@ int DoFlamesDamageTest(DSWActor* actor) if (actor->user.Radius > 200) // Note: No weaps have bigger radius than 200 cept explosion stuff { - if (FAFcansee(itActor, ActorZOfMiddle(actor), actor, ActorZOfMiddle(actor))) + if (FAFcansee(itActor->spr.pos.X,itActor->spr.pos.Y,ActorZOfMiddle(actor),itActor->sector(),actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector())) { DoDamage(itActor, actor); } @@ -7250,8 +7250,8 @@ int DoExpDamageTest(DSWActor* actor) // Second parameter MUST have blocking bits set or cansee won't work // added second check for FAF water - hitscans were hitting ceiling - if (!FAFcansee(actor, actor->spr.pos.Z, itActor, ActorUpperZ(actor)) && - !FAFcansee(actor, actor->spr.pos.Z, itActor, ActorLowerZ(actor))) + if (!FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ActorUpperZ(actor), itActor->sector()) && + !FAFcansee(actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->sector(), itActor->spr.pos.X, itActor->spr.pos.Y, ActorLowerZ(actor), itActor->sector())) continue; DoDamage(itActor, actor); @@ -7280,7 +7280,7 @@ int DoExpDamageTest(DSWActor* actor) if ((unsigned)dist > actor->user.Radius) continue; - if (!FAFcansee(itActor, ActorZOfMiddle(itActor), actor, actor->spr.pos.Z)) + if (!FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, ActorZOfMiddle(itActor), itActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, actor->spr.pos.Z, actor->sector())) continue; if ((itActor->spr.extra & SPRX_BREAKABLE)) @@ -8602,7 +8602,7 @@ int DoMineRangeTest(DSWActor* actor, int range) if (dist > range) continue; - if (FAFcansee(itActor, ActorUpperZ(actor), actor, actor->spr.pos.Z)) + if (!FAFcansee(itActor->spr.pos.X,itActor->spr.pos.Y,ActorUpperZ(actor),itActor->sector(),actor->spr.pos.X,actor->spr.pos.Y,actor->spr.pos.Z,actor->sector())) continue; return true; @@ -11873,7 +11873,7 @@ int InitSwordAttack(PLAYER* pp) { if (SpriteOverlapZ(pp->actor, itActor, Z(20))) { - if (FAFcansee(itActor, ActorZOfMiddle(itActor), plActor, ActorZOfMiddle(plActor))) + if (FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, ActorZOfMiddle(itActor), itActor->sector(), plActor->spr.pos.X, plActor->spr.pos.Y, ActorZOfMiddle(plActor), plActor->sector())) DoDamage(itActor, pp->actor); } } @@ -12049,7 +12049,7 @@ int InitFistAttack(PLAYER* pp) { if (SpriteOverlapZ(pp->actor, itActor, Z(20)) || face == 190) { - if (FAFcansee(itActor, ActorZOfMiddle(itActor), plActor, ActorZOfMiddle(plActor))) + if (FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, ActorZOfMiddle(itActor), itActor->sector(), plActor->spr.pos.X, plActor->spr.pos.Y, ActorZOfMiddle(plActor), plActor->sector())) DoDamage(itActor, plActor); if (face == 190) { @@ -12327,7 +12327,7 @@ int InitSumoStompAttack(DSWActor* actor) if (dist < CloseRangeDist(itActor, actor, reach)) { - if (FAFcansee(itActor, ActorZOfMiddle(itActor), actor, ActorZOfMiddle(actor))) + if (FAFcansee(itActor->spr.pos.X, itActor->spr.pos.Y, ActorZOfMiddle(itActor), itActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, ActorZOfMiddle(actor), actor->sector())) DoDamage(itActor, actor); } } @@ -12353,7 +12353,7 @@ int InitMiniSumoClap(DSWActor* actor) { if (SpriteOverlapZ(actor, targetActor, Z(20))) { - if (FAFcansee(targetActor, ActorZOfMiddle(targetActor), actor, ActorZOfMiddle(actor))) + if (FAFcansee(targetActor->spr.pos.X, targetActor->spr.pos.Y, ActorZOfMiddle(targetActor), targetActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, ActorZOfMiddle(actor), actor->sector())) { PlaySound(DIGI_CGTHIGHBONE, actor, v3df_follow | v3df_dontpan); DoDamage(targetActor, actor); @@ -12362,7 +12362,7 @@ int InitMiniSumoClap(DSWActor* actor) } else if (dist < CloseRangeDist(targetActor, actor, reach)) { - if (FAFcansee(targetActor, ActorZOfMiddle(targetActor), actor, ActorZOfMiddle(actor))) + if (FAFcansee(targetActor->spr.pos.X, targetActor->spr.pos.Y, ActorZOfMiddle(targetActor), targetActor->sector(), actor->spr.pos.X, actor->spr.pos.Y, ActorZOfMiddle(actor), actor->sector())) { PlaySound(DIGI_30MMEXPLODE, actor, v3df_none); SpawnFireballFlames(actor, targetActor); @@ -13964,7 +13964,7 @@ int DoStaticFlamesDamage(DSWActor* actor) DoDamage(itActor, actor); else if (actor->user.Radius > 200) { - if (FAFcansee(actor, ActorZOfMiddle(actor), itActor, ActorZOfMiddle(itActor))) + if (FAFcansee(actor->spr.pos.X,actor->spr.pos.Y,ActorZOfMiddle(actor),actor->sector(),itActor->spr.pos.X,itActor->spr.pos.Y,ActorZOfMiddle(itActor),itActor->sector())) DoDamage(itActor, actor); } }