#!/bin/bash # Colors RED='\033[0;31m' LRED="\033[1;31m" BLUE="\033[0;34m" LBLUE="\033[1;34m" GREEN="\033[0;32m" LGREEN="\033[1;32m" YELLOW="\033[1;33m" CYAN="\033[0;36m" LCYAN="\033[1;36m" PURPLE="\033[0;35m" LPURPLE="\033[1;35m" BWHITE="\e[1m" NC='\033[0m' # No Color # Wine Prefix Environment PREFIX="/home/$USER/diablo" ARCH="win32" notice(){ echo -e "${YELLOW}NOTICE: Currently you must move & rename the installer directories to the following: ${NC}\n" echo -e "${LCYAN}Base Game: ${HOME}/D2${NC}" echo -e "${LCYAN}Expansion: ${HOME}/LOD${NC}" echo -e "${YELLOW}\nThen run this script with the following option:${NC}" echo -e "${LCYAN}${0} -a${NC}" echo -e "${YELLOW}\nThe script will then kick off the process of grabbing debs, setting the prefix and installing the game.${NC}" echo -e "${YELLOW}User intervention is required to click through the installer setups${NC}" } installD2(){ notice read -n 1 -p "~~~~~~ Press enter to continue ~~~~~~" D2_INSTALLER_PATH="/home/$USER/D2" echo -e "\n${LGREEN}Installing Diablo II...${NC}\n" if [ ! -d "${D2_INSTALLER_PATH}" ];then echo -e "${D2_INSTALLER_PATH} not found, edit script and set correct path\n" exit 0; fi cd "${D2_INSTALLER_PATH}" || exit 1 WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" wine Installer.exe } installLOD(){ notice read -n 1 -p "~~~~~~ Press enter to continue ~~~~~~" LOD_INSTALLER_PATH="/home/$USER/LOD" echo -e "\nInstalling Diablo II: Lord of Destruction...\n" if [ ! -d "${LOD_INSTALLER_PATH}" ];then echo -e "${LOD_INSTALLER_PATH} not found, edit script and set correct path\n" exit 0; fi cd "${LOD_INSTALLER_PATH}" || exit 1 WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" wine Installer.exe } getDeps(){ if [ ! -f /usr/bin/wine ];then echo -e "\nInstall wine\n" exit 0; fi if [ ! -f /usr/bin/winetricks ];then echo -e "\n Install winetricks\n" exit 0; fi } getTricks(){ WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" winetricks directx9 directplay comctl32ocx echo -e "\nGetting Glide for D2\n" } getGlide(){ if [ ! -f /tmp/gl32ogl14e.zip ];then cd /tmp || exit 1 wget http://www.svenswrapper.de/gl32ogl14e.zip unzip gl32ogl14e.zip echo -e "\nCopying Files to Diablo game directory...\n" cp -v {glide-init.exe,glide3x.dll} "${PREFIX}/drive_c/Program Files/Diablo II/" echo -e "\nCleaning up temp files...\n" rm {glide-readme.txt,glide-liesmich.txt,glide-init.exe,glide3x.dll,gl32ogl14e.zip} cd "${PREFIX}/drive_c/"Program Files"/"Diablo II"/" || exit 1 WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" wine glide-init.exe echo -e "\nDone!\n" fi } runGame(){ cd "${PREFIX}/drive_c/Program Files/Diablo II/" || exit 1 echo -n -e "\n${LGREEN}Run game now?(Y/n): ${NC}" read -r choice if [ "${choice}" = "n" ];then exit 0; fi WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" wine "Diablo II.exe" " -3dfx" } run_glide(){ cd "${PREFIX}/drive_c/Program Files/Diablo II/" || exit 1 WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" wine "glide-init.exe" } run_tricks(){ WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" winetricks "${1}" "${2}" } runWinecfg(){ WINEPREFIX="${PREFIX}" WINEARCH="${ARCH}" winecfg } case "${1}" in play|-p) runGame ;; getdeps|-gd) getDeps ;; gettricks|-gt) getTricks ;; getglide| -gg) getGlide ;; id2|--install-d2) installD2 ;; ilod|--install-lod) installLOD ;; cfg|-c) runWinecfg ;; rg| --run-glide) run_glide ;; tricks) run_tricks "${1}" "${2}" ;; all|-a) getDeps installD2 installLOD getTricks getGlide runGame ;; *) echo -e "\nUsage: $0 [-a] [all] [-p] [play] [-gt] [gettricks] [-gd] [getdeps] [getglide] [-gg] [id2] [--install-d2] [ilod] [--install-lod]\n" ;; esac