Compare commits

..

31 Commits

Author SHA1 Message Date
Storm Dragon
a38eee08cb Updated map menus for custom mods. 2024-12-26 19:31:39 -05:00
Storm Dragon
6237b20097 Updated Doom hash. 2024-12-26 18:38:32 -05:00
Storm Dragon
b32fe6f227 Actually update the hash for 8.0 so that it downloads the right file... 2024-12-26 17:15:20 -05:00
Storm Dragon
9e708f0bfa Transitional changes for FreeDoom, probably more to come. 2024-12-26 13:22:39 -05:00
Storm Dragon
c8ec64ec52 Fixed removal so it hopefully doesn't offer to remove ~/.local/games any more. 2024-12-26 12:42:27 -05:00
Storm Dragon
97a1ebaeeb Bash gave me a friendly reminder to bash -n before pushing changes. 2024-12-26 12:24:21 -05:00
Storm Dragon
8220cc8742 More updates to yadoom launch. 2024-12-26 12:22:35 -05:00
Storm Dragon
ee0e72fe6d Update path check for yadoom. 2024-12-26 12:08:36 -05:00
Storm Dragon
22b97be40a Fixed another problem with validation. I did all these backwards apparently. lol 2024-12-26 11:46:31 -05:00
Storm Dragon
da13890112 Updated Toby Doom installer and launcher. 2024-12-26 11:37:18 -05:00
549acb3445 Add the tornado chicken 2024-12-24 12:14:12 -08:00
Storm Dragon
5e42a45260 Fixed the desktop file creation function. You will need to recreate your desktop shortcut. 2024-12-24 11:12:36 -05:00
Storm Dragon
e1dd886fab Improvements to the launcher, move fex-emu check to launcher files. 2024-12-23 22:01:09 -05:00
Storm Dragon
ef1c67a116 Removed unneeded pushd. 2024-12-23 21:36:26 -05:00
Storm Dragon
a01f34dd02 One more removal fix. 2024-12-23 20:58:54 -05:00
Storm Dragon
ddb3e751c8 Fixed removal path for games. 2024-12-23 20:54:23 -05:00
Storm Dragon
30f36491f7 Updated the game removal function. 2024-12-23 20:41:51 -05:00
Storm Dragon
81eb291bea All games updated to the new launch system. Game launcher function updated to totally use the new system. Temporary migration function added to make sure everyone gets updated to the new system without having to do it manually. 2024-12-23 17:50:48 -05:00
Storm Dragon
97057bb1f2 Fixed a couple of path problems in custom doom launchers. 2024-12-23 12:55:54 -05:00
Storm Dragon
34e05f47a6 Massive update to launchers and installers. Working toward the new launcher system, things may still be broken but getting better. 2024-12-23 12:52:14 -05:00
Storm Dragon
b3ada38d9b Update Doom launcher to work better with the new launch system. Add some
other launchers for the switch to the new system.
2024-12-23 11:10:42 -05:00
Storm Dragon
af98ded87f Launcher added for Alter Aeon. 2024-12-23 02:35:53 -05:00
Storm Dragon
7c1a408ab2 .gitignore added. 2024-12-21 23:11:40 -05:00
Storm Dragon
abcaf32ec0 Audio Quake mostly working. 2024-12-21 22:03:01 -05:00
Storm Dragon
8258419f7c Audio Quake launcher added. Not working quite right yet. 2024-12-21 21:46:17 -05:00
Storm Dragon
ad0e7e3d7e Audio Quake Installer file created. 2024-12-21 21:02:54 -05:00
Storm Dragon
d29523316d More work on the new launch system. 2024-12-21 13:43:22 -05:00
Storm Dragon
ca2b6df08f Moved launcher files that require installation to a .game extension when installed, simlink it to a .sh when installed. This allows us to update launchers without causing conflicts with git pull. 2024-12-21 12:22:13 -05:00
Storm Dragon
cdfcf7aacf first code for moving to new game launch system, stuff is likely broken. 2024-12-21 12:09:13 -05:00
Storm Dragon
42b40489ce Resolved merge conflict. 2024-12-21 11:08:36 -05:00
Storm Dragon
1052425e70 Add support for fex-emu to launch games. 2024-12-15 20:37:36 -05:00
83 changed files with 319 additions and 176 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
nohup.out
/.launch/*.sh

View File

@ -1,4 +1,3 @@
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"

3
.install/Audio Quake.sh Normal file
View File

@ -0,0 +1,3 @@
check_architecture x86_64
download "https://michaels.world/aq-linux.zip"
unzip -d "${installPath}/AudioQuake" "${cache}/aq-linux.zip"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -4,4 +4,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -3,4 +3,3 @@ 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"

View File

@ -1,4 +1,3 @@
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"

View File

@ -1,4 +1,3 @@
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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -1,4 +1,4 @@
tobyVersion="7-5"
tobyVersion="8-0"
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/QmRjg1GSBmVCCtPv8GRTZSjNNDMjHEXE2k5hKxoBnYMFKQ?filename=TobyAccessibilityMod_V${tobyVersion}.zip"
download "${ipfsGateway}/ipfs/QmT6FEqeGTkf3Uv1dYqQ4LGYeRSjLk1R1FeyaFJwRFBocF?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,4 +56,3 @@ 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"

View File

@ -1,3 +1,2 @@
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"

View File

@ -1,3 +1,2 @@
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"

View File

@ -3,4 +3,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -56,4 +56,3 @@ for x in "${!mods[@]}" ; do
done
launcherPath="$(readlink -f "$0")"
launcherPath="${launcherPath%/*}"
add_launcher "${launcherPath}/.scripts/SlayTheSpire.sh"

View File

@ -1,4 +1,3 @@
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"

View File

@ -2,4 +2,3 @@ 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"

View File

@ -16,4 +16,3 @@ 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"

View File

@ -1,4 +1,3 @@
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"

View File

@ -3,4 +3,3 @@ 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"

View File

@ -0,0 +1,8 @@
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

View File

@ -3,4 +3,3 @@ 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"

View File

@ -3,6 +3,5 @@ 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

View File

@ -2,4 +2,3 @@ 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"

View File

@ -10,4 +10,3 @@ fi
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
mkdir -p "${installPath}/"
unzip -d "${installPath}/" "${cache}/${pkgname}"
add_launcher "${installPath}/${pkgname%.*}/Zombowl"

View File

@ -2,4 +2,3 @@ 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
.launch/Aliens.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://files.jantrid.net/aliens/"

9
.launch/Alter Aeon.game Normal file
View File

@ -0,0 +1,9 @@
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

67
.launch/Audio Quake.game Normal file
View File

@ -0,0 +1,67 @@
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

2
.launch/Audo.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
${installPath}/Audo/Audo

2
.launch/Auroboros.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Auroboros/Auroboros"

View File

@ -0,0 +1,3 @@
check_architecture x86_64
pushd "${installPath}/BallBouncer"
${fex}./BallBouncer

1
.launch/Battle Weary.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://lonespelunker.itch.io/battle-weary"

2
.launch/Bladius.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Bladius/Bladius"

1
.launch/Cacophony.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://tianmaru.itch.io/cacophony"

2
.launch/Chimera.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Chimera/Chimera"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/critter-sanctuary/linux.x86_64"

1
.launch/Donate.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://ko-fi.com/stormux"

2
.launch/E.X.O..game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/E.X.O./EXO"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Echo-Command/Echo_Command.x86_64"

9
.launch/EmpireMUD.game Normal file
View File

@ -0,0 +1,9 @@
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

9
.launch/End of Time.game Normal file
View File

@ -0,0 +1,9 @@
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

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"

View File

@ -1,7 +1,8 @@
#!/usr/bin/env bash
launch_game() {
pushd "${doomPath}"
pushd "${gamePath}"
#echo "exec stdbuf -oL ${gzdoom} ${@} | speak"
exec stdbuf -oL ${gzdoom} ${@} | speak
popd
}
@ -42,38 +43,46 @@ 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 "yadoom" ]]; then
export gzdoom=$(readlink -f "yadoom")
if [[ -x "${BASH_SOURCE[0]%/*}/yadoom" ]]; then
export gzdoom="$(readlink -f "${BASH_SOURCE[0]%/*}/yadoom")"
else
export gzdoom="$(command -v gzdoom)"
fi
# Version of the accessibility mod
export tobyVersion="7-5"
export tobyVersion="8-0"
# Doom Addons
mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
mapfile -t doomAddons < <(find "$gamePath/Addons/DOOM/" -type f -name "Toby*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "Toby*.pk3"
)
# Heretic Addons
mapfile -t hereticAddons < <(find "$gamePath/Addons/HERETIC/" -type f -name "TobyHeretic*.pk3"
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.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"
)
doomGames=(
# Toby demo map
"TobyAccMod_V${tobyVersion}.pk3 Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
# Unmodified Doom with accessibility.
"TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom"
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${doomAddons[*]}" "Freedoom"
# Toby accessibility mods
"TobyAccMod_V${tobyVersion}.pk3 TobyDoomLevels.wad Toby-Doom-Level-Music-Renamer.pk3 ${doomAddons[*]}" "Freedoom Toby Delux Map Pack"
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDoomLevels.wad ${doomAddons[*]}" "Freedoom Toby Delux Map Pack"
# OperationMDK
"TobyAccMod_V${tobyVersion}.pk3 OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
# Unmodified Heretic with accessibility
"TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
# Heretic accessibility mods
"TobyAccMod_V${tobyVersion}.pk3 TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic"
"${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"
"custom_game" "Custom Game"
)
@ -90,6 +99,8 @@ 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'
@ -144,7 +155,7 @@ translate_text() {
custom_game() {
mapfile -t customGames < <(find "${0%/*}/TobyCustom/" -type f -iname '*.sh')
mapfile -t customGames < <(find "${BASH_SOURCE[0]%/*}/TobyCustom/" -type f -iname '*.sh')
declare -a customMenu
for i in "${customGames[@]}" ; do
customMenu+=("$i")
@ -190,7 +201,7 @@ case ${buttonCode} in
1)
# Death match setup
# Ignore the choice of map made above
gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/TobyDeathArena_V1-0.wad ""$gamePath/Addons/TobyV${tobVersion%%-*}_"*
gameOption="${gamePath}/TobyAccMod_V${tobyVersion}.pk3 ${gamePath}/Addons/MAPS/TobyDeathArena_V1-5.wad ""$gamePath/Addons/DOOM/TobyV*_"*
ipAddress="$(dialog --backtitle "Deathmatch Options" \
--clear \
--no-tags \
@ -217,7 +228,9 @@ 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)")
"8" "Hangar Bay 18 (2-4 players)"
"9" "Garden of Demon (2-4 players)"
"10" "Outpost 69 (2-4 players)")
# Array of how many players a given map supports in dialog rangebox syntax
declare -a mapPlayers=(
[1]="2 4"
@ -227,7 +240,9 @@ case ${buttonCode} in
[5]="2 4"
[6]="2 4"
[7]="2 4"
[8]="2 4")
[8]="2 4"
[9]="2 4"
[10]="2 4")
map="$(dialog --backtitle "Select Map" \
--clear \
--no-tags \
@ -325,7 +340,7 @@ case ${buttonCode} in
'-extratic' '-dup' '3'
)
fi
pushd "${doomPath}"
pushd "${gamePath}"
launch_game ${gameOption} "${flags[@]}"
;;
0)

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/monkeyspank/monkeyspank"

2
.launch/Numnastics.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/numnastics/numnastics"

2
.launch/Onslaught.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Onslaught/onslaught.AppImage"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"

View File

@ -0,0 +1 @@
open_url "https://qcsalon.net/"

2
.launch/S.E.A..game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/S.E.A./SEA"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${launcherPath}/.scripts/SlayTheSpire.sh"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/slaythetext/main.py"

2
.launch/Soulblaze.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Soulblaze/Soulblaze.x86_64"

0
.launch/SoundRTS.game Normal file
View File

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/StardewValley/StardewValley"

10
.launch/StickMUD.game Normal file
View File

@ -0,0 +1,10 @@
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

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"

View File

@ -0,0 +1,3 @@
check_architecture x86_64
pushd "${installPath}/The Tornado Chicken"
${fex}./Ttc

View File

@ -1,8 +1,8 @@
# Choice of maps
mapList=(
"${gamePath}/OpMDK.wad"
"${gamePath}/TobyDoomLevels.wad"
"${gamePath}/Toby-Demo-Level.wad"
"${gamePath}/Addons/MAPS/TobyDoomLevels.wad"
"${gamePath}/Addons/MAPS/Toby-Demo-Level.wad"
)
declare -a mapMenu=('none' 'None')

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check for required wad.
source ${0%/*}/TobyCustom/.dependencies
source ${BASH_SOURCE[0]%/*}/.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 ${0%/*}/TobyCustom/.mapmenu
source ${BASH_SOURCE[0]%/*}/.mapmenu

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check for required pk3.
source ${0%/*}/TobyCustom/.dependencies
source ${BASH_SOURCE[0]%/*}/.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 ${0%/*}/TobyCustom/.mapmenu
source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=(
# Key bindings
'+bind Alt +altattack'

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check for required pk3.
source ${0%/*}/TobyCustom/.dependencies
source ${BASH_SOURCE[0]%/*}/.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 ${0%/*}/TobyCustom/.mapmenu
source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=(
# Key bindings
'+bind Alt +altattack'

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check for required pk3.
source ${0%/*}/TobyCustom/.dependencies
source ${BASH_SOURCE[0]%/*}/.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 ${0%/*}/TobyCustom/.mapmenu
source ${BASH_SOURCE[0]%/*}/.mapmenu
flags=(
# Key bindings
'+bind Alt +altattack'

View File

@ -10,4 +10,4 @@ gameOption=(
"$gamePath/Addons/STARWARS/"*
)
source ${0%/*}/TobyCustom/.mapmenu
source ${BASH_SOURCE[0]%/*}/.mapmenu

View File

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check for required pk3.
source ${0%/*}/TobyCustom/.dependencies
source ${BASH_SOURCE[0]%/*}/.dependencies
check_dependencies "${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" \
"https://www.moddb.com/mods/wolfendoom/downloads/wolfendoom-enhanced" \
"mkdir -p ${gamePath}/Addons/WOLFENDOOM/" \

1
.launch/Trigaea.sh Normal file
View File

@ -0,0 +1 @@
open_url "https://ryngm.itch.io/trigaea"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Upheaval_Commandline/Upheaval_Command_Line"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Upheaval_Gui/Upheaval"

2
.launch/Wurmus.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/Wurmus/Wurmus"

2
.launch/Zombowl.game Normal file
View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/${pkgname%.*}/Zombowl"

View File

@ -0,0 +1,2 @@
pushd "${installPath}"
"${installPath}/soundStrider/soundStrider"

View File

@ -48,7 +48,7 @@ export DIALOGOPTS='--no-lines --visit-items'
# Check for updates
check_update() {
local url="$(git ls-remote --get-url)"
if [[ "$url" =~ ^ssh://|git@ ]] || [[ -z "$url" ]]; then
if [[ "$url" =~ ^[[:alnum:]]+@ ]] || [[ -z "$url" ]]; then
return
fi
git remote update > /dev/null 2>&1
@ -72,6 +72,7 @@ check_update() {
# Check architecture compatibility
check_architecture() {
if command -v FEXLoader &> /dev/null ; then
export fex="FEXLoader -- "
return
fi
local architecture="$(uname -m)"
@ -151,7 +152,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 'nohup $(readlink -e "$0") 2> /dev/null'\""
"Exec=${terminal} -t \"Linux Game Manager\" -e \"/usr/bin/bash -c 'pushd $(readlink -e "${0%/*}");nohup ./"${0##*/}" 2> /dev/null'\""
'Terminal=false'
'Type=Application'
'StartupNotify=false'
@ -232,19 +233,18 @@ 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
echo "File not found: \"$i\" (HTML document probably 404)"
downloadError=0
downloadError=1
fi
;;
esac
if [[ $downloadError -eq 0 ]]; then
if [[ $downloadError -ne 0 ]]; then
rm -fv "${cache}/${dest}"
dialog --backtitle "Linux Game Manager" \
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
@ -332,19 +332,9 @@ 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
@ -398,53 +388,66 @@ 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() {
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
if [[ ${#lines} -eq 0 ]]; then
echo "No games found."
# 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
exit 0
fi
# Create the menu of installed games
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" \
local selectedGame
selectedGame=$(dialog --backtitle "Linux Game Manager" \
--clear \
--no-tags \
--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"
--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 --stdout || exit 0
--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 \"${game%/*}\" and all of its contents. Do you want to continue?." -1 -1 --stdout || exit 0
--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
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
}
@ -485,20 +488,25 @@ game_update() {
# launch games that are installed
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" \
# 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" \
--clear \
--no-tags \
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
@ -506,59 +514,32 @@ game_launcher() {
if [[ $menuCode -eq 1 ]]; then
exit 0
fi
# 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
;;
*"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
. "${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"
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
}
# If display isn't set assume we are launching from console and an X environment is running using display :0
# Warning, launching games from console is not recommended.
if [[ -z "$DISPLAY" ]]; then
@ -583,6 +564,7 @@ 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