Compare commits
No commits in common. "a38eee08cb811db914cae4bae6dfa9fa1ab82170" and "dbf9174f96cc49ab717f4805fcbecfadbd89f2bf" have entirely different histories.
a38eee08cb
...
dbf9174f96
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,2 +0,0 @@
|
||||
nohup.out
|
||||
/.launch/*.sh
|
@ -1,3 +1,4 @@
|
||||
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"
|
||||
|
@ -1,3 +0,0 @@
|
||||
check_architecture x86_64
|
||||
download "https://michaels.world/aq-linux.zip"
|
||||
unzip -d "${installPath}/AudioQuake" "${cache}/aq-linux.zip"
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -4,3 +4,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -3,3 +3,4 @@ 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"
|
||||
|
@ -1,3 +1,4 @@
|
||||
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"
|
||||
|
@ -1,3 +1,4 @@
|
||||
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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -1,4 +1,4 @@
|
||||
tobyVersion="8-0"
|
||||
tobyVersion="7-5"
|
||||
mkdir -p "${installPath}/doom"
|
||||
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
|
||||
if [[ ${#doomPath} -lt 5 ]]; then
|
||||
@ -37,16 +37,16 @@ dialog --backtitle "Linux Game manager" \
|
||||
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/QmT6FEqeGTkf3Uv1dYqQ4LGYeRSjLk1R1FeyaFJwRFBocF?filename=TobyAccessibilityMod_V${tobyVersion}.zip"
|
||||
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"
|
||||
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
|
||||
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/"
|
||||
@ -56,3 +56,4 @@ cp "${installPath}/doom/zcajun/bots.cfg" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdo
|
||||
# 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"
|
@ -1,2 +1,3 @@
|
||||
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"
|
||||
|
@ -1,2 +1,3 @@
|
||||
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"
|
||||
|
@ -3,3 +3,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -56,3 +56,4 @@ for x in "${!mods[@]}" ; do
|
||||
done
|
||||
launcherPath="$(readlink -f "$0")"
|
||||
launcherPath="${launcherPath%/*}"
|
||||
add_launcher "${launcherPath}/.scripts/SlayTheSpire.sh"
|
||||
|
@ -1,3 +1,4 @@
|
||||
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"
|
||||
|
@ -2,3 +2,4 @@ check_architecture x86_64
|
||||
get_installer "soulblaze-linux-beta.zip" "https://sword-and-quill.itch.io/soulblaze"
|
||||
mkdir -p "${installPath}/Soulblaze"
|
||||
unzip -d "${installPath}/Soulblaze" "${cache}/soulblaze-linux-beta.zip"
|
||||
add_launcher "${installPath}/Soulblaze/Soulblaze.x86_64"
|
||||
|
@ -16,3 +16,4 @@ 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"
|
||||
|
@ -1,3 +1,4 @@
|
||||
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"
|
||||
|
@ -3,3 +3,4 @@ get_installer "system-fault-linux-x86_64.AppImage" "https://lightsoutgames.itch.
|
||||
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"
|
||||
|
@ -1,8 +0,0 @@
|
||||
check_architecture x86_64
|
||||
get_installer "Ttc v3.0 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
|
||||
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.0 linux.zip"
|
||||
chmod +x "${installPath}/The Tornado Chicken/Ttc"
|
||||
echo "Note: When the game first starts it will be playing very loud music with the built in suboptimal voice."
|
||||
echo "You are recommended to press page down several times to turn down the music, then go to settings and enable speech with screen reader, using speech dispatcher."
|
||||
echo "You may then press page up to set the music to your liking."
|
||||
alert
|
@ -3,3 +3,4 @@ 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"
|
||||
|
@ -3,5 +3,6 @@ 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
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -10,3 +10,4 @@ fi
|
||||
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
|
||||
mkdir -p "${installPath}/"
|
||||
unzip -d "${installPath}/" "${cache}/${pkgname}"
|
||||
add_launcher "${installPath}/${pkgname%.*}/Zombowl"
|
||||
|
@ -2,3 +2,4 @@ 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"
|
||||
|
@ -1 +0,0 @@
|
||||
open_url "https://files.jantrid.net/aliens/"
|
@ -1,9 +0,0 @@
|
||||
mudPath="${installPath}/tintin-alteraeon/aa.tin"
|
||||
pushd "${mudPath%/*}"
|
||||
git pull | \
|
||||
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
if [[ -n "${COLORTERM}" ]]; then
|
||||
terminal_emulator tt++ ${mudPath##*/}
|
||||
else
|
||||
tt++ ${mudPath##*/}
|
||||
fi
|
@ -1,67 +0,0 @@
|
||||
configure_audio() {
|
||||
local sudo=$(command -v sudo)
|
||||
sudo="${sudo:-doas}"
|
||||
local audioProvider
|
||||
if pgrep pipewire &> /dev/null ; then
|
||||
audioProvider="pipewire"
|
||||
elif pgrep pulse &> /dev/null ; then
|
||||
audioProvider="pulseaudio"
|
||||
else
|
||||
audioProvider="alsa"
|
||||
fi
|
||||
lsmod | grep snd_aloop || $sudo modprobe snd_aloop
|
||||
cardNumber="$(aplay -l |grep -P '^card \d+: Loopback' |head -n1 | cut -d\ -f2 | cut -d: -f1)"
|
||||
if ! [[ "$cardNumber" =~ ^[0-9]+$ ]] ; then
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--msgbox "The loopback module card number was not properly set.\nThis could mean that you failed to type your password for root privileges, or something else has gone wrong.\n If you think root privileges were succesfully obtained, please report this to the maintainers. Mention the card value: ${cardNumber}." -1 -1
|
||||
exit 1
|
||||
fi
|
||||
alsaloop -C hw:${cardNumber},1,0 -P default &> /dev/null &
|
||||
}
|
||||
|
||||
|
||||
configure_webkit() {
|
||||
local webkitPath
|
||||
local sudo=$(command -v sudo)
|
||||
sudo="${sudo:-doas}"
|
||||
# First check if it's already properly set up
|
||||
[[ -d /usr/libexec/webkit2gtk-4.0 ]] && return 0
|
||||
webkitPath=$(find /usr/lib* /usr/local/lib* -type d -name 'webkit2gtk-4.0' 2>/dev/null | head -n1)
|
||||
if [[ -z "${webkitPath}" ]]; then
|
||||
dialog --backtitle "Linux Game manager" \
|
||||
--msgbox "Error: webkit2gtk-4.0 not found. Please install webkit2gtk package for your distribution." -1 -1
|
||||
exit 1
|
||||
fi
|
||||
# Create libexec directory if it doesn't exist
|
||||
if [[ ! -d /usr/libexec ]]; then
|
||||
if ! $sudo mkdir -p /usr/libexec; then
|
||||
echo "Error: Failed to create /usr/libexec directory"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if ! $sudo ln -s "${webkitPath}" /usr/libexec/webkit2gtk-4.0; then
|
||||
echo "Error: Failed to create symlink for webkit2gtk-4.0"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
set_sound_device() {
|
||||
if ! grep -q 'set s_device' "${installPath}/AudioQuake/data/id1/config.cfg" ; then
|
||||
echo "set s_device hw:${cardNumber},0,0" >> "${installPath}/AudioQuake/data/id1/config.cfg"
|
||||
else
|
||||
sed -E -i 's/set s_device/set s_device hw:${cardNumber},0,0/g' "${installPath}/AudioQuake/data/id1/config.cfg"
|
||||
fi
|
||||
if ! grep -q 'set s_device' "${installPath}/AudioQuake/data/oq/config.cfg" ; then
|
||||
echo "set s_device hw:${cardNumber},0,0" >> "${installPath}/AudioQuake/data/oq/config.cfg"
|
||||
else
|
||||
sed -E -i 's/set s_device/set s_device hw:${cardNumber},0,0/g' "${installPath}/AudioQuake/data/oq/config.cfg"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
trap 'pkill -P $$' EXIT
|
||||
configure_audio
|
||||
configure_webkit
|
||||
set_sound_device
|
||||
pushd "${installPath}/AudioQuake"
|
||||
./AudioQuake
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
${installPath}/Audo/Audo
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Auroboros/Auroboros"
|
@ -1,3 +0,0 @@
|
||||
check_architecture x86_64
|
||||
pushd "${installPath}/BallBouncer"
|
||||
${fex}./BallBouncer
|
@ -1 +0,0 @@
|
||||
open_url "https://lonespelunker.itch.io/battle-weary"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Bladius/Bladius"
|
@ -1 +0,0 @@
|
||||
open_url "https://tianmaru.itch.io/cacophony"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Chimera/Chimera"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/critter-sanctuary/linux.x86_64"
|
@ -1 +0,0 @@
|
||||
open_url "https://ko-fi.com/stormux"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/E.X.O./EXO"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Echo-Command/Echo_Command.x86_64"
|
@ -1,9 +0,0 @@
|
||||
mudPath="${installPath}/tintin-empiremud/em.tin"
|
||||
pushd "${mudPath%/*}"
|
||||
git pull | \
|
||||
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
if [[ -n "${COLORTERM}" ]]; then
|
||||
terminal_emulator tt++ ${mudPath##*/}
|
||||
else
|
||||
tt++ ${mudPath##*/}
|
||||
fi
|
@ -1,9 +0,0 @@
|
||||
mudPath="${installPath}/tintin-endoftime/eot.tin"
|
||||
pushd "${mudPath%/*}"
|
||||
git pull | \
|
||||
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
if [[ -n "${COLORTERM}" ]]; then
|
||||
terminal_emulator tt++ ${mudPath##*/}
|
||||
else
|
||||
tt++ ${mudPath##*/}
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/monkeyspank/monkeyspank"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/numnastics/numnastics"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Onslaught/onslaught.AppImage"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"
|
@ -1 +0,0 @@
|
||||
open_url "https://qcsalon.net/"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/S.E.A./SEA"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${launcherPath}/.scripts/SlayTheSpire.sh"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/slaythetext/main.py"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Soulblaze/Soulblaze.x86_64"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/StardewValley/StardewValley"
|
@ -1,10 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
mudPath="${installPath}/tintin-stickmud/stickmud.tin"
|
||||
pushd "${mudPath%/*}"
|
||||
git pull | \
|
||||
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
if [[ -n "${COLORTERM}" ]]; then
|
||||
terminal_emulator tt++ ${mudPath##*/}
|
||||
else
|
||||
tt++ ${mudPath##*/}
|
||||
fi
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
|
@ -1,3 +0,0 @@
|
||||
check_architecture x86_64
|
||||
pushd "${installPath}/The Tornado Chicken"
|
||||
${fex}./Ttc
|
@ -1 +0,0 @@
|
||||
open_url "https://ryngm.itch.io/trigaea"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Upheaval_Commandline/Upheaval_Command_Line"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Upheaval_Gui/Upheaval"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/Wurmus/Wurmus"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/${pkgname%.*}/Zombowl"
|
@ -1,2 +0,0 @@
|
||||
pushd "${installPath}"
|
||||
"${installPath}/soundStrider/soundStrider"
|
@ -1,8 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
launch_game() {
|
||||
pushd "${gamePath}"
|
||||
#echo "exec stdbuf -oL ${gzdoom} ${@} | speak"
|
||||
pushd "${doomPath}"
|
||||
exec stdbuf -oL ${gzdoom} ${@} | speak
|
||||
popd
|
||||
}
|
||||
@ -43,46 +42,38 @@ export gamePath=~/.local/games/doom
|
||||
export doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null | head -1)"
|
||||
|
||||
# Path to gzdoom or yadoom.
|
||||
if [[ -x "${BASH_SOURCE[0]%/*}/yadoom" ]]; then
|
||||
export gzdoom="$(readlink -f "${BASH_SOURCE[0]%/*}/yadoom")"
|
||||
if [[ -x "yadoom" ]]; then
|
||||
export gzdoom=$(readlink -f "yadoom")
|
||||
else
|
||||
export gzdoom="$(command -v gzdoom)"
|
||||
fi
|
||||
|
||||
# Version of the accessibility mod
|
||||
export tobyVersion="8-0"
|
||||
export tobyVersion="7-5"
|
||||
|
||||
|
||||
# Doom Addons
|
||||
mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "Toby*.pk3"
|
||||
find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
|
||||
mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
|
||||
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
|
||||
)
|
||||
# Heretic Addons
|
||||
mapfile -t hereticAddons < <(find "$gamePath/Addons/HERETIC/" -type f -name "TobyHeretic*.pk3"
|
||||
find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
|
||||
)
|
||||
# Hexen Addons
|
||||
mapfile -t hexenAddons < <(find "$gamePath/Addons/HEXEN/" -type f -name "TobyHexen*.pk3"
|
||||
find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
|
||||
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
|
||||
)
|
||||
|
||||
doomGames=(
|
||||
# Toby demo map
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
|
||||
# Unmodified Doom with accessibility.
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom"
|
||||
# Toby accessibility mods
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDoomLevels.wad ${doomAddons[*]}" "Freedoom Toby Delux Map Pack"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 TobyDoomLevels.wad Toby-Doom-Level-Music-Renamer.pk3 ${doomAddons[*]}" "Freedoom Toby Delux Map Pack"
|
||||
# OperationMDK
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
|
||||
# Unmodified Heretic with accessibility
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
|
||||
# Heretic accessibility mods
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic"
|
||||
# Unmodified Hexen with accessibility
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${hexenAddons[*]}" "Classic Hexen"
|
||||
# Heretic accessibility mods
|
||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyHexen.pk3 ${hexenAddons[*]}" "Toby Hexen"
|
||||
"TobyAccMod_V${tobyVersion}.pk3 TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic"
|
||||
"custom_game" "Custom Game"
|
||||
)
|
||||
|
||||
@ -99,8 +90,6 @@ export antiGrepStrings=(
|
||||
'-e' 'key card'
|
||||
'-e' '^New PDA Entry:'
|
||||
'-e' "^(As |Computer Voice:|Holy|I |I've|Monorail|Sector |Ugh|What|Where)"
|
||||
'-e' 'Script warning, "'
|
||||
'-e' 'Tried to define'
|
||||
)
|
||||
|
||||
export sedStrings=('-E'
|
||||
@ -155,7 +144,7 @@ translate_text() {
|
||||
|
||||
|
||||
custom_game() {
|
||||
mapfile -t customGames < <(find "${BASH_SOURCE[0]%/*}/TobyCustom/" -type f -iname '*.sh')
|
||||
mapfile -t customGames < <(find "${0%/*}/TobyCustom/" -type f -iname '*.sh')
|
||||
declare -a customMenu
|
||||
for i in "${customGames[@]}" ; do
|
||||
customMenu+=("$i")
|
||||
@ -201,7 +190,7 @@ case ${buttonCode} in
|
||||
1)
|
||||
# Death match setup
|
||||
# Ignore the choice of map made above
|
||||
gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDeathArena_V1-5.wad ""$gamePath/Addons/DOOM/TobyV*_"*
|
||||
gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/TobyDeathArena_V1-0.wad ""$gamePath/Addons/TobyV${tobVersion%%-*}_"*
|
||||
ipAddress="$(dialog --backtitle "Deathmatch Options" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
@ -228,9 +217,7 @@ case ${buttonCode} in
|
||||
"5" "Ocean Fortress (2-4 players)"
|
||||
"6" "Water Treatment Facility (2-4 players)"
|
||||
"7" "Phobos Base Site 4 (2-4 players)"
|
||||
"8" "Hangar Bay 18 (2-4 players)"
|
||||
"9" "Garden of Demon (2-4 players)"
|
||||
"10" "Outpost 69 (2-4 players)")
|
||||
"8" "Hangar Bay 18 (2-4 players)")
|
||||
# Array of how many players a given map supports in dialog rangebox syntax
|
||||
declare -a mapPlayers=(
|
||||
[1]="2 4"
|
||||
@ -240,9 +227,7 @@ case ${buttonCode} in
|
||||
[5]="2 4"
|
||||
[6]="2 4"
|
||||
[7]="2 4"
|
||||
[8]="2 4"
|
||||
[9]="2 4"
|
||||
[10]="2 4")
|
||||
[8]="2 4")
|
||||
map="$(dialog --backtitle "Select Map" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
@ -340,7 +325,7 @@ case ${buttonCode} in
|
||||
'-extratic' '-dup' '3'
|
||||
)
|
||||
fi
|
||||
pushd "${gamePath}"
|
||||
pushd "${doomPath}"
|
||||
launch_game ${gameOption} "${flags[@]}"
|
||||
;;
|
||||
0)
|
@ -1,8 +1,8 @@
|
||||
# Choice of maps
|
||||
mapList=(
|
||||
"${gamePath}/OpMDK.wad"
|
||||
"${gamePath}/Addons/MAPS/TobyDoomLevels.wad"
|
||||
"${gamePath}/Addons/MAPS/Toby-Demo-Level.wad"
|
||||
"${gamePath}/TobyDoomLevels.wad"
|
||||
"${gamePath}/Toby-Demo-Level.wad"
|
||||
)
|
||||
|
||||
declare -a mapMenu=('none' 'None')
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check for required wad.
|
||||
source ${BASH_SOURCE[0]%/*}/.dependencies
|
||||
source ${0%/*}/TobyCustom/.dependencies
|
||||
check_dependencies "${gamePath}/aoddoom1.wad" "https://www.moddb.com/mods/army-of-darkness-total-conversion/addons/army-of-darkness-doom-wad" "Place \"aoddoom1.wad\" in \"${gamePath}\"."
|
||||
|
||||
|
||||
@ -20,4 +20,4 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
||||
fi
|
||||
|
||||
source ${BASH_SOURCE[0]%/*}/.mapmenu
|
||||
source ${0%/*}/TobyCustom/.mapmenu
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check for required pk3.
|
||||
source ${BASH_SOURCE[0]%/*}/.dependencies
|
||||
source ${0%/*}/TobyCustom/.dependencies
|
||||
check_dependencies "${gamePath}/GMOTA_V.1.5.2.pk3" \
|
||||
"https://combine-kegan.itch.io/gmota" \
|
||||
"Place the file in ${gamePath}"
|
||||
@ -15,7 +15,7 @@ gameOption=(
|
||||
)
|
||||
|
||||
|
||||
source ${BASH_SOURCE[0]%/*}/.mapmenu
|
||||
source ${0%/*}/TobyCustom/.mapmenu
|
||||
flags=(
|
||||
# Key bindings
|
||||
'+bind Alt +altattack'
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check for required pk3.
|
||||
source ${BASH_SOURCE[0]%/*}/.dependencies
|
||||
source ${0%/*}/TobyCustom/.dependencies
|
||||
check_dependencies "${gamePath}/Project_Brutality.pk3" \
|
||||
"https://www.moddb.com/mods/project-brutality" \
|
||||
"This should be included by default." \
|
||||
@ -24,7 +24,7 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
||||
fi
|
||||
|
||||
source ${BASH_SOURCE[0]%/*}/.mapmenu
|
||||
source ${0%/*}/TobyCustom/.mapmenu
|
||||
flags=(
|
||||
# Key bindings
|
||||
'+bind Alt +altattack'
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check for required pk3.
|
||||
source ${BASH_SOURCE[0]%/*}/.dependencies
|
||||
source ${0%/*}/TobyCustom/.dependencies
|
||||
check_dependencies "${gamePath}/Project_Brutality-Latest.pk3" \
|
||||
"https://www.moddb.com/mods/project-brutality" \
|
||||
"This should be included by default." \
|
||||
@ -23,7 +23,7 @@ elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
||||
fi
|
||||
|
||||
source ${BASH_SOURCE[0]%/*}/.mapmenu
|
||||
source ${0%/*}/TobyCustom/.mapmenu
|
||||
flags=(
|
||||
# Key bindings
|
||||
'+bind Alt +altattack'
|
@ -10,4 +10,4 @@ gameOption=(
|
||||
"$gamePath/Addons/STARWARS/"*
|
||||
)
|
||||
|
||||
source ${BASH_SOURCE[0]%/*}/.mapmenu
|
||||
source ${0%/*}/TobyCustom/.mapmenu
|
@ -1,7 +1,7 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# check for required pk3.
|
||||
source ${BASH_SOURCE[0]%/*}/.dependencies
|
||||
source ${0%/*}/TobyCustom/.dependencies
|
||||
check_dependencies "${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" \
|
||||
"https://www.moddb.com/mods/wolfendoom/downloads/wolfendoom-enhanced" \
|
||||
"mkdir -p ${gamePath}/Addons/WOLFENDOOM/" \
|
@ -48,7 +48,7 @@ export DIALOGOPTS='--no-lines --visit-items'
|
||||
# Check for updates
|
||||
check_update() {
|
||||
local url="$(git ls-remote --get-url)"
|
||||
if [[ "$url" =~ ^[[:alnum:]]+@ ]] || [[ -z "$url" ]]; then
|
||||
if [[ "$url" =~ ^ssh://|git@ ]] || [[ -z "$url" ]]; then
|
||||
return
|
||||
fi
|
||||
git remote update > /dev/null 2>&1
|
||||
@ -72,7 +72,6 @@ check_update() {
|
||||
# Check architecture compatibility
|
||||
check_architecture() {
|
||||
if command -v FEXLoader &> /dev/null ; then
|
||||
export fex="FEXLoader -- "
|
||||
return
|
||||
fi
|
||||
local architecture="$(uname -m)"
|
||||
@ -152,7 +151,7 @@ desktop_launcher() {
|
||||
'Name=Linux game manager'
|
||||
'GenericName=Linux game Manager'
|
||||
'Comment=Install and launch games that are accessible to the blind'
|
||||
"Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'pushd $(readlink -e "${0%/*}");nohup ./"${0##*/}" 2> /dev/null'\""
|
||||
"Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'nohup $(readlink -e "$0") 2> /dev/null'\""
|
||||
'Terminal=false'
|
||||
'Type=Application'
|
||||
'StartupNotify=false'
|
||||
@ -233,18 +232,19 @@ download() {
|
||||
fi
|
||||
;;
|
||||
"wad")
|
||||
if [[ "$(file -b --mime-type "${cache}/${dest}")" == "application/octet-stream" ]]; then
|
||||
if [[ "$(file -b --mime-type "${cache}/${dest}")" != "application/octet-stream" ]]; then
|
||||
downloadError=0
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
# Add HTML check for other file types
|
||||
if file -b "${cache}/${dest}" | grep -q "HTML document" ; then
|
||||
downloadError=1
|
||||
echo "File not found: \"$i\" (HTML document probably 404)"
|
||||
downloadError=0
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
if [[ $downloadError -ne 0 ]]; then
|
||||
if [[ $downloadError -eq 0 ]]; then
|
||||
rm -fv "${cache}/${dest}"
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
|
||||
@ -332,9 +332,19 @@ help() {
|
||||
|
||||
# main script
|
||||
|
||||
add_launcher() {
|
||||
local launchSettings="${game}|${*}"
|
||||
if ! grep -F -q -x "${launchSettings}" "${configFile}" 2> /dev/null ; then
|
||||
echo "${launchSettings}" >> "${configFile}"
|
||||
sort -o "${configFile}" "${configFile}"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
# Install games
|
||||
game_installer() {
|
||||
# Get list of installed games from config file
|
||||
mapfile -t installedGames < <(sed '/^$/d' "${configFile}" 2> /dev/null | cut -d '|' -f1)
|
||||
# Create the menu of available games by reading from .install directory
|
||||
declare -a menuList
|
||||
# Get all .sh files from .install directory, excluding those starting with #, and sort them
|
||||
@ -388,66 +398,53 @@ game_installer() {
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
if [[ -e "${0%/*}/.launch/${game}.game" ]] && ! [[ -L "${0%/*}/.launch/${game}.sh" ]]; then
|
||||
ln -srf "${0%/*}/.launch/${game}.game" "${0%/*}/.launch/${game}.sh"
|
||||
fi
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
# remove games
|
||||
game_removal() {
|
||||
# Initialize array for menu construction
|
||||
mapfile -t menuList < <(
|
||||
if [[ -d ".launch" ]]; then
|
||||
find -L "${0%/*}/.launch" -maxdepth 1 -type f -iname "*.sh" -print0 | sort -z | xargs -0 bash -c '
|
||||
for f; do
|
||||
name="${f##*/}"
|
||||
echo "$f"
|
||||
echo "${name%.sh}"
|
||||
done' _
|
||||
fi
|
||||
)
|
||||
if [[ ${#menuList} -eq 0 ]]; then
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--msgbox "No games found." -1 -1
|
||||
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
|
||||
local selectedGame
|
||||
selectedGame=$(dialog --backtitle "Linux Game Manager" \
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
menuList+=("${i#*|}" "${i%|*}")
|
||||
done
|
||||
menuList+=("Donate" "Donate")
|
||||
menuList+=("Become a Patron" "Become a Patron")
|
||||
local game="$(dialog --backtitle "Audio Game Removal" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)
|
||||
exitCode=$?
|
||||
[[ $exitCode -ne 0 ]] && exit 0
|
||||
# Get the actual game file paths
|
||||
local gameName="${selectedGame##*/}"
|
||||
gameName="${gameName%.sh}"
|
||||
local gameFile="$(readlink -f "${0%/*}/.launch/${gameName}.sh")"
|
||||
# Get the actual installation path from the .game file
|
||||
local gameInstallPath
|
||||
gameInstallPath="$(grep -F "installPath" "$gameFile" | grep -v 'pushd' | head -n1)"
|
||||
gameInstallPath="${gameInstallPath#*/}"
|
||||
gameInstallPath="${installPath}/${gameInstallPath%/*}"
|
||||
if [[ -z "$gameInstallPath" ]] || [[ "${gameInstallPath%%/}" == "$installPath" ]]; then
|
||||
# No install path found, just remove from list
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--yesno "This will remove the game from your game list, but will not remove any files. Do you want to continue?" -1 -1 || exit 0
|
||||
# Remove only the .sh symlink
|
||||
rm -fv "${0%/*}/.launch/${gameName}.sh" | \
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--progressbox "Removing game from list..." -1 -1
|
||||
else
|
||||
# Found install path, can remove game files
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--yesno "This will remove the directory \"${gameInstallPath}\" and all of its contents. Do you want to continue?" -1 -1 || exit 0
|
||||
# Remove the game directory and symlink
|
||||
{ rm -rfv "${gameInstallPath}"
|
||||
rm -fv "${0%/*}/.launch/${gameName}.sh";
|
||||
} | dialog --backtitle "Linux Game Manager" \
|
||||
--progressbox "Removing game..." -1 -1
|
||||
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)"
|
||||
if [[ ${#game} -gt 0 ]]; then
|
||||
if [[ "$game" == "Donate" ]]; then
|
||||
open_url "https://ko-fi.com/stormux"
|
||||
exit 0
|
||||
fi
|
||||
if [[ "$game" == "Become a Patron" ]]; then
|
||||
open_url "https://2mb.games/product/2mb-patron/"
|
||||
exit 0
|
||||
fi
|
||||
fi
|
||||
local launcherPath="$(readlink -f "$0")"
|
||||
launcherPath="${launcherPath%/*}"
|
||||
local noRemove="no"
|
||||
if [[ "${game%/*}" =~ ^$launcherPath ]] ; then
|
||||
# The launcher is actually a script under lgm, do not remove.
|
||||
noRemove="yes"
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--yesno "This will remove the game from your game list, but will not remove any files. Do you want to continue?." -1 -1 --stdout || exit 0
|
||||
else
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--yesno "This will remove the directory \"${game%/*}\" and all of its contents. Do you want to continue?." -1 -1 --stdout || exit 0
|
||||
fi
|
||||
export noRemove
|
||||
{ [ "$noRemove" == "no" ] && rm -rfv "${game%/*}";
|
||||
sed -i "/${game//\//\\/}/d" "$configFile"; } | dialog --backtitle "Linux Game Manager" --progressbox "Removing game..." -1 -1
|
||||
exit 0
|
||||
}
|
||||
|
||||
@ -488,25 +485,20 @@ game_update() {
|
||||
|
||||
# launch games that are installed
|
||||
game_launcher() {
|
||||
# Initialize array for menu construction
|
||||
mapfile -t menuList < <(
|
||||
if [[ -d ".launch" ]]; then
|
||||
find -L "${0%/*}/.launch" -maxdepth 1 -type f -iname "*.sh" -print0 | sort -z | xargs -0 bash -c '
|
||||
for f; do
|
||||
[[ $(head -n1 "$f") =~ ^#$ ]] && continue
|
||||
name="${f##*/}"
|
||||
echo "$f"
|
||||
echo "${name%.sh}"
|
||||
done' _
|
||||
fi
|
||||
)
|
||||
if [[ ${#menuList} -eq 0 ]]; then
|
||||
dialog --backtitle "Linux Game Manager" \
|
||||
--msgbox "No games found." 5 20
|
||||
exit 0
|
||||
fi
|
||||
# Create the menu of all games
|
||||
selectedGame="$(dialog --backtitle "Linux Game Launcher" \
|
||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
||||
# Create the menu of installed games
|
||||
declare -a menuList
|
||||
for i in "${lines[@]}" ; do
|
||||
menuList+=("${i#*|}" "${i%|*}")
|
||||
done
|
||||
# Web based games and donation
|
||||
menuList+=("Aliens" "Aliens")
|
||||
menuList+=("Cacophony" "Cacophony")
|
||||
menuList+=("Battle Weary" "Battle Weary")
|
||||
menuList+=("QuentinC Play Room" "QuentinC Play Room")
|
||||
menuList+=("Trigaea" "Trigaea")
|
||||
menuList+=("Donate" "Donate")
|
||||
game="$(dialog --backtitle "Linux Game Launcher" \
|
||||
--clear \
|
||||
--no-tags \
|
||||
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
|
||||
@ -514,29 +506,56 @@ game_launcher() {
|
||||
if [[ $menuCode -eq 1 ]]; then
|
||||
exit 0
|
||||
fi
|
||||
. "${selectedGame}"
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
migrate_launcher() {
|
||||
# Check if config file exists
|
||||
[[ -f "${configFile}" ]] || return
|
||||
# Process each line of the config file
|
||||
while IFS= read -r line; do
|
||||
# Skip empty lines
|
||||
[[ -z "${line}" ]] && continue
|
||||
# Extract game name and path
|
||||
gameName="${line%|*}"
|
||||
# Create launcher script if it doesn't exist
|
||||
if [[ ! -L "${0%/*}/.launch/${gameName}.sh" ]]; then
|
||||
ln -srf "${0%/*}/.launch/${gameName}.game" "${0%/*}/.launch/${gameName}.sh"
|
||||
# Remove any trailing | from game variable.
|
||||
game="${game%|}"
|
||||
case "${game}" in
|
||||
"Aliens")
|
||||
open_url "https://files.jantrid.net/aliens/"
|
||||
;;
|
||||
"Battle Weary")
|
||||
open_url "https://lonespelunker.itch.io/battle-weary"
|
||||
;;
|
||||
"Cacophony")
|
||||
open_url "https://tianmaru.itch.io/cacophony"
|
||||
;;
|
||||
"QuentinC Play Room")
|
||||
open_url "https://qcsalon.net/"
|
||||
;;
|
||||
"Trigaea")
|
||||
open_url "https://ryngm.itch.io/trigaea"
|
||||
;;
|
||||
"Donate")
|
||||
open_url "https://ko-fi.com/stormux"
|
||||
;;
|
||||
*".tin")
|
||||
git -C "${game%/*}" pull | \
|
||||
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
if [[ -n "${COLORTERM}" ]]; then
|
||||
terminal_emulator tt++ ${game##*/}
|
||||
else
|
||||
pushd "${game%/*}"
|
||||
exec tt++ ${game##*/}
|
||||
fi
|
||||
done < <(sed '/^$/d' "${configFile}")
|
||||
# Move the old config file and notify user
|
||||
mv "${configFile}" "${configFile}.bak"
|
||||
dialog --backtitle "Linux Game manager" --msgbox \
|
||||
"Games have been converted to the new launch system.\nThe old game launch information has been moved to ${configFile}.bak\nIf everything works like you expect, feel free to delete ${configFile}" -1 -1
|
||||
;;
|
||||
*"main.py")
|
||||
pushd "${game%/*}"
|
||||
git pull -q | dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||
python3 ${game}
|
||||
;;
|
||||
*)
|
||||
pushd "${game%/*}"
|
||||
if file "${game##*/}" | grep -q "ELF.*x86-64"; then
|
||||
if [[ "$(uname -m)" != "x86_64" ]]; then
|
||||
exec FEXLoader -- ${game}
|
||||
else
|
||||
exec ${game}
|
||||
fi
|
||||
else
|
||||
exec ${game}
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
@ -564,7 +583,6 @@ 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}"
|
||||
migrate_launcher
|
||||
|
||||
|
||||
# Check for required packages
|
||||
|
Loading…
x
Reference in New Issue
Block a user