#!/bin/bash # Rebuild custom UI files using patches # -u, --update to update the patch set with new changes GAME_PATH=/mnt/d/EverQuest UI_NAME=isuldor if [[ ! -f "${GAME_PATH}/eqgame.exe" ]] then echo "Notice: Game path not set, searching for EverQuest..." GAME_LOCATION=$(find /mnt -type f -name eqgame.exe ! -path '*RECYCLE.BIN*' 2>/dev/null | head -n1) if [[ ${GAME_LOCATION} ]] then GAME_PATH=$(dirname ${GAME_LOCATION}) echo "Set GAME_PATH=${GAME_PATH}" else echo "Error: EverQuest was not found!" exit 1 fi fi SCRIPT_PATH=$(dirname ${0}) UI_FOLDER="${GAME_PATH}/uifiles/${UI_NAME}" # We can update our patch set with changes if [[ "-u" == ${1} || "--update" == ${1} ]] then echo "Updating patch set!" # rm -v "${SCRIPT_PATH}/EQUI_*.diff" UI_FILES=( $( find "${UI_FOLDER}" -name '*.xml' -exec basename {} .xml \; )) for UI_FILE in "${UI_FILES[@]}" do diff -u "${GAME_PATH}/uifiles/default/${UI_FILE}.xml" \ "${UI_FOLDER}/${UI_FILE}.xml" > ${SCRIPT_PATH}/${UI_FILE}.diff done exit 0 fi # Build custom UI directory mkdir -vp "${UI_FOLDER}" cp ${SCRIPT_PATH}/*.tga "${UI_FOLDER}/" # Build an array of all diffs to patch, stripping the extension UI_FILES=( $( find "${SCRIPT_PATH}" -name '*.diff' -exec basename {} .diff \; )) for UI_FILE in "${UI_FILES[@]}" do patch -o "${UI_FOLDER}/${UI_FILE}.xml" "${GAME_PATH}/uifiles/default/${UI_FILE}.xml" < ${SCRIPT_PATH}/${UI_FILE}.diff done