#!/usr/bin/env bash
# Курсор JA3 в CrossOver (Retina / HiDPI).
# Профили (JA3_MOUSE_PROFILE):
#   legacy      — RetinaMode=n (полный ход по Y; возможен сдвиг клика) — default
#   retina-lite — RetinaMode=y без LogPixels (если legacy смещает, но нет клипа)
#   retina      — RetinaMode=y + LogPixels=192 (клип на середине экрана — не default)
set -euo pipefail
GOG_DIR="$(cd "$(dirname "$0")" && pwd)"
CX="/Applications/CrossOver.app/Contents/SharedSupport/CrossOver"
CX_BOTTLE="JA3-GOG"
CX_DIR="${HOME}/Library/Application Support/CrossOver/Bottles/${CX_BOTTLE}"

[[ -d "${CX}" ]] || {
  echo "❌ CrossOver не установлен"
  exit 1
}

PROFILE="${JA3_MOUSE_PROFILE:-legacy}"
WREG() { "${CX}/bin/wine" --bottle "${CX_BOTTLE}" "$@"; }

case "${PROFILE}" in
  retina)
    RETINA="y"
    SET_DPI=1
    DPI="${JA3_LOG_PIXELS:-192}"
    SET_WIN8=1
    ;;
  retina-lite)
    RETINA="y"
    SET_DPI=0
    SET_WIN8=0
    ;;
  legacy|*)
    RETINA="n"
    SET_DPI=0
    SET_WIN8=0
    PROFILE="legacy"
    ;;
esac

WREG reg add 'HKCU\Software\Wine\Mac Driver' /v RetinaMode /t REG_SZ /d "${RETINA}" /f >/dev/null

if [[ "${SET_DPI}" == "1" ]]; then
  WREG reg add 'HKCU\Control Panel\Desktop' /v LogPixels /t REG_DWORD /d "${DPI}" /f >/dev/null
else
  WREG reg delete 'HKCU\Control Panel\Desktop' /v LogPixels /f >/dev/null 2>&1 || true
fi

if [[ "${SET_WIN8}" == "1" ]]; then
  WREG reg add 'HKCU\Control Panel\Desktop' /v Win8DpiScaling /t REG_DWORD /d 1 /f >/dev/null
else
  WREG reg delete 'HKCU\Control Panel\Desktop' /v Win8DpiScaling /f >/dev/null 2>&1 || true
fi

CONF="${CX_DIR}/cxbottle.conf"
if [[ -f "${CONF}" ]] && ! grep -q 'SDL_VIDEO_MAC_FULLSCREEN_SPACES' "${CONF}"; then
  sed -i '' '/^\[EnvironmentVariables\]/a\
"SDL_VIDEO_MAC_FULLSCREEN_SPACES" = "0"
' "${CONF}" 2>/dev/null || true
fi

echo "OK: profile=${PROFILE} RetinaMode=${RETINA} → ${CX_BOTTLE}"
echo "   Перезапуск: bash ${GOG_DIR}/reset-ja3-crossover.sh && bash ${GOG_DIR}/run-ja3-crossover.sh"
case "${PROFILE}" in
  legacy)
    echo "   Если клик смещён: JA3_MOUSE_PROFILE=retina-lite bash ${GOG_DIR}/fix-ja3-crossover-mouse.sh"
    echo "   Без перезапуска: верхний левый угол окна = угол экрана."
    ;;
  retina-lite)
    echo "   Если смещение осталось: JA3_MOUSE_PROFILE=legacy …"
    echo "   Если клип на середине: JA3_MOUSE_PROFILE=legacy …"
    ;;
  retina)
    echo "   ⚠️  retina+LogPixels=192 часто режет курсор на середине экрана."
    echo "   Если так: JA3_MOUSE_PROFILE=legacy bash ${GOG_DIR}/fix-ja3-crossover-mouse.sh"
    ;;
esac
