#!/bin/bash GAME_TYPE="MKWIIMM" GAME_NAME="Mario Kart Wiimm" ITEMS_BASE="http://riivolution.nanolx.org/mkwiimm_karts" show_notes () { echo -e \ "************************************************ ${GAME_NAME} Custom Mario Kart Wii Source: http://wiiki.wii-homebrew.com/Wiimms_Mario_Kart_Fun Base Image: Mario Kart Wii (RMC?01) Supported Versions: EUR, JAP, USA ************************************************" } check_input_image_special () { check_input_image_mkwiimm ask_input_image_mkwiimm ${IMAGE%/*} echo -e "type RMC???.wbfs:\n" read ID if [[ ! -f ${IMAGE%/*}/${ID} ]]; then echo "wrong id from user-input given." exit 75 fi } ask_slot () { echo -e "\nFirst choose a vehicle to be replaced\n" gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_DATABASE_DIR}/mkwiimm_vehicles.db echo -e "\ntype in ??_??? as in first column\n" read VEHICLE echo -e "\nNow choose a character to be replaced\n" gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_DATABASE_DIR}/mkwiimm_characters.db echo -e "\ntype in -?? as in first column\n" read CHARACTER choosenkarts=( ${choosenkarts[@]} ${kart}:${VEHICLE}${CHARACTER} ) } download_wiimm () { if [[ -f ${HOME}/.patchimage.choice ]]; then echo "Your choices from last time can be re-used." echo "y (yes) or n (no)" read choice if [[ ${choice} == y ]]; then source ${HOME}/.patchimage.choice fi fi if [[ ${choosenkarts[@]} == "" ]]; then echo -e "Choose a character to add to the game\n" gawk -F \: '{print $1 "\t\t" $2}' < ${PATCHIMAGE_DATABASE_DIR}/mkwiimm_karts.db echo -e "\ntype ???.szs (multiple possible, space separated)" read KART for kart in ${KART[@]}; do if [[ ! -f ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} ]]; then wget -O ${PATCHIMAGE_RIIVOLUTION_DIR}/mkwiimm_kart_${kart} \ ${ITEMS_BASE}/${kart} &>/dev/null \ || (echo "download of ${kart} failed." \ && rm ${PATCHIMAGE_RIIVOLUTION_DIR}/${KART} \ && exit 57) fi done ask_slot echo ${choosenkarts[@]} echo "choosenkarts=( ${choosenkarts[@]} )" > ${HOME}/.patchimage.choice fi } build_mkwiimm () { rm -rf workdir echo "*** 5) extracting image" ${WIT} extract ${IMAGE%/*}/${ID} workdir -q || exit 51 if [[ ! -d "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS ]]; then echo "*** 6) this is the first run, so backing up original files (in ${PATCHIMAGE_RIIVOLUTION_DIR}) for future customizations" mkdir "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS cp workdir/files/Race/Kart/* \ "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS else echo "*** 6) restoring original files" cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/${ID/.*}_SZS/* \ workdir/files/Race/Kart/ fi echo "*** 7) replacing kart(s)" for kart in ${choosenkarts[@]}; do source=${kart/*:} dest=${kart/:*} echo " old: ${dest}.szs new: ${source}" cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ workdir/files/Race/Kart/${dest}.szs cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ workdir/files/Race/Kart/${dest}_2.szs cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/mkwiimm_kart_${source} \ workdir/files/Race/Kart/${dest}_4.szs done echo "*** 8) rebuilding game" echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" ${WIT} cp -o -q -B workdir ${PATCHIMAGE_GAME_DIR}/${ID} || exit 51 rm -rf workdir } patch_wiimm () { build_mkwiimm }