Rewrite of the menu system. Options for death match and co-op not net working, but coming soon. The default is single player, so for all intents and purposes it should work the same as always.

This commit is contained in:
Storm Dragon 2023-11-10 01:57:27 -05:00
parent c4ed85ce08
commit 5e17fa9476

View File

@ -1,17 +1,8 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Dialog setup:
menulist() { DIALOG_ITEM_HELP=""
# Args: tag item. export DIALOGOPTS='--no-lines --visit-items'
# returns: selected tag
dialog --backtitle "Select your Doom!" \
--clear \
--no-tags \
--menu "Please select one" 0 0 0 "${@}" --stdout
if [[ $? -ne 1 ]]; then
exit 0
fi
}
# Path where doom wads are stored # Path where doom wads are stored
@ -33,7 +24,35 @@ doomGames=(
"${gzdoom} ${doomPath}/TobyAccMod_V${tobyVersion}.pk3 ${doomPath}/OpMDK.wad" "Freedoom OperationMDK" "${gzdoom} ${doomPath}/TobyAccMod_V${tobyVersion}.pk3 ${doomPath}/OpMDK.wad" "Freedoom OperationMDK"
) )
exec stdbuf -oL $(menulist "${doomGames[@]}") | stdbuf -oL grep -E \ 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=$?
case ${buttonCode} in
1)
# Death match setup
echo "Not yet implemented."
exit 1
;;
2)
# Exit was pressed, so exit.
exit 0
;;
3)
# Co-op setup
echo "Not yet implemented."
exit 1
;;
0)
exec stdbuf -oL ${gameOption} | stdbuf -oL grep -E \
-e '^[0-9]+\. ' \ -e '^[0-9]+\. ' \
-e '^"cl_run"' \ -e '^"cl_run"' \
-e '^Game saved. ' \ -e '^Game saved. ' \
@ -46,5 +65,7 @@ exec stdbuf -oL $(menulist "${doomGames[@]}") | stdbuf -oL grep -E \
-e 's/"cl_run" = "false"/walk/' \ -e 's/"cl_run" = "false"/walk/' \
-e 's/MAP0\([1-9]\)/Map \1/' \ -e 's/MAP0\([1-9]\)/Map \1/' \
-e 's:.*/:Game saved. (:' | spd-say -e -e 's:.*/:Game saved. (:' | spd-say -e
;;
esac
exit 0 exit 0