diff --git a/audiogame-manager.sh b/audiogame-manager.sh index eb2e360..19cd649 100755 --- a/audiogame-manager.sh +++ b/audiogame-manager.sh @@ -248,10 +248,10 @@ download() { for i in "${source[@]}" ; do local dest="${i##*/}" dest="${dest//%20/ }" - # Return if the game is in cache. - test -e "${cache}/${dest}" && return - if ! wget -O "${cache}/${dest}" "${i}" ; then - echo "Could not download game." + # Skip if the item is in cache. + test -e "${cache}/${dest}" && continue + if ! wget -4 -O "${cache}/${dest}" "${i}" ; then + echo "Could not download..." exit 1 fi done @@ -355,6 +355,45 @@ game_removal() { exit 0 } +# kill games that are stuck +kill_game() { + mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null) + if [[ ${#lines} -eq 0 ]]; then + echo "No games found." + exit 0 + fi + # Create the menu of installed games + declare -a menuList + for i in "${lines[@]}" ; do + menuList+=("${i%|*}" "${i##*|}") + done + menuList+=("Make a One Time Donation" "Make a One Time Donation") + menuList+=("Become a Patron" "Become a Patron") + local game="$(dialog --backtitle "Audio Game Killer" \ + --clear \ + --no-tags \ + --menu "Please select a game to force stop" 0 0 0 "${menuList[@]}" --stdout)" + if [[ ${#game} -gt 0 ]]; then + if [[ "$game" == "Make a One Time Donation" ]]; then + open_url "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=stormdragon2976@gmail.com&lc=US&item_name=Donation+to+Storm+Games&no_note=0&cn=¤cy_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted" + exit 0 + fi + if [[ "$game" == "Become a Patron" ]]; then + open_url "https://patreon.com/stormux" + exit 0 + fi + local winePath="${game#*|}" + winePath="${winePath%\\*.exe}" + local wineExec="${game#*|}" + wineExec="${wineExec%|*}" + wineExec="${wineExec##*\\}" + # kill the wine server. + WINEPREFIX="${HOME}/.local/wine/${game%|*}" wineserver -k + echo "The selected game has been stopped." + fi + exit 0 +} + # launch games that are installed game_launcher() { mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null) @@ -485,8 +524,10 @@ gameList=( "Crazy Party" "Crazy Tennis" "Death on the Road" + "Duck Hunt" "Easter Quest" #"Entombed" + #"Eurofly" "Fantasy Story II" #"Fartman" "Finger Panic" @@ -496,14 +537,15 @@ gameList=( "Judgement Day" "Kitchensinc Games" "Kringle Crash" + #"Light Battles" "Light Cars" "Lockpick" "Lone Wolf" "Manamon" "Manamon 2" - "MudSplat French" + #"MudSplat French" "MudSplat English" - "MudSplat Swedish" + #"MudSplat Swedish" "Oh Shit!" "Pacman Talks" "Palace Punch Up" @@ -516,11 +558,14 @@ gameList=( #"River raiders" "RS Games" "Run For Your Life" + #"Sammy Center" "Sequence Storm" "Shades of Doom" -"Slender Lost Vision" + #"Silver Dollar" + "Slender Lost Vision" "Super Egg Hunt" "Super Liam" + #"Super Mario Bros" "Survive the Wild" "Swamp" "Technoshock" @@ -531,6 +576,8 @@ gameList=( "Top Speed 3" "Triple Triad" "Undead Assault" + "VIP Mud" + #"World of War" ) # With no arguments, open the game launcher. @@ -545,6 +592,7 @@ declare -A command=( [d]="Debug mode, wine will be much more verbose when games are launched with this flag." [h]="This help screen." [i]="Install games." + [k]="Kill a running game that is stuck." [L]="Display license information." [l:]="Launch given game without interactive audiogame-manager menu specified by its wine bottle." [N]="No cache, delete the installer after it has been extracted." @@ -564,6 +612,7 @@ while getopts "${args}" i ; do ;; h) help;; i) game_installer;; + k) kill_game;; L) license;; l) game_launcher "${OPTARG}";; N) noCache="true";; @@ -668,6 +717,12 @@ case "${game}" in unzip -d "$WINEPREFIX/drive_c/Program Files/death on the road" "${cache}/road_en.zip" add_launcher "c:\Program Files\death on the road/game.exe" ;; + "Duck Hunt") + install_wine_bottle vb6run dx8vb speechsdk + download "http://files.l-works.net/dhsetup.exe" + wine "${cache}/dhsetup.exe" /silent + add_launcher "c:\Program Files\Lworks\Duck Hunt\duckhunt.exe" + ;; "Easter Quest") install_wine_bottle download "https://agarchive.net/games/mt/easter%20quest%20setup.exe" @@ -682,6 +737,15 @@ case "${game}" in wine "${cache}/EntombedSetup.exe" /silent add_launcher "c:\Program Files\Entombed\Entombed.exe" ;; + "Eurofly") + export winVer="win7" + export winetricksSettings="vd=1024x768" + install_wine_bottle speechsdk + download "http://www.stefankiss.sk/programy/eurofly/Launcher_1.2.zip" "http://www.stefankiss.sk/programy/eurofly/Eurofly_2_ful_setup.exe" + wine "${cache}/Eurofly_2_ful_setup.exe" /silent + unzip -d "$WINEPREFIX/drive_c/Eurofly" "${cache}/Launcher_1.2.zip" + add_launcher "c:\Eurofly\launcher.exe" + ;; "Fantasy Story II") export winVer="win10" install_wine_bottle speechsdk @@ -799,15 +863,20 @@ EOF tar xf "${cache}/kitchen.tar.xz" -C "$WINEPREFIX/drive_c/Program Files/" add_launcher "c:\Program Files\Kitchen's Sink\gamemenu.exe" ;; + "Light Battles") + export winVer="win7" + install_wine_bottle speechsdk + download "https://prometheus-enterprises.com/games/CoL.exe" + 7z e -o"$WINEPREFIX/drive_c/Program Files/Light Battles" "${cache}/CoL.exe" + rm -fv "${WINEPREFIX}/drive_c/Program Files/Light Battles/nvdaControllerClient.dll" + add_launcher "c:\Program Files\Light Battles\battles.exe" + ;; "Light Cars") install_wine_bottle dx8vb vb6run download "https://www.agarchive.net/games/lighttech/light%20cars%20setup.exe" - if [[ -n "$manualInstall" ]]; then - wine "${cache}/light cars setup.exe" - else - wine "${cache}/light cars setup.exe" & - automate_installer alt+n alt+a space alt+n alt+n alt+i alt+f - fi + wine "${cache}/light cars setup.exe" & + xdotool sleep 10 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+a key --clearmodifiers space sleep 1 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+n sleep 1 key --clearmodifiers alt+i sleep 30 key --clearmodifiers Tab sleep 1 key --clearmodifiers Return 2> /dev/null + wineserver -w echo -e "${USER} ${HOST}\nna@na.na\nUS" > ~/.local/wine/light-cars/drive_c/Program\ Files/Lighttech\ Interactive/Light\ Cars/config.dat unix2dos ~/.local/wine/light-cars/drive_c/Program\ Files/Lighttech\ Interactive/Light\ Cars/config.dat add_launcher "c:\Program Files\Lighttech Interactive\Light Cars\lightCars.exe" @@ -966,6 +1035,14 @@ EOF unzip -d "$WINEPREFIX/drive_c/Program Files/run for your life" "${cache}/rfyl_en.zip" add_launcher "c:\Program Files\run for your life\game.exe" ;; + "Sammy Center") + export winVer="win7" + install_wine_bottle speechsdk + download "http://www.samtupy.com/games/SCSetup.exe" "https://stormgames.wolfe.casa/downloads/nvdaControllerClient32.dll" + wine "${cache}/SCSetup.exe" /silent + find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; + add_launcher "c:\Program Files\Sam Tupy\SammyCenter\SammyCenter.exe" + ;; "Sequence Storm") read -p "Make sure sequence-storm-win64.zip is available in either your Downloads or Desktop directory and press enter to continue." continue for i in ~/Downloads ~/Desktop ; do @@ -990,6 +1067,13 @@ EOF wine "${cache}/sod20022.exe" /silent add_launcher "c:\Program Files\Shades of Doom 2.0\sod.exe" ;; + "Silver Dollar") + export winVer="win7" + install_wine_bottle speechsdk + download "http://download.dracoent.com/Windows/SilverDollarSetup.exe" + wine "${cache}/SilverDollarSetup.exe" /silent + add_launcher "c:\Program Files\Draconis Entertainment\Silver Dollar\SilverDollarGui.exe" + ;; "Slender Lost Vision") export winVer="win7" install_wine_bottle @@ -1009,6 +1093,13 @@ EOF wine "${cache}/superliamsetup.exe" /silent add_launcher "c:\Program Files\lWorks\Super Liam\sl.exe" ;; + "Super Mario Bros") + export winVer="win7" + install_wine_bottle speechsdk + download "https://www.agarchive.net/games/jeqoconGames/super%20mario%20bros.7z" + 7z e -o"$WINEPREFIX/drive_c/Program Files/Super Mario Bros" "${cache}/super mario bros.7z" + add_launcher "c:\Program Files\Super Mario Bros\Mario.exe" + ;; "Survive the Wild") export winVer="win7" install_wine_bottle speechsdk @@ -1019,7 +1110,7 @@ EOF ;; "Swamp") export winVer="win7" - winetricksSettings="vd=1024x768" + export winetricksSettings="vd=1024x768" install_wine_bottle vb6run dx8vb quartz speechsdk corefonts download "https://kaldobsky.com/audiogames/SwampPart1.zip" "https://kaldobsky.com/audiogames/SwampPart2.zip" unzip -d "$WINEPREFIX/drive_c/Program Files/swamp" "${cache}/SwampPart1.zip" @@ -1092,6 +1183,26 @@ EOF find "${WINEPREFIX}" -type f -name 'nvdaControllerClient32.dll' -exec cp -v "${cache}/nvdaControllerClient32.dll" "{}" \; add_launcher "c:\Program Files\undead_assault\Undead Assault.exe" ;; + "VIP Mud") + export winVer="win7" + install_wine_bottle vb6run dx8vb speechsdk + download "http://gmagames.com/vipmud20016.exe" + wine "${cache}/vipmud20016.exe" /silent + mkdir -p "${HOME}/.local/wine/vip-mud/drive_c/users/${USER}/Documents/VIP Mud" + add_launcher "c:\Program Files\VIPMud 2.0\vipmud2.exe" + echo + echo "When you first launch VIP Mud You will be presented with several inaccessible dialogs." + echo "To bypass these dialogs, press alt+o, then press enter until speech starts." + echo "To be sure that each new dialog has had time to complete, wait a second between each press of enter." + echo "In each subsequent launch, you will need to hit enter a couple times before it starts speaking." + ;; + "World of War") + export winVer="win7" + install_wine_bottle speechsdk + download "https://www.agarchive.net/games/nyanchan/world%20of%20war%20English.7z" + 7z e -o"$WINEPREFIX/drive_c/Program Files/World of War" "${cache}/world of war English.7z" + #add_launcher "c:\Program Files\" + ;; "Make a One Time Donation") open_url "https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=stormdragon2976@gmail.com&lc=US&item_name=Donation+to+Storm+Games&no_note=0&cn=¤cy_code=USD&bn=PP-DonationsBF:btn_donateCC_LG.gif:NonHosted" ;;