224 lines
5.9 KiB
Bash
224 lines
5.9 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.
|
|
|
|
## Expected param 1 to be 'a' for all, else ask some questions
|
|
|
|
## Normal log file (if not overwritten by second param
|
|
LOG_FILE="MaNGOSExtractor.log"
|
|
## Detailed log file
|
|
DETAIL_LOG_FILE="MaNGOSExtractor_detailed.log"
|
|
|
|
## Change this to a value fitting for your sys!
|
|
NUM_CPU="2"
|
|
|
|
## ! Use below only for finetuning or if you know what you are doing !
|
|
|
|
USE_AD="0"
|
|
USE_VMAPS="0"
|
|
USE_MMAPS="0"
|
|
USE_MMAPS_OFFMESH="0"
|
|
USE_MMAPS_DELAY=""
|
|
|
|
DisplayHeader()
|
|
{
|
|
clear
|
|
echo " __ __ _ _ ___ ___ ___ "
|
|
echo " | \\/ |__ _| \\| |/ __|/ _ \\/ __| "
|
|
echo " | |\\/| / _\` | .\` | (_ | (_) \\__ \\ "
|
|
echo " |_| |_\\__,_|_|\\_|\\___|\\___/|___/ "
|
|
echo " "
|
|
echo " For help and support please visit: "
|
|
echo " Website/Forum/Wiki: https://getmangos.eu"
|
|
echo "========================================================="
|
|
}
|
|
|
|
if [ "$1" = "a" ]
|
|
then
|
|
## extract all
|
|
USE_AD="1"
|
|
USE_VMAPS="1"
|
|
USE_MMAPS="1"
|
|
USE_MMAPS_DELAY="no"
|
|
else
|
|
## do some questioning!
|
|
DisplayHeader
|
|
echo " Welcome to the MaNGOS Data Extraction helper script !"
|
|
echo "========================================================="
|
|
echo
|
|
echo "Should all data (dbc, maps, vmaps and mmaps be extracted ?"
|
|
echo "(Selecting n will give you the option to pick each step) (y/n):"
|
|
read line
|
|
if [ "$line" = "y" ]
|
|
then
|
|
## extract all
|
|
USE_AD="1"
|
|
USE_VMAPS="1"
|
|
USE_MMAPS="1"
|
|
else
|
|
DisplayHeader
|
|
echo
|
|
echo "Should dbc and maps be extracted? (y/n):"
|
|
read line
|
|
if [ "$line" = "y" ]; then USE_AD="1"; fi
|
|
|
|
DisplayHeader
|
|
echo
|
|
echo "Should vmaps be extracted? (y/n):"
|
|
read line
|
|
if [ "$line" = "y" ]; then USE_VMAPS="1"; fi
|
|
|
|
DisplayHeader
|
|
echo
|
|
echo "WARNING! Extracting mmaps will take several hours!"
|
|
echo "(you can later tell the extractor to delay starting)"
|
|
echo
|
|
echo "Should mmaps be extracted? (y/n):"
|
|
read line
|
|
if [ "$line" = "y" ]
|
|
then
|
|
USE_MMAPS="1";
|
|
else
|
|
echo
|
|
echo "Only reextract offmesh tiles for mmaps?"
|
|
read line
|
|
if [ "$line" = "y" ]
|
|
then
|
|
USE_MMAPS_OFFMESH="1";
|
|
fi
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
## Special case: Only reextract offmesh tiles
|
|
if [ "$USE_MMAPS_OFFMESH" = "1" ]
|
|
then
|
|
echo "Only extracting offmesh meshes"
|
|
./MoveMapGen.sh offmesh $LOG_FILE $DETAIL_LOG_FILE
|
|
exit 0
|
|
fi
|
|
|
|
## MMap Extraction specific
|
|
if [ "$USE_MMAPS" = "1" ]
|
|
then
|
|
## Obtain number ob processes
|
|
DisplayHeader
|
|
echo
|
|
echo "How many CPUs should be used for extracting mmaps? (1-4)"
|
|
read line
|
|
echo
|
|
if [ "$line" -ge "1" -a "$line" -le "4" ]
|
|
then
|
|
NUM_CPU=$line
|
|
else
|
|
echo "Only number between 1 and 4 supported!"
|
|
exit 1
|
|
fi
|
|
## Extract MMaps delayed?
|
|
if [ "$USE_MMAPS_DELAY" != "no" ]; then
|
|
DisplayHeader
|
|
echo
|
|
echo "MMap extraction can be started delayed"
|
|
echo
|
|
echo "If you *do not* want MMap Extraction to start delayed, just press return"
|
|
echo
|
|
echo "Otherwise enter a number followed by s for seconds, m for minutes, h for hours"
|
|
echo "Example: \"3h\" - will start mmap extraction in 3 hours"
|
|
echo
|
|
read -p"MMap Extraction Delay (leave blank for direct extraction): " USE_MMAPS_DELAY
|
|
echo
|
|
else
|
|
USE_MMAPS_DELAY=""
|
|
fi
|
|
fi
|
|
|
|
## Give some status
|
|
DisplayHeader
|
|
echo
|
|
echo "Current Extraction Settings: DBCs/maps: $USE_AD"
|
|
echo " vmaps: $USE_VMAPS"
|
|
echo " mmaps: $USE_MMAPS using $NUM_CPU processes"
|
|
if [ "$USE_MMAPS_DELAY" != "" ]; then
|
|
echo
|
|
echo "MMap Extraction will be started delayed by: $USE_MMAPS_DELAY"
|
|
fi
|
|
echo
|
|
if [ "$1" != "a" ]
|
|
then
|
|
echo "If you don't like these settings, interrupt with CTRL+C"
|
|
echo
|
|
echo "Press any key to proceed"
|
|
read line
|
|
fi
|
|
|
|
echo "`date`: Start extracting data for MaNGOS" | tee $LOG_FILE
|
|
|
|
## Handle log messages
|
|
if [ "$USE_AD" = "1" ];
|
|
then
|
|
echo "DBC and map files will be extracted" | tee -a $LOG_FILE
|
|
else
|
|
echo "DBC and map files won't be extracted!" | tee -a $LOG_FILE
|
|
fi
|
|
if [ "$USE_VMAPS" = "1" ]
|
|
then
|
|
echo "Vmaps will be extracted" | tee -a $LOG_FILE
|
|
else
|
|
echo "Vmaps won't be extracted!" | tee -a $LOG_FILE
|
|
fi
|
|
if [ "$USE_MMAPS" = "1" ]
|
|
then
|
|
echo "Mmaps will be extracted with $NUM_CPU processes" | tee -a $LOG_FILE
|
|
else
|
|
echo "Mmaps files won't be extracted!" | tee -a $LOG_FILE
|
|
fi
|
|
echo | tee -a $LOG_FILE
|
|
|
|
echo "`date`: Start extracting data for MaNGOS, DBCs/maps $USE_AD, vmaps $USE_VMAPS, mmaps $USE_MMAPS on $NUM_CPU processes" | tee $DETAIL_LOG_FILE
|
|
echo | tee -a $DETAIL_LOG_FILE
|
|
|
|
## Extract dbcs and maps
|
|
if [ "$USE_AD" = "1" ]
|
|
then
|
|
echo "`date`: Start extraction of DBCs and map files..." | tee -a $LOG_FILE
|
|
./map-extractor | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: Extracting of DBCs and map files finished" | tee -a $LOG_FILE
|
|
echo | tee -a $LOG_FILE
|
|
echo | tee -a $DETAIL_LOG_FILE
|
|
fi
|
|
|
|
## Extract vmaps
|
|
if [ "$USE_VMAPS" = "1" ]
|
|
then
|
|
echo "`date`: Start extraction of vmaps..." | tee -a $LOG_FILE
|
|
./vmap-extractor | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: Extracting of vmaps finished" | tee -a $LOG_FILE
|
|
mkdir ./vmaps
|
|
echo "`date`: Start assembling of vmaps..." | tee -a $LOG_FILE
|
|
./vmap-assembler Buildings vmaps | tee -a $DETAIL_LOG_FILE
|
|
echo "`date`: Assembling of vmaps finished" | tee -a $LOG_FILE
|
|
|
|
echo | tee -a $LOG_FILE
|
|
echo | tee -a $DETAIL_LOG_FILE
|
|
fi
|
|
|
|
## Extract mmaps
|
|
if [ "$USE_MMAPS" = "1" ]
|
|
then
|
|
if [ "$USE_MMAPS_DELAY" != "" ]; then
|
|
echo "Extracting of MMaps is set to be started delayed by $USE_MMAPS_DELAY"
|
|
echo "Current time: $(date)"
|
|
sleep $USE_MMAPS_DELAY
|
|
fi
|
|
sh ./MoveMapGen.sh $NUM_CPU $LOG_FILE $DETAIL_LOG_FILE
|
|
fi
|
|
|