From 72187a7f3b48ca5650b9c800589c95b15e2b9fb5 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Mon, 22 Aug 2022 18:40:37 +0200 Subject: [PATCH] =?UTF-8?q?-=20mummy=E2=80=99s=20cansee=20and=20FindPlayer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/games/exhumed/src/move.cpp | 15 +++++---------- source/games/exhumed/src/mummy.cpp | 9 ++++----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/source/games/exhumed/src/move.cpp b/source/games/exhumed/src/move.cpp index 53cc3678f..a3e348dac 100644 --- a/source/games/exhumed/src/move.cpp +++ b/source/games/exhumed/src/move.cpp @@ -679,13 +679,8 @@ DExhumedActor* FindPlayer(DExhumedActor* pActor, int nDistance, bool dontengage) if (nDistance < 0) nDistance = 100; - int x = pActor->int_pos().X; - int y = pActor->int_pos().Y; - auto pSector =pActor->sector(); - - int z = pActor->int_pos().Z - GetActorHeight(pActor); - - nDistance <<= 8; + auto pSector =pActor->sector(); + nDistance <<= 4; DExhumedActor* pPlayerActor = nullptr; int i = 0; @@ -699,13 +694,13 @@ DExhumedActor* FindPlayer(DExhumedActor* pActor, int nDistance, bool dontengage) if ((pPlayerActor->spr.cstat & CSTAT_SPRITE_BLOCK_ALL) && (!(pPlayerActor->spr.cstat & CSTAT_SPRITE_INVISIBLE))) { - int v9 = abs(pPlayerActor->int_pos().X - x); + int v9 = abs(pPlayerActor->spr.pos.X - pActor->spr.pos.X); if (v9 < nDistance) { - int v10 = abs(pPlayerActor->int_pos().Y - y); + int v10 = abs(pPlayerActor->spr.pos.Y - pActor->spr.pos.Y); - if (v10 < nDistance && cansee(pPlayerActor->int_pos().X, pPlayerActor->int_pos().Y, pPlayerActor->int_pos().Z - 7680, pPlayerActor->sector(), x, y, z, pSector)) + if (v10 < nDistance && cansee(pPlayerActor->spr.pos.plusZ(-30), pPlayerActor->sector(), pActor->spr.pos.plusZ(-GetActorHeightF(pActor)), pSector)) { break; } diff --git a/source/games/exhumed/src/mummy.cpp b/source/games/exhumed/src/mummy.cpp index 1a1487ff8..989669260 100644 --- a/source/games/exhumed/src/mummy.cpp +++ b/source/games/exhumed/src/mummy.cpp @@ -93,13 +93,12 @@ void CheckMummyRevive(DExhumedActor* pActor) if (pOther->nAction != 5) { continue; } - int x = abs(pOther->int_pos().X - pActor->int_pos().X) >> 8; - int y = abs(pOther->int_pos().Y - pActor->int_pos().Y) >> 8; + double x = abs(pOther->spr.pos.X - pActor->spr.pos.X); + double y = abs(pOther->spr.pos.Y - pActor->spr.pos.Y); - if (x <= 20 && y <= 20) + if (x <= 320 && y <= 320) { - if (cansee(pActor->int_pos().X, pActor->int_pos().Y, pActor->int_pos().Z - 8192, pActor->sector(), - pOther->int_pos().X, pOther->int_pos().Y, pOther->int_pos().Z - 8192, pOther->sector())) + if (cansee(pActor->spr.pos.plusZ(-32), pActor->sector(), pOther->spr.pos.plusZ(-32), pOther->sector())) { pOther->spr.cstat = 0; pOther->nAction = 6;