diff --git a/android/generate_assets.sh b/android/generate_assets.sh index 51bda9b3c..d0f2f32ec 100755 --- a/android/generate_assets.sh +++ b/android/generate_assets.sh @@ -52,21 +52,21 @@ cd "`dirname "$0"`" # Find assets path for ASSETS_PATH in $ASSETS_PATHS; do - if [ -d $ASSETS_PATH ] && [ `ls $ASSETS_PATH | grep -c tracks` -gt 0 ]; then - echo "Assets found in $ASSETS_PATH" - ASSETS_PATH_FOUND=1 - break - fi + if [ -d $ASSETS_PATH ] && [ `ls $ASSETS_PATH | grep -c tracks` -gt 0 ]; then + echo "Assets found in $ASSETS_PATH" + ASSETS_PATH_FOUND=1 + break + fi done if [ -z $ASSETS_PATH_FOUND ]; then - echo "Couldn't find assets path" - exit 1 + echo "Couldn't find assets path" + exit 1 fi if [ ! -d "../data" ]; then - echo "Couldn't find data directory" - exit 1 + echo "Couldn't find data directory" + exit 1 fi @@ -81,27 +81,27 @@ echo "Copy all assets" mkdir -p assets/data for DIR in `ls $ASSETS_PATH`; do - CAN_BE_COPIED=0 + CAN_BE_COPIED=0 - for ASSETS_DIR in $ASSETS_DIRS; do - if [ $DIR = $ASSETS_DIR ]; then - CAN_BE_COPIED=1 - break - fi - done; + for ASSETS_DIR in $ASSETS_DIRS; do + if [ $DIR = $ASSETS_DIR ]; then + CAN_BE_COPIED=1 + break + fi + done; - # Don't copy karts and tracks. It will be handled later - BLACKLIST_ASSETS="karts tracks" - for ASSETS_DIR in $BLACKLIST_ASSETS; do - if [ $DIR = $ASSETS_DIR ]; then - CAN_BE_COPIED=0 - break - fi - done; + # Don't copy karts and tracks. It will be handled later + BLACKLIST_ASSETS="karts tracks" + for ASSETS_DIR in $BLACKLIST_ASSETS; do + if [ $DIR = $ASSETS_DIR ]; then + CAN_BE_COPIED=0 + break + fi + done; - if [ $CAN_BE_COPIED -gt 0 ]; then - cp -a "$ASSETS_PATH/$DIR" assets/data/ - fi + if [ $CAN_BE_COPIED -gt 0 ]; then + cp -a "$ASSETS_PATH/$DIR" assets/data/ + fi done; @@ -111,22 +111,22 @@ echo "Copy selected tracks" mkdir -p assets/data/tracks for DIR in `ls $ASSETS_PATH/tracks`; do - CAN_BE_COPIED=0 + CAN_BE_COPIED=0 - if [ "$TRACKS" != "all" ]; then - for TRACK in $TRACKS; do - if [ $DIR = $TRACK ]; then - CAN_BE_COPIED=1 - break - fi - done; - else - CAN_BE_COPIED=1 - fi + if [ "$TRACKS" != "all" ]; then + for TRACK in $TRACKS; do + if [ $DIR = $TRACK ]; then + CAN_BE_COPIED=1 + break + fi + done; + else + CAN_BE_COPIED=1 + fi - if [ $CAN_BE_COPIED -gt 0 ]; then - cp -a "$ASSETS_PATH/tracks/$DIR" assets/data/tracks/ - fi + if [ $CAN_BE_COPIED -gt 0 ]; then + cp -a "$ASSETS_PATH/tracks/$DIR" assets/data/tracks/ + fi done @@ -136,22 +136,22 @@ echo "Copy selected karts" mkdir -p assets/data/karts for DIR in `ls $ASSETS_PATH/karts`; do - CAN_BE_COPIED=0 + CAN_BE_COPIED=0 - if [ "$KARTS" != "all" ]; then - for KART in $KARTS; do - if [ $DIR = $KART ]; then - CAN_BE_COPIED=1 - break - fi - done; - else - CAN_BE_COPIED=1 - fi + if [ "$KARTS" != "all" ]; then + for KART in $KARTS; do + if [ $DIR = $KART ]; then + CAN_BE_COPIED=1 + break + fi + done; + else + CAN_BE_COPIED=1 + fi - if [ $CAN_BE_COPIED -gt 0 ]; then - cp -a "$ASSETS_PATH/karts/$DIR" assets/data/karts/ - fi + if [ $CAN_BE_COPIED -gt 0 ]; then + cp -a "$ASSETS_PATH/karts/$DIR" assets/data/karts/ + fi done @@ -160,388 +160,384 @@ echo "Decrease assets quality" convert_image() { - FILE="$1" - FILE_TYPE="$2" - echo "Convert file: $FILE" + FILE="$1" + FILE_TYPE="$2" + echo "Convert file: $FILE" - if [ ! -f "$FILE" ]; then - echo " File doesn't exist." - return - fi + if [ ! -f "$FILE" ]; then + echo " File doesn't exist." + return + fi - W=`identify -format "%[fx:w]" "$FILE"` - H=`identify -format "%[fx:h]" "$FILE"` + W=`identify -format "%[fx:w]" "$FILE"` + H=`identify -format "%[fx:h]" "$FILE"` - if [ -z $W ] || [ -z $H ]; then - echo "Couldn't convert $FILE file" - return - fi + if [ -z $W ] || [ -z $H ]; then + echo "Couldn't convert $FILE file" + return + fi - if [ $W -gt $TEXTURE_SIZE ] || [ $H -gt $TEXTURE_SIZE ]; then - if [ $W -gt $H ]; then - SCALED_W=$TEXTURE_SIZE - SCALED_H=$(($TEXTURE_SIZE * $H / $W)) - else - SCALED_W=$(($TEXTURE_SIZE * $W / $H)) - SCALED_H=$TEXTURE_SIZE - fi + if [ $W -gt $TEXTURE_SIZE ] || [ $H -gt $TEXTURE_SIZE ]; then + if [ $W -gt $H ]; then + SCALED_W=$TEXTURE_SIZE + SCALED_H=$(($TEXTURE_SIZE * $H / $W)) + else + SCALED_W=$(($TEXTURE_SIZE * $W / $H)) + SCALED_H=$TEXTURE_SIZE + fi - SCALE_CMD="-scale ${SCALED_W}x${SCALED_H}" - fi + SCALE_CMD="-scale ${SCALED_W}x${SCALED_H}" + fi - if [ "$FILE_TYPE" = "jpg" ]; then - QUALITY_CMD="-quality $JPEG_QUALITY" - elif [ "$FILE_TYPE" = "png" ]; then - QUALITY_CMD="-quality $PNG_QUALITY" - fi + if [ "$FILE_TYPE" = "jpg" ]; then + QUALITY_CMD="-quality $JPEG_QUALITY" + elif [ "$FILE_TYPE" = "png" ]; then + QUALITY_CMD="-quality $PNG_QUALITY" + fi - convert $SCALE_CMD $QUALITY_CMD "$FILE" "tmp.$FILE_TYPE" + convert $SCALE_CMD $QUALITY_CMD "$FILE" "tmp.$FILE_TYPE" - if [ -s "tmp.$FILE_TYPE" ]; then - SIZE_OLD=`du -k "$FILE" | cut -f1` - SIZE_NEW=`du -k "tmp.$FILE_TYPE" | cut -f1` + if [ -s "tmp.$FILE_TYPE" ]; then + SIZE_OLD=`du -k "$FILE" | cut -f1` + SIZE_NEW=`du -k "tmp.$FILE_TYPE" | cut -f1` - if [ $SIZE_NEW -lt $SIZE_OLD ]; then - mv "tmp.$FILE_TYPE" "$FILE" - fi - fi + if [ $SIZE_NEW -lt $SIZE_OLD ]; then + mv "tmp.$FILE_TYPE" "$FILE" + fi + fi - rm -f "tmp.$FILE_TYPE" + rm -f "tmp.$FILE_TYPE" } convert_sound() { - FILE="$1" - echo "Convert file: $FILE" + FILE="$1" + echo "Convert file: $FILE" - if [ ! -f "$FILE" ]; then - echo " File doesn't exist." - return - fi + if [ ! -f "$FILE" ]; then + echo " File doesn't exist." + return + fi - oggdec "$FILE" -o tmp.wav + oggdec "$FILE" -o tmp.wav - if [ -s tmp.wav ]; then - OGGENC_CMD="" + if [ -s tmp.wav ]; then + OGGENC_CMD="" - if [ "$SOUND_MONO" -gt 0 ]; then - OGGENC_CMD="$OGGENC_CMD --downmix" - fi + if [ "$SOUND_MONO" -gt 0 ]; then + OGGENC_CMD="$OGGENC_CMD --downmix" + fi - OGG_RATE=`ogginfo "$FILE" | grep "Rate: " | cut -f 2 -d " " \ - | grep -o '[0-9]*'` + OGG_RATE=`ogginfo "$FILE" | grep "Rate: " | cut -f 2 -d " " \ + | grep -o '[0-9]*'` - if [ ! -z "$OGG_RATE" ] && [ "$OGG_RATE" -gt "$SOUND_SAMPLE" ]; then - OGGENC_CMD="$OGGENC_CMD --resample $SOUND_SAMPLE" - fi + if [ ! -z "$OGG_RATE" ] && [ "$OGG_RATE" -gt "$SOUND_SAMPLE" ]; then + OGGENC_CMD="$OGGENC_CMD --resample $SOUND_SAMPLE" + fi - OGGENC_CMD="$OGGENC_CMD -b $SOUND_QUALITY" + OGGENC_CMD="$OGGENC_CMD -b $SOUND_QUALITY" - oggenc $OGGENC_CMD tmp.wav -o tmp.ogg - fi + oggenc $OGGENC_CMD tmp.wav -o tmp.ogg + fi - if [ -s tmp.ogg ]; then - SIZE_OLD=`du -k "$FILE" | cut -f1` - SIZE_NEW=`du -k "tmp.ogg" | cut -f1` + if [ -s tmp.ogg ]; then + SIZE_OLD=`du -k "$FILE" | cut -f1` + SIZE_NEW=`du -k "tmp.ogg" | cut -f1` - if [ $SIZE_NEW -lt $SIZE_OLD ]; then - mv tmp.ogg "$FILE" - fi - fi + if [ $SIZE_NEW -lt $SIZE_OLD ]; then + mv tmp.ogg "$FILE" + fi + fi - rm -f tmp.wav tmp.ogg + rm -f tmp.wav tmp.ogg } convert_to_jpg() { - FILE="$1" - echo "Convert file: $FILE" + FILE="$1" + echo "Convert file: $FILE" - if [ ! -f "$FILE" ]; then - echo " File doesn't exist." - return - fi - - ALREADY_CONVERTED=0 + if [ ! -f "$FILE" ]; then + echo " File doesn't exist." + return + fi - if [ -s "./converted_textures" ]; then - while read -r CONVERTED_TEXTURE; do - if [ "$FILE" = "$CONVERTED_TEXTURE" ]; then - ALREADY_CONVERTED=1 - break - fi - done < "./converted_textures" - fi + ALREADY_CONVERTED=0 - if [ $ALREADY_CONVERTED -eq 1 ]; then - return - fi + if [ -s "./converted_textures" ]; then + while read -r CONVERTED_TEXTURE; do + if [ "$FILE" = "$CONVERTED_TEXTURE" ]; then + ALREADY_CONVERTED=1 + break + fi + done < "./converted_textures" + fi - if [ ! -f "$FILE" ]; then - #echo " Couldn't find texture file. Ignore..." - continue - fi + if [ $ALREADY_CONVERTED -eq 1 ]; then + return + fi - FILE_EXTENSION=`echo "$FILE" | tail -c 5` + if [ ! -f "$FILE" ]; then + #echo " Couldn't find texture file. Ignore..." + continue + fi - if [ `echo "$FILE_EXTENSION" | head -c 1` != "." ]; then - #echo " Unsupported file extension. Ignore..." - continue - fi + FILE_EXTENSION=`echo "$FILE" | tail -c 5` - FILE_FORMAT=`identify -format %m "$FILE"` + if [ `echo "$FILE_EXTENSION" | head -c 1` != "." ]; then + #echo " Unsupported file extension. Ignore..." + continue + fi - if [ "$FILE_FORMAT" = "JPEG" ]; then - #echo " File is already JPEG. Ignore..." - continue - fi + FILE_FORMAT=`identify -format %m "$FILE"` - IS_OPAQUE=`identify -format '%[opaque]' "$FILE"` - #HAS_ALPHA=`identify -format '%A' "$FILE"` + if [ "$FILE_FORMAT" = "JPEG" ]; then + #echo " File is already JPEG. Ignore..." + continue + fi - if [ "$IS_OPAQUE" = "False" ] || [ "$IS_OPAQUE" = "false" ]; then - #echo " File has alpha channel. Ignore..." - continue - fi + IS_OPAQUE=`identify -format '%[opaque]' "$FILE"` + #HAS_ALPHA=`identify -format '%A' "$FILE"` - NEW_FILE="`echo $FILE | head -c -5`.jpg" + if [ "$IS_OPAQUE" = "False" ] || [ "$IS_OPAQUE" = "false" ]; then + #echo " File has alpha channel. Ignore..." + continue + fi - if [ -f "$NEW_FILE" ]; then - #echo " There is already a file with .jpg extension. Ignore..." - continue - fi + NEW_FILE="`echo $FILE | head -c -5`.jpg" - # We can check if new file is smaller - convert -quality $JPEG_QUALITY "$FILE" "$NEW_FILE" - rm -f "$FILE" + if [ -f "$NEW_FILE" ]; then + #echo " There is already a file with .jpg extension. Ignore..." + continue + fi - echo "$FILE" >> "./converted_textures" + # We can check if new file is smaller + convert -quality $JPEG_QUALITY "$FILE" "$NEW_FILE" + rm -f "$FILE" + + echo "$FILE" >> "./converted_textures" } - convert_to_jpg_extract_b3dz() { - FILE="$1" - echo "Convert file: $FILE" + FILE="$1" + echo "Convert file: $FILE" - if [ ! -f "$FILE" ]; then - echo " File doesn't exist." - return - fi + if [ ! -f "$FILE" ]; then + echo " File doesn't exist." + return + fi - DIRNAME="`dirname "$FILE"`" - - unzip "$FILE" -d "$DIRNAME" - rm -f "$FILE" - - TEXNAME="`basename "$FILE"`" - NEWNAME="`echo $TEXNAME | head -c -6`.b3d" - - sed -i "s/\"$TEXNAME\"/\"$NEWNAME\"/g" "$DIRNAME/kart.xml" + DIRNAME="`dirname "$FILE"`" + + unzip "$FILE" -d "$DIRNAME" + rm -f "$FILE" + + TEXNAME="`basename "$FILE"`" + NEWNAME="`echo $TEXNAME | head -c -6`.b3d" + + sed -i "s/\"$TEXNAME\"/\"$NEWNAME\"/g" "$DIRNAME/kart.xml" } - convert_to_jpg_update_b3d() { - FILE="$1" - echo "Convert file: $FILE" - - if [ ! -f "$1" ]; then - echo " File doesn't exist." - return - fi + FILE="$1" + echo "Convert file: $FILE" - HEX_FILE=`hexdump -ve '1/1 "%.2x"' "$FILE"` + if [ ! -f "$1" ]; then + echo " File doesn't exist." + return + fi - TEXS_CHUNK="54455853" - TEXS_CHUNK_POS=24 + HEX_FILE=`hexdump -ve '1/1 "%.2x"' "$FILE"` - FOUND_CHUNK=`echo $HEX_FILE | head -c $(($TEXS_CHUNK_POS + 8)) \ - | tail -c +$(($TEXS_CHUNK_POS + 1))` + TEXS_CHUNK="54455853" + TEXS_CHUNK_POS=24 - if [ -z "$FOUND_CHUNK" ] || [ "$FOUND_CHUNK" != "$TEXS_CHUNK" ]; then - echo " File has no textures." - return - fi + FOUND_CHUNK=`echo $HEX_FILE | head -c $(($TEXS_CHUNK_POS + 8)) \ + | tail -c +$(($TEXS_CHUNK_POS + 1))` - TEXS_SIZE=`echo $HEX_FILE | head -c $(($TEXS_CHUNK_POS + 16)) | tail -c 8` + if [ -z "$FOUND_CHUNK" ] || [ "$FOUND_CHUNK" != "$TEXS_CHUNK" ]; then + echo " File has no textures." + return + fi - TEXS_SIZE_CONVERTED=`echo $TEXS_SIZE | cut -c7-8` - TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c5-6` - TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c3-4` - TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c1-2` - TEXS_SIZE_CONVERTED=`echo $((0x$TEXS_SIZE_CONVERTED))` + TEXS_SIZE=`echo $HEX_FILE | head -c $(($TEXS_CHUNK_POS + 16)) | tail -c 8` - if [ $TEXS_SIZE_CONVERTED -le 0 ]; then - echo " Invalid TEXS size value." - return - fi + TEXS_SIZE_CONVERTED=`echo $TEXS_SIZE | cut -c7-8` + TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c5-6` + TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c3-4` + TEXS_SIZE_CONVERTED=$TEXS_SIZE_CONVERTED`echo $TEXS_SIZE | cut -c1-2` + TEXS_SIZE_CONVERTED=`echo $((0x$TEXS_SIZE_CONVERTED))` - TEXS_BEGIN=$(($TEXS_CHUNK_POS + 16)) - TEXS_END=$(($TEXS_BEGIN + $TEXS_SIZE_CONVERTED * 2)) - HEX_TEXS=`echo $HEX_FILE | head -c $TEXS_END | tail -c +$(($TEXS_BEGIN+1))` - CURR_POS=0 + if [ $TEXS_SIZE_CONVERTED -le 0 ]; then + echo " Invalid TEXS size value." + return + fi - while [ $CURR_POS -lt $TEXS_END ]; do - NULL_POS=`echo $HEX_TEXS | tail -c +$(($CURR_POS+1)) | grep -b -o "00" \ - | head -n 1 | cut -f1 -d":"` + TEXS_BEGIN=$(($TEXS_CHUNK_POS + 16)) + TEXS_END=$(($TEXS_BEGIN + $TEXS_SIZE_CONVERTED * 2)) + HEX_TEXS=`echo $HEX_FILE | head -c $TEXS_END | tail -c +$(($TEXS_BEGIN+1))` + CURR_POS=0 - if [ -z $NULL_POS ]; then - #echo " Done." - break - fi + while [ $CURR_POS -lt $TEXS_END ]; do + NULL_POS=`echo $HEX_TEXS | tail -c +$(($CURR_POS+1)) | grep -b -o "00" \ + | head -n 1 | cut -f1 -d":"` - if [ $NULL_POS -lt 4 ]; then - echo " Something went wrong..." - break - fi - - TEXNAME_BEGIN=$((($TEXS_BEGIN + $CURR_POS) / 2)) - TEXNAME_END=$((($TEXS_BEGIN + $CURR_POS + $NULL_POS) / 2)) - CURR_POS=$(($CURR_POS + $NULL_POS + 58)) - - TEXTURE_NAME=`dd if="$FILE" bs=1 skip=$TEXNAME_BEGIN \ - count=$(($TEXNAME_END - $TEXNAME_BEGIN)) 2> /dev/null` - DIRNAME="`dirname "$FILE"`" - TEXTURE_PATH="$DIRNAME/$TEXTURE_NAME" - - IS_CONVERTED=0 - - while read -r CONVERTED_TEXTURE; do - if [ "$TEXTURE_PATH" = "$CONVERTED_TEXTURE" ]; then - IS_CONVERTED=1 + if [ -z $NULL_POS ]; then + #echo " Done." break - fi - done < "./converted_textures" - - if [ $IS_CONVERTED -eq 1 ]; then - echo -n ".jpg" | dd of="$FILE" bs=1 seek=$(($TEXNAME_END - 4)) \ - conv=notrunc 2> /dev/null - fi; - done -} + fi + if [ $NULL_POS -lt 4 ]; then + echo " Something went wrong..." + break + fi + + TEXNAME_BEGIN=$((($TEXS_BEGIN + $CURR_POS) / 2)) + TEXNAME_END=$((($TEXS_BEGIN + $CURR_POS + $NULL_POS) / 2)) + CURR_POS=$(($CURR_POS + $NULL_POS + 58)) + + TEXTURE_NAME=`dd if="$FILE" bs=1 skip=$TEXNAME_BEGIN \ + count=$(($TEXNAME_END - $TEXNAME_BEGIN)) 2> /dev/null` + DIRNAME="`dirname "$FILE"`" + TEXTURE_PATH="$DIRNAME/$TEXTURE_NAME" + + IS_CONVERTED=0 + + while read -r CONVERTED_TEXTURE; do + if [ "$TEXTURE_PATH" = "$CONVERTED_TEXTURE" ]; then + IS_CONVERTED=1 + break + fi + done < "./converted_textures" + + if [ $IS_CONVERTED -eq 1 ]; then + echo -n ".jpg" | dd of="$FILE" bs=1 seek=$(($TEXNAME_END - 4)) \ + conv=notrunc 2> /dev/null + fi; + done +} convert_to_jpg_update_spm() { - FILE="$1" - echo "Convert file: $FILE" - - if [ ! -f "$1" ]; then - echo " File doesn't exist." - return - fi + FILE="$1" + echo "Convert file: $FILE" - HEX_FILE=`hexdump -ve '1/1 "%.2x"' "$FILE"` - - SP_HEADER="5350" - SP_FOUND=`echo $HEX_FILE | head -c 4` + if [ ! -f "$1" ]; then + echo " File doesn't exist." + return + fi - if [ -z "$SP_FOUND" ] || [ "$SP_FOUND" != "$SP_HEADER" ]; then - echo " Unsupported format." - return - fi + HEX_FILE=`hexdump -ve '1/1 "%.2x"' "$FILE"` - TEXS_BEGIN=60 - TEXS_COUNT=`echo $HEX_FILE | head -c $TEXS_BEGIN | tail -c 4` - - TEXS_COUNT_CONVERTED=`echo $TEXS_COUNT | cut -c3-4` - TEXS_COUNT_CONVERTED=$TEXS_COUNT_CONVERTED`echo $TEXS_COUNT | cut -c1-2` - TEXS_COUNT_CONVERTED=`echo $((0x$TEXS_COUNT_CONVERTED))` - TEXS_COUNT_CONVERTED=$(($TEXS_COUNT_CONVERTED * 2)) - - if [ $TEXS_COUNT_CONVERTED -le 0 ]; then - echo " Invalid textures count value." - return - fi + SP_HEADER="5350" + SP_FOUND=`echo $HEX_FILE | head -c 4` - CURR_POS=$(($TEXS_BEGIN + 2)) + if [ -z "$SP_FOUND" ] || [ "$SP_FOUND" != "$SP_HEADER" ]; then + echo " Unsupported format." + return + fi - while [ $TEXS_COUNT_CONVERTED -gt 0 ]; do - TEXS_COUNT_CONVERTED=$(($TEXS_COUNT_CONVERTED - 1)) + TEXS_BEGIN=60 + TEXS_COUNT=`echo $HEX_FILE | head -c $TEXS_BEGIN | tail -c 4` - TEX_LEN=`echo $HEX_FILE | head -c $(($CURR_POS)) | tail -c 2` - TEX_LEN=`echo $((0x$TEX_LEN))` + TEXS_COUNT_CONVERTED=`echo $TEXS_COUNT | cut -c3-4` + TEXS_COUNT_CONVERTED=$TEXS_COUNT_CONVERTED`echo $TEXS_COUNT | cut -c1-2` + TEXS_COUNT_CONVERTED=`echo $((0x$TEXS_COUNT_CONVERTED))` + TEXS_COUNT_CONVERTED=$(($TEXS_COUNT_CONVERTED * 2)) - TEXNAME_BEGIN=$(($CURR_POS / 2)) - TEXNAME_END=$(($CURR_POS / 2 + $TEX_LEN)) - CURR_POS=$(($CURR_POS + 2 + $TEX_LEN * 2)) + if [ $TEXS_COUNT_CONVERTED -le 0 ]; then + echo " Invalid textures count value." + return + fi + + CURR_POS=$(($TEXS_BEGIN + 2)) + + while [ $TEXS_COUNT_CONVERTED -gt 0 ]; do + TEXS_COUNT_CONVERTED=$(($TEXS_COUNT_CONVERTED - 1)) + + TEX_LEN=`echo $HEX_FILE | head -c $(($CURR_POS)) | tail -c 2` + TEX_LEN=`echo $((0x$TEX_LEN))` + + TEXNAME_BEGIN=$(($CURR_POS / 2)) + TEXNAME_END=$(($CURR_POS / 2 + $TEX_LEN)) + CURR_POS=$(($CURR_POS + 2 + $TEX_LEN * 2)) + + if [ $TEX_LEN -eq 0 ]; then + #echo " Empty texture name, ignore..." + continue + fi + + TEXTURE_NAME=`dd if="$FILE" bs=1 skip=$TEXNAME_BEGIN \ + count=$(($TEXNAME_END - $TEXNAME_BEGIN)) 2> /dev/null` - if [ $TEX_LEN -eq 0 ]; then - #echo " Empty texture name, ignore..." - continue - fi + DIRNAME="`dirname "$FILE"`" + TEXTURE_PATH="$DIRNAME/$TEXTURE_NAME" - TEXTURE_NAME=`dd if="$FILE" bs=1 skip=$TEXNAME_BEGIN \ - count=$(($TEXNAME_END - $TEXNAME_BEGIN)) 2> /dev/null` - - DIRNAME="`dirname "$FILE"`" - TEXTURE_PATH="$DIRNAME/$TEXTURE_NAME" - - IS_CONVERTED=0 - - while read -r CONVERTED_TEXTURE; do - if [ "$TEXTURE_PATH" = "$CONVERTED_TEXTURE" ]; then - IS_CONVERTED=1 - break - fi - done < "./converted_textures" - - if [ $IS_CONVERTED -eq 1 ]; then - echo -n ".jpg" | dd of="$FILE" bs=1 seek=$(($TEXNAME_END - 4)) \ - conv=notrunc 2> /dev/null - fi - done + IS_CONVERTED=0 + + while read -r CONVERTED_TEXTURE; do + if [ "$TEXTURE_PATH" = "$CONVERTED_TEXTURE" ]; then + IS_CONVERTED=1 + break + fi + done < "./converted_textures" + + if [ $IS_CONVERTED -eq 1 ]; then + echo -n ".jpg" | dd of="$FILE" bs=1 seek=$(($TEXNAME_END - 4)) \ + conv=notrunc 2> /dev/null + fi + done } - convert_to_jpg_update_xml() { - FILE="$1" - echo "Convert file: $FILE" - - if [ ! -f "$FILE" ]; then - echo " File doesn't exist." - return - fi - - DIRNAME="`dirname "$FILE"`" - - while read -r CONVERTED_TEXTURE; do - DIRNAME_TEX="`dirname "$CONVERTED_TEXTURE"`" - - if [ "$DIRNAME_TEX" != "$DIRNAME" ]; then - continue; - fi - - TEXNAME="`basename "$CONVERTED_TEXTURE" | head -c -5`" - - sed -i "s/\"$TEXNAME.[pP][nN][gG]/\"$TEXNAME.jpg/g" "$FILE" - sed -i "s/ $TEXNAME.[pP][nN][gG]/ $TEXNAME.jpg/g" "$FILE" - done < "./converted_textures" + FILE="$1" + echo "Convert file: $FILE" + + if [ ! -f "$FILE" ]; then + echo " File doesn't exist." + return + fi + + DIRNAME="`dirname "$FILE"`" + + while read -r CONVERTED_TEXTURE; do + DIRNAME_TEX="`dirname "$CONVERTED_TEXTURE"`" + + if [ "$DIRNAME_TEX" != "$DIRNAME" ]; then + continue; + fi + + TEXNAME="`basename "$CONVERTED_TEXTURE" | head -c -5`" + + sed -i "s/\"$TEXNAME.[pP][nN][gG]/\"$TEXNAME.jpg/g" "$FILE" + sed -i "s/ $TEXNAME.[pP][nN][gG]/ $TEXNAME.jpg/g" "$FILE" + done < "./converted_textures" } if [ $DECREASE_QUALITY -gt 0 ]; then - find assets/data -iname "*.png" | while read f; do convert_image "$f" "png"; done - find assets/data -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done - find assets/data -iname "*.ogg" | while read f; do convert_sound "$f"; done + find assets/data -iname "*.png" | while read f; do convert_image "$f" "png"; done + find assets/data -iname "*.jpg" | while read f; do convert_image "$f" "jpg"; done + find assets/data -iname "*.ogg" | while read f; do convert_sound "$f"; done fi if [ $CONVERT_TO_JPG -gt 0 ]; then - find assets/data -not -path "assets/data/textures/*" -iname "*.png" | while read f; do convert_to_jpg "$f"; done - - find assets/data -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done - find assets/data -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done - find assets/data -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done - find assets/data -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done - - if [ -s "./converted_textures" ]; then - echo "Converted textures:" - cat "./converted_textures" - rm -f "./converted_textures" - fi + find assets/data -not -path "assets/data/textures/*" -iname "*.png" | while read f; do convert_to_jpg "$f"; done + + find assets/data -iname "*.b3dz" | while read f; do convert_to_jpg_extract_b3dz "$f"; done + find assets/data -iname "*.b3d" | while read f; do convert_to_jpg_update_b3d "$f"; done + find assets/data -iname "*.spm" | while read f; do convert_to_jpg_update_spm "$f"; done + find assets/data -iname "*.xml" | while read f; do convert_to_jpg_update_xml "$f"; done + + if [ -s "./converted_textures" ]; then + echo "Converted textures:" + cat "./converted_textures" + rm -f "./converted_textures" + fi fi @@ -552,14 +548,14 @@ cp -a ../data/* assets/data/ # Remove unused files for BLACKLIST_FILE in $BLACKLIST_FILES; do - rm -f "assets/$BLACKLIST_FILE" + rm -f "assets/$BLACKLIST_FILE" done # Run optimize_data.sh script if [ $RUN_OPTIMIZE_SCRIPT -gt 0 ]; then - echo "Run optimize_data.sh script" - sh -c 'cd assets/data; ../../../data/optimize_data.sh' + echo "Run optimize_data.sh script" + sh -c 'cd assets/data; ../../../data/optimize_data.sh' fi