summary refs log tree commit diff
path: root/pkgs/games/openra_2019/mod-launch-game.sh
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/games/openra_2019/mod-launch-game.sh')
-rw-r--r--pkgs/games/openra_2019/mod-launch-game.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/games/openra_2019/mod-launch-game.sh b/pkgs/games/openra_2019/mod-launch-game.sh
new file mode 100644
index 00000000000..88b53e71e1b
--- /dev/null
+++ b/pkgs/games/openra_2019/mod-launch-game.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+show_error() {
+  if command -v zenity > /dev/null; then
+    zenity --no-wrap --no-markup --error --title "OpenRA - @title@" --text "$1" 2>/dev/null
+  else
+    printf "$1\n" >&2
+  fi
+  exit 1
+}
+
+cd "@out@/lib/openra-@name@"
+
+# Check for missing assets
+assetsError='@assetsError@'
+if [[ -n "$assetsError" && ! -d "$HOME/.openra/Content/@name@" ]]; then
+  show_error "$assetsError"
+fi
+
+# Run the game
+mono --debug OpenRA.Game.exe Game.Mod=@name@ Engine.LaunchPath="@out@/bin/openra-@name@" Engine.ModSearchPaths="@out@/lib/openra-@name@/mods" "$@"
+
+# Show a crash dialog if something went wrong
+if (( $? != 0 && $? != 1 )); then
+  show_error $'OpenRA - @title@ has encountered a fatal error.\nPlease refer to the crash logs for more information.\n\nLog files are located in ~/.openra/Logs'
+fi