From 5585352f539f00e32e5b51e437920102efff10f4 Mon Sep 17 00:00:00 2001 From: mojsior Date: Sat, 24 Jan 2026 22:13:51 +0100 Subject: [PATCH] Fix monster proximity cue tempo Use monster future position for distance/tempo and ignore local _release_tmp staging dir. --- .gitignore | 3 +++ Source/utils/proximity_audio.cpp | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 434309e31..2564b65dc 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,9 @@ comparer-config.toml # Extra files in the source distribution (see make_src_dist.py) /dist/ +# Local release staging +/_release_tmp/ + *.appimage *.AppImage diff --git a/Source/utils/proximity_audio.cpp b/Source/utils/proximity_audio.cpp index 3a80afb16..905c49f24 100644 --- a/Source/utils/proximity_audio.cpp +++ b/Source/utils/proximity_audio.cpp @@ -548,13 +548,16 @@ std::optional FindInteractTargetInRange(const Player &player, Po if (monster.hitPoints <= 0) continue; - const Point monsterPosition { monster.position.tile }; - const int distance = playerPosition.ApproxDistance(monsterPosition); + // Use the future position for distance/tempo so cues react immediately when a monster starts moving + // towards or away from the player (tile position updates later). + const Point monsterSoundPosition { monster.position.tile }; + const Point monsterDistancePosition { monster.position.future }; + const int distance = playerPosition.ApproxDistance(monsterDistancePosition); if (distance > MaxCueDistanceTiles) continue; if (!nearest || distance < nearest->first) { - nearest = { distance, monsterPosition }; + nearest = { distance, monsterSoundPosition }; } }