From ff17f2a5bc4f724fa9346d71a681d2ad4c04488c Mon Sep 17 00:00:00 2001 From: Christopher Roy Bratusek Date: Sun, 7 Aug 2016 21:03:56 +0200 Subject: [PATCH] allow restoring original characters for NSMBW --- ChangeLog | 2 + scripts/nsmbw/nsmbw_characters.sh | 65 ++++++++++++++++++------------- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/ChangeLog b/ChangeLog index f447bcb..a8fc75b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -14,6 +14,8 @@ v7.1.0: - new download link for Newer Falling Leaf - fix download link for Midi's Super Mario Wii - fix download link for Newer Apocalypse +- New Super Mario Bros. Wii character mod: allow only restoring + original characters without further changes - update nsmbw.db ::game additions diff --git a/scripts/nsmbw/nsmbw_characters.sh b/scripts/nsmbw/nsmbw_characters.sh index c7f5b0e..2354060 100644 --- a/scripts/nsmbw/nsmbw_characters.sh +++ b/scripts/nsmbw/nsmbw_characters.sh @@ -48,9 +48,27 @@ pi_action () { if [[ ${choosenplayers[@]} == "" ]]; then echo -e "Choose a Player to add to the game\n" gawk -F : '{print $1 "\t\t" $2 "\t\t" $3}' < "${PATCHIMAGE_DATABASE_DIR}"/nsmbw_characters.db - echo -e "\ntype ???.arc (only one per slot (second column) possible, space separated)" + echo -e "\ntype ???.arc (only one per slot (second column) possible, space separated) +or type 'restore' to only restore original characters. +" read -r PLAYERS + fi + rm -rf workdir + + echo -e "\n*** 3) extracting image" + "${WIT}" extract "${GAMEDIR}"/"${ID}" --psel=data -d workdir -q || exit 51 + + if [[ ${PLAYERS[@]} == *restore* ]]; then + for backup in Mario.arc Luigi.arc Kinopio.arc koopa.arc; do + echo "*** 4) restoring original: ${backup}" + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${backup}" workdir/files/Object/ + done + + echo "*** 5) rebuilding game" + echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" + "${WIT}" cp -o -q -B workdir "${PATCHIMAGE_GAME_DIR}"/"${ID}" || exit 51 + else for player in "${PLAYERS[@]}"; do if [[ ! -f "${PATCHIMAGE_DATA_DIR}"/nsmbw_characters/${player} ]]; then echo "unkown character ${player}" @@ -62,32 +80,27 @@ pi_action () { echo "${choosenplayers[@]}" echo "choosenplayers=( ${choosenplayers[*]} )" > "${HOME}"/.patchimage.choice + + for backup in Mario.arc Luigi.arc Kinopio.arc koopa.arc; do + if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${backup}" ]]; then + echo "*** 4) first run, backing up original: ${backup}" + cp workdir/files/Object/"${backup}" "${PATCHIMAGE_RIIVOLUTION_DIR}" + else + echo "*** 4) restoring original: ${backup}" + cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${backup}" workdir/files/Object/ + fi + done + + echo "*** 5) replacing characters" + for player in "${choosenplayers[@]}"; do + cp "${PATCHIMAGE_DATA_DIR}"/nsmbw_characters/"${player/:*}" \ + workdir/files/Object/"${player/*:}" + done + + echo "*** 6) rebuilding game" + echo " (storing game in ${PATCHIMAGE_GAME_DIR}/${ID})" + "${WIT}" cp -o -q -B workdir "${PATCHIMAGE_GAME_DIR}"/"${ID}" || exit 51 fi rm -rf workdir - - echo -e "\n*** 3) extracting image" - "${WIT}" extract "${GAMEDIR}"/"${ID}" --psel=data -d workdir -q || exit 51 - - for backup in Mario.arc Luigi.arc Kinopio.arc koopa.arc; do - if [[ ! -f "${PATCHIMAGE_RIIVOLUTION_DIR}/${backup}" ]]; then - echo "*** 4) first run, backing up original: ${backup}" - cp workdir/files/Object/"${backup}" "${PATCHIMAGE_RIIVOLUTION_DIR}" - else - echo "*** 4) restoring original: ${backup}" - cp "${PATCHIMAGE_RIIVOLUTION_DIR}"/"${backup}" workdir/files/Object/ - fi - done - - echo "*** 5) replacing characters" - for player in "${choosenplayers[@]}"; do - cp "${PATCHIMAGE_DATA_DIR}"/nsmbw_characters/"${player/:*}" \ - workdir/files/Object/"${player/*:}" - done - - echo "*** 6) 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 }