96 lines
3.3 KiB
Bash
Executable File
96 lines
3.3 KiB
Bash
Executable File
#!/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 <http://www.gnu.org/licenses/>.
|
|
#
|
|
|
|
# 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
|