UDKTools

This software is part of EssenceUDK project
<http://dev.uoquint.ru/projects/essence-udk>
EssenceUDK.Tool version: 1.0.6436.42944
EssenceUDK.Platform version: 1.0.6436.42944

Usage: run "EssenceUDK.Tools.exe" with command.

Commands:

--fsutil    - Operation over file system (rename, moving, deleteing files)
Arguments:
[-pfx <string>] [-min <number>] [-max <number>] [-ren <beg|end|file>]
[-mov <number>] [-len <number>] [-hex] [-del] <in_dir> <out_dir> [<list>]
-pfx <string> Prefix for file names: I, L, T, G and others.
-min &lt;number&gt; Ignore all files with ID < number.
-max &lt;number&gt; Ignore all files with ID > number.
-ren &lt;beg|end&gt; Rename all files from end or start without skipping ID.
-ren &lt;file&gt; Rename files from files according to there rule
-mov &lt;number&gt; Shift each result ID by specified value.
-len &lt;number&gt; Count of digits in input names (default 5 and 4 for hex)
-dcn &lt;number&gt; Count of digits in output names (default same as input)
-hex Save file names in HEX format.
-del Delete file from &lt;in_dir&gt; after coping ti &lt;out_dir&gt;.
&lt;in_dir&gt; Path to input folder.
&lt;out_dir&gt; Path to output folder.
&lt;list&gt; Path to output text file to store list of id's
--create    - Create new index or not index *.mul file with specidied size
Arguments:
$MULINF$
--resize    - Increase/decrease *.mul file length
Arguments:
&lt;entry_count&gt; $MULCON$
--defrag    - Defragmentation index *.mul file
Arguments:
$MULCON$
--export    - Export data blocks and save them as *.mde files.
Arguments:
&lt;dirpath&gt; $MULCON$
--import    - Import data blocks from *.mde files to *.mul file.
Arguments:
&lt;dirpath&gt; $MULCON$
--merger    - Make binary merge for 2 *.mul files. All not existing entries in
second file will be replaced from 1st, and all conflict entries
will be exported to *.mde files in specified folders.
Arguments:
&lt;dirpath&gt; $MULCON$ &lt;dirpath&gt; $MULCON$
--convtd    - Make conversation from new tiledata format to old one and back
Arguments:
&lt;dstfile&gt; &lt;newformat&gt; &lt;mulfile&gt;
&lt;newformat&gt; - true/false, true means converting from new format to old
--convmt    - Make conversation from new multi format(HS) to old one and back
Arguments:
&lt;newformat&gt; &lt;idxfile&gt; &lt;mulfile&gt;
&lt;newformat&gt; - true/false, true means converting from new format to old
--copyid    - Coping entries with specified numbers to new position
Arguments:
$LIST#2$ $MULCON$
--moveid    - Moving entries with specified numbers to new position
Arguments:
$LIST#2$ $MULCON$
--remove    - Delete entries with specified numbers in index *.mul file
Arguments:
$LIST#1$ $MULCON$
--facetm    - Operation over facets (map, statics, facets)
Arguments:
&lt;folder&gt; &lt;uodata&gt; &lt;uoopts&gt; $SUBCMD$
&lt;folder&gt; - folder with data files
&lt;uodata&gt; - client type flags (for HS - 0x0462, else - 0x0062)
&lt;uoopts&gt; - array of map indexes and map sizes, where values are separeted
by "|" (for original HS maps:
"0|896|512|1|896|512|2|288|200|3|320|256|4|181|181|5|160|512")
$SUBCMD$ - subcommand, see list below:
-replid    - Replace all land tiles with specified Index by new Index
Arguments:
$MPAREA$ $LIST#2$
-reptid    - Replace all item tiles with specified Index by new Index
Arguments:
$MPAREA$ $LIST#2$
-rephid    - Replace all item colors with specified Index by new Index
Arguments:
$MPAREA$ $LIST#2$
-remove    - Delete all item tiles with specified Index from statics
Arguments:
$MPAREA$ $LIST#1$
-render    - Flat render part of image to png image.
Arguments:
$MPAREA$ [-ppt &lt;number&gt;] [-alt &lt;number&gt;]
[-min &lt;number&gt;] [-max &lt;number&gt;] &lt;output_file&gt;
-ppt &lt;number&gt; Pixels per tile (from 1 to 16, default: 2)
-alt &lt;number&gt; Altitude of sea-level (default: -45)
-min &lt;number&gt; Z-filter (tiles below min altitude willn't draw)
-max &lt;number&gt; Z-filter (tiles above max altitude willn't draw)
--uopunp    - Unpack uop container
Arguments:
&lt;folder&gt; [-extra] &lt;uopfile&gt;
-extra Entries in uop contain extra value (see notes)
--uopmul    - Repack *LegacyMUL.uop to *.mul container
Arguments:
$MULINF$ &lt;uopfile&gt; &lt;hashformat&gt; [-extra]
hashformat Used in uop hash format string (see notes)
-extra Entries in uop contain extra value (see notes)
--muluop    - Repack *.mul data to *LegacyMUL.uop container
Arguments:
$MULINF$ &lt;uopfile&gt; &lt;hashformat&gt; [-extra]
hashformat Used in uop hash format string (see notes)
-extra Entries in uop contain extra value (see notes)
--aniunp    - Unpack animations frames from AnimationFrame#.uop
Arguments:
&lt;uopfile&gt; &lt;outfolder&gt;

Allias:

$MULINF$  ->  &lt;entry_count&gt; &lt;entry_size&gt; &lt;mulfile&gt;
$MULINF$ -> &lt;entry_count&gt; &lt;idxfile&gt; &lt;mulfile&gt;
$MULCON$  ->  &lt;index_offset&gt; &lt;entry_length&gt; &lt;idxfile&gt; &lt;mulfile&gt;
$MULCON$ -> &lt;byte_offset&gt; &lt;entry_length&gt; &lt;entry_size&gt; &lt;mulfile&gt;
$MULCON$ -> &lt;byte_offset&gt; &lt;entry_length&gt; &lt;entry_head_size&gt;
&lt;entry_item_size&gt; &lt;entry_item_count&gt; &lt;mulfile&gt;
&lt;entry_length&gt; - if 0 then will be set up to the end of file
$LIST#1$ -> &lt;index&gt;
$LIST#1$ -> &lt;txtfile&gt;
$LIST#2$ -> &lt;srs_index&gt; &lt;dst_index&gt;
$LIST#2$ -> &lt;txtfile&gt;
$MPAREA$ -> &lt;map_index&gt; &lt;block_x1&gt; &lt;block_y1&gt; &lt;block_x2&gt; &lt;block_y2&gt;
&lt;block_x2&gt; 0 or &lt;block_y2&gt; 0 means width-1 and height-1

Notes:

- Before merge or defrag operation to make them more effective recomended to
resave all data by Fiddler. This action prevent situations when same data
will have different byte sequences.
- *.mde files are binary data of specified index with name in ???? format,
where ?
??? is number of entry. For index *.mul files first 4 bytes are
extra value from *.idx file.
- text file for $LIST#1$ allias must contain list of numbers separated with
line break.
- text file for $LIST#2$ allias must contain list of pair numbers separated
with line break. Numbers in pairs can be separated with space, comma, "->"
If second number not present instead of it will be used incremented by 1
last second value. If second value wasn't specifer befor exception occurs
- All numbers can be ither in decimal or in hex style, for last case they
have to start wirh "0x" specifier.
- All paths can be ither full or related for setting working directory

Info about muls:

| file name    |  entry size | entry count  |
|--------------|-------------|--------------|
| tiledata.mul |   836 / 964 |          512 | - land tiles
| tiledata.mul | 1188 / 1316 | 512/1024/2048| - item tiles(off:428032/493568)
| animdata.mul |         548 |    items / 8 |
| radarcol.mul |           2 | land + items |
| hues.mul     |         708 |          375 |
| light.mul    |           - |          100 |
| sound.mul    |           - |         4096 |
| multi.mul    |           - |         8192 |
| map##.mul    |         196 | width*height | - sizes in blocks (8x8 tiles)
file name header item size item count
-------------- -------- ----------- ------------
tiledata.mul 4 26 / 30 32
tiledata.mul 4 37 / 41 32
animdata.mul 4 68 8
hues.mul 4 88 8
Length of index based muls can be geted as *.idx length / 12
Note: In art.mul & radarcol first 0x4000 entries are lands

Info about uops:

filename hash format extra
---------------------- ------------------------------------------- -------
artLegacyMUL.uop build/artlegacymul/{0:00000000}.tga no
gumpartLegacyMUL.uop build/gumpartlegacymul/{0:00000000}.tga yes
soundLegacyMUL.uop build/soundlegacymul/{0:00000000}.dat no
MultiCollection.uop build/multicollectionmul/{0:00000000}.dat yes
map##LegacyMUL.uop build/map##legacymul/{0:00000000}.dat no
Important note about uop maps - for repacking mul container must be declared
with entry size = 802816 (64x64 blocks) and entry count = width*height / 4096
(width and height sizes in blocks (8x8 tiles)). Take attention hash format
as filename depends on map index ##