#!/bin/bash # Copyright 2007,2009,2010 Chris Forbes, Robert Pepperell, Matthew Bowra-Dean, Paul Chote, Alli Witheford. # This file is part of OpenRA. # # OpenRA is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # OpenRA is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with OpenRA. If not, see . # # Internal options APP_PATH=`echo $0 | awk '{split($0,patharr,"/"); idx=1; while(patharr[idx+3] != "") { if (patharr[idx] != "/") {printf("%s/", patharr[idx]); idx++ }} }'` EXE_PATH=$APP_PATH/Contents/MacOS/ export LD_LIBRARY_PATH="$EXE_PATH/lib":$LD_LIBRARY_PATH export MONO_PATH="$EXE_PATH/lib" RESOURCES_PATH=$APP_PATH/Contents/Resources # Tweakable options #export MONO_LOG_LEVEL=debug GAME_PATH=$RESOURCES_PATH SUPPORT_PATH=~/Library/"Application Support"/OpenRA # Downloadable content DEPS_PACKAGE="osx-deps-v1.zip" DEPS_URL="http://open-ra.org/releases/mac/osx-deps-v1.zip" RA_PACKAGE="ra-packages.zip" RA_URL="http://open-ra.org/packages/ra-packages.zip" CNC_PACKAGE="cnc-packages.zip" CNC_URL="http://open-ra.org/packages/cnc-packages.zip" cd $EXE_PATH # Download and install game dependencies if needed if [[ ! -e "mono" ]]; then ./download_package "$DEPS_PACKAGE" "$EXE_PATH" "17.2 Mb" "required game dependencies" $DEPS_URL if [[ ! -e "mono" ]]; then ./display_error "Installation failed" "Package install failed." exit 1 fi fi # Prompt for the mod to run MODBUTTON=`/usr/bin/osascript << EOT tell application "Finder" activate display dialog "Choose a mod" buttons {"Red Alert", "C&C", "Quit"} \ default button "Red Alert" \ with icon alias (POSIX file "$RESOURCES_PATH/OpenRA.icns") \ with title "OpenRA Mod Selector" set result to button returned of result end tell EOT` if [ "$MODBUTTON" == "Quit" ]; then exit 0 fi MOD="ra" if [ "$MODBUTTON" == "C&C" ]; then MOD="cnc" fi # Check that the game data is installed if [[ $MOD == "ra" && ! -e "$GAME_PATH/mods/ra/packages/redalert.mix" ]]; then ./download_package "ra-packages.zip" "$GAME_PATH/mods/ra/packages/" "10 Mb" "the Red Alert game data" $RA_URL if [[ ! -e "$GAME_PATH/mods/ra/packages/redalert.mix" ]]; then ./display_error "Installation failed" "Package install failed." exit 1 fi fi if [[ $MOD == "cnc" && ! -e "$GAME_PATH/mods/cnc/packages/conquer.mix" ]]; then ./download_package "cnc-packages.zip" "$GAME_PATH/mods/cnc/packages/" "5.9 Mb" "the C&C game data" $CNC_URL if [[ ! -e "$GAME_PATH/mods/cnc/packages/conquer.mix" ]]; then ./display_error "Installation failed" "Package install failed." exit 1 fi fi # Run the game cd "${GAME_PATH}" ${EXE_PATH}mono "OpenRA.Game.exe" InitialMods=$MOD SupportDir=~/Library/"Application Support"/OpenRA # Did we crash? STATUS=$? if [ "$STATUS" != "0" ]; then $EXE_PATH/display_error "OpenRA Crashed" "Sorry about that!\nA crash log has been saved to your home folder and sent to our server." fi