Compare commits
53 Commits
dbf9174f96
...
testing
Author | SHA1 | Date | |
---|---|---|---|
91d1e29092 | |||
02b8a3e5a2 | |||
4509448c61 | |||
771fe5d956 | |||
4a0e6c83b8 | |||
69631769f8 | |||
06c3d87db0 | |||
c556aa73ee | |||
6a0fa006d9 | |||
27fac7e007 | |||
b489bb9a46 | |||
a33c4a3c23 | |||
a624691b0d | |||
c70c50255f | |||
0ac6d6fd57 | |||
ced1af728e | |||
c5c5996c23 | |||
f8e5b7ca75 | |||
e0e240848d | |||
9fbc149e19 | |||
8448d57710 | |||
99067d9e75 | |||
a38eee08cb | |||
6237b20097 | |||
b32fe6f227 | |||
9e708f0bfa | |||
c8ec64ec52 | |||
97a1ebaeeb | |||
8220cc8742 | |||
ee0e72fe6d | |||
22b97be40a | |||
da13890112 | |||
549acb3445 | |||
5e42a45260 | |||
e1dd886fab | |||
ef1c67a116 | |||
a01f34dd02 | |||
ddb3e751c8 | |||
30f36491f7 | |||
81eb291bea | |||
97057bb1f2 | |||
34e05f47a6 | |||
b3ada38d9b | |||
af98ded87f | |||
7c1a408ab2 | |||
abcaf32ec0 | |||
8258419f7c | |||
ad0e7e3d7e | |||
d29523316d | |||
ca2b6df08f | |||
cdfcf7aacf | |||
42b40489ce | |||
1052425e70 |
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
nohup.out
|
||||||
|
/.launch/*.sh
|
@ -1,4 +1,5 @@
|
|||||||
|
game="${0##*/}"
|
||||||
|
game="${game%.sh}"
|
||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-alteraeon.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
||||||
add_launcher "${installPath}/tintin-alteraeon/aa.tin"
|
|
||||||
|
3
.install/Audio Quake.sh
Normal file
3
.install/Audio Quake.sh
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
check_architecture x86_64
|
||||||
|
download "https://michaels.world/aq-linux.zip"
|
||||||
|
unzip -d "${installPath}/AudioQuake" "${cache}/aq-linux.zip"
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "Audo-linux-x64.zip" "https://shiftbacktick.itch.io/audo"
|
get_installer "Audo-linux-x64.zip" "https://shiftbacktick.itch.io/audo"
|
||||||
mkdir -p "${installPath}/Audo"
|
mkdir -p "${installPath}/Audo"
|
||||||
unzip -d "${installPath}/Audo" "${cache}/Audo-linux-x64.zip"
|
unzip -d "${installPath}/Audo" "${cache}/Audo-linux-x64.zip"
|
||||||
add_launcher "${installPath}/Audo/Audo"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "Auroboros-linux-x64.zip" "https://shiftbacktick.itch.io/auroboros"
|
get_installer "Auroboros-linux-x64.zip" "https://shiftbacktick.itch.io/auroboros"
|
||||||
mkdir -p "${installPath}/Auroboros"
|
mkdir -p "${installPath}/Auroboros"
|
||||||
unzip -d "${installPath}/Auroboros" "${cache}/Auroboros-linux-x64.zip"
|
unzip -d "${installPath}/Auroboros" "${cache}/Auroboros-linux-x64.zip"
|
||||||
add_launcher "${installPath}/Auroboros/Auroboros"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
download "https://files.sooslandia.ru/BallBouncer/1.2.1/BallBouncer-linux-1.2.1.zip"
|
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"
|
unzip -d "${installPath}/" "${cache}/BallBouncer-linux-1.2.1.zip"
|
||||||
chmod +x "${installPath}/BallBouncer/BallBouncer"
|
chmod +x "${installPath}/BallBouncer/BallBouncer"
|
||||||
add_launcher "${installPath}/BallBouncer/BallBouncer"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "Bladius-linux-x64.zip" "https://shiftbacktick.itch.io/bladius"
|
get_installer "Bladius-linux-x64.zip" "https://shiftbacktick.itch.io/bladius"
|
||||||
mkdir -p "${installPath}/Bladius"
|
mkdir -p "${installPath}/Bladius"
|
||||||
unzip -d "${installPath}/Bladius" "${cache}/Bladius-linux-x64.zip"
|
unzip -d "${installPath}/Bladius" "${cache}/Bladius-linux-x64.zip"
|
||||||
add_launcher "${installPath}/Bladius/Bladius"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "Chimera-linux-x64.zip" "https://shiftbacktick.itch.io/chimera"
|
get_installer "Chimera-linux-x64.zip" "https://shiftbacktick.itch.io/chimera"
|
||||||
mkdir -p "${installPath}/Chimera"
|
mkdir -p "${installPath}/Chimera"
|
||||||
unzip -d "${installPath}/Chimera" "${cache}/Chimera-linux-x64.zip"
|
unzip -d "${installPath}/Chimera" "${cache}/Chimera-linux-x64.zip"
|
||||||
add_launcher "${installPath}/Chimera/Chimera"
|
|
||||||
|
@ -4,4 +4,3 @@ mkdir -p "${installPath}/critter-sanctuary"
|
|||||||
unzip -d "${installPath}/critter-sanctuary" "${cache}/critter-sanctuary-linux.zip"
|
unzip -d "${installPath}/critter-sanctuary" "${cache}/critter-sanctuary-linux.zip"
|
||||||
mkdir -p "${XDG_DATA_HOME:-${HOME}/.local}/share/godot/app_userdata/OverworldMovementEngine"
|
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"
|
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,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo"
|
get_installer "EXO-linux-x64.zip" "https://shiftbacktick.itch.io/exo"
|
||||||
mkdir -p "${installPath}/E.X.O."
|
mkdir -p "${installPath}/E.X.O."
|
||||||
unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip"
|
unzip -d "${installPath}/E.X.O." "${cache}/EXO-linux-x64.zip"
|
||||||
add_launcher "${installPath}/E.X.O./EXO"
|
|
||||||
|
@ -3,4 +3,3 @@ get_installer "Echo Command.tar.xz" "https://pancakedev.itch.io/echo-command"
|
|||||||
mkdir -p "${installPath}/Echo-Command"
|
mkdir -p "${installPath}/Echo-Command"
|
||||||
tar xf "${cache}/Echo Command.tar.xz" -C "${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"
|
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,4 +1,5 @@
|
|||||||
|
game="${0##*/}"
|
||||||
|
game="${game%.sh}"
|
||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/lilmike/tintin-empiremud.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
||||||
add_launcher "${installPath}/tintin-empiremud/em.tin"
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
|
game="${0##*/}"
|
||||||
|
game="${game%.sh}"
|
||||||
check_dependencies git opusdec sox tt++
|
check_dependencies git opusdec sox tt++
|
||||||
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
|
git -C "${installPath}/" clone https://git.2mb.codes/~stormdragon2976/tintin-endoftime | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
||||||
add_launcher "${installPath}/tintin-endoftime/eot.tin"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "FS2_3.0_Linux.zip" "https://drive.google.com/file/d/15Y5nxR1zl9vVNzMilpaXdCSBFhNUIDC9/view"
|
get_installer "FS2_3.0_Linux.zip" "https://drive.google.com/file/d/15Y5nxR1zl9vVNzMilpaXdCSBFhNUIDC9/view"
|
||||||
unzip -d "${installPath}" "${cache}/FS2_3.0_Linux.zip"
|
unzip -d "${installPath}" "${cache}/FS2_3.0_Linux.zip"
|
||||||
chmod +x "${installPath}/FS2_3.0_Linux/fs2.x86_64"
|
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="7-5"
|
tobyVersion="8-0"
|
||||||
mkdir -p "${installPath}/doom"
|
mkdir -p "${installPath}/doom"
|
||||||
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
|
doomPath="$(find /usr/share -type d -name "doom" 2> /dev/null)"
|
||||||
if [[ ${#doomPath} -lt 5 ]]; then
|
if [[ ${#doomPath} -lt 5 ]]; then
|
||||||
@ -37,16 +37,16 @@ dialog --backtitle "Linux Game manager" \
|
|||||||
fi
|
fi
|
||||||
# The url breaks the normal download function
|
# The url breaks the normal download function
|
||||||
download_named "keyshare-universal.pk3" "https://forum.zdoom.org/download/file.php?id=42262"
|
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}/DoomMetalVol6.wad" ]] && mv "${cache}/DoomMetalVol6.wad" "${installPath}/doom"
|
||||||
[[ -e "${cache}/DoomMetalVol7.wad" ]] && mv "${cache}/DoomMetalVol7.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}/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"
|
cp -v "${cache}/keyshare-universal.pk3" "${installPath}/doom"
|
||||||
rm -fv "${installPath}/doom/"*.{ahk,bat,exe,dll,ps1}
|
rm -fv "${installPath}/doom/"*.{ahk,bat,exe,dll,ps1}
|
||||||
if [[ -e /usr/share/doom/blasphem.wad ]]; then
|
#if [[ -e /usr/share/doom/blasphem.wad ]]; then
|
||||||
ln -s /usr/share/doom/blasphem.wad "${installPath}/doom/"
|
#ln -s /usr/share/doom/blasphem.wad "${installPath}/doom/"
|
||||||
fi
|
#fi
|
||||||
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom"
|
mkdir -p "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom"
|
||||||
cp "${installPath}/doom/TobyConfig.ini" "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
|
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/"
|
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"
|
# sed -i 's/Mouse1=+attack/CTRL=+attack/' "${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
|
||||||
launcherPath="$(readlink -f "$0")"
|
launcherPath="$(readlink -f "$0")"
|
||||||
launcherPath="${launcherPath%/*}"
|
launcherPath="${launcherPath%/*}"
|
||||||
add_launcher "${launcherPath}/.scripts/FreeDoom.sh"
|
|
5
.install/Legends of Kallisti.sh
Normal file
5
.install/Legends of Kallisti.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
game="${0##*/}"
|
||||||
|
game="${game%.sh}"
|
||||||
|
check_dependencies git sox tt++
|
||||||
|
git -C "${installPath}/" clone --recurse-submodules https://github.com:hjozwiak/tintin-kallisti-pack | \
|
||||||
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
@ -1,3 +1,2 @@
|
|||||||
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
|
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
|
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/monkeyspank.git
|
||||||
add_launcher "${installPath}/monkeyspank/monkeyspank"
|
|
||||||
|
@ -1,3 +1,2 @@
|
|||||||
check_dependencies python-pygame:pygame python-xdg:xdg python-pyperclip:pyperclip python-requests:requests python-setproctitle:setproctitle
|
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
|
git -C "${installPath}" clone --recurse-submodules https://gitlab.com/stormdragon2976/numnastics.git
|
||||||
add_launcher "${installPath}/numnastics/numnastics"
|
|
||||||
|
@ -3,4 +3,3 @@ get_installer "onslaught.AppImage" "https://lightsoutgames.itch.io/onslaught"
|
|||||||
mkdir -p "${installPath}/Onslaught"
|
mkdir -p "${installPath}/Onslaught"
|
||||||
cp -v "${cache}/onslaught.AppImage" "${installPath}/Onslaught/onslaught.AppImage"
|
cp -v "${cache}/onslaught.AppImage" "${installPath}/Onslaught/onslaught.AppImage"
|
||||||
chmod +x "${installPath}/Onslaught/onslaught.AppImage"
|
chmod +x "${installPath}/Onslaught/onslaught.AppImage"
|
||||||
add_launcher "${installPath}/Onslaught/onslaught.AppImage"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "periphery-synthetic-ep-linux-x64.zip" "https://shiftbacktick.itch.io/periphery-synthetic-ep"
|
get_installer "periphery-synthetic-ep-linux-x64.zip" "https://shiftbacktick.itch.io/periphery-synthetic-ep"
|
||||||
mkdir -p "${installPath}/periphery-synthetic-ep"
|
mkdir -p "${installPath}/periphery-synthetic-ep"
|
||||||
unzip -d "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip"
|
unzip -d "${installPath}/periphery-synthetic-ep" "${cache}/periphery-synthetic-ep-linux-x64.zip"
|
||||||
add_launcher "${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea"
|
get_installer "SEA-linux-x64.zip" "https://shiftbacktick.itch.io/sea"
|
||||||
mkdir -p "${installPath}/S.E.A."
|
mkdir -p "${installPath}/S.E.A."
|
||||||
unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip"
|
unzip -d "${installPath}/S.E.A." "${cache}/SEA-linux-x64.zip"
|
||||||
add_launcher "${installPath}/S.E.A./SEA"
|
|
||||||
|
@ -1,24 +1,39 @@
|
|||||||
check_architecture x86_64
|
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
|
check_dependencies steamcmd
|
||||||
|
alert
|
||||||
|
dialog --backtitle "Linux Game manager" \
|
||||||
|
--msgbox \
|
||||||
|
"Please note this requires the game to be available either in your Steam library\nor as the installer purchased from gog.com.\nIf using the gog.com installer, please use the default path when prompted." -1 -1 --stdout
|
||||||
|
dialog --backtitle "Linux Game Manager" \
|
||||||
|
--yes-label "GOG" \
|
||||||
|
--no-label "Steam" \
|
||||||
|
--yesno "Select installation method" -1 -1 --stdout
|
||||||
|
installationMethod=$?
|
||||||
appId="646570"
|
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
|
gogFileName="slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh"
|
||||||
|
if [[ $installMethod -eq 1 ]]; then
|
||||||
|
# Steam Installation
|
||||||
echo "Please enter Steam user name:"
|
echo "Please enter Steam user name:"
|
||||||
read -er steamUser
|
read -er steamUser
|
||||||
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit
|
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire" +login "$steamUser" +app_update "$appId" +quit
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
dialog --backtitle "Linux Game Manager" \
|
||||||
|
--msgbox "Error installing game through Steam." -1 -1 --stdout
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
DISPLAY=""
|
# GOG Installation
|
||||||
find ~/Downloads -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \; ||
|
get_installer "$gogFileName" "https://www.gog.com/en/game/slay_the_spire"
|
||||||
find ~/Desktop -maxdepth 1 -type f -name 'slay_the_spire_2020_12_15_8735c9fe3cc2280b76aa3ec47c953352a7df1f65_43444.sh' -exec bash "{}" \;
|
DISPLAY="" find ~/Downloads -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \; ||
|
||||||
|
DISPLAY="" find ~/Desktop -maxdepth 1 -type f -name "$gogFileName" -exec bash "{}" \;
|
||||||
if [[ $? -eq 0 ]]; then
|
if [[ $? -eq 0 ]]; then
|
||||||
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
|
ln -sf "${HOME}/GOG Games/Slay the Spire/game" "${installPath}/SlayTheSpire" ||
|
||||||
{ echo "Error creating link."
|
{ dialog --backtitle "Linux Game Manager" \
|
||||||
|
--msgbox "Error creating link to game directory." -1 -1 --stdout
|
||||||
exit 1; }
|
exit 1; }
|
||||||
else
|
else
|
||||||
echo "Error installing game."
|
dialog --backtitle "Linux Game Manager" \
|
||||||
|
--msgbox "Error installing game from GOG installer." -1 -1 --stdout
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -33,7 +48,7 @@ else
|
|||||||
fi
|
fi
|
||||||
cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/"
|
cp -v .files/SlayTheSpire/MTS.sh "${HOME}/.local/games/SlayTheSpire/"
|
||||||
# Get mods
|
# Get mods
|
||||||
declare -A mods=(
|
declare -A modsMap=(
|
||||||
[mod the spire]=1605060445
|
[mod the spire]=1605060445
|
||||||
[base mod]=1605833019
|
[base mod]=1605833019
|
||||||
[stslib]=1609158507
|
[stslib]=1609158507
|
||||||
@ -42,18 +57,25 @@ declare -A mods=(
|
|||||||
[say the spire]=2239220106
|
[say the spire]=2239220106
|
||||||
)
|
)
|
||||||
installString=""
|
installString=""
|
||||||
for x in ${mods[@]} ; do
|
for modId in ${modsMap[@]} ; do
|
||||||
installString="$installString +workshop_download_item $appId $x"
|
installString="$installString +workshop_download_item $appId $modId"
|
||||||
done
|
done
|
||||||
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit
|
steamcmd +@sSteamCmdForcePlatformType linux +force_install_dir "${HOME}/.local/games/SlayTheSpire/" +login anonymous $installString +quit
|
||||||
|
if [[ $? -ne 0 ]]; then
|
||||||
|
dialog --backtitle "Linux Game Manager" \
|
||||||
|
--msgbox "Error installing required mods. Some accessibility features may not be available." -1 -1 --stdout
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
|
mkdir -p "$HOME/.local/games/SlayTheSpire/mods"
|
||||||
for x in "${!mods[@]}" ; do
|
for modName in "${!modsMap[@]}" ; do
|
||||||
if [ "$x" == "mod the spire" ] ; then
|
if [[ "$modName" == "mod the spire" ]]; then
|
||||||
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/"
|
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/"
|
||||||
else
|
else
|
||||||
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${mods[$x]}"/* "$HOME/.local/games/SlayTheSpire/mods/"
|
ln -sr "$HOME/.local/games/SlayTheSpire/steamapps/workshop/content/$appId/${modsMap[$modName]}"/* "$HOME/.local/games/SlayTheSpire/mods/"
|
||||||
|
fi
|
||||||
|
if [[ $? -ne 0 ]] && [[ "$modName" == "say the spire" ]]; then
|
||||||
|
dialog --backtitle "Linux Game Manager" \
|
||||||
|
--msgbox "Error installing SayTheSpire mod. Screen reader support will not be available." -1 -1 --stdout
|
||||||
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
launcherPath="$(readlink -f "$0")"
|
|
||||||
launcherPath="${launcherPath%/*}"
|
|
||||||
add_launcher "${launcherPath}/.scripts/SlayTheSpire.sh"
|
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
check_dependencies python-ansimarkup:ansimarkup
|
check_dependencies python-ansimarkup:ansimarkup
|
||||||
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
|
git -C "${installPath}/" clone https://github.com/Difio3333/slaythetext.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
||||||
add_launcher "${installPath}/slaythetext/main.py"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "soulblaze-linux-beta.zip" "https://sword-and-quill.itch.io/soulblaze"
|
get_installer "soulblaze-linux-beta.zip" "https://sword-and-quill.itch.io/soulblaze"
|
||||||
mkdir -p "${installPath}/Soulblaze"
|
mkdir -p "${installPath}/Soulblaze"
|
||||||
unzip -d "${installPath}/Soulblaze" "${cache}/soulblaze-linux-beta.zip"
|
unzip -d "${installPath}/Soulblaze" "${cache}/soulblaze-linux-beta.zip"
|
||||||
add_launcher "${installPath}/Soulblaze/Soulblaze.x86_64"
|
|
||||||
|
@ -16,4 +16,3 @@ alert
|
|||||||
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
|
bash "${smapiTmp}/SMAPI ${smapiVersion} installer/install on Linux.sh"
|
||||||
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
|
ln -sf "${HOME}/GOG Games/Stardew Valley/game" "${installPath}/StardewValley"
|
||||||
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
|
tar -xvf "${cache}/Mods.tar.xz" -C "${installPath}/StardewValley/"
|
||||||
add_launcher "${installPath}/StardewValley/StardewValley"
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
|
game="${0##*/}"
|
||||||
|
game="${game%.sh}"
|
||||||
check_dependencies git sox tt++
|
check_dependencies git sox tt++
|
||||||
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
|
git -C "${installPath}/" clone --recurse-submodules https://github.com/stormdragon2976/tintin-stickmud.git | \
|
||||||
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
dialog --progressbox "Installing \"${game}\", please wait..." -1 -1
|
||||||
add_launcher "${installPath}/tintin-stickmud/stickmud.tin"
|
|
||||||
|
@ -3,4 +3,3 @@ get_installer "system-fault-linux-x86_64.AppImage" "https://lightsoutgames.itch.
|
|||||||
mkdir -p "${installPath}/System_Fault"
|
mkdir -p "${installPath}/System_Fault"
|
||||||
cp -v "${cache}/system-fault-linux-x86_64.AppImage" "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
|
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"
|
chmod +x "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
|
||||||
add_launcher "${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
|
|
||||||
|
8
.install/The Tornado Chicken.sh
Normal file
8
.install/The Tornado Chicken.sh
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
check_architecture x86_64
|
||||||
|
get_installer "Ttc v3.2 linux.zip" "https://renzivan.itch.io/the-tornado-chicken"
|
||||||
|
unzip -d "${installPath}/The Tornado Chicken" "${cache}/Ttc v3.2 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,4 +3,3 @@ check_dependencies dmidecode
|
|||||||
get_installer "upheaval-linux-console.zip" "https://leonegaming.itch.io/upheaval"
|
get_installer "upheaval-linux-console.zip" "https://leonegaming.itch.io/upheaval"
|
||||||
mkdir -p "${installPath}/Upheaval_Commandline"
|
mkdir -p "${installPath}/Upheaval_Commandline"
|
||||||
unzip -d "${installPath}/Upheaval_Commandline" "${cache}/upheaval-linux-console.zip"
|
unzip -d "${installPath}/Upheaval_Commandline" "${cache}/upheaval-linux-console.zip"
|
||||||
add_launcher "${installPath}/Upheaval_Commandline/Upheaval_Command_Line"
|
|
||||||
|
@ -3,6 +3,5 @@ check_dependencies dmidecode
|
|||||||
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
|
get_installer "upheaval-linux.zip" "https://leonegaming.itch.io/upheaval"
|
||||||
mkdir -p "${installPath}/Upheaval_Gui"
|
mkdir -p "${installPath}/Upheaval_Gui"
|
||||||
unzip -d "${installPath}/Upheaval_Gui" "${cache}/upheaval-linux.zip"
|
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."
|
echo "To enable accessibility, press shift t when the game starts."
|
||||||
alert
|
alert
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "Wurmus-linux-x64.zip" "https://shiftbacktick.itch.io/wurmus"
|
get_installer "Wurmus-linux-x64.zip" "https://shiftbacktick.itch.io/wurmus"
|
||||||
mkdir -p "${installPath}/Wurmus"
|
mkdir -p "${installPath}/Wurmus"
|
||||||
unzip -d "${installPath}/Wurmus" "${cache}/Wurmus-linux-x64.zip"
|
unzip -d "${installPath}/Wurmus" "${cache}/Wurmus-linux-x64.zip"
|
||||||
add_launcher "${installPath}/Wurmus/Wurmus"
|
|
||||||
|
@ -10,4 +10,3 @@ fi
|
|||||||
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
|
get_installer "${pkgname}" "https://stormdragon2976.itch.io/zombowl"
|
||||||
mkdir -p "${installPath}/"
|
mkdir -p "${installPath}/"
|
||||||
unzip -d "${installPath}/" "${cache}/${pkgname}"
|
unzip -d "${installPath}/" "${cache}/${pkgname}"
|
||||||
add_launcher "${installPath}/${pkgname%.*}/Zombowl"
|
|
||||||
|
@ -2,4 +2,3 @@ check_architecture x86_64
|
|||||||
get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider"
|
get_installer "soundStrider-linux-x64.zip" "https://shiftbacktick.itch.io/soundstrider"
|
||||||
mkdir -p "${installPath}/soundStrider"
|
mkdir -p "${installPath}/soundStrider"
|
||||||
unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip"
|
unzip -d "${installPath}/soundStrider" "${cache}/soundStrider-linux-x64.zip"
|
||||||
add_launcher "${installPath}/soundStrider/soundStrider"
|
|
||||||
|
1
.launch/Aliens.sh
Normal file
1
.launch/Aliens.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://files.jantrid.net/aliens/"
|
9
.launch/Alter Aeon.game
Normal file
9
.launch/Alter Aeon.game
Normal 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 "${mudPath%/*}" "tt++" "${mudPath##*/}"
|
||||||
|
else
|
||||||
|
tt++ ${mudPath##*/}
|
||||||
|
fi
|
67
.launch/Audio Quake.game
Normal file
67
.launch/Audio Quake.game
Normal 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
2
.launch/Audo.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
${installPath}/Audo/Audo
|
2
.launch/Auroboros.game
Normal file
2
.launch/Auroboros.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Auroboros/Auroboros"
|
3
.launch/Ball Bouncer.game
Normal file
3
.launch/Ball Bouncer.game
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
check_architecture x86_64
|
||||||
|
pushd "${installPath}/BallBouncer"
|
||||||
|
${fex}./BallBouncer
|
1
.launch/Battle Weary.sh
Normal file
1
.launch/Battle Weary.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://lonespelunker.itch.io/battle-weary"
|
2
.launch/Bladius.game
Normal file
2
.launch/Bladius.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Bladius/Bladius"
|
1
.launch/Cacophony.sh
Normal file
1
.launch/Cacophony.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://tianmaru.itch.io/cacophony"
|
2
.launch/Chimera.game
Normal file
2
.launch/Chimera.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Chimera/Chimera"
|
2
.launch/Critter Sanctuary.game
Normal file
2
.launch/Critter Sanctuary.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/critter-sanctuary/linux.x86_64"
|
1
.launch/Donate.sh
Normal file
1
.launch/Donate.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://ko-fi.com/stormux"
|
2
.launch/E.X.O..game
Normal file
2
.launch/E.X.O..game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/E.X.O./EXO"
|
2
.launch/Echo Command.game
Normal file
2
.launch/Echo Command.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Echo-Command/Echo_Command.x86_64"
|
9
.launch/EmpireMUD.game
Normal file
9
.launch/EmpireMUD.game
Normal 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 "${mudPath%/*}" "tt++" "${mudPath##*/}"
|
||||||
|
else
|
||||||
|
tt++ ${mudPath##*/}
|
||||||
|
fi
|
9
.launch/End of Time.game
Normal file
9
.launch/End of Time.game
Normal 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 "${mudPath%/*}" "tt++" "${mudPath##*/}"
|
||||||
|
else
|
||||||
|
tt++ "${mudPath%/*}" "${mudPath##*/}"
|
||||||
|
fi
|
2
.launch/Fantasy Story II.game
Normal file
2
.launch/Fantasy Story II.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/FS2_3.0_Linux/fs2.x86_64" "-ESpeakApplication=espeak-ng"
|
11
.launch/FreeDoom.game
Executable file
11
.launch/FreeDoom.game
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
gamePath=~/.local/games/doom
|
||||||
|
check_dependencies python-pyside6:PySide6 python-setproctitle:setproctitle
|
||||||
|
pushd "${gamePath}"
|
||||||
|
if ! [[ -d "toby-doom-launcher" ]]; then
|
||||||
|
git clone https://git.stormux.org/storm/toby-doom-launcher.git
|
||||||
|
else
|
||||||
|
git -C "${gamePath}/toby-doom-launcher" pull
|
||||||
|
fi
|
||||||
|
"toby-doom-launcher/Toby Doom Launcher.py"
|
9
.launch/Legends of Kallisti.game
Normal file
9
.launch/Legends of Kallisti.game
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
mudPath="${installPath}/tintin-kallisti-pack/kallisti.tin"
|
||||||
|
pushd "${mudPath%/*}"
|
||||||
|
git pull | \
|
||||||
|
dialog --progressbox "Checking for updates, please wait..." -1 -1
|
||||||
|
if [[ -n "${COLORTERM}" ]]; then
|
||||||
|
terminal_emulator "${mudPath%/*}" "tt++" "${mudPath##*/}"
|
||||||
|
else
|
||||||
|
tt++ ${mudPath##*/}
|
||||||
|
fi
|
2
.launch/Monkey Spank.game
Normal file
2
.launch/Monkey Spank.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/monkeyspank/monkeyspank"
|
2
.launch/Numnastics.game
Normal file
2
.launch/Numnastics.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/numnastics/numnastics"
|
2
.launch/Onslaught.game
Normal file
2
.launch/Onslaught.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Onslaught/onslaught.AppImage"
|
2
.launch/Periphery Synthetic EP.game
Normal file
2
.launch/Periphery Synthetic EP.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/periphery-synthetic-ep/periphery-synthetic-ep"
|
1
.launch/QuentinC Play Room.sh
Normal file
1
.launch/QuentinC Play Room.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://qcsalon.net/"
|
2
.launch/S.E.A..game
Normal file
2
.launch/S.E.A..game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/S.E.A./SEA"
|
2
.launch/Slay the Text.game
Normal file
2
.launch/Slay the Text.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/slaythetext/main.py"
|
2
.launch/Soulblaze.game
Normal file
2
.launch/Soulblaze.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Soulblaze/Soulblaze.x86_64"
|
0
.launch/SoundRTS.game
Normal file
0
.launch/SoundRTS.game
Normal file
2
.launch/Stardew Valley.game
Normal file
2
.launch/Stardew Valley.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/StardewValley/StardewValley"
|
10
.launch/StickMUD.game
Normal file
10
.launch/StickMUD.game
Normal 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 "${mudPath%/*}" "tt++" "${mudPath##*/}"
|
||||||
|
else
|
||||||
|
tt++ ${mudPath##*/}
|
||||||
|
fi
|
2
.launch/System Fault.game
Normal file
2
.launch/System Fault.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/System_Fault/system-fault-linux-x86_64.AppImage"
|
3
.launch/The Tornado Chicken.game
Normal file
3
.launch/The Tornado Chicken.game
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
check_architecture x86_64
|
||||||
|
pushd "${installPath}/The Tornado Chicken"
|
||||||
|
${fex}./Ttc
|
1
.launch/Trigaea.sh
Normal file
1
.launch/Trigaea.sh
Normal file
@ -0,0 +1 @@
|
|||||||
|
open_url "https://ryngm.itch.io/trigaea"
|
2
.launch/Upheaval Commandline.game
Normal file
2
.launch/Upheaval Commandline.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Upheaval_Commandline/Upheaval_Command_Line"
|
2
.launch/Upheaval Gui.game
Normal file
2
.launch/Upheaval Gui.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Upheaval_Gui/Upheaval"
|
2
.launch/Wurmus.game
Normal file
2
.launch/Wurmus.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/Wurmus/Wurmus"
|
2
.launch/Zombowl.game
Normal file
2
.launch/Zombowl.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/${pkgname%.*}/Zombowl"
|
2
.launch/soundStrider.game
Normal file
2
.launch/soundStrider.game
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
pushd "${installPath}"
|
||||||
|
"${installPath}/soundStrider/soundStrider"
|
@ -1,339 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
launch_game() {
|
|
||||||
pushd "${doomPath}"
|
|
||||||
exec stdbuf -oL ${gzdoom} ${@} | speak
|
|
||||||
popd
|
|
||||||
}
|
|
||||||
|
|
||||||
speak() {
|
|
||||||
if pgrep cthulhu ; then
|
|
||||||
speechProvider="socat - UNIX-CLIENT:/tmp/cthulhu.sock"
|
|
||||||
else
|
|
||||||
speechProvider="spd-say -e ${spd_module} ${spd_pitch} ${spd_rate} ${spd_voice} ${spd_volume} --"
|
|
||||||
fi
|
|
||||||
startSpeech=1
|
|
||||||
while IFS= read -r line; do
|
|
||||||
echo "$line"
|
|
||||||
if [[ $startSpeech -eq 1 ]] && [[ "$line" =~ ^-{5,}$ ]]; then
|
|
||||||
startSpeech=0
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [[ $startSpeech -eq 0 ]]; then
|
|
||||||
line=$(echo "${line}" |
|
|
||||||
grep "${antiGrepStrings[@]}" |
|
|
||||||
sed "${sedStrings[@]}")
|
|
||||||
if [[ "$doomLanguage" != "en" ]]; then
|
|
||||||
line=$(translate_text "$line")
|
|
||||||
fi
|
|
||||||
echo "${line}" | $speechProvider
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
# Dialog setup:
|
|
||||||
DIALOG_ITEM_HELP=""
|
|
||||||
export DIALOGOPTS='--no-lines --visit-items'
|
|
||||||
|
|
||||||
|
|
||||||
# Toby games path
|
|
||||||
export gamePath=~/.local/games/doom
|
|
||||||
# Path where doom wads are stored
|
|
||||||
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")
|
|
||||||
else
|
|
||||||
export gzdoom="$(command -v gzdoom)"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Version of the accessibility mod
|
|
||||||
export tobyVersion="7-5"
|
|
||||||
|
|
||||||
|
|
||||||
# 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"
|
|
||||||
)
|
|
||||||
# Heretic Addons
|
|
||||||
mapfile -t hereticAddons < <(find "$gamePath/Addons/HERETIC/" -type f -name "TobyHeretic*.pk3"
|
|
||||||
find "$gamePath/Addons/MENU/" -type f -name "TobyV${tobyVersion%%-*}_*.pk3"
|
|
||||||
)
|
|
||||||
|
|
||||||
doomGames=(
|
|
||||||
# Toby demo map
|
|
||||||
"TobyAccMod_V${tobyVersion}.pk3 Toby-Demo-Level.wad ${doomAddons[*]}" "Freedoom Toby Demo Map"
|
|
||||||
# Unmodified Doom with accessibility.
|
|
||||||
"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"
|
|
||||||
# OperationMDK
|
|
||||||
"TobyAccMod_V${tobyVersion}.pk3 OpMDK.wad ${doomAddons[*]}" "Freedoom OperationMDK"
|
|
||||||
# Unmodified Heretic with accessibility
|
|
||||||
"TobyAccMod_V${tobyVersion}.pk3 ${hereticAddons[*]}" "Classic Heretic"
|
|
||||||
# Heretic accessibility mods
|
|
||||||
"TobyAccMod_V${tobyVersion}.pk3 TobyHereticLevels.wad ${hereticAddons[*]}" "Toby Heretic"
|
|
||||||
"custom_game" "Custom Game"
|
|
||||||
)
|
|
||||||
|
|
||||||
export antiGrepStrings=(
|
|
||||||
'-E' '-v'
|
|
||||||
'-e' '^----+$'
|
|
||||||
'-e' '^$'
|
|
||||||
'-e' '^[0-9]'
|
|
||||||
'-e' '^P_StartScript:'
|
|
||||||
'-e' '^(Facing |fluidsynth |INTRO|MAP[0-9]+|Music "|Unknown)'
|
|
||||||
'-e' '^(\[Toby Accessibility Mod\] )?READ.*'
|
|
||||||
'-e' '^ *TITLEMAP'
|
|
||||||
'-e' '^\[Toby Accessibility Mod\] (INTRO|READMe)([0-9]+).*'
|
|
||||||
'-e' 'key card'
|
|
||||||
'-e' '^New PDA Entry:'
|
|
||||||
'-e' "^(As |Computer Voice:|Holy|I |I've|Monorail|Sector |Ugh|What|Where)"
|
|
||||||
)
|
|
||||||
|
|
||||||
export sedStrings=('-E'
|
|
||||||
'-e' 's/^\[Toby Accessibility Mod\] M_/[Toby Accessibility Mod] /'
|
|
||||||
'-e' 's/^\[Toby Accessibility Mod\] //'
|
|
||||||
'-e' 's/^MessageBoxMenu$/Confirmation menu: Press Y for yes or N for no/'
|
|
||||||
'-e' 's/^Mainmenu$/Main menu/'
|
|
||||||
'-e' 's/^Skillmenu$/Difficulty menu/'
|
|
||||||
'-e' 's/^NGAME$/New game/'
|
|
||||||
'-e' 's/^(LOAD|SAVE|QUIT)G$/\1 game/'
|
|
||||||
'-e' 's/"cl_run" = "true"/run/'
|
|
||||||
'-e' 's/"cl_run" = "false"/walk/'
|
|
||||||
#'-e' 's:.*/:Game saved. \(:'
|
|
||||||
'-e' 's/UAC/U A C/'
|
|
||||||
'-e' 's/^\+//'
|
|
||||||
'-e' 's/ ?\*+ ?//g'
|
|
||||||
)
|
|
||||||
|
|
||||||
# Translation stuff
|
|
||||||
doomLanguage="${doomLanguage:-en}"
|
|
||||||
cache="${cache:-${XDG_CACHE_HOME:-$HOME/.cache}/linux-game-manager}"
|
|
||||||
translationDB="${cache}/doom_${doomLanguage}.sqlite"
|
|
||||||
|
|
||||||
# Function to initialize SQLite database
|
|
||||||
init_translation_db() {
|
|
||||||
mkdir -p "$cache"
|
|
||||||
if [[ ! -f "$translationDB" ]]; then
|
|
||||||
sqlite3 "$translationDB" <<EOF
|
|
||||||
CREATE TABLE translations (
|
|
||||||
original TEXT PRIMARY KEY,
|
|
||||||
translated TEXT
|
|
||||||
);
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
# Function to translate text
|
|
||||||
translate_text() {
|
|
||||||
local text="$1"
|
|
||||||
local translatedText
|
|
||||||
# Check if translation exists in database
|
|
||||||
translatedText=$(sqlite3 "$translationDB" "SELECT translated FROM translations WHERE original = ?;" "$text")
|
|
||||||
if [[ -n "$translatedText" ]]; then
|
|
||||||
echo "$translatedText"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
translatedText=$(trans -b -t "$doomLanguage" "$text")
|
|
||||||
# Store new translation in database
|
|
||||||
sqlite3 "$translationDB" "INSERT INTO translations (original, translated) VALUES (?, ?);" "$text" "$translatedText"
|
|
||||||
echo "$translatedText"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
custom_game() {
|
|
||||||
mapfile -t customGames < <(find "${0%/*}/TobyCustom/" -type f -iname '*.sh')
|
|
||||||
declare -a customMenu
|
|
||||||
for i in "${customGames[@]}" ; do
|
|
||||||
customMenu+=("$i")
|
|
||||||
title="${i##*/}"
|
|
||||||
title="${title//_/ }"
|
|
||||||
title="${title%.*}"
|
|
||||||
customMenu+=("$title")
|
|
||||||
done
|
|
||||||
customGame="$(dialog --backtitle "Select your Custom Doom!" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--menu "Please select one" 0 0 0 "${customMenu[@]}" --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
if [[ $buttonCode -eq 1 ]]; then
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
source "${customGame}"
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if [[ "$doomLanguage" != "en" ]]; then
|
|
||||||
init_translation_db
|
|
||||||
fi
|
|
||||||
|
|
||||||
gameOption="$(dialog --backtitle "Select your Doom!" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--ok-label "Single Player" \
|
|
||||||
--cancel-label "Death Match" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "co-op" \
|
|
||||||
--help-button \
|
|
||||||
--help-label "Exit" \
|
|
||||||
--menu "Please select one" 0 0 0 "${doomGames[@]}" --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol7.wad"
|
|
||||||
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol6.wad"
|
|
||||||
fi
|
|
||||||
|
|
||||||
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%%-*}_"*
|
|
||||||
ipAddress="$(dialog --backtitle "Deathmatch Options" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--ok-label "Join" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Host" \
|
|
||||||
--inputbox "Enter ip or URL, required for join." -1 -1 --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
[[ $buttonCode -eq 1 ]] && exit 0
|
|
||||||
if [[ $buttonCode -eq 0 ]]; then
|
|
||||||
if [[ "${#ipAddress}" -lt 3 ]]; then
|
|
||||||
dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
flags=('-join' "${ipAddress}")
|
|
||||||
else
|
|
||||||
# List of maps included:
|
|
||||||
maps=(
|
|
||||||
"1" "Com Station (2-4 players)"
|
|
||||||
"2" "Warehouse (2-4 players)"
|
|
||||||
"3" "Sector 3 (2-4 players)"
|
|
||||||
"4" "Dungeon of Doom (2-4 players)"
|
|
||||||
"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)")
|
|
||||||
# Array of how many players a given map supports in dialog rangebox syntax
|
|
||||||
declare -a mapPlayers=(
|
|
||||||
[1]="2 4"
|
|
||||||
[2]="2 4"
|
|
||||||
[3]="2 4"
|
|
||||||
[4]="2 4"
|
|
||||||
[5]="2 4"
|
|
||||||
[6]="2 4"
|
|
||||||
[7]="2 4"
|
|
||||||
[8]="2 4")
|
|
||||||
map="$(dialog --backtitle "Select Map" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${maps[@]}" --stdout)"
|
|
||||||
fraglimit="$(dialog --backtitle "Fraglimit" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select Fraglimit" -1 -1 1 500 20 --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
# Get ip address
|
|
||||||
yourIpAddress="$(curl -4s https://icanhazip.com)"
|
|
||||||
players="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select number of players. Remember to give them your IP address: ${yourIpAddress}" -1 -1 ${mapPlayers[$map]} --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
skillLevel="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Start" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Bots Only" \
|
|
||||||
--rangebox "Select difficulty. 1 easiest, 5 hardest." -1 -1 1 5 3 --stdout)"
|
|
||||||
code=$?
|
|
||||||
[[ $code -eq 1 ]] && exit 0
|
|
||||||
if [[ $code -eq 3 ]]; then
|
|
||||||
players=1
|
|
||||||
dialog --backtitle "Preparing to Launch" \
|
|
||||||
--msgbox "When the game starts, press \` to open the console. Type addbot, press enter. Repeat addbot for as many bots as you would like. Press \` again to close the console." -1 -1 --stdout
|
|
||||||
fi
|
|
||||||
flags=(
|
|
||||||
'-host' "${players}"
|
|
||||||
'-skill' "${skillLevel}"
|
|
||||||
'-deathmatch'
|
|
||||||
'+set' 'sv_cheats' '1'
|
|
||||||
'+fraglimit' "$fraglimit"
|
|
||||||
'+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096'
|
|
||||||
'+dmflags2' '512' '+dmflags2' '1024'
|
|
||||||
'-extratic' '-dup' '3'
|
|
||||||
'-warp' "$map"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
launch_game ${gameOption} "${flags[@]}"
|
|
||||||
;;
|
|
||||||
2)
|
|
||||||
# Exit was pressed, so exit.
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
3)
|
|
||||||
# Co-op setup
|
|
||||||
ipAddress="$(dialog --backtitle "Co-op Options" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--ok-label "Join" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Host" \
|
|
||||||
--inputbox "Enter ip or URL, required for join." -1 -1 --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
[[ $buttonCode -eq 1 ]] && exit 0
|
|
||||||
if [[ $buttonCode -eq 0 ]]; then
|
|
||||||
if [[ "${#ipAddress}" -lt 3 ]]; then
|
|
||||||
dialog --backtitle "Co-op" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
flags=("keyshare-universal.pk3" '-join' "${ipAddress}")
|
|
||||||
else
|
|
||||||
# Get ip address
|
|
||||||
yourIpAddress="$(curl -4s https://icanhazip.com)"
|
|
||||||
players="$(dialog --backtitle "Host Co-op Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select number of players. Remember to give them your IP address: ${yourIpAddress}" -1 -1 2 10 --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
skillLevel="$(dialog --backtitle "Host Co-op Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Start" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select difficulty. 1 easiest, 5 hardest." -1 -1 1 5 3 --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
flags=(
|
|
||||||
"keyshare-universal.pk3"
|
|
||||||
'-host' "${players}"
|
|
||||||
'-skill' "${skillLevel}"
|
|
||||||
'+set' 'sv_cheats' '1'
|
|
||||||
'+set' 'sv_weaponsstay' '1'
|
|
||||||
'+set' 'sv_respawnprotect' '1'
|
|
||||||
'+set' 'sv_respawnsuper' '1'
|
|
||||||
'+set' 'alwaysapplydmflags' ''1
|
|
||||||
'-extratic' '-dup' '3'
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
pushd "${doomPath}"
|
|
||||||
launch_game ${gameOption} "${flags[@]}"
|
|
||||||
;;
|
|
||||||
0)
|
|
||||||
if [[ "${gameOption%% *}" == "custom_game" ]]; then
|
|
||||||
custom_game
|
|
||||||
fi
|
|
||||||
launch_game ${gameOption[@]} "${flags[@]}"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
exit 0
|
|
@ -1,124 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
pushd "$doomPath"
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"$(find /usr/share/games/ -name 'Project_Brutality-master.pk3')"
|
|
||||||
"${doomPath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"${doomPath}/PB-Toby-Compatibility-Addon.pk3"
|
|
||||||
"${doomPath}/Toby-Universal-Pickup-Beacon-Prototype.pk3"
|
|
||||||
"${doomPath}/TobyDeathArena_V1-0.wad"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Death match setup
|
|
||||||
ipAddress="$(dialog --backtitle "Deathmatch Options" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--ok-label "Join" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Host" \
|
|
||||||
--inputbox "Enter ip or URL, required for join." -1 -1 --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
[[ $buttonCode -eq 1 ]] && exit 0
|
|
||||||
if [[ $buttonCode -eq 0 ]]; then
|
|
||||||
if [[ "${#ipAddress}" -lt 3 ]]; then
|
|
||||||
dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
flags=('-join' "${ipAddress}")
|
|
||||||
else
|
|
||||||
# List of maps included:
|
|
||||||
maps=(
|
|
||||||
"1" "Com Station (2-4 players)"
|
|
||||||
"2" "Warehouse (2-4 players)"
|
|
||||||
"3" "Sector 3 (2-4 players)"
|
|
||||||
"4" "Dungeon of Doom (2-4 players)"
|
|
||||||
"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)")
|
|
||||||
# Array of how many players a given map supports in dialog rangebox syntax
|
|
||||||
declare -a mapPlayers=(
|
|
||||||
[1]="2 4"
|
|
||||||
[2]="2 4"
|
|
||||||
[3]="2 4"
|
|
||||||
[4]="2 4"
|
|
||||||
[5]="2 4"
|
|
||||||
[6]="2 4"
|
|
||||||
[7]="2 4"
|
|
||||||
[8]="2 4")
|
|
||||||
map="$(dialog --backtitle "Select Map" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${maps[@]}" --stdout)"
|
|
||||||
fraglimit="$(dialog --backtitle "Fraglimit" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select Fraglimit" -1 -1 1 500 20 --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
# Get ip address
|
|
||||||
yourIpAddress="$(curl -4s https://icanhazip.com)"
|
|
||||||
players="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select number of players. Remember to give them your IP address: ${yourIpAddress}" -1 -1 ${mapPlayers[$map]} --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
skillLevel="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Start" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Bots Only" \
|
|
||||||
--rangebox "Select difficulty. 1 easiest, 5 hardest." -1 -1 1 5 3 --stdout)"
|
|
||||||
code=$?
|
|
||||||
[[ $code -eq 1 ]] && exit 0
|
|
||||||
if [[ $code -eq 3 ]]; then
|
|
||||||
players=1
|
|
||||||
dialog --backtitle "Preparing to Launch" \
|
|
||||||
--msgbox "When the game starts, press \` to open the console. Type addbot, press enter. Repeat addbot for as many bots as you would like. Press \` again to close the console." -1 -1 --stdout
|
|
||||||
fi
|
|
||||||
flags=(
|
|
||||||
'-host' "${players}"
|
|
||||||
'-skill' "${skillLevel}"
|
|
||||||
'-deathmatch'
|
|
||||||
'+set' 'sv_cheats' '1'
|
|
||||||
'+fraglimit' "$fraglimit"
|
|
||||||
'+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096'
|
|
||||||
'+dmflags2' '512' '+dmflags2' '1024'
|
|
||||||
'-extratic' '-dup' '3'
|
|
||||||
'-warp' "$map"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Check for and include if present a wad. Some people may not have it.
|
|
||||||
if [[ -e "${doomPath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol7.wad"
|
|
||||||
elif [[ -e "${doomPath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol6.wad"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Extend the search for new messages to be read.
|
|
||||||
grepStrings+=('-e' ' died.'
|
|
||||||
'-e' 'Ectoplasmic Surge!'
|
|
||||||
'-e' ' has been '
|
|
||||||
'-e' '^(Armor|Health) boosted!'
|
|
||||||
'-e' 'Lesser demon energy'
|
|
||||||
'-e' '^Found '
|
|
||||||
'-e' 'Got the '
|
|
||||||
'-e' 'Picked up '
|
|
||||||
'-e' '^(Mega|Soul)sphere$'
|
|
||||||
'-e' '^Took '
|
|
||||||
'-e' ' was .*(\.|!)'
|
|
||||||
'-e' '^Vanguard of the gods!$'
|
|
||||||
'-e' "You've found "
|
|
||||||
'-e' 'You (collected|got|found|picked up) ')
|
|
||||||
|
|
||||||
# Launch the game and pipe things to be spoken through speech-dispatcher.
|
|
||||||
# This also leaves the console output intact for people who may want to read it.
|
|
||||||
exec stdbuf -oL ${gzdoom} ${gameOption[@]} "${flags[@]}" | while IFS= read -r l ; do echo "$l" | { grep "${grepStrings[@]}" | grep "${antiGrepStrings[@]}" | sed "${sedStrings[@]}" | spd-say -e ${spd_module} ${spd_pitch} ${spd_rate} ${spd_voice} ${spd_volume} -- > /dev/null 2>&1; }; echo "$l";done
|
|
@ -1,23 +0,0 @@
|
|||||||
check_dependencies() {
|
|
||||||
if [[ $# -lt 2 ]]; then
|
|
||||||
dialog --backtitle "Linux Game Manager" \
|
|
||||||
--msgbox "Invalid call to check_dependencies(). Please check your code." -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
local packagePath="$1" # Path where the launcher will attempt the package, e.g. ${gamePath/Addons/PACKAGENAME/something.pk3
|
|
||||||
local packageURL="$2" # URL where the package can be downloaded.
|
|
||||||
shift 2
|
|
||||||
if [[ -e "${packagePath}" ]]; then
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
local message=(
|
|
||||||
"You are missing the \"${packagePath##/*}\" Package." $'\n'
|
|
||||||
"You can get it from \"${packageURL}\"" $'\n')
|
|
||||||
echo "${packageURL}" | DISPLAY="${DISPLAY:-:0}" xclip -selection clipboard && message+=("The URL has been copied to the clipboard." $'\n')
|
|
||||||
for i in "${@}" ; do
|
|
||||||
message+=("$i" $'\n')
|
|
||||||
done
|
|
||||||
dialog --backtitle "Linux Game Manager" \
|
|
||||||
--msgbox "${message[*]}" -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
}
|
|
@ -1,30 +0,0 @@
|
|||||||
# Choice of maps
|
|
||||||
mapList=(
|
|
||||||
"${gamePath}/OpMDK.wad"
|
|
||||||
"${gamePath}/TobyDoomLevels.wad"
|
|
||||||
"${gamePath}/Toby-Demo-Level.wad"
|
|
||||||
)
|
|
||||||
|
|
||||||
declare -a mapMenu=('none' 'None')
|
|
||||||
for i in "${mapList[@]}" ; do
|
|
||||||
if [[ -e "$i" ]]; then
|
|
||||||
title="${i##*/}"
|
|
||||||
title="${title%.*}"
|
|
||||||
title="${title/OpMDK/Operation MDK}"
|
|
||||||
title="${title/-/ }"
|
|
||||||
mapMenu+=("$i" "$title")
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
map="$(dialog --backtitle "Select Map" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${mapMenu[@]}" --stdout)"
|
|
||||||
[[ $? -ne 0 ]] && exit 0
|
|
||||||
if [[ "${map}" != "none" ]]; then
|
|
||||||
gameOption=("$map" "${gameOption[@]}")
|
|
||||||
fi
|
|
||||||
if [[ "${map}" == ""${gamePath}/TobyDoomLevels.wad"" ]]; then
|
|
||||||
gameOption=("$map" "${gameOption[@]}" "${gamePath}/Toby-Doom-Level-Music-Renamer.pk3")
|
|
||||||
fi
|
|
@ -1,23 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# check for required wad.
|
|
||||||
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}\"."
|
|
||||||
|
|
||||||
|
|
||||||
gamePath=~/.local/games/doom
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"${gamePath}/aoddoom1.wad"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check for and include if present a wad. Some people may not have it.
|
|
||||||
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol7.wad")
|
|
||||||
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ${0%/*}/TobyCustom/.mapmenu
|
|
@ -1,123 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
)
|
|
||||||
|
|
||||||
# Get a list of pk3s to use for the custom death match.
|
|
||||||
mapfile -t pk3List < <(find "${gamePath}" -maxdepth 1 -mindepth 1 -size +10M -iname '*.pk3')
|
|
||||||
if [[ -e "${gamePath}/aoddoom1.wad" ]]; then
|
|
||||||
pk3List+=("${gamePath}/aoddoom1.wad")
|
|
||||||
fi
|
|
||||||
|
|
||||||
declare -a pk3Menu
|
|
||||||
for i in "${pk3List[@]}" ; do
|
|
||||||
title="${i##*/}"
|
|
||||||
title="${title%.*}"
|
|
||||||
pk3Menu+=("${i}" "${title}")
|
|
||||||
done
|
|
||||||
|
|
||||||
# Death match setup
|
|
||||||
ipAddress="$(dialog --backtitle "Deathmatch Options" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--ok-label "Join" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Host" \
|
|
||||||
--inputbox "Enter ip or URL, required for join." -1 -1 --stdout)"
|
|
||||||
buttonCode=$?
|
|
||||||
[[ $buttonCode -eq 1 ]] && exit 0
|
|
||||||
pk3="$(dialog --backtitle "Select Customization" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${pk3Menu[@]}" --stdout)"
|
|
||||||
[[ $? -ne 0 ]] && exit 0
|
|
||||||
if [[ $buttonCode -eq 0 ]]; then
|
|
||||||
if [[ "${#ipAddress}" -lt 3 ]]; then
|
|
||||||
dialog --backtitle "Deathmatch" --clear --msgbox "No ip address or URL given." -1 -1 --stdout
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
flags=('-join' "${ipAddress}")
|
|
||||||
else
|
|
||||||
# List of maps included:
|
|
||||||
maps=(
|
|
||||||
"1" "Com Station (2-4 players)"
|
|
||||||
"2" "Warehouse (2-4 players)"
|
|
||||||
"3" "Sector 3 (2-4 players)"
|
|
||||||
"4" "Dungeon of Doom (2-4 players)"
|
|
||||||
"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)")
|
|
||||||
# Array of how many players a given map supports in dialog rangebox syntax
|
|
||||||
declare -a mapPlayers=(
|
|
||||||
[1]="2 4"
|
|
||||||
[2]="2 4"
|
|
||||||
[3]="2 4"
|
|
||||||
[4]="2 4"
|
|
||||||
[5]="2 4"
|
|
||||||
[6]="2 4"
|
|
||||||
[7]="2 4"
|
|
||||||
[8]="2 4")
|
|
||||||
map="$(dialog --backtitle "Select Map" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${maps[@]}" --stdout)"
|
|
||||||
fraglimit="$(dialog --backtitle "Fraglimit" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select Fraglimit" -1 -1 1 500 20 --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
# Get ip address
|
|
||||||
yourIpAddress="$(curl -4s https://icanhazip.com)"
|
|
||||||
players="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--rangebox "Select number of players. Remember to give them your IP address: ${yourIpAddress}" -1 -1 ${mapPlayers[$map]} --stdout)"
|
|
||||||
[[ $? -eq 1 ]] && exit 0
|
|
||||||
skillLevel="$(dialog --backtitle "Host Deathmatch Game" \
|
|
||||||
--clear \
|
|
||||||
--ok-label "Start" \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--extra-button \
|
|
||||||
--extra-label "Bots Only" \
|
|
||||||
--rangebox "Select difficulty. 1 easiest, 5 hardest." -1 -1 1 5 3 --stdout)"
|
|
||||||
code=$?
|
|
||||||
[[ $code -eq 1 ]] && exit 0
|
|
||||||
if [[ $code -eq 3 ]]; then
|
|
||||||
players=1
|
|
||||||
dialog --backtitle "Preparing to Launch" \
|
|
||||||
--msgbox "When the game starts, press \` to open the console. Type addbot, press enter. Repeat addbot for as many bots as you would like. Press \` again to close the console." -1 -1 --stdout
|
|
||||||
fi
|
|
||||||
flags=(
|
|
||||||
'-host' "${players}"
|
|
||||||
'-skill' "${skillLevel}"
|
|
||||||
'-deathmatch'
|
|
||||||
'+set' 'sv_cheats' '1'
|
|
||||||
'+fraglimit' "$fraglimit"
|
|
||||||
'+dmflags' '16384' '+dmflags' '4' '+dmflags' '128' '+dmflags' '4096'
|
|
||||||
'+dmflags2' '512' '+dmflags2' '1024'
|
|
||||||
'-extratic' '-dup' '3'
|
|
||||||
'-warp' "$map"
|
|
||||||
)
|
|
||||||
fi
|
|
||||||
|
|
||||||
gameOption+=("${pk3}"
|
|
||||||
"${gamePath}/TobyDeathArena_V1-0.wad"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check for and include if present a wad. Some people may not have it.
|
|
||||||
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol7.wad"
|
|
||||||
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=" DoomMetalVol6.wad"
|
|
||||||
fi
|
|
@ -1,31 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# check for required pk3.
|
|
||||||
source ${0%/*}/TobyCustom/.dependencies
|
|
||||||
check_dependencies "${gamePath}/GMOTA_V.1.5.2.pk3" \
|
|
||||||
"https://combine-kegan.itch.io/gmota" \
|
|
||||||
"Place the file in ${gamePath}"
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"$gamePath/Addons/DOOM/TobyV${tobyVersion%%-*}_Proximity.pk3"
|
|
||||||
"${gamePath}/GMOTA_V.1.5.2.pk3"
|
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
source ${0%/*}/TobyCustom/.mapmenu
|
|
||||||
flags=(
|
|
||||||
# Key bindings
|
|
||||||
'+bind Alt +altattack'
|
|
||||||
'+bind Ctrl +attack'
|
|
||||||
'+bind G +User1'
|
|
||||||
'+bind U unreloader'
|
|
||||||
# Variables
|
|
||||||
'+Toby_NarrationOutputType 2'
|
|
||||||
'+pb_exaggeratedrecoil false'
|
|
||||||
'+pb_weapon_recoil_mod_horizontal 0'
|
|
||||||
'+pb_weapon_recoil_mod_vertical 0'
|
|
||||||
'+vertspread true'
|
|
||||||
)
|
|
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# check for required pk3.
|
|
||||||
source ${0%/*}/TobyCustom/.dependencies
|
|
||||||
check_dependencies "${gamePath}/Project_Brutality.pk3" \
|
|
||||||
"https://www.moddb.com/mods/project-brutality" \
|
|
||||||
"This should be included by default." \
|
|
||||||
'If you are seeing this message, please reinstall after removing any TobyDoom files from ~/.cache/linux-game-manager.' \
|
|
||||||
'rm -f ~/.cache/linux-game-manager/TobyAccessibilityMod_Version*'
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"$gamePath/Addons/DOOM/TobyV${tobyVersion%%-*}_Proximity.pk3"
|
|
||||||
"${gamePath}/PB-Toby-Compatibility-Addon.pk3"
|
|
||||||
"${gamePath}/Project_Brutality.pk3"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check for and include if present a wad. Some people may not have it.
|
|
||||||
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol7.wad")
|
|
||||||
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ${0%/*}/TobyCustom/.mapmenu
|
|
||||||
flags=(
|
|
||||||
# Key bindings
|
|
||||||
'+bind Alt +altattack'
|
|
||||||
'+bind Ctrl +attack'
|
|
||||||
'+bind G +User1'
|
|
||||||
'+bind U unreloader'
|
|
||||||
# Variables
|
|
||||||
'+pb_exaggeratedrecoil false'
|
|
||||||
'+pb_weapon_recoil_mod_horizontal 0'
|
|
||||||
'+pb_weapon_recoil_mod_vertical 0'
|
|
||||||
'+vertspread true'
|
|
||||||
)
|
|
@ -1,39 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# check for required pk3.
|
|
||||||
source ${0%/*}/TobyCustom/.dependencies
|
|
||||||
check_dependencies "${gamePath}/Project_Brutality-Latest.pk3" \
|
|
||||||
"https://www.moddb.com/mods/project-brutality" \
|
|
||||||
"This should be included by default." \
|
|
||||||
'If you are seeing this message, please reinstall after removing any TobyDoom files from ~/.cache/linux-game-manager.' \
|
|
||||||
'rm -f ~/.cache/linux-game-manager/TobyAccessibilityMod_Version*'
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"$gamePath/Addons/DOOM/TobyV${tobyVersion%%-*}_Proximity.pk3"
|
|
||||||
"${gamePath}/Project_Brutality-Latest.pk3"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Check for and include if present a wad. Some people may not have it.
|
|
||||||
if [[ -e "${gamePath}/DoomMetalVol7.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol7.wad")
|
|
||||||
elif [[ -e "${gamePath}/DoomMetalVol6.wad" ]]; then
|
|
||||||
gameOption+=("${gamePath}/DoomMetalVol6.wad")
|
|
||||||
fi
|
|
||||||
|
|
||||||
source ${0%/*}/TobyCustom/.mapmenu
|
|
||||||
flags=(
|
|
||||||
# Key bindings
|
|
||||||
'+bind Alt +altattack'
|
|
||||||
'+bind Ctrl +attack'
|
|
||||||
'+bind G +User1'
|
|
||||||
'+bind U unreloader'
|
|
||||||
# Variables
|
|
||||||
'+Toby_NarrationOutputType 2'
|
|
||||||
'+pb_exaggeratedrecoil false'
|
|
||||||
'+pb_weapon_recoil_mod_horizontal 0'
|
|
||||||
'+pb_weapon_recoil_mod_vertical 0'
|
|
||||||
'+vertspread true'
|
|
||||||
)
|
|
@ -1,13 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# Extend sed strings to handle the player class menu
|
|
||||||
sedStrings+=('-e' 's/^Playerclassmenu$/Player class menu/')
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"${gamePath}/Xim-StarWars-v3.1.5.pk3"
|
|
||||||
"$gamePath/Addons/STARWARS/"*
|
|
||||||
)
|
|
||||||
|
|
||||||
source ${0%/*}/TobyCustom/.mapmenu
|
|
@ -1,38 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
# check for required pk3.
|
|
||||||
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/" \
|
|
||||||
"Place all pk3 files from the zip archive in:" \
|
|
||||||
"${gamePath}/Addons/WOLFENDOOM/" \
|
|
||||||
"There should be three of them noct_enh.pk3, orig_enh.pk3, and sod_enh.pk3"
|
|
||||||
|
|
||||||
# Set up the pk3 and wad files
|
|
||||||
gameOption=(
|
|
||||||
"${gamePath}/TobyAccMod_V${tobyVersion}.pk3"
|
|
||||||
"$gamePath/Addons/MENU/TobyV${tobyVersion%%-*}_"*
|
|
||||||
"$gamePath/Addons/DOOM/TobyV${tobyVersion%%-*}_"*"Proximity"*".pk3"
|
|
||||||
)
|
|
||||||
|
|
||||||
menuList=("${gamePath}/Addons/WOLFENDOOM/orig_enh.pk3" "WolfenDoom"
|
|
||||||
"${gamePath}/Addons/WOLFENDOOM/sod_enh.pk3" "WolfenDoom - Spear of Destiny"
|
|
||||||
"${gamePath}/Addons/WOLFENDOOM/noct_enh.pk3" "WolfenDoom - Nocturne"
|
|
||||||
)
|
|
||||||
|
|
||||||
pk3=$(dialog --backtitle "Select Game" \
|
|
||||||
--clear \
|
|
||||||
--no-tags \
|
|
||||||
--cancel-label "Exit" \
|
|
||||||
--ok-label "Next" \
|
|
||||||
--menu "Please select one" 0 0 0 "${menuList[@]}" --stdout)
|
|
||||||
[[ $? -ne 0 ]] && exit 0
|
|
||||||
gameOption+=("${pk3}")
|
|
||||||
flags=(
|
|
||||||
# Key bindings
|
|
||||||
'+bind Ctrl +attack'
|
|
||||||
'+bind X turn180'
|
|
||||||
# Variables
|
|
||||||
'+Toby_NarrationOutputType 2'
|
|
||||||
)
|
|
@ -1,88 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
|
|
||||||
# Function to check if a file is an IWAD
|
|
||||||
is_iwad() {
|
|
||||||
local file="$1"
|
|
||||||
[[ "${file,,}" =~ ipk3$ ]] && return 0
|
|
||||||
if [[ -f "$file" ]]; then
|
|
||||||
# Extract the first four bytes and check if they match the IWAD signature
|
|
||||||
if hexdump -n 4 -e '4/1 "%02X"' "$file" | grep -q '^49574144$'; then
|
|
||||||
return 0
|
|
||||||
else
|
|
||||||
return 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
iwad_menu() {
|
|
||||||
# Extract the Path= lines from the [IWADSearch.Directories] section
|
|
||||||
mapfile -t wadPaths < <(sed -n "/^\[IWADSearch.Directories\]/,/^\[/{/Path=/p;}" "$configFile" | cut -d '=' -f 2)
|
|
||||||
declare -A uniqueWads
|
|
||||||
for i in "${wadPaths[@]}"; do
|
|
||||||
if [[ -d "$i" ]]; then
|
|
||||||
while IFS= read -r -d $'\0' wad; do
|
|
||||||
if is_iwad "$wad"; then
|
|
||||||
wad_name=$(basename "$wad")
|
|
||||||
uniqueWads["${wad_name,,}"]="$wad"
|
|
||||||
fi
|
|
||||||
done < <(find "$i" -follow -maxdepth 1 -type f \( -iname '*.wad' -o -iname '*.ipk3' \) -print0)
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
wadList=("${uniqueWads[@]}")
|
|
||||||
# Set up the menu
|
|
||||||
declare -a wadMenu
|
|
||||||
for path in "${wadList[@]}" ; do
|
|
||||||
title="${path##*/}"
|
|
||||||
title="${title%.*}"
|
|
||||||
wadMenu+=("${title}" "${path}")
|
|
||||||
done
|
|
||||||
# Run yad to display the dialog
|
|
||||||
iwad=$(yad --list \
|
|
||||||
--title="Yadoom" \
|
|
||||||
--text="Select an Iwad" \
|
|
||||||
--column="Iwad" \
|
|
||||||
--column="Path" \
|
|
||||||
--button="Launch:0" \
|
|
||||||
--button="Close:1" \
|
|
||||||
--hide-column=2 \
|
|
||||||
--search-column=1 \
|
|
||||||
--skip-taskbar \
|
|
||||||
"${wadMenu[@]}")
|
|
||||||
yadCode="$?"
|
|
||||||
[[ ${yadCode} -eq 0 ]] || exit 0
|
|
||||||
iwad="${iwad#*|}"
|
|
||||||
iwad="${iwad%|}"
|
|
||||||
}
|
|
||||||
|
|
||||||
configFile="${XDG_CONFIG_HOME:-$HOME/.config}/gzdoom/gzdoom.ini"
|
|
||||||
declare -a gzdoomArgs
|
|
||||||
|
|
||||||
# Process arguments
|
|
||||||
while [[ $# -gt 0 ]]; do
|
|
||||||
case "$1" in
|
|
||||||
-c)
|
|
||||||
configFile="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-iwad|-i)
|
|
||||||
iwad="$2"
|
|
||||||
gzdoomArgs+=("-iwad" "$2")
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
gzdoomArgs+=("$1")
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
# If no IWAD specified, show the menu
|
|
||||||
if [[ -z "$iwad" ]]; then
|
|
||||||
iwad_menu
|
|
||||||
gzdoomArgs+=("-iwad" "$iwad")
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Launch GZDoom with all arguments
|
|
||||||
gzdoom "${gzdoomArgs[@]}"
|
|
@ -48,7 +48,7 @@ export DIALOGOPTS='--no-lines --visit-items'
|
|||||||
# Check for updates
|
# Check for updates
|
||||||
check_update() {
|
check_update() {
|
||||||
local url="$(git ls-remote --get-url)"
|
local url="$(git ls-remote --get-url)"
|
||||||
if [[ "$url" =~ ^ssh://|git@ ]] || [[ -z "$url" ]]; then
|
if [[ "$url" =~ ^[[:alnum:]]+@ ]] || [[ -z "$url" ]]; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
git remote update > /dev/null 2>&1
|
git remote update > /dev/null 2>&1
|
||||||
@ -72,6 +72,7 @@ check_update() {
|
|||||||
# Check architecture compatibility
|
# Check architecture compatibility
|
||||||
check_architecture() {
|
check_architecture() {
|
||||||
if command -v FEXLoader &> /dev/null ; then
|
if command -v FEXLoader &> /dev/null ; then
|
||||||
|
export fex="FEXLoader -- "
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
local architecture="$(uname -m)"
|
local architecture="$(uname -m)"
|
||||||
@ -110,13 +111,16 @@ check_dependencies() {
|
|||||||
|
|
||||||
# Function to open a terminal emulator
|
# Function to open a terminal emulator
|
||||||
terminal_emulator() {
|
terminal_emulator() {
|
||||||
|
# Arguments workingDirectory, rest of arguments
|
||||||
|
local workingDir="$1"
|
||||||
|
shift
|
||||||
terminals=(
|
terminals=(
|
||||||
"lxterminal"
|
"lxterminal"
|
||||||
"mate-terminal"
|
"mate-terminal"
|
||||||
"gnome-terminal"
|
"gnome-terminal"
|
||||||
)
|
)
|
||||||
for i in "${terminals[@]}" ; do
|
for i in "${terminals[@]}" ; do
|
||||||
if command $i --working-directory="${game%/*}" -e $* ; then
|
if command $i --working-directory="${workingDir}" -e "$@" ; then
|
||||||
return
|
return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
@ -151,7 +155,7 @@ desktop_launcher() {
|
|||||||
'Name=Linux game manager'
|
'Name=Linux game manager'
|
||||||
'GenericName=Linux game Manager'
|
'GenericName=Linux game Manager'
|
||||||
'Comment=Install and launch games that are accessible to the blind'
|
'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'
|
'Terminal=false'
|
||||||
'Type=Application'
|
'Type=Application'
|
||||||
'StartupNotify=false'
|
'StartupNotify=false'
|
||||||
@ -232,19 +236,18 @@ download() {
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
"wad")
|
"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
|
downloadError=0
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
# Add HTML check for other file types
|
# Add HTML check for other file types
|
||||||
if file -b "${cache}/${dest}" | grep -q "HTML document" ; then
|
if file -b "${cache}/${dest}" | grep -q "HTML document" ; then
|
||||||
echo "File not found: \"$i\" (HTML document probably 404)"
|
downloadError=1
|
||||||
downloadError=0
|
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
if [[ $downloadError -eq 0 ]]; then
|
if [[ $downloadError -ne 0 ]]; then
|
||||||
rm -fv "${cache}/${dest}"
|
rm -fv "${cache}/${dest}"
|
||||||
dialog --backtitle "Linux Game Manager" \
|
dialog --backtitle "Linux Game Manager" \
|
||||||
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
|
--infobox "Error downloading \"${dest}\". Installation cannot continue." -1 -1 --stdout
|
||||||
@ -332,19 +335,9 @@ help() {
|
|||||||
|
|
||||||
# main script
|
# 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
|
# Install games
|
||||||
game_installer() {
|
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
|
# Create the menu of available games by reading from .install directory
|
||||||
declare -a menuList
|
declare -a menuList
|
||||||
# Get all .sh files from .install directory, excluding those starting with #, and sort them
|
# Get all .sh files from .install directory, excluding those starting with #, and sort them
|
||||||
@ -398,53 +391,66 @@ game_installer() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
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
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# remove games
|
# remove games
|
||||||
game_removal() {
|
game_removal() {
|
||||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
# Initialize array for menu construction
|
||||||
if [[ ${#lines} -eq 0 ]]; then
|
mapfile -t menuList < <(
|
||||||
echo "No games found."
|
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
|
exit 0
|
||||||
fi
|
fi
|
||||||
# Create the menu of installed games
|
# Create the menu of installed games
|
||||||
declare -a menuList
|
local selectedGame
|
||||||
for i in "${lines[@]}" ; do
|
selectedGame=$(dialog --backtitle "Linux Game Manager" \
|
||||||
menuList+=("${i#*|}" "${i%|*}")
|
|
||||||
done
|
|
||||||
menuList+=("Donate" "Donate")
|
|
||||||
menuList+=("Become a Patron" "Become a Patron")
|
|
||||||
local game="$(dialog --backtitle "Audio Game Removal" \
|
|
||||||
--clear \
|
--clear \
|
||||||
--no-tags \
|
--no-tags \
|
||||||
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)"
|
--menu "Please select a game to delete" 0 0 0 "${menuList[@]}" --stdout)
|
||||||
if [[ ${#game} -gt 0 ]]; then
|
exitCode=$?
|
||||||
if [[ "$game" == "Donate" ]]; then
|
[[ $exitCode -ne 0 ]] && exit 0
|
||||||
open_url "https://ko-fi.com/stormux"
|
# Get the actual game file paths
|
||||||
exit 0
|
local gameName="${selectedGame##*/}"
|
||||||
fi
|
gameName="${gameName%.sh}"
|
||||||
if [[ "$game" == "Become a Patron" ]]; then
|
local gameFile="$(readlink -f "${0%/*}/.launch/${gameName}.sh")"
|
||||||
open_url "https://2mb.games/product/2mb-patron/"
|
# Get the actual installation path from the .game file
|
||||||
exit 0
|
local gameInstallPath
|
||||||
fi
|
gameInstallPath="$(grep -F "installPath" "$gameFile" | grep -v 'pushd' | head -n1)"
|
||||||
fi
|
gameInstallPath="${gameInstallPath#*/}"
|
||||||
local launcherPath="$(readlink -f "$0")"
|
gameInstallPath="${installPath}/${gameInstallPath%/*}"
|
||||||
launcherPath="${launcherPath%/*}"
|
if [[ -z "$gameInstallPath" ]] || [[ "${gameInstallPath%%/}" == "$installPath" ]]; then
|
||||||
local noRemove="no"
|
# No install path found, just remove from list
|
||||||
if [[ "${game%/*}" =~ ^$launcherPath ]] ; then
|
|
||||||
# The launcher is actually a script under lgm, do not remove.
|
|
||||||
noRemove="yes"
|
|
||||||
dialog --backtitle "Linux Game Manager" \
|
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
|
else
|
||||||
|
# Found install path, can remove game files
|
||||||
dialog --backtitle "Linux Game Manager" \
|
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
|
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
|
exit 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -485,20 +491,25 @@ game_update() {
|
|||||||
|
|
||||||
# launch games that are installed
|
# launch games that are installed
|
||||||
game_launcher() {
|
game_launcher() {
|
||||||
mapfile -t lines < <(sed '/^$/d' "${configFile}" 2> /dev/null)
|
# Initialize array for menu construction
|
||||||
# Create the menu of installed games
|
mapfile -t menuList < <(
|
||||||
declare -a menuList
|
if [[ -d ".launch" ]]; then
|
||||||
for i in "${lines[@]}" ; do
|
find -L "${0%/*}/.launch" -maxdepth 1 -type f -iname "*.sh" -print0 | sort -z | xargs -0 bash -c '
|
||||||
menuList+=("${i#*|}" "${i%|*}")
|
for f; do
|
||||||
done
|
[[ $(head -n1 "$f") =~ ^#$ ]] && continue
|
||||||
# Web based games and donation
|
name="${f##*/}"
|
||||||
menuList+=("Aliens" "Aliens")
|
echo "$f"
|
||||||
menuList+=("Cacophony" "Cacophony")
|
echo "${name%.sh}"
|
||||||
menuList+=("Battle Weary" "Battle Weary")
|
done' _
|
||||||
menuList+=("QuentinC Play Room" "QuentinC Play Room")
|
fi
|
||||||
menuList+=("Trigaea" "Trigaea")
|
)
|
||||||
menuList+=("Donate" "Donate")
|
if [[ ${#menuList} -eq 0 ]]; then
|
||||||
game="$(dialog --backtitle "Linux Game Launcher" \
|
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 \
|
--clear \
|
||||||
--no-tags \
|
--no-tags \
|
||||||
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
|
--menu "Please select a game to play" 0 0 0 "${menuList[@]}" --stdout)"
|
||||||
@ -506,59 +517,32 @@ game_launcher() {
|
|||||||
if [[ $menuCode -eq 1 ]]; then
|
if [[ $menuCode -eq 1 ]]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
# Remove any trailing | from game variable.
|
. "${selectedGame}"
|
||||||
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
|
|
||||||
exit 0
|
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
|
# 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.
|
# Warning, launching games from console is not recommended.
|
||||||
if [[ -z "$DISPLAY" ]]; then
|
if [[ -z "$DISPLAY" ]]; then
|
||||||
@ -583,6 +567,7 @@ export spd_rate="${spd_rate:+ -r ${spd_rate}}"
|
|||||||
export spd_voice="${spd_voice:+ -y ${spd_voice}}"
|
export spd_voice="${spd_voice:+ -y ${spd_voice}}"
|
||||||
export spd_volume="${spd_volume:+ -i ${spd_volume}}"
|
export spd_volume="${spd_volume:+ -i ${spd_volume}}"
|
||||||
mkdir -p "${installPath}"
|
mkdir -p "${installPath}"
|
||||||
|
migrate_launcher
|
||||||
|
|
||||||
|
|
||||||
# Check for required packages
|
# Check for required packages
|
||||||
|
Reference in New Issue
Block a user