From a298a3d3df745bb21e4036596b06fe0d7b7a2660 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Sun, 4 Apr 2021 09:35:05 +0200 Subject: [PATCH] - disabled 'isRunning' in Blood entirely. After discovering yet another misbehaving place in the game I think it can be safely concluded that this is better left off unconditionally. The only remaining place where this still gets checked is in nnexts, but I wouldn't expect this to work either. Fixes #292 --- source/games/blood/src/player.cpp | 3 ++- source/games/blood/src/sbar.cpp | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/source/games/blood/src/player.cpp b/source/games/blood/src/player.cpp index cda8a9355..28ae4aec8 100644 --- a/source/games/blood/src/player.cpp +++ b/source/games/blood/src/player.cpp @@ -1327,7 +1327,8 @@ void ProcessInput(PLAYER *pPlayer) else if (pPlayer->restTime >= 0) pPlayer->restTime += 4; - pPlayer->isRunning = !!(pInput->actions & SB_RUN) && pPlayer->restTime <= 10; + // This was just too broken. Every single place in the game depending on 'isRunning' will misbehave if this is set because originally it never worked as intended. + pPlayer->isRunning = false;// !!(pInput->actions& SB_RUN) && pPlayer->restTime <= 10; WeaponProcess(pPlayer); if (pXSprite->health == 0) diff --git a/source/games/blood/src/sbar.cpp b/source/games/blood/src/sbar.cpp index 2d8104c30..fe6f16a07 100644 --- a/source/games/blood/src/sbar.cpp +++ b/source/games/blood/src/sbar.cpp @@ -623,8 +623,8 @@ private: else DrawStatSprite(nTile, x, y, 40, 5); } - DrawStatMaskedSprite(2202, 118.5, 185.5, pPlayer->isRunning ? 16 : 40); - DrawStatMaskedSprite(2202, 201.5, 185.5, pPlayer->isRunning ? 16 : 40); + DrawStatMaskedSprite(2202, 118.5, 185.5, /*pPlayer->isRunning ? 16 :*/ 40); + DrawStatMaskedSprite(2202, 201.5, 185.5, /*pPlayer->isRunning ? 16 :*/ 40); if (pPlayer->throwPower) { TileHGauge(2260, 124, 175.5, pPlayer->throwPower, 65536);