From c9ab96f504a258f2e645b060cc85be1a29a0534d Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Wed, 31 Aug 2022 01:00:53 +0200 Subject: [PATCH] - floatified SpriteOverlapZ --- source/games/sw/src/skull.cpp | 4 ++-- source/games/sw/src/sprite.cpp | 13 +++++-------- source/games/sw/src/sprite.h | 2 +- source/games/sw/src/weapon.cpp | 6 +++--- 4 files changed, 11 insertions(+), 14 deletions(-) diff --git a/source/games/sw/src/skull.cpp b/source/games/sw/src/skull.cpp index eca32da4b..36e91920d 100644 --- a/source/games/sw/src/skull.cpp +++ b/source/games/sw/src/skull.cpp @@ -363,7 +363,7 @@ int DoSkullJump(DSWActor* actor) DISTANCE(actor->spr.pos, actor->user.targetActor->spr.pos, dist, a, b, c); if (dist < 1000 && - SpriteOverlapZ(actor, actor->user.targetActor, Z(32))) + SpriteOverlapZ(actor, actor->user.targetActor, 32)) { UpdateSinglePlayKills(actor); DoSkullBeginDeath(actor); @@ -731,7 +731,7 @@ int DoBettyJump(DSWActor* actor) DISTANCE(actor->spr.pos, actor->user.targetActor->spr.pos, dist, a, b, c); if (dist < 1000 && - SpriteOverlapZ(actor, actor->user.targetActor, Z(32))) + SpriteOverlapZ(actor, actor->user.targetActor, 32)) { UpdateSinglePlayKills(actor); DoBettyBeginDeath(actor); diff --git a/source/games/sw/src/sprite.cpp b/source/games/sw/src/sprite.cpp index b4adf36ce..6a59eb254 100644 --- a/source/games/sw/src/sprite.cpp +++ b/source/games/sw/src/sprite.cpp @@ -4284,15 +4284,12 @@ bool SpriteOverlap(DSWActor* actor_a, DSWActor* actor_b) } -bool SpriteOverlapZ(DSWActor* actor_a, DSWActor* actor_b, int z_overlap) +bool SpriteOverlapZ(DSWActor* actor_a, DSWActor* actor_b, double z_overlap) { - int spa_tos, spa_bos, spb_tos, spb_bos; - - spa_tos = int_ActorZOfTop(actor_a); - spa_bos = int_ActorZOfBottom(actor_a); - - spb_tos = int_ActorZOfTop(actor_b); - spb_bos = int_ActorZOfBottom(actor_b); + double spa_tos = ActorZOfTop(actor_a); + double spa_bos = ActorZOfBottom(actor_a); + double spb_tos = ActorZOfTop(actor_b); + double spb_bos = ActorZOfBottom(actor_b); // if the top of sprite a is below the bottom of b diff --git a/source/games/sw/src/sprite.h b/source/games/sw/src/sprite.h index 6e192bcb7..b5b849485 100644 --- a/source/games/sw/src/sprite.h +++ b/source/games/sw/src/sprite.h @@ -55,7 +55,7 @@ bool ActorSpawn(DSWActor*); int SpawnItemsMatch(short match); void PicAnimOff(short picnum); int MissileWaterAdjust(DSWActor*); -bool SpriteOverlapZ(DSWActor*, DSWActor*, int); +bool SpriteOverlapZ(DSWActor*, DSWActor*, double); enum { diff --git a/source/games/sw/src/weapon.cpp b/source/games/sw/src/weapon.cpp index 11ada5fb3..8c35baf9b 100644 --- a/source/games/sw/src/weapon.cpp +++ b/source/games/sw/src/weapon.cpp @@ -11727,7 +11727,7 @@ int InitSwordAttack(PLAYER* pp) if (dist < CloseRangeDist(itActor, plActor, reach) && PlayerFacingRange(pp, itActor, face)) { - if (SpriteOverlapZ(pp->actor, itActor, Z(20))) + if (SpriteOverlapZ(pp->actor, itActor, 20)) { if (FAFcansee(ActorVectOfMiddle(itActor), itActor->sector(), ActorVectOfMiddle(plActor), plActor->sector())) DoDamage(itActor, pp->actor); @@ -11900,7 +11900,7 @@ int InitFistAttack(PLAYER* pp) if (dist < CloseRangeDist(itActor, plActor, reach) && PlayerFacingRange(pp, itActor, face)) { - if (SpriteOverlapZ(pp->actor, itActor, Z(20)) || face == 190) + if (SpriteOverlapZ(pp->actor, itActor, 20) || face == 190) { if (FAFcansee(ActorVectOfMiddle(itActor), itActor->sector(), ActorVectOfMiddle(plActor), plActor->sector())) DoDamage(itActor, plActor); @@ -12202,7 +12202,7 @@ int InitMiniSumoClap(DSWActor* actor) if (dist < CloseRangeDist(targetActor, actor, 1000)) { - if (SpriteOverlapZ(actor, targetActor, Z(20))) + if (SpriteOverlapZ(actor, targetActor, 20)) { if (FAFcansee(ActorVectOfMiddle(targetActor), targetActor->sector(), ActorVectOfMiddle(actor), actor->sector())) {