tools/hwmap2lua.sh
author Wuzzy <Wuzzy2@mail.ru>
Thu, 25 Apr 2019 23:01:05 +0200
changeset 14844 e239378a9400
parent 13069 6766b900ab13
permissions -rwxr-xr-x
Prevent entering “/”, “\” and “:” in team and scheme names. The name of teams and schems is saved in the file name itself, so these characters would cause trouble as they are used in path names in Linux and Windows.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13068
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     1
#!/bin/sh -
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     2
# === HWMAP-to-Lua converter ===
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     3
# This script allows you to put arbitrary HWMAPs into your missions!
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     4
#
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     5
# Usage:
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     6
# It expects a .hwmap file of name "map.hwmap" to be in
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     7
# its directory and creates a Lua file (map.lua) containing code to
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     8
# draw the map.
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
     9
# In Lua, call drawMap() in onGameInit. And don't forget
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    10
# to set MapGen to mgDrawn. Then your map should be ready to go! :-)
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    11
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    12
# FILE NAMES 
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    13
IN="./map.hwmap";
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    14
OUT="./map.lua";
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    15
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    16
# TEMPORARY FILES
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    17
TEMP_UNBASE=$(mktemp);
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    18
TEMP_GZIP=$(mktemp);
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    19
TEMP_OCTETS=$(mktemp);
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    20
base64 -d $IN | tail -c +7 | head -c -4 > $TEMP_UNBASE;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    21
echo -ne "\x1f\x8b\x08\0\0\0\0\0\x02\xff" > $TEMP_GZIP;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    22
# Suppress gunzip warning: "gzip: stdin: unexpected end of file"
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    23
cat $TEMP_GZIP $TEMP_UNBASE | gunzip 2> /dev/null > $TEMP_OCTETS;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    24
C=0;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    25
echo -n '-- Map definition automatically converted from HWMAP file by hwmap2lua.sh
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    26
local map = {' > $OUT;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    27
od -w240 -t u1 $TEMP_OCTETS | grep -Ev "^[0-9]*[[:space:]]*$" | while read f;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    28
do C=$((C+1));
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    29
	if ((C!=1));
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    30
	then
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    31
		echo "," >> $OUT;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    32
	fi;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    33
	echo -n $f | sed "s/^......./'/;s/  */\\\\/g;s/$/'/" >> $OUT;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    34
done;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    35
echo '}
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    36
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    37
local function drawMap()
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    38
	for m=1, #map do
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    39
		ParseCommand("draw "..map[m])
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    40
	end
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    41
end' >> $OUT;
dc77c2c679b2 Add szczur's script to convert .hwmap to Lua code
Wuzzy <Wuzzy2@mail.ru>
parents:
diff changeset
    42
rm $TEMP_UNBASE $TEMP_GZIP $TEMP_OCTETS;