#!/usr/bin/env bash # Диагностика «курсор двигается, клики не работают» для HoMM Olden Era в Whisky. set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" # shellcheck source=config.sh source "${SCRIPT_DIR}/config.sh" LOG="${BOTTLE_DIR}/drive_c/users/${USER}/AppData/LocalLow/Unfrozen/HeroesOldenEra/Player.log" LOG_PREV="${BOTTLE_DIR}/drive_c/users/${USER}/AppData/LocalLow/Unfrozen/HeroesOldenEra/Player-prev.log" echo "Bottle: ${BOTTLE_NAME}" echo "Player.log: ${LOG}" echo "" if [[ ! -f "${LOG}" ]]; then echo "Нет Player.log — хотя бы один раз запустите игру." exit 1 fi if grep -q 'EnableMouseInPointer failed' "${LOG}" 2>/dev/null; then echo "ДИАГНОЗ: Unity + Wine — заглушка EnableMouseInPointer (WM_POINTER)." echo "Строка из лога:" grep -n 'EnableMouseInPointer' "${LOG}" | head -5 || true echo "" echo "WineBus / виртуальный desktop / SDL это НЕ лечат." echo "" echo "Рабочие пути:" echo " 1) CrossOver (macOS) + при необходимости патч:" echo " https://github.com/dabielf/crossover-unity-mouse-fix" echo " 2) Ждать WhiskyWine/Wine с upstream-фиксом (см. Wine bug #53847)." echo "" DOCS="$(cd "${GAMES_DIR}/../.." && pwd)/docs/games/UNITY_POINTER_MOUSE_FIX.md" echo "Подробности: ${DOCS}" exit 0 fi echo "Строка EnableMouseInPointer в текущем Player.log не найдена." if [[ -f "${LOG_PREV}" ]] && grep -q 'EnableMouseInPointer failed' "${LOG_PREV}" 2>/dev/null; then echo "(В Player-prev.log она была — перезапустите игру и снова этот скрипт.)" fi echo "Если клики всё равно мертвы — пришлите первые 80 строк Player.log в поддержку."