diff --git a/src/xrGame/ai/monsters/monster_enemy_memory.cpp b/src/xrGame/ai/monsters/monster_enemy_memory.cpp index b4475a7c2a7..dd2ce088526 100644 --- a/src/xrGame/ai/monsters/monster_enemy_memory.cpp +++ b/src/xrGame/ai/monsters/monster_enemy_memory.cpp @@ -55,7 +55,8 @@ void CMonsterEnemyMemory::update() } } - if (monster->SoundMemory.IsRememberSound()) + if (monster->SoundMemory.IsRememberSound() && g_actor + && g_actor->memory().visual().visible_now(monster)) { SoundElem sound; bool dangerous; @@ -64,12 +65,11 @@ void CMonsterEnemyMemory::update() { if (CEntityAlive const* enemy = smart_cast(sound.who)) { - float const xz_dist = monster->Position().distance_to_xz(g_actor->Position()); - float const y_dist = _abs(monster->Position().y - g_actor->Position().y); + float const xz_dist = monster->Position().distance_to_xz(enemy->Position()); + float const y_dist = _abs(monster->Position().y - enemy->Position().y); if (monster->CCustomMonster::useful(&monster->memory().enemy(), enemy) && y_dist < 10 && - xz_dist < monster->get_feel_enemy_who_made_sound_max_distance() && - g_actor->memory().visual().visible_now(monster)) + xz_dist < monster->get_feel_enemy_who_made_sound_max_distance()) { add_enemy(enemy);