To comment out a game, it's now #// on the first line. Updated executioner's rage and hopefully fixed new keyboard problems.
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
download "https://oriolgomez.com/games/beat_windows.zip"
|
download "https://oriolgomez.com/games/beat_windows.zip"
|
||||||
# Sapi is broken on win64 for now, and this game doesn't support nvda it seems.
|
# Sapi is broken on win64 for now, and this game doesn't support nvda it seems.
|
||||||
export WINEARCH=win64
|
export WINEARCH=win64
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#Disable
|
#//Disable
|
||||||
download "https://nibblenerds.com/static/blades_of_glory.zip"
|
download "https://nibblenerds.com/static/blades_of_glory.zip"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Blades of Glory" "${cache}/blades_of_glory.zip"
|
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/Blades of Glory" "${cache}/blades_of_glory.zip"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClient32Dll}"
|
download "https://hirotaka2014.sakura.ne.jp/mh0406/game/breed_memorial.zip" "${nvdaControllerClient32Dll}"
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle cjkfonts
|
install_wine_bottle cjkfonts
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
download "https://renovagames.com/bc/BC-Setup.exe"
|
download "https://renovagames.com/bc/BC-Setup.exe"
|
||||||
install_wine_bottle cjkfonts
|
install_wine_bottle cjkfonts
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
# No custom bottle needed - use standard wine path based on architecture
|
# No custom bottle needed - use standard wine path based on architecture
|
||||||
download "https://www.agarchive.net/games/pb/Dark-Destroyer-Setup.exe"
|
download "https://www.agarchive.net/games/pb/Dark-Destroyer-Setup.exe"
|
||||||
install_wine_bottle ie6
|
install_wine_bottle ie6
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
download "https://www.iamtalon.me/games/dragonpong.zip"
|
download "https://www.iamtalon.me/games/dragonpong.zip"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
# Borken, candidate for removal
|
#// Borken, candidate for removal
|
||||||
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1 - complex .NET dependencies, test carefully
|
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1 - complex .NET dependencies, test carefully
|
||||||
download "http://blind-games.com/newentombed/EntombedSetup.exe" "https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" "https://stormgames.wolfe.casa/downloads/Entombed.exe.config" "https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
download "http://blind-games.com/newentombed/EntombedSetup.exe" "https://download.microsoft.com/download/E/C/1/EC1B2340-67A0-4B87-85F0-74D987A27160/SSCERuntime-ENU.exe" "https://stormgames.wolfe.casa/downloads/Entombed.exe.config" "https://stormgames.wolfe.casa/downloads/mfplat.dll"
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
export winetricksSettings="vd=1024x768"
|
export winetricksSettings="vd=1024x768"
|
||||||
download "https://www.stefankiss.sk/files/eurofly2/Launcher_1.2.zip" "https://www.stefankiss.sk/files/eurofly2/Eurofly_2_ful_setup.exe"
|
download "https://www.stefankiss.sk/files/eurofly2/Launcher_1.2.zip" "https://www.stefankiss.sk/files/eurofly2/Eurofly_2_ful_setup.exe"
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
download "https://dl.tweesecake.app/rage/rage1.5.0.zip"
|
gameVersion=2.4.1
|
||||||
|
download "https://dl.tweesecake.app/rage/rage${gameVersion}.zip"
|
||||||
export WINEARCH=win64
|
export WINEARCH=win64
|
||||||
export winVer="win10"
|
export winVer="win10"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rage1.5.0.zip"
|
install_with_progress unzip "Extracting game files..." -d "$WINEPREFIX/drive_c/Program Files/" "${cache}/rage${gameVersion}.zip"
|
||||||
add_launcher "c:\Program Files\rage\rage.exe"
|
add_launcher "c:\Program Files\rage\rage.exe"
|
||||||
url="https://techcake.games/games/executioners-rage/"
|
url="https://techcake.games/games/executioners-rage/"
|
||||||
echo "Before you can login, you need to create an account at:"
|
echo "Before you can login, you need to create an account at:"
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
download "http://www.agarchive.net/games/bpc/fartman.exe"
|
download "http://www.agarchive.net/games/bpc/fartman.exe"
|
||||||
install_wine_bottle dx8vb vb6run
|
install_wine_bottle dx8vb vb6run
|
||||||
wine "${cache}/fartman.exe" /silent
|
wine "${cache}/fartman.exe" /silent
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
# Uses standard wine path based on architecture (win32/win64)
|
# Uses standard wine path based on architecture (win32/win64)
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#//!/bin/bash
|
||||||
case "${game}" in
|
case "${game}" in
|
||||||
"MudSplat English")
|
"MudSplat English")
|
||||||
a="a"
|
a="a"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
download "http://www.vgstorm.com/psycho_strike_installer.exe"
|
download "http://www.vgstorm.com/psycho_strike_installer.exe"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
wine "${cache}/psycho_strike_installer.exe" /silent
|
wine "${cache}/psycho_strike_installer.exe" /silent
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
download "http://www.samtupy.com/games/SCSetup.exe" "${nvdaControllerClient32Dll}"
|
download "http://www.samtupy.com/games/SCSetup.exe" "${nvdaControllerClient32Dll}"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#Disable since it's not working
|
#//Disable since it's not working
|
||||||
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe" "https://raw.githubusercontent.com/LordLuceus/sr-english-localization/master/language_en.dat"
|
download "https://www.mm-galabo.com/sr/Download_files_srfv/shadowrine_fullvoice3.171.exe" "https://raw.githubusercontent.com/LordLuceus/sr-english-localization/master/language_en.dat"
|
||||||
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1
|
export WINEARCH="win64" # Migrated to wine64 with WINETRICKS_FORCE=1
|
||||||
export winVer="win8"
|
export winVer="win8"
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
#
|
#//
|
||||||
export winVer="win7"
|
export winVer="win7"
|
||||||
download "http://www.vgstorm.com/the_gate_installer.exe"
|
download "http://www.vgstorm.com/the_gate_installer.exe"
|
||||||
install_wine_bottle
|
install_wine_bottle
|
||||||
|
|||||||
+104
-3
@@ -18,6 +18,9 @@ nvda2speechdStarted="false"
|
|||||||
customLaunchHandled="false"
|
customLaunchHandled="false"
|
||||||
cthulhuTitleReaderEnabled="false"
|
cthulhuTitleReaderEnabled="false"
|
||||||
cthulhuTitleReaderTried="false"
|
cthulhuTitleReaderTried="false"
|
||||||
|
takeFocusWorkaroundActive="false"
|
||||||
|
takeFocusRestoreMode="none"
|
||||||
|
takeFocusRestoreValue=""
|
||||||
|
|
||||||
log_msg() {
|
log_msg() {
|
||||||
local logFile="${scriptDir}/game.log"
|
local logFile="${scriptDir}/game.log"
|
||||||
@@ -139,9 +142,104 @@ kill_nvda2speechd_listener() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup_and_exit() {
|
cleanup_and_exit() {
|
||||||
|
restore_executioners_rage_focus_workaround
|
||||||
stop_nvda2speechd
|
stop_nvda2speechd
|
||||||
}
|
}
|
||||||
|
|
||||||
|
set_use_take_focus_value() {
|
||||||
|
local takeFocusValue="${1^^}"
|
||||||
|
if [[ "$takeFocusValue" != "Y" ]] && [[ "$takeFocusValue" != "N" ]]; then
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
wine reg add "HKCU\\Software\\Wine\\X11 Driver" /v UseTakeFocus /t REG_SZ /d "$takeFocusValue" /f &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
unset_use_take_focus_value() {
|
||||||
|
wine reg delete "HKCU\\Software\\Wine\\X11 Driver" /v UseTakeFocus /f &> /dev/null
|
||||||
|
}
|
||||||
|
|
||||||
|
capture_use_take_focus_state() {
|
||||||
|
local queryOutput=""
|
||||||
|
local currentValue=""
|
||||||
|
takeFocusRestoreMode="none"
|
||||||
|
takeFocusRestoreValue=""
|
||||||
|
|
||||||
|
if ! wine reg query "HKCU\\Software\\Wine" &> /dev/null; then
|
||||||
|
takeFocusRestoreMode="unknown"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
queryOutput="$(wine reg query "HKCU\\Software\\Wine\\X11 Driver" /v UseTakeFocus 2>/dev/null || true)"
|
||||||
|
if [[ "$queryOutput" == *"UseTakeFocus"* ]]; then
|
||||||
|
currentValue="$(awk '/UseTakeFocus/ {print toupper($NF); exit}' <<< "$queryOutput")"
|
||||||
|
if [[ "$currentValue" == "Y" ]] || [[ "$currentValue" == "N" ]]; then
|
||||||
|
takeFocusRestoreMode="value"
|
||||||
|
takeFocusRestoreValue="$currentValue"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
takeFocusRestoreMode="unknown"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
takeFocusRestoreMode="delete"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
|
apply_executioners_rage_focus_workaround() {
|
||||||
|
if [[ "${game[2]}" != "Executioner's Rage" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
takeFocusWorkaroundActive="false"
|
||||||
|
if ! capture_use_take_focus_state; then
|
||||||
|
log_msg "Could not capture current UseTakeFocus state before launching Executioner's Rage."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if set_use_take_focus_value "Y"; then
|
||||||
|
takeFocusWorkaroundActive="true"
|
||||||
|
log_msg "Enabled UseTakeFocus=Y before launching Executioner's Rage."
|
||||||
|
else
|
||||||
|
log_msg "Failed to enable UseTakeFocus=Y for Executioner's Rage."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
restore_executioners_rage_focus_workaround() {
|
||||||
|
if [[ "$takeFocusWorkaroundActive" != "true" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "${game[2]}" != "Executioner's Rage" ]]; then
|
||||||
|
takeFocusWorkaroundActive="false"
|
||||||
|
takeFocusRestoreMode="none"
|
||||||
|
takeFocusRestoreValue=""
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
|
case "$takeFocusRestoreMode" in
|
||||||
|
value)
|
||||||
|
if set_use_take_focus_value "$takeFocusRestoreValue"; then
|
||||||
|
log_msg "Restored UseTakeFocus=${takeFocusRestoreValue} after closing Executioner's Rage."
|
||||||
|
else
|
||||||
|
log_msg "Failed to restore UseTakeFocus=${takeFocusRestoreValue} after closing Executioner's Rage."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
delete)
|
||||||
|
if unset_use_take_focus_value; then
|
||||||
|
log_msg "Removed UseTakeFocus override after closing Executioner's Rage."
|
||||||
|
else
|
||||||
|
log_msg "Failed to remove UseTakeFocus override after closing Executioner's Rage."
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log_msg "Skipping UseTakeFocus restore after closing Executioner's Rage because prior state was unknown."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
takeFocusWorkaroundActive="false"
|
||||||
|
takeFocusRestoreMode="none"
|
||||||
|
takeFocusRestoreValue=""
|
||||||
|
}
|
||||||
|
|
||||||
# Check and manage wine32 installation
|
# Check and manage wine32 installation
|
||||||
check_wine32() {
|
check_wine32() {
|
||||||
local wine32Dir="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/wine32"
|
local wine32Dir="${XDG_DATA_HOME:-$HOME/.local/share}/audiogame-manager/wine32"
|
||||||
@@ -268,10 +366,10 @@ game_installer() {
|
|||||||
mapfile -t installedGames < <(sed -e '/^$/d' -e '/^[[:space:]]*#/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
|
mapfile -t installedGames < <(sed -e '/^$/d' -e '/^[[:space:]]*#/d' "${configFile}" 2> /dev/null | cut -d '|' -f3)
|
||||||
# Create the menu of available games by reading from .install directory
|
# Create the menu of available games by reading from .install directory
|
||||||
declare -a menuList
|
declare -a menuList
|
||||||
# Get all .sh files from .install directory, excluding those starting with # as first line.
|
# Get all .sh files from .install directory, excluding those starting with #// as first line.
|
||||||
mapfile -t sortedGames < <(for f in "${scriptDir}/.install/"*.sh; do
|
mapfile -t sortedGames < <(for f in "${scriptDir}/.install/"*.sh; do
|
||||||
# Skip if first line starts with #
|
# Skip if first line starts with #//
|
||||||
[[ $(head -n1 "$f") == "#"* ]] && continue
|
[[ $(head -n1 "$f") == "#//"* ]] && continue
|
||||||
echo "${f##*/%.sh}"
|
echo "${f##*/%.sh}"
|
||||||
done | sort)
|
done | sort)
|
||||||
for i in "${sortedGames[@]}"; do
|
for i in "${sortedGames[@]}"; do
|
||||||
@@ -715,9 +813,11 @@ game_launcher() {
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
process_launcher_flags
|
process_launcher_flags
|
||||||
|
apply_executioners_rage_focus_workaround
|
||||||
customLaunchHandled="false"
|
customLaunchHandled="false"
|
||||||
custom_launch_parameters
|
custom_launch_parameters
|
||||||
if [[ "$customLaunchHandled" == "true" ]]; then
|
if [[ "$customLaunchHandled" == "true" ]]; then
|
||||||
|
restore_executioners_rage_focus_workaround
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
start_nvda2speechd
|
start_nvda2speechd
|
||||||
@@ -731,6 +831,7 @@ game_launcher() {
|
|||||||
wine "${game[1]##*\\}"
|
wine "${game[1]##*\\}"
|
||||||
fi
|
fi
|
||||||
popd > /dev/null || exit 1
|
popd > /dev/null || exit 1
|
||||||
|
restore_executioners_rage_focus_workaround
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user