Code cleanup I forgot to do when doing the initial conversion.

This commit is contained in:
Storm Dragon 2024-12-15 19:52:01 -05:00
parent 5ce1138985
commit e70926a1fb

View File

@ -564,51 +564,15 @@ if [[ -r "${configFile%/*}/settings.conf" ]]; then
fi
unset noCache
export doomLanguage="${doomLanguage:-en}"
export installPath="${HOME}/.local/games"
export ipfsGateway="${ipfsGateway:-https://ipfs.stormux.org}"
export spd_module="${spd_module:+ -o ${spd_module}}"
export spd_pitch="${spd_pitch:+ -p ${spd_pitch}}"
export spd_rate="${spd_rate:+ -r ${spd_rate}}"
export spd_voice="${spd_voice:+ -y ${spd_voice}}"
export spd_volume="${spd_volume:+ -i ${spd_volume}}"
mkdir -p "${installPath}"
# The list of games available for installation.
# Use menu friendly names.
gameList=(
"Aliens"
"Alter Aeon"
"Audo"
"Auroboros"
"Ball Bouncer"
"Battle Weary"
"Bladius"
"Cacophony"
"Chimera"
"Critter Sanctuary"
"Echo Command"
"E.X.O."
"EmpireMUD"
"End of Time"
"Fantasy Story II"
"Freedoom"
"Monkey Spank"
"Numnastics"
"Onslaught"
"QuentinC Play Room"
"Periphery Synthetic EP"
"S.E.A."
"Slay the Spire"
"Slay the Text"
"SoundRTS"
"soundStrider"
"Stardew Valley"
"StickMUD"
"System Fault"
"Trigaea"
"Upheaval Commandline"
"Upheaval Gui"
"Wurmus"
"Zombowl"
)
# Check for required packages
requiredPackages=(
@ -665,362 +629,5 @@ while getopts "${args}" i ; do
esac
done
# Install game based on the selection above.
installPath="${HOME}/.local/games"
mkdir -p "${installPath}"
case "${game}" in
"Aliens"|"Battle Weary"|"Cacophony"|"QuentinC Play Room"|"Trigaea")
dialog --backtitle "Linux Game manager" \
--infobox "${game} is a web based game and does not need to be installed." -1 -1
;;
"Alter Aeon")
check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-alteraeon/aa.tin"
;;
"Audo")
check_architecture x86_64
get_installer "Audo-linux-x64.zip" "https://shiftbacktick.itch.io/audo"
mkdir -p "${installPath}/Audo"
unzip -d "${installPath}/Audo" "${cache}/Audo-linux-x64.zip"
add_launcher "${installPath}/Audo/Audo"
;;
"Auroboros")
check_architecture x86_64
get_installer "Auroboros-linux-x64.zip" "https://shiftbacktick.itch.io/auroboros"
mkdir -p "${installPath}/Auroboros"
unzip -d "${installPath}/Auroboros" "${cache}/Auroboros-linux-x64.zip"
add_launcher "${installPath}/Auroboros/Auroboros"
;;
"Ball Bouncer")
check_architecture x86_64
download "https://files.sooslandia.ru/BallBouncer/1.2.1/BallBouncer-linux-1.2.1.zip"
unzip -d "${installPath}/" "${cache}/BallBouncer-linux-1.2.1.zip"
chmod +x "${installPath}/BallBouncer/BallBouncer"
add_launcher "${installPath}/BallBouncer/BallBouncer"
;;
"Bladius")
check_architecture x86_64
get_installer "Bladius-linux-x64.zip" "https://shiftbacktick.itch.io/bladius"
mkdir -p "${installPath}/Bladius"
unzip -d "${installPath}/Bladius" "${cache}/Bladius-linux-x64.zip"
add_launcher "${installPath}/Bladius/Bladius"
;;
"Chimera")
check_architecture x86_64
get_installer "Chimera-linux-x64.zip" "https://shiftbacktick.itch.io/chimera"
mkdir -p "${installPath}/Chimera"
unzip -d "${installPath}/Chimera" "${cache}/Chimera-linux-x64.zip"
add_launcher "${installPath}/Chimera/Chimera"
;;
"Critter Sanctuary")
check_architecture x86_64
get_installer "critter-sanctuary-linux.zip" "https://punishedfelix.itch.io/critter-sanctuary"
mkdir -p "${installPath}/critter-sanctuary"
unzip -d "${installPath}/critter-sanctuary" "${cache}/critter-sanctuary-linux.zip"
mkdir -p "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine"
cp -v "${installPath}/critter-sanctuary/blind_options.save" "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine/options.save"
add_launcher "${installPath}/critter-sanctuary/linux.x86_64"
;;
"Echo Command")
check_architecture x86_64
get_installer "Echo Command.tar.xz" "https://pancakedev.itch.io/echo-command"
mkdir -p "${installPath}/Echo-Command"
tar xf "${cache}/Echo Command.tar.xz" -C "${installPath}/Echo-Command"
ln -sr "${installPath}/Echo-Command/Echo Command.x86_64" "${installPath}/Echo-Command/Echo_Command.x86_64"
add_launcher "${installPath}/Echo-Command/Echo_Command.x86_64"
;;
"E.X.O.")
check_architecture x86_64
get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo"
mkdir -p "${installPath}/E.X.O."
unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip"
add_launcher "${installPath}/E.X.O./EXO"
;;
"EmpireMUD")
check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-empiremud/em.tin"
;;
"End of Time")
check_dependencies git opusdec sox tt++
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-endoftime/eot.tin"
;;
"Fantasy Story II")
check_architecture x86_64
get_installer "FS2_3.0_Linux.zip" "https://drive.google.com/file/d/15Y5nxR1zl9vVNzMilpaXdCSBFhNUIDC9/view"
unzip -d "${installPath}" "${cache}/FS2_3.0_Linux.zip"
chmod +x "${installPath}/FS2_3.0_Linux/fs2.x86_64"
add_launcher "${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"
;;
"Freedoom")
tobyVersion="7-5"
mkdir -p "${installPath}/doom"
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
if [[ ${#doomPath} -lt 5 ]]; then
dialog --backtitle "Linux Game Manager" \
--yesno "Do you want Linux Game Manager to install freedoom and gzdoom for you? If you want to do this manually, select no." -1 -1 --stdout || exit 0
if command -v yay &> /dev/null ; then
yay -Sy --noconfirm --sudoloop freedoom gzdoom freedm blasphemer-wad
elif command -v slapt-src &> /dev/null ; then
su -c 'slapt-src -i freedoom gzdoom'
elif command -v dnf &> /dev/null ; then
sudo dnf copr -y enable nalika/gzdoom
sudo dnf -q -y install freedoom
sudo dnf -q -y install gzdoom
else
dialog --backtitle "Linux Game Manager" --msgbox "No supported package managers found. Please install the freedoom and gzdoom packages manually." -1 -1
exit 0
fi
fi
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)"
if ! [[ -e "${installPath}/doom/DoomMetalVol6.wad" ]] && ! [[ -e "${installPath}/doom/DoomMetalVol7.wad" ]]; then
alert
dialog --backtitle "Linux Game manager" \
--extra-button \
--yes-label "6" \
--no-label "7" \
--extra-label "None" \
--yesno "Would you like Doom Metal Volume 6 or 7? Use arrow keys to select your answer." \
-1 -1 --stdout
buttonCode=$?
if [[ $buttonCode -eq 0 ]]; then
download "${ipfsGateway}/ipfs/QmSzWKtP3wPvzn5GNd9F7n4RAhkFHxh2UHxXGefiAufwQW?filename=DoomMetalVol6.wad"
fi
if [[ $buttonCode -eq 1 ]]; then
download "${ipfsGateway}/ipfs/QmfXkz3tzicKGfhcYSiWUZkjkDKP2aVp53Y49n127wMr7D?filename=DoomMetalVol7.wad"
fi
fi
# The url breaks the normal download function
download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262"
download "${ipfsGateway}/ipfs/QmRjg1GSBmVCCtPv8GRTZSjNNDMjHEXE2k5hKxoBnYMFKQ?filename=TobyAccessibilityMod_V${tobyVersion}.zip"
[[ -e "${cache}/DoomMetalVol6.wad" ]] && mv "${cache}/DoomMetalVol6.wad" "${installPath}/doom"
[[ -e "${cache}/DoomMetalVol7.wad" ]] && mv "${cache}/DoomMetalVol7.wad" "${installPath}/doom"
unzip -n -d "${installPath}/doom" "${cache}/TobyAccessibilityMod_V${tobyVersion}.zip"
unzip -n -d "${installPath}/doom" "${cache}/OpMDK_ForV${tobyVersion}.zip"
cp -v "${cache}/keyshare-universal.pk3" "${installPath}/doom"
rm -fv "${installPath}/doom/"*.{ahk,bat,exe,dll,ps1}
if [[ -e /usr/share/doom/blasphem.wad ]]; then
ln -s /usr/share/doom/blasphem.wad "${installPath}/doom/"
fi
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom"
cp "${installPath}/doom/TobyConfig.ini" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
cp "${installPath}/doom/zcajun/bots.cfg" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/"
sed -i "s;^\[IWADSearch.Directories\]$;[IWADSearch.Directories]\nPath=${doomPath}\nPath=${installPath}/doom;" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
sed -i "s;^\[FileSearch.Directories\]$;[FileSearch.Directories]\nPath=${doomPath}\nPath=${installPath}/doom;" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
sed -i "s;^\[SoundfontSearch.Directories\]$;[SoundfontSearch.Directories]\nPath=${doomPath}/fm_banks\nPath=${doomPath}/soundfonts\nPath=${installPath}/doom/soundfonts\nPath=${installPath}/doom/fm_banks;" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
# sed -i 's/Mouse1=+attack/CTRL=+attack/' "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}"
add_launcher "${launcherPath}/.scripts/FreeDoom.sh"
;;
"Monkey Spank")
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/monkeyspank.git
add_launcher "${installPath}/monkeyspank/monkeyspank"
;;
"Numnastics")
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/numnastics.git
add_launcher "${installPath}/numnastics/numnastics"
;;
"Onslaught")
check_architecture x86_64
get_installer "onslaught.AppImage" "https://lightsoutgames.itch.io/onslaught"
mkdir -p "${installPath}/Onslaught"
cp -v "${cache}/onslaught.AppImage" "${installPath}/Onslaught/onslaught.AppImage"
chmod +x "${installPath}/Onslaught/onslaught.AppImage"
add_launcher "${installPath}/Onslaught/onslaught.AppImage"
;;
"Periphery Synthetic EP")
check_architecture x86_64
get_installer "periphery-synthetic-ep-linux-x64.zip" "https://shiftbacktick.itch.io/periphery-synthetic-ep"
mkdir -p "${installPath}/periphery-synthetic-ep"
unzip -d "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip"
add_launcher "${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"
;;
"S.E.A.")
check_architecture x86_64
get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea"
mkdir -p "${installPath}/S.E.A."
unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip"
add_launcher "${installPath}/S.E.A./SEA"
;;
"Slay the Spire")
check_architecture x86_64
echo "Please note this requires the game to be available either in your Steam library"
echo "or as the installer purchased from gog.com."
echo "If using the gog.com installer, please use the default path when prompted."
alert
check_dependencies steamcmd
appId="646570"
if ! [[ -f ~/Downloads/slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh ]] && ! [[ -f ~/Desktop/slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh ]]; then
echo "Please enter Steam user name:"
read -er steamUser
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit
else
DISPLAY=""
find ~/Downloads -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \; ||
find ~/Desktop -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \;
if [[ $? -eq 0 ]]; then
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
{ echo "Error creating link."
exit 1; }
else
echo "Error installing game."
exit 1
fi
fi
# Move files into place
mkdir -p "${HOME}/.config/ModTheSpire"
if [[ -f ~"/.config/ModTheSpire/mod_lists.json" ]]; then
dialog --backtitle "Linux Game manager" \
--yesno "Existing mod_lists.json file found. Would you like to replace it?" -1 -1 --stdout &&
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
else
cp -v .files/SlayTheSpire/mod_lists.json "${HOME}/.config/ModTheSpire/mod_lists.json"
fi
cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/"
# Get mods
declare -A mods=(
[mod the spire]=1605060445
[base mod]=1605833019
[stslib]=1609158507
[curses come first]=2304840098
[achievement enabler]=1692554109
[say the spire]=2239220106
)
installString=""
for x in ${mods[@]} ; do
installString="$installString +workshop_download_item $appId $x"
done
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit
mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
for x in "${!mods[@]}" ; do
if [ "$x" == "mod the spire" ] ; then
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/"
else
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/mods/"
fi
done
launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}"
add_launcher "${launcherPath}/.scripts/SlayTheSpire.sh"
;;
"Slay the Text")
check_dependencies python-ansimarkup:ansimarkup
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/slaythetext/main.py"
;;
"SoundRTS")
check_dependencies python3
mkdir -p "${installPath}"
git -C "${installPath}" clone "https://github.com/soundmud/soundrts.git"
git -C "${installPath}/soundrts" checkout v1.3.8
sed -i 's;git+https://github.com/soundmud/accessible_output2;accessible_output2;' "${installPath}/soundrts/requirements.txt"
python3 -m venv --system-site-packages "${installPath}/soundrts/.venv"
"${installPath}/soundrts/.venv/bin/"pip3 install -r "${installPath}/soundrts/requirements.txt"
if [ $(python3 --version | cut -d. -f2) -ge 12 ] ; then
"${installPath}/soundrts/.venv/bin/"pip3 install pyasyncore pyasynchat
fi
chmod +x "${installPath}/soundrts/soundrts.py"
sed -i '1c\#!'"${installPath}/soundrts/.venv/bin/python3" "${installPath}/soundrts/soundrts.py"
add_launcher "${installPath}/soundrts/soundrts.py"
;;
"soundStrider")
check_architecture x86_64
get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider"
mkdir -p "${installPath}/soundStrider"
unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip"
add_launcher "${installPath}/soundStrider/soundStrider"
;;
"Stardew Valley")
check_architecture x86_64
DISPLAY=""
echo "Please select the default path when prompted by the installer."
alert
get_installer "stardew_valley_1_5_6_1988831614_53040.sh" "https://www.gog.com/game/stardew_valley"
bash "${cache}/stardew_valley_1_5_6_1988831614_53040.sh" ||
{ echo "Error installing game."
exit 1; }
smapiVersion="3.18.4"
download "https://github.com/Pathoschild/SMAPI/releases/download/${smapiVersion}/SMAPI-${smapiVersion}-installer.zip" "https://stormgames.wolfe.casa/downloads/stardew-valley/Mods.tar.xz"
smapiTmp="$(mktemp -d)"
unzip "${cache}/SMAPI-${smapiVersion}-installer.zip" -d "$smapiTmp"
echo "Preparing to install mods. Please select the same path as before when prompted."
echo "When it says SMAPI has been installed, press enter to finish installation."
alert
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
add_launcher "${installPath}/StardewValley/StardewValley"
;;
"StickMUD")
check_dependencies git sox tt++
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
add_launcher "${installPath}/tintin-stickmud/stickmud.tin"
;;
"System Fault")
check_architecture x86_64
get_installer "system-fault-linux-x86_64.AppImage" "https://lightsoutgames.itch.io/systemfault"
mkdir -p "${installPath}/System_Fault"
cp -v "${cache}/system-fault-linux-x86_64.AppImage" "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
chmod +x "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
add_launcher "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
;;
"Upheaval Commandline")
check_architecture x86_64
check_dependencies dmidecode
get_installer "upheaval-linux-console.zip" "https://leonegaming.itch.io/upheaval"
mkdir -p "${installPath}/Upheaval_Commandline"
unzip -d "${installPath}/Upheaval_Commandline" "${cache}/upheaval-linux-console.zip"
add_launcher "${installPath}/Upheaval_Commandline/Upheaval_Command_Line"
;;
"Upheaval Gui")
check_architecture x86_64
check_dependencies dmidecode
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
mkdir -p "${installPath}/Upheaval_Gui"
unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip"
add_launcher "${installPath}/Upheaval_Gui/Upheaval"
echo "To enable accessibility, press shift t when the game starts."
alert
;;
"Wurmus")
check_architecture x86_64
get_installer "Wurmus-linux-x64.zip" "https://shiftbacktick.itch.io/wurmus"
mkdir -p "${installPath}/Wurmus"
unzip -d "${installPath}/Wurmus" "${cache}/Wurmus-linux-x64.zip"
add_launcher "${installPath}/Wurmus/Wurmus"
;;
"Zombowl")
architecture="$(uname -m)"
if [[ "${architecture}" == "aarch64" ]]; then
pkgname="Zombowl-Linux-aarch64.zip"
elif [[ "${architecture}" == "x86_64" ]]; then
pkgname="Zombowl-Linux-X86_64.zip"
else
echo "Architecture ${architecture} is not supported."
exit 1
fi
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
mkdir -p "${installPath}/"
unzip -d "${installPath}/" "${cache}/${pkgname}"
add_launcher "${installPath}/${pkgname%.*}/Zombowl"
;;
"Donate")
open_url "https://ko-fi.com/stormux"
;;
*)
[[ -n "${game}" ]] && echo "Game \"${game}\" not found."
exit 1
;;
esac
exit 0