
* Add enchant_id option to additem command * Fix blank spaces pt1 * Fix blank spaces pt2 * Fix blank spaces pt3
303 lines
12 KiB
Bash
303 lines
12 KiB
Bash
#!/bin/bash
|
|
|
|
# This code is part of MaNGOS. Contributor & Copyright details are in AUTHORS/THANKS.
|
|
#
|
|
# This file is free software; as a special exception the author gives
|
|
# unlimited permission to copy and/or distribute it, with or without
|
|
# modifications, as long as this notice is preserved.
|
|
#
|
|
# This program is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
|
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
## Syntax of this helper
|
|
## First param must be number of to be used CPUs (only 1, 2, 3, 4 supported) or "offmesh" to recreate the special tiles from the OFFMESH_FILE
|
|
## Second param can be an additional filename for storing log
|
|
## Third param can be an addition filename for storing detailed log
|
|
|
|
## Additional Parameters to be forwarded to MoveMapGen, see mmaps/readme for instructions
|
|
PARAMS="--silent"
|
|
|
|
## Already a few map extracted, and don't care anymore
|
|
EXCLUDE_MAPS=""
|
|
#EXCLUDE_MAPS="0 1 530 571" # example to exclude the continents
|
|
#EXCLUDE_MAPS="13 25 29 35 37 42 44 169 451" # example to exclude 'junk' maps
|
|
|
|
## Exclude file
|
|
EXCLUDE_MAPS_FILE="mmap_excluded.txt"
|
|
|
|
## The Exclude file contains a space delimited list of map id's to skip in the same format as EXCLUDE_MAPS
|
|
|
|
## Does an exclude file exist ?
|
|
if [ "$EXCLUDE_MAPS" == "" ]
|
|
then
|
|
## Exclude file provided?
|
|
if [ -f "$EXCLUDE_MAPS_FILE" ]
|
|
then ## Yes, read the file
|
|
read -d -r EXCLUDE_MAPS < $EXCLUDE_MAPS_FILE
|
|
echo "Excluded maps: $EXCLUDE_MAPS"
|
|
else ## No, remind the user that they can create the file
|
|
echo "Excluded maps: NONE (no file called '$EXCLUDE_MAPS_FILE' was found.)"
|
|
fi
|
|
fi
|
|
|
|
## Offmesh file
|
|
OFFMESH_FILE="offmesh.txt"
|
|
|
|
## Normal log file (if not overwritten by second param
|
|
LOG_FILE="MoveMapGen.log"
|
|
## Detailed log file
|
|
DETAIL_LOG_FILE="MoveMapGen_detailed.log"
|
|
|
|
## ! Use below only for finetuning or if you know what you are doing !
|
|
|
|
## Continent Maps
|
|
MAP_Continent1="0" ## Eastern Kingdoms 340mb
|
|
MAP_Continent2="1" ## Kalimdor 470mb
|
|
|
|
## Big Maps > 9mb
|
|
MAP_Big1="269"
|
|
MAP_Big2="309"
|
|
MAP_Big3="533"
|
|
MAP_Big4="509"
|
|
MAP_Big5="30"
|
|
MAP_Big6="469"
|
|
|
|
## Medium Maps <10mb
|
|
MAP_Medium1="209"
|
|
MAP_Medium2="329"
|
|
MAP_Medium3="531"
|
|
MAP_Medium4="33"
|
|
MAP_Medium5="289"
|
|
MAP_Medium6="529"
|
|
MAP_Medium7="36"
|
|
MAP_Medium8="489"
|
|
MAP_Medium9="47"
|
|
|
|
## Small Maps < 3mb
|
|
MAP_Small1="230"
|
|
MAP_Small2="429"
|
|
MAP_Small3="48"
|
|
MAP_Small4="90"
|
|
MAP_Small5="229"
|
|
MAP_Small6="349"
|
|
MAP_Small7="369"
|
|
MAP_Small8="449"
|
|
MAP_Small9="450"
|
|
MAP_Small10="40"
|
|
MAP_Small11="34"
|
|
MAP_Small12="43"
|
|
MAP_Small13="70"
|
|
MAP_Small14="109"
|
|
MAP_Small15="129"
|
|
MAP_Small16="189"
|
|
MAP_Small17="249"
|
|
MAP_Small18="389"
|
|
MAP_Small19="409"
|
|
|
|
## The following are technically 'Junk' Maps that do not need to be extracted
|
|
MAP_LIST_Junk1="169"
|
|
MAP_LIST_Junk2="37"
|
|
MAP_LIST_Junk3="451"
|
|
MAP_LIST_Junk4="13"
|
|
MAP_LIST_Junk5="35"
|
|
MAP_LIST_Junk6="42"
|
|
MAP_LIST_Junk7="44"
|
|
MAP_LIST_Junk8="25"
|
|
MAP_LIST_Junk9="29"
|
|
|
|
badParam()
|
|
{
|
|
echo "ERROR! Bad arguments!"
|
|
echo "You can (re)extract mmaps with this helper script,"
|
|
echo "or recreate only the tiles from the offmash file"
|
|
echo
|
|
echo "Call with number of processes (1 - 4) to create mmaps"
|
|
echo "Call with 'offmesh' to reextract the tiles from offmash file"
|
|
echo
|
|
echo "For further fine-tuning edit this helper script"
|
|
echo
|
|
read line
|
|
}
|
|
|
|
DisplayHeader()
|
|
{
|
|
## clear
|
|
echo " __ __ _ _ ___ ___ ___ "
|
|
echo " | \\/ |__ _| \\| |/ __|/ _ \\/ __| "
|
|
echo " | |\\/| / _\` | .\` | (_ | (_) \\__ \\ "
|
|
echo " |_| |_\\__,_|_|\\_|\\___|\\___/|___/ "
|
|
echo " "
|
|
echo " For help and support please visit: "
|
|
echo " Website/Forum/Wiki: https://getmangos.eu"
|
|
echo "=========================================="
|
|
}
|
|
|
|
|
|
if [ "$#" = "3" ]
|
|
then
|
|
LOG_FILE=$2
|
|
DETAIL_LOG_FILE=$3
|
|
elif [ "$#" = "2" ]
|
|
then
|
|
LOG_FILE=$2
|
|
fi
|
|
|
|
# Offmesh file provided?
|
|
OFFMESH=""
|
|
if [ "$OFFMESH_FILE" != "" ]
|
|
then
|
|
if [ ! -f "$OFFMESH_FILE" ]
|
|
then
|
|
echo "ERROR! Offmesh file $OFFMESH_FILE could not be found."
|
|
echo "Provide valid file or none. You need to edit the script"
|
|
exit 1
|
|
else
|
|
OFFMESH="--offMeshInput $OFFMESH_FILE"
|
|
fi
|
|
fi
|
|
|
|
# Function to process a list
|
|
createMMaps()
|
|
{
|
|
for i in $@
|
|
do
|
|
for j in $EXCLUDE_MAPS
|
|
do
|
|
if [ "$i" = "$j" ]
|
|
then
|
|
continue 2
|
|
fi
|
|
done
|
|
./mmap-extractor $PARAMS $OFFMESH $i | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: (Re)created map $i" | tee -a $LOG_FILE
|
|
done
|
|
}
|
|
|
|
createHeader()
|
|
{
|
|
# read line
|
|
DisplayHeader
|
|
echo
|
|
echo "`date`: Start creating MoveMaps" | tee -a $LOG_FILE
|
|
echo "Used params: $PARAMS $OFFMESH" | tee -a $LOG_FILE
|
|
echo
|
|
echo "Detailed log can be found in $DETAIL_LOG_FILE" | tee -a $LOG_FILE
|
|
echo "Start creating MoveMaps" | tee -a $DETAIL_LOG_FILE
|
|
echo
|
|
echo "################################################################"
|
|
echo "## ##"
|
|
echo "## BE PATIENT - This process will take a long time ##"
|
|
echo "## ##"
|
|
echo "################################################################"
|
|
echo "## ##"
|
|
echo "## There will also be periods where the display does not ##"
|
|
echo "## update, this is normal behavior for this process ##"
|
|
echo "## ##"
|
|
echo "## Once you see the message 'creating MoveMaps' is finished ##"
|
|
echo "## then the process is complete. ##"
|
|
echo "################################################################"
|
|
echo ""
|
|
}
|
|
|
|
createSummary()
|
|
{
|
|
echo
|
|
echo "Build Summary:"
|
|
echo "==============="
|
|
case "$1" in
|
|
"1" )
|
|
echo "1 CPU selected:"
|
|
echo "=============="
|
|
echo " All maps will be build using this CPU"
|
|
;;
|
|
"2" )
|
|
echo "2 CPUs selected:"
|
|
echo "==============="
|
|
echo " CPU 1: Maps: $MAP_Continent2 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10"
|
|
echo " CPU 2: Maps: $MAP_Continent1 $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Big5 $MAP_Big6 $MAP_Medium4 $MAP_Medium5 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_Small19"
|
|
;;
|
|
"3" )
|
|
echo "3 CPUs selected:"
|
|
echo "==============="
|
|
echo " CPU 1: Maps: $MAP_Continent1"
|
|
echo " CPU 2: Maps: $MAP_Continent2"
|
|
echo " CPU 3: Maps: $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Big5 $MAP_Big6 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Medium4 $MAP_Medium5 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_LIST_Junk1 $MAP_LIST_Junk2 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_LIST_Junk7 $MAP_LIST_Junk8 $MAP_LIST_Junk9"
|
|
;;
|
|
"4" )
|
|
echo "4 CPUs selected:"
|
|
echo "==============="
|
|
echo " CPU 1: Maps: $MAP_Continent1"
|
|
echo " CPU 2: Maps: $MAP_Continent2"
|
|
echo " CPU 3: Maps: $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Big5 $MAP_Big6 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Medium4 $MAP_Medium5 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_LIST_Junk1 $MAP_LIST_Junk2 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_LIST_Junk7 $MAP_LIST_Junk8 $MAP_LIST_Junk9"
|
|
echo " CPU 4: Maps: $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Big5 $MAP_Big6 $MAP_Medium4 $MAP_Medium5 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small11 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_Small12 $MAP_LIST_Junk7 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_Small19 $MAP_LIST_Junk8 $MAP_LIST_Junk9"
|
|
;;
|
|
* )
|
|
badParam
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
echo
|
|
echo "Starting to create MoveMaps" | tee -a $DETAIL_LOG_FILE
|
|
wait
|
|
}
|
|
# Create mmaps directory if not exist
|
|
if [ ! -d mmaps ]
|
|
then
|
|
mkdir ./mmaps
|
|
fi
|
|
|
|
# Param control
|
|
case "$1" in
|
|
"1" )
|
|
createHeader $1
|
|
createSummary $1
|
|
createMMaps $MAP_Continent1 $MAP_Continent2 $MAP_LIST_Junk1 $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Medium6 $MAP_Big5 $MAP_Big6 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Medium4 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_LIST_Junk1 $MAP_LIST_Junk2 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_LIST_Junk7 $MAP_LIST_Junk8 $MAP_LIST_Junk9 &
|
|
;;
|
|
"2" )
|
|
createHeader $1
|
|
createSummary $1
|
|
createMMaps $MAP_Continent2 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10 &
|
|
createMMaps $MAP_Continent1 $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Big5 $MAP_Big6 $MAP_Medium4 $MAP_Medium5 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_Small19 &
|
|
;;
|
|
"3" )
|
|
createHeader $1
|
|
createSummary $1
|
|
createMMaps $MAP_Continent1 &
|
|
createMMaps $MAP_Continent2 &
|
|
createMMaps $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Big5 $MAP_Big6 $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Medium4 $MAP_Medium5 $MAP_Medium6 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Small10 $MAP_Small11 $MAP_Small12 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_LIST_Junk1 $MAP_LIST_Junk2 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_LIST_Junk7 $MAP_LIST_Junk8 $MAP_LIST_Junk9 &
|
|
;;
|
|
"4" )
|
|
createHeader $1
|
|
createSummary $1
|
|
createMMaps $MAP_Continent1 &
|
|
createMMaps $MAP_Continent2 &
|
|
createMMaps $MAP_LIST_Junk1 $MAP_Big1 $MAP_Big2 $MAP_Big3 $MAP_Big4 $MAP_Medium6 &
|
|
createMMaps $MAP_Medium1 $MAP_Medium2 $MAP_Medium3 $MAP_Small1 $MAP_Small2 $MAP_Small3 $MAP_Small4 $MAP_Small5 $MAP_Small6 $MAP_Small7 $MAP_Small8 $MAP_Small9 $MAP_Big5 $MAP_Big6 $MAP_Medium4 $MAP_Medium5 $MAP_Medium7 $MAP_Medium8 $MAP_Medium9 $MAP_Small11 $MAP_LIST_Junk3 $MAP_LIST_Junk4 $MAP_LIST_Junk5 $MAP_LIST_Junk6 $MAP_Small12 $MAP_LIST_Junk7 $MAP_Small13 $MAP_Small14 $MAP_Small15 $MAP_Small16 $MAP_Small17 $MAP_Small18 $MAP_Small19 $MAP_LIST_Junk8 $MAP_LIST_Junk9 &
|
|
;;
|
|
"offmesh" )
|
|
echo "`date`: Recreate offmeshs from file $OFFMESH_FILE" | tee -a $LOG_FILE
|
|
echo "Recreate offmeshs from file $OFFMESH_FILE" | tee -a $DETAIL_LOG_FILE
|
|
while read map tile line
|
|
do
|
|
./mmap-extractor $PARAMS $OFFMESH $map --tile $tile | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: Recreated $map $tile from $OFFMESH_FILE" | tee -a $LOG_FILE
|
|
done < $OFFMESH_FILE &
|
|
;;
|
|
* )
|
|
badParam
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
wait
|
|
|
|
echo | tee -a $LOG_FILE
|
|
echo | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: Finished creating MoveMaps" | tee -a $LOG_FILE
|
|
echo "`date`: Finished creating MoveMaps" >> $DETAIL_LOG_FILE
|
|
echo
|
|
echo "Press any key"
|
|
read line
|