aboutsummaryrefslogtreecommitdiff
path: root/project/src/ui/ui.def
diff options
context:
space:
mode:
Diffstat (limited to 'project/src/ui/ui.def')
-rw-r--r--project/src/ui/ui.def23034
1 files changed, 23034 insertions, 0 deletions
diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def
new file mode 100644
index 0000000..85ba906
--- /dev/null
+++ b/project/src/ui/ui.def
@@ -0,0 +1,23034 @@
+
+##
+###############################################################################
+############### Tool 'wszst' ###############
+###############################################################################
+
+#:def_tool( "wszst", \
+ "wszst [option]... command [option|parameter|@file]...", \
+ "Wiimms SZS Tool : List, compare, (de-)compress, extract and create" \
+ " SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives. It is also a" \
+ " wrapper to all other tools." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wszst VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wszst HELP [--width=wd] OPT|OPTION [option]...\n" \
+ "wszst HELP [--width=wd] CMD|COMMAND ...\n" \
+ "wszst HELP [--width=wd] command ...\n" \
+ "wszst HELP [--width=wd] ...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wszst ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wszst TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wszst COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wszst ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wszst FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wszst FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "BRSUB", "BRSUB", \
+ "wszst BRSUB [file]...", \
+ " If no file is defined, print a table with known BRRES sub files" \
+ " consisting of file format, version, number of sections and warn" \
+ " level. Otherwise analyse the version numbers of each BRRES sub file" \
+ " of each source and print warnings about invalid versions." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wszst SYMBOLS", \
+ "Print predefined symbols of text parser to standard output." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wszst FUNCTIONS [key]...", \
+ "Print a list with all parser functions. If one or more keys entered," \
+ " then only functions that match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wszst CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "MATRIX", "MATRIX", \
+ "wszst MATRIX [patch-option]... [vector]...", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results.", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results. The transformations are done with 4" \
+ " different methods to confirm the algorithms. Only the main results" \
+ " and results, which differ, are printed.\n" \
+ " Normally, the exit status is @OK@ (null). If at least one old" \
+ " transformation returns different results for the different" \
+ " algorithms, then status @DIFFER@ (not null) is returned." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wszst FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "VR_CALC", "VR-CALC|VRCALC", \
+ "wszst VR-CALC delta...", \
+ " Calculate a VR increment for each given delta value" \
+ " (@=VR_winner-VR_loser@). Print results as table." )
+
+#:def_cmd( "VR_RACE", "VR-RACE|VRRACE", \
+ "wszst VR-RACE vr1 vr2...", \
+ "Print a table with VR calculations for a race. Each @VR@ is the" \
+ " current rating of a player. The vr-list is well ordered: The first" \
+ " VR is for the winner and the last VR for the looser. Up to 30 VR" \
+ " values will be accpeted. Each VR can be preceeded by @\"NUM*\"@ to" \
+ " define a repeat factor." )
+
+#:def_cmd( "AUTOADD", "AUTOADD", \
+ "wszst AUTOADD [source]...", \
+ "Manage the auto-add library. Primarily add files to the main auto-add" \
+ " archive for future use of option {--auto-add} or to convert WU8" \
+ " files. If @SOURCE@ is a directory, all standard track and arena file" \
+ " names are searched for the missed auto-add files. Without source" \
+ " files, the status of the auto-add archive is printed.\n" \
+ " Try {wszst AUTOADD ./path_to/Race/Course/} to add all supported" \
+ " files." )
+
+#:def_cmd( "TRACKS", "TRACKS", \
+ "wszst TRACKS [selection_mask]", \
+ "Print a list of all known track SZS files of Mario Kart internal" \
+ " directory './Race/Course'. These files are 32 standard track files" \
+ " and 10 arena files. The first column shows an unique ID of exact 3" \
+ " upper case characters or digits. For '_d' files, a 'd' is appended." \
+ " The second column shows the internal file name. Use BMG files to" \
+ " print real names as third column." )
+
+#:def_cmd( "SCANCACHE", "SCANCACHE", \
+ "wszst SCANCACHE directory\n" \
+ "wszst SCANCACHE --cache directory", \
+ "Scan the cache directory for SZS files and re-build the checksum" \
+ " table. Store the result as file 'cache-content.txt' in the same" \
+ " directory. The file is used by option {--cache} to optimize file" \
+ " access." )
+
+#:def_cmd( "LIST", "LIST|LS", \
+ "wszst LIST [source]...", \
+ "List all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \
+ " archives. If listing a directory, then a virtual SZS file is created" \
+ " (like CREATE does it) and listed." )
+
+#:def_cmd( "LIST_L", "LIST-L|LL|LISTL", \
+ "wszst LIST-L [source]...", \
+ "List all sub files with size. 'LIST-L' and 'LL' are short cuts for" \
+ " {LIST --long}." )
+
+#:def_cmd( "LIST_LL", "LIST-LL|LLL|LISTLL", \
+ "wszst LIST-LL [source]...", \
+ "List all sub files with offset and size. 'LIST-LL' and 'LLL' are" \
+ " short cuts for {LIST --long --long}." )
+
+#:def_cmd( "LIST_LLL", "LIST-LLL|LLLL|LISTLLL", \
+ "wszst LIST-LLL [source]...", \
+ "List all sub files with offset and size in debugging mode. 'LIST-LLL'" \
+ " and 'LLLL' are short cuts for {LIST --long --long --long}." )
+
+#:def_cmd( "LIST_A", "LIST-A|LA|LISTA", \
+ "wszst LIST-A [source]...", \
+ "List recursive all sub files with size. 'LIST-A' and 'LA' are short" \
+ " cuts for {LIST --long --all --all}." )
+
+#:def_cmd( "LIST_LA", "LIST-LA|LLA|LISTLA", \
+ "wszst LIST-LA [source]...", \
+ "List recursive all sub files with offset and size. 'LIST-LA' and" \
+ " 'LLA' are short cuts for {LIST --long --long --all --all}." )
+
+#:def_cmd( "NAME_REF", "NAME-REF|NAMEREF", \
+ "wszst NAME-REF [source]...", \
+ "For each BRRES file or subfile, create a name based cross reference" \
+ " and print the result as list ordered by names in BRRES order. For U8" \
+ " archives (e.g. track SZS files), sub file @course_model.brres@ is" \
+ " analysed." )
+
+#:def_cmd( "ILIST", "ILIST|IL", \
+ "wszst ILIST [source]...", \
+ "List the images files of all sub files of SZS, U8, PACK, BRRES," \
+ " BREFF, BREFT and RARC archives; non image files are ignored. If" \
+ " listing a directory, then a virtual SZS file is created (like CREATE" \
+ " does it) and listed." )
+
+#:def_cmd( "ILIST_L", "ILIST-L|ILL|ILISTL", \
+ "wit ILIST-L [source]...", \
+ "List all image files with geometry data. 'ILIST-L' and 'ILL' are" \
+ " short cuts for {ILIST --long}." )
+
+#:def_cmd( "ILIST_LL", "ILIST-LL|ILLL|ILISTLL", \
+ "wit ILIST-LL [source]...", \
+ "List all sub files with advanced geometry data. 'ILIST-LL' and 'ILLL'" \
+ " are short cuts for {ILIST --long --long}." )
+
+#:def_cmd( "ILIST_A", "ILIST-A|ILA", \
+ "wszst ILIST-A [source]...", \
+ "List recursive all image files. 'ILIST-A' and 'ILA' are short cuts" \
+ " for {ILIST --all}." )
+
+#:def_cmd( "ILIST_LA", "ILIST-LA|ILLA|ILISTLA", \
+ "wit ILIST-LA [source]...", \
+ "List recursive all image files with geometry data. 'ILIST-LA' and" \
+ " 'ILLA' are short cuts for {ILIST --long --all}." )
+
+#:def_cmd( "MEMORY", "MEMORY|MEM", \
+ "wszst MEMORY [source]...", \
+ "Dump a memory map of each source file. Virtual images (extracted" \
+ " directories) are also supported." )
+
+#:def_cmd( "MEMORY_A", "MEMORY-A|MEMA", \
+ "wszst MEMORY-A [source]...", \
+ "Dump recursive a memory map of each source file. 'MEMORY-A' and" \
+ " 'MEMA' are short cuts for {MEMORY --all --all}." )
+
+#:def_cmd( "DUMP", "DUMP", \
+ "wszst DUMP [source]...", \
+ "Dump the internal structure of a BRRES files, compressed or not." \
+ " Other archives are ignored. The main goal is to verify string" \
+ " relocation. Virtual images (extracted directories) are also" \
+ " supported." )
+
+#:def_cmd( "SHA1", "SHA1", \
+ "wszst SHA1 [source]...", \
+ "Print a SHA1 checksum for each source. The checksum is calculated by" \
+ " using the uncompressed data." )
+
+#:def_cmd( "ANALYZE", "ANALYZE|ANA|ANALYSE", \
+ "wszst ANALYZE [source]...", \
+ "Analyse track files and print results in machine readable format." )
+
+#:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIST", \
+ "wszst DISTRIBUTION result source...\n" \
+ "wszst DISTRIBUTION directory [source]...", \
+ "Load each @SOURCE@ (SZS, WBZ, U8 or WU8) and calculate a checksum of" \
+ " the uncompressed data. If @SOURCE@ is a directory, scan it for SZS," \
+ " WBZ, U8 and WU8 files. If a source directory starts with \"arena\"," \
+ " all tracks of the directory are assumed to be battle arenas. Finally" \
+ " print the results into file @RESULT@.\n" \
+ " The default name for @RESULT@ is \"distribution.txt\". Extension" \
+ " .txt is appended to the filename if not defined. If @RESULT@ is a" \
+ " directory, it is used as first source too.\n" \
+ " If file @RESULT@ exists, it is automatically added as last source" \
+ " to the list of option --source, but only if not already added. On" \
+ " scanning of file @result@, parameters are scanned too." )
+
+#:def_cmd( "DIFF", "DIFF|CMP", \
+ "wszst DIFF source1 source2\n" \
+ "wszst DIFF source... --dest dest", \
+ "Compare two or more sources (each SZS, U8, PACK, BRRES, BREFF, BREFT," \
+ " RARC or directory) on file level and report mismatches for each sub" \
+ " file. If option {--dest} is set, then each source file is compared" \
+ " with a file in the destination." )
+
+#:def_cmd( "CHECK", "CHECK", \
+ "wszst CHECK [source]...", \
+ "Make a validity check for track files: Try to read KCL and KMP (and" \
+ " check both) and find unknown, modified, needed and unneeded files." \
+ " Also analyse cannons and make slot proposals. This command uses an" \
+ " internal object and file database. The source can be a SZS, U8, WU8" \
+ " or WBZ file, or an U8 like directory." )
+
+#:def_cmd( "SLOTS", "SLOTS", \
+ "wszst SLOTS [source]...", \
+ "Try to find out the slots, that will run a track. Each source can be" \
+ " a SZS, U8, WU8 or WBZ file, or an U8 like directory. For each source" \
+ " one status line is printed. The status line contains either a" \
+ " positive or a negative slot list, whatever is shorter. For battle" \
+ " arenas, the keyword @ARENA@ is printed." )
+
+#:def_cmd( "STGI", "STGI", \
+ "wszst STGI [source]...", \
+ "Find the first KMP:STGI of each file and print an analysis of it as" \
+ " single line statistic. Additional the number of lap counter check" \
+ " points ('LC') is printed. Track and KMP (binary and text) files are" \
+ " accepted as input." )
+
+#:def_cmd( "ISARENA", "ISARENA", \
+ "wszst ISARENA [source]...", \
+ "Analyse each track for its arena status and print a line with a" \
+ " status code and the track name. The status code is: »-RACE« for a" \
+ " racing track, »?MAYBE« for likely an arena, »+ARENA« for an" \
+ " arena, »+DISPATCH« for an arena with dispatch points or any error" \
+ " hint beginning with an »!«. So the very first character (one of" \
+ " »!-?+«) can be used to distinguish the status class.\n" \
+ " The exit status is >2 on error, 2 (DIFFER), if at least one file is" \
+ " a racing track, or 0 (OK), if all sources are arenas." )
+
+#:def_cmd( "NORMALIZE", "NORMALIZE|NORM", \
+ "wszst NORMALIZE [source]...", \
+ "Normalize an U8 archive, compressed or not: The files are sorted in" \
+ " `Nintendo like' order and unused data holes are removed. If" \
+ " directory '.' is available it becomes the root directory for all" \
+ " others. Compressed sources are compressed again with maximum" \
+ " compression (level 9). The destination is only written if any data" \
+ " changed.\n" \
+ " {wszst NORMALIZE} is the same as {wszst PATCH --norm}." )
+
+#:def_cmd( "PATCH", "PATCH", \
+ "wszst PATCH [source]...", \
+ "Patch an U8 archive, compressed or not: Load the archive, apply all" \
+ " patching and transforming options and store the file again." \
+ " Compressed sources are compressed again. The destination is only" \
+ " written if any data changed." )
+
+#:def_cmd( "COPY", "COPY|CP", \
+ "wszst COPY source dest\n" \
+ "wszst COPY source... [-d|-D] dest", \
+ "COPY is an alternative command for copying and patching files. It" \
+ " uses the same internal procedure as command PATCH, but has another" \
+ " command line syntax.\n" \
+ " The command copies all source files to the destination. If more than" \
+ " 1 source is defined, the destination must be either a directory or a" \
+ " destination filename with escapes. Patching is also possible and" \
+ " option --overwrite is set implicitly." )
+
+#:def_cmd( "DUPLICATE", "DUPLICATE|DUP", \
+ "wszst DUPLICATE source [-d|-D] dest", \
+ "The command reads a single track file and duplicates it several times" \
+ " to DEST. Therefor it analyzes the presence flags combinations with" \
+ " and without extension support and creates one file for each relevant" \
+ " scenario. A LEX section TEST will be inserted to force the execution" \
+ " mode for offline tests.\n" \
+ " The destination filename (not directory part) is searched for the" \
+ " first occurance of @'@@'@. If not found, the place before the last" \
+ " point is used. At this place an identification string is inserted.\n" \
+ " Depending on option {--gamemodes} up to 1573 files will be created." \
+ " So the use of option {--fast} is recommended to speed up the" \
+ " process. Use command {wkmpt GAMEMODES} to list all variants and to" \
+ " check them beforehand." )
+
+#:def_cmd( "MINIMAP", "MINIMAP", \
+ "wszst MINIMAP [source]...", \
+ "Print minimap data (more exact: the visual field of the minimap) of a" \
+ " SZS, U8, BRRES or MDL file. If patching options are used, modify the" \
+ " data and write back the file using its original file format. Only" \
+ " the translation vector is modified and new translation and inverse" \
+ " matrices are calculated." )
+
+#:def_cmd( "COMPRESS", "COMPRESS|COM", \
+ "wszst COMPRESS [source]...", \
+ "Compress and create a SZS archives. If the source is already" \
+ " compressed, then decompress and compress it again. The default" \
+ " destination is @'%P/%N.szs'@." )
+
+#:def_cmd( "DECOMPRESS", "DECOMPRESS|DEC", \
+ "wszst DECOMPRESS [szs]...", \
+ "Decompress SZS files. The default destination is @'%P/%N.u8'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|E", \
+ "wszst ENCODE [source_dir]...", \
+ " Create and/or encode sub files if necessary. It works like command" \
+ " CREATE, but without creating a new first level archive file." )
+
+#:def_cmd( "CREATE", "CREATE|C", \
+ "wszst CREATE [source_dir]...", \
+ "Create SZS, U8, PACK, BRRES, BREFF, BREFT or RARC archives by adding" \
+ " all not hidden files of the directory structure. Create and/or" \
+ " encode sub files if necessary. The default destination is" \
+ " @'%P/%N%T'@." )
+
+#:def_cmd( "UPDATE", "UPDATE|U", \
+ "wszst UPDATE [source]... [--source=] [--dest=]", \
+ "Update an existing SZS, U8, PACK, BRRES, BREFF, BREFT and" \
+ " RARCarchive. This is done in similar way as the {EXTRACT} command," \
+ " but instead of extracting, source files are searched in a prior" \
+ " extracted archive. Only files with the same size are updated. The" \
+ " secondary source is used to find the source sub files. The default" \
+ " secondary source is @'%P/%N.d/'@." )
+
+#:def_cmd( "EXTRACT", "EXTRACT|X", \
+ "wszst EXTRACT [source]...", \
+ "Extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \
+ " archives. The default destination is @'%P/%N.d/'@." )
+
+#:def_cmd( "XDECODE", "XDECODE|XD", \
+ "wszst XDECODE [source]...", \
+ "Command @XDECODE@ is a short cut for {EXTRACT --decode}. It extract" \
+ " all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \
+ " archives and decodes all supported files. The default destination is" \
+ " @'%P/%N.d/'@." )
+
+#:def_cmd( "XEXPORT", "XEXPORT|XX", \
+ "wszst XEXPORT [source]...", \
+ "Command @XEXPORT@ is a short cut for {EXTRACT --decode --export}. It" \
+ " extract all sub files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC" \
+ " archives and decodes all supported files with enabled export mode." \
+ " The default destination is @'%P/%N.d/'@." )
+
+#:def_cmd( "XALL", "XALL|XA", \
+ "wszst XALL [source]...", \
+ "Command @XALL@ is a short cut for {EXTRACT --all}. It extract all sub" \
+ " files of SZS, U8, PACK, BRRES, BREFF, BREFT and RARC archives" \
+ " recursively and decodes all supported files. The default destination" \
+ " is @'%P/%N.d/'@." )
+
+#:def_cmd( "XCOMMON", "XCOMMON", \
+ "wszst XCOMMON [source]...", \
+ "Command @XCOMMON@ is a short cut for {EXTRACT --basedir=common}. Scan" \
+ " archives and extract files from archives, that are below directory" \
+ " @'common'@. The default destination is @'%P/%N.d/'@." )
+
+#:def_cmd( "BINARY", "BINARY|BIN", \
+ "wszst BINARY [source]...", \
+ "Read each source file (binary or text, but never archives) and write" \
+ " the content as binary file. The file extension of the new file" \
+ " depends on the file type, but is usually @.bin@. Currently supported" \
+ " file formats are @BMG@, @GEOHIT@, @ITEMSLOT@, @KCL@, @KMG@, @KMP@," \
+ " @LEX@, @OBJFLOW@, @PAT@ and the related text formats." )
+
+#:def_cmd( "TEXT", "TEXT|TXT", \
+ "wszst TEXT [source]...", \
+ "Read each source file (binary or text, but never archives) and write" \
+ " the content as text file. The file extension of the new file is" \
+ " usually @.txt@. Currently supported file formats are @BMG@," \
+ " @GEOHIT@, @ITEMSLOT@, @KCL@, @KMG@, @KMP@, @LEX@, @OBJFLOW@, @PAT@" \
+ " and the related text formats." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wszst CAT [source/subfile]...", \
+ "Extract one or more sub files of SZS, U8, PACK, BRRES, BREFF, BREFT" \
+ " and RARC archives. The output of all source files is concatenated" \
+ " and written to stdout." )
+
+#:def_cmd( "BMG", "BMG", \
+ "wszst BMG [source]...", \
+ "For each archive all BMG sub files are searched and, if found," \
+ " decoded and printed as combined BMG text file. The command works" \
+ " exactly like {wbmgt MIX}." )
+
+#:def_cmd( "KCL", "KCL", \
+ "wszst KCL [source]...", \
+ "For each archive the KCL sub file @course.kcl@ is searched and, if" \
+ " found, decoded and printed (copied to stdout).\n" \
+ " Automated dropping of bad KCL triangles is enabled if no other drop" \
+ " option is specified by option {--kcl}." )
+
+#:def_cmd( "KMP", "KMP", \
+ "wszst KMP [source]...", \
+ "For each archive the KMP sub file @course.kmp@ is searched and, if" \
+ " found, decoded and printed (copied to stdout)." )
+
+#:def_cmd( "LEX", "LEX", \
+ "wszst LEX [source]...", \
+ "For each archive the LEX sub file @course.lex@ is searched and, if" \
+ " found, decoded and printed (copied to stdout)." )
+
+#:def_cmd( "INFO", "INFO", \
+ "wszst INFO [source]...", \
+ "For each archive a file named @info.txt@ and, if not found," \
+ " @credits.txt@ is searched, ignoring case. The first found file of" \
+ " each archive is printed (copied to stdout)." )
+
+#:def_cmd( "YAZDUMP", "YAZDUMP|YD", \
+ "wszst YAZDUMP [szs]...", \
+ "Analyze YAZ compression print a dump to stdout. Ignore files without" \
+ " YAZ compression." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "TOUCH", "touch", "C", \
+ "", \
+ "Mark the minimap as modified to force a new calculation of the" \
+ " translation and inverse matrices." )
+
+#:def_opt( "AUTO", "auto", "C", \
+ "", \
+ "Calculate the minimap translations automatically by using the minimum" \
+ " and maximum vertex coordinates. The 'scale' and 'rotation' fields" \
+ " are reset. This is done as first action before the SET, CENTER and" \
+ " the other transformations." )
+
+#:def_opt( "SET_FLAGS", "set-flags|setflags", "CP", \
+ "flag", \
+ "Define the flag values (default 0x31f) of the minimap." )
+
+#:def_opt( "SET_SCALE", "set-scale|setscale", "CP", \
+ "vector", \
+ "Define the scale values (default 1.0) of the minimap. The parameter" \
+ " is either a vector expression or a comma separated list of" \
+ " coordinates ('x,z' or 'x,y,z')." )
+
+#:def_opt( "SET_ROT", "set-rot|setrot", "CP", \
+ "vector", \
+ "Define the rotation values (default 0.0) of the minimap. The" \
+ " parameter is either a vector expression or a comma separated list of" \
+ " coordinates ('x,z' or 'x,y,z')." )
+
+#:def_opt( "SET_X", "set-x|setx", "CP", \
+ "v1[,v2]", \
+ "Define 2 values and sort them to define the minimum and maximum" \
+ " x-coordinates of the minimap. If 'v2' is not entered, '-v1' is used" \
+ " as second value." )
+
+#:def_opt( "SET_Y", "set-y|sety", "CP", \
+ "v1[,v2]", \
+ "Define 2 values and sort them to define the minimum and maximum" \
+ " y-coordinates of the minimap. If 'v2' is not entered, '-v1' is used" \
+ " as second value." )
+
+#:def_opt( "SET_Z", "set-z|setz", "CP", \
+ "v1[,v2]", \
+ "Define 2 values and sort them to define the minimum and maximum" \
+ " z-coordinates of the minimap. If 'v2' is not entered, '-v1' is used" \
+ " as second value." )
+
+#:def_opt( "XCENTER", "xcenter", "C", \
+ "", \
+ "Center the minimap in x-direction. This is done after AUTO and SET," \
+ " but before SCALE and SHIFT." )
+
+#:def_opt( "YCENTER", "ycenter", "C", \
+ "", \
+ "Center the minimap in y-direction. This is done after AUTO and SET," \
+ " but before SCALE and SHIFT." )
+
+#:def_opt( "ZCENTER", "zcenter", "C", \
+ "", \
+ "Center the minimap in z-direction. This is done after AUTO and SET," \
+ " but before SCALE and SHIFT." )
+
+#:def_opt( "CENTER", "center", "C", \
+ "", \
+ "Center the minimap in all 3 directions. This is a short cut for" \
+ " {--xcenter --ycenter --zcenter}." )
+
+#:def_opt( "SCALE", "scale", "CP", \
+ "vector[@origin]", \
+ "Transform the data: Scale all coordinates and size values by 'vector'" \
+ " relative to the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Negative values mirror the coordinates. Each parameter is either a" \
+ " vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "SHIFT", "shift", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--translate}, but the addition is done before rotation. The" \
+ " parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XSS", "xss", "CP", \
+ "x1old,x1new,x2old,x2new", \
+ "--xss (x-scale-shift) calculates the X values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "YSS", "yss", "CP", \
+ "y1old,y1new,y2old,y2new", \
+ "--yss (y-scale-shift) calculates the Y values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ZSS", "zss", "CP", \
+ "z1old,z1new,z2old,z2new", \
+ "--zss (z-scale-shift) calculates the Z values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ROT", "rot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' (is a vector) around the 3 axes. All 3 axes goes" \
+ " through the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y,z').\n" \
+ " Option --rot is an alternative for {--xrot}, {--yrot} and {--zrot}" \
+ " to define all 3 rotations in one step. Transformations are" \
+ " calculated in the order SCALE, SHIFT, X-ROTATE, Y-ROTATE, Z-ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XROT", "xrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('y,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YROT", "yrot|hrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead. This is" \
+ " a horizontal counterclockwise rotation and the old option name" \
+ " --hrot can also used.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "ZROT", "zrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the z-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YPOS", "ypos", "CP", \
+ "pos", \
+ "This option defines an Y position for KMP:CKPT transformations. It" \
+ " has only impact to X and Z rotations (Options {--xrot} and" \
+ " {--zrot}). If not set, the mean y of the active rotation origins are" \
+ " used." )
+
+#:def_opt( "TRANSLATE", "translate|trans", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--shift}, but the addition is done after rotation. The parameter is" \
+ " either a vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z'). @--trans@ is a short cut.\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "NULL", "null", "C", \
+ "", \
+ "Create a neutral transformation without affecting the coordinates." \
+ " The only influence is, that the dependent values (like maximum) are" \
+ " re-calculated as if a transformation has taken place." )
+
+#:def_opt( "NEXT", "next", "C", \
+ "", \
+ "Close the current transformation step with all scaling, shifting," \
+ " rotation and translation options and open a new step with cleared" \
+ " options. On transformation each step is logical done one by one. In" \
+ " real, one total transformation matrix is calculated and used for" \
+ " fast transformations.\n" \
+ " If option --next is used, the ability for modifying the scale and" \
+ " rotation vectors (not the positions) of different KMP sections is" \
+ " nearly always lost. A warning is printed if this occurs." )
+
+#:def_opt( "ASCALE", "ascale", "CP", \
+ "factor@dir", \
+ "Transform the data and do an axis scale: Close the current" \
+ " transformation step like {--next} and scale the data by @'factor'@" \
+ " into the direction given by the vector @'dir'@. Store the resulting" \
+ " matrix as single transformation step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "AROT", "arot", "CP", \
+ "degree[@pos1]@pos2", \
+ "Transform the data and do an axis rotation: Close the current" \
+ " transformation step like {--next} and rotate the data by @'degree'@" \
+ " around the axis defined by the 2 points. If @'pos1'@ is not set, use" \
+ " @0,0,0@ instead. Store the resulting matrix as single transformation" \
+ " step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "TFORM_SCRIPT", "tform-script|tformscript", "CP", \
+ "script", \
+ "Load the script and execute it by the text parser.\n" \
+ " Then for each coordinate (2D and 3D), call the macro @TRANSFORM@" \
+ " after all other transformations. Call it without parameters and set" \
+ " variable @$$I@ with a zero based index of all vertices, variable" \
+ " @$$D@ to the dimension (2 or 3) and the variable @$$P@ to the vector" \
+ " of the current vertex. If the macro returns a vector, it is the new" \
+ " position.\n" \
+ " For each file, macro @BEGIN@ is called at the beginning and @END@" \
+ " after processing all points, but only, if the macros are defined." \
+ " For @END@, variable @$$I@ is set to the number of processed vertices" \
+ " in the current file.\n" \
+ " Before each macro call, the private and local variables are cleared" \
+ " and only global parameters are permanent. The zero based index is" \
+ " cleared for each new source. The parameters of the macro calls are" \
+ " defined in the local name space." )
+
+#:def_opt( "MINIMAP", "minimap", "C", \
+ "", \
+ "Fix the minimap position in the same way as {wszst MINIMAP --auto}." \
+ " All other minimap related options are ignored for the minimap" \
+ " processing." )
+
+#:def_opt( "RM_GOBJ", "rm-gobj|rmgobj", "CP", \
+ "objlist", \
+ "Remove objects from the KMP section @GOBJ@. Therefor a comma" \
+ " separated object list with single values like @'a'@ or ranges like" \
+ " @'a:b'@ is expected. @'a'@ and @'b'@ are numbers, object names" \
+ " (prefixed by 'o$$') or any other parser expressions." )
+
+#:def_opt( "BATTLE", "battle", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " If mode is @ON@, assume a battle arena and enable a spüecial" \
+ " battle support. If mode is @OFF@, disable special battle arena" \
+ " support. If mode is @AUTO@, analyse the KMP and estimate, if it is a" \
+ " battle areana. Modes @ON@ and @OFF@ override KMP parameter" \
+ " @BATTLE-MODE@." )
+
+#:def_opt( "EXPORT_FLAGS", "export-flags|exportflags|exflags", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used. --exflags is an alternative name for the option.\n" \
+ " If mode is @ON@, this feature is forced: On creating a KMP text" \
+ " file, the option @EXPORT-FLAGS@ is always set to 1. On creating a" \
+ " binary KMP file, the flags are always exported as lowest byte of the" \
+ " scale factors or x-rotation.\n" \
+ " If mode is @OFF@, this feature is totally disabled. If mode is not" \
+ " @AUTO@, KMP parameter @EXPORT-FLAGS@ is overridden." )
+
+#:def_opt( "ROUTE_OPTIONS", "route-options|routeoptions|ropt", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " On mode @ON@, the new commands @$$PREV@ and @$$NEXT@ are printed" \
+ " for each group of KMP sections ENPT and ITPT. On mode @AUTO@, the" \
+ " command is only printed, if any option is set or if parameter" \
+ " @SHOW-OPTIONS@ is >0. On mode @OFF@, this feature is totally" \
+ " disabled to create KMP text files that are compatible with versions" \
+ " <1.60a.\n" \
+ " This option exists only for a transition period. Its behaviour will" \
+ " be changed in the future. @--ropt@ is a short cut." )
+
+#:def_opt( "WIM0", "wim0", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " If mode is @ON@, a KMP section called WIM0 is added on binary KMP" \
+ " creation. The sections contains information for Wiimms tools.\n" \
+ " If mode is @OFF@, this feature is totally disabled. If mode is not" \
+ " @AUTO@, KMP parameter @KMP-WIM0@ is overridden." )
+
+#:def_opt( "SLOT", "slot", "CP", \
+ "keyword", \
+ "Patch a track file to run at the specified slot. KMP and KCL may be" \
+ " modified. BRRES files may be added to or removed from SZS. The main" \
+ " keywords are @DAISY, DESERT, SHERBET, SHYGUY, STANDARD@ and @MOST@." \
+ " Slot numbers (except '42' and '4.2') and different other track names" \
+ " are also accepted. For some conversions, the auto-add library is" \
+ " needed." )
+
+#:def_opt( "LOAD_KCL", "load-kcl|loadkcl", "GP", \
+ "file", \
+ "Load a KCL or OBJ file for reference issues." )
+
+#:def_opt( "KCL", "kcl", "GP", \
+ "list", \
+ "Set global options for KCL processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. Keywords @SMALL, MEDIUM@ and @CHARY@ select the default" \
+ " parameters for the octree creation. The other allowed keywords are:" \
+ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \
+ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \
+ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \
+ " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." )
+
+#:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \
+ "joblist", \
+ "Modify the KCL flag of KCL files. A comma separated job list in the" \
+ " format @'srclist=dest'@ is expected. @'srclist'@ is a plus sign" \
+ " separated list with single values like @<val>@, @T<type>@ and" \
+ " @<val>/<mask>@ or ranges like @<val>:<val>@, @T<type>:<type>@ and" \
+ " @<val>:<val>/<mask>@. @'<val>'@ is a complete KCL flag in the range" \
+ " of @0..0xffff@. @'<type>'@ are only the base types in the range of" \
+ " @0..0x1f@. If @<mask>@ is present, it marks the relevant bits. For" \
+ " the @T<type>@ variant, the mask is set to @0x1f@.\n" \
+ " All KCL flags of the source list are assigned to the new value" \
+ " @'dest'@, but only the set bits of @'<mask>'@ are modified. A later" \
+ " definition overrides the previous one." )
+
+#:def_opt( "KCL_SCRIPT", "kcl-script|kclscript", "CP", \
+ "script", \
+ "After reading a KCL source file and executing all transformations," \
+ " the text file @'script'@ is executed by the internal text parser." \
+ " The script should use the parser functions @tri$$*()@ to read and" \
+ " modify the triangle positions and flags, or to add or remove" \
+ " complete triangles.\n" \
+ " If this option is used multiple times, each script is executed in" \
+ " the entered order." )
+
+#:def_opt( "TRI_AREA", "tri-area|triarea", "GP", \
+ "EXPR", \
+ "Define the minimal area size of KCL triangles. The intention is to" \
+ " ignore triangles that are generally to small. @EXPR@ is a floating" \
+ " point number or expression. Triangles are invalidated if their area" \
+ " size is smaller than @EXPR@. The test is executed after reading" \
+ " files, after transformations, and after calculating normals and" \
+ " lengths. Values between 0.01 and 4.0 are recommended. The careful" \
+ " value 1.0 is used as default. Value 0 disables this filter" \
+ " functionality." )
+
+#:def_opt( "TRI_HEIGHT", "tri-height|triheight|tri-ht|triht", "GP", \
+ "EXPR", \
+ "Define the minimal height of KCL triangles. The intention is to" \
+ " ignore deformed triangles (very slim, but long). @EXPR@ is a" \
+ " floating point number or expression. Triangles are invalidated if at" \
+ " least 1 of the 3 heights is smaller than @EXPR@. The test is" \
+ " executed after reading files, after transformations, and after" \
+ " calculating normals and lengths. Values between 0.01 and 2.0 are" \
+ " recommended. The careful value 1.0 is used as default. Value 0" \
+ " disables this filter functionality.\n" \
+ " --tri-ht is an alternative name for the option." )
+
+#:def_opt( "FLAG_FILE", "flag-file|flagfile", "CP", \
+ "filename", \
+ "Define a flag file if scanning an OBJ file (KCL processing). The file" \
+ " name may contain %-escapes. Set it to an empty string to disable" \
+ " flag files at all.\n" \
+ " The tool search the flag file in the following order until found:" \
+ " File defined by --flag-file; OBJ file name with replaced extension" \
+ " ('a.obj' becomes 'a.flag'); OBJ file name with appended extension" \
+ " ('a.obj' becomes 'a.obj.flag')." )
+
+#:def_opt( "KMP", "kmp", "GP", \
+ "list", \
+ "Set global options for KMP processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. The other allowed keywords are: @FORCE, NEW, RM-SPCITEM, LEFT," \
+ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \
+ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \
+ " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \
+ " 9LAPS, MAX-LAPS, RM-EMPTY, INPLACE, SILENT@ and @LOG@." )
+
+#:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \
+ "factor", \
+ "The speed modifier is a user extensions to change the basic speed of" \
+ " all vehicles. The speed factor itself is stored into KMP:STGI" \
+ " section of a track.\n" \
+ " If --speed-mod is set to a value >0.0, then the last 2 bytes of" \
+ " the STGI section are patched. The value 0.0 reset these 2 bytes and" \
+ " deactivates the speed modifier." )
+
+#:def_opt( "KTPT2", "ktpt2", "GP", \
+ "vector", \
+ "Insert or replace a second KTPT. Use VECTOR as new position. VECTOR" \
+ " is either @X,Z@ or @X,Y,Z@ or an expression. Set Y to 0 for an" \
+ " automatic defined height.\n" \
+ " If the first 4 characters of VECTOR are 'AUTO' (ignoring case)," \
+ " then the position is calculated automatically and set to the" \
+ " recommendation of command @wkmpt KTPT@.\n" \
+ " The tool looks for the nearest lap counter (CKPT with mode 0) and" \
+ " adjust the KTPT: The direction of the lap counter is copied and the" \
+ " KTPT is moved to the lap counter line using the new direction.\n" \
+ " LE-CODE uses the second KTPT to draw the finish line at another" \
+ " place away from the start position." )
+
+#:def_opt( "TFORM_KMP", "tform-kmp|tformkmp|tkmp", "GP", \
+ "list", \
+ "Select KMP sections and objects for a transformation. @--tkmp@ is a" \
+ " short cut. The option expects a comma separated list of keywords." \
+ " Non ambiguous of keywords are allowed and minus signs within" \
+ " keywords are optional (e.g. @GOBJS@). A minus sign before a keyword" \
+ " disables transformation of the related section or object.\n" \
+ " Sections are selected by the KMP section names @AREA, CAME, CKPT," \
+ " CNPT, ENPT, GOBJ, ITPT, JGPT, KTPT, MSPT@ and @POTI@.\n" \
+ " Objects are selected by the keywords @AREA-POSITION, AREA-ROTATE," \
+ " AREA-SCALE, CAME-POSITION, CKPT-POSITION, CNPT-POSITION," \
+ " CNPT-ROTATE, ENPT-POSITION, ENPT-SCALE, GOBJ-POSITION, GOBJ-ROTATE," \
+ " GOBJ-SCALE, ITPT-POSITION, ITPT-SCALE, JGPT-POSITION, JGPT-ROTATE," \
+ " KTPT-POSITION, KTPT-ROTATE, MSPT-POSITION, MSPT-ROTATE@ and" \
+ " @POTI-POSITION@.\n" \
+ " The keywords @NONE@ and @ALL@ (default) complete the field." )
+
+#:def_opt( "REPAIR_XPF", "repair-xpflags|repairxpflags|repxpf", "CP", \
+ "file", \
+ "Load a KMP file and use it to repair the settings of the extended" \
+ " presence flags, if they are destroyed by another KMP tool." \
+ " @--repxpf@ is a short cut for this option." )
+
+#:def_opt( "GAMEMODES", "gamemodes|gmodes", "CP", \
+ "list", \
+ "Filter the list of combinations. The parameter is a comma separated" \
+ " list of keywords: @AUTO@: Add a automatic mode without conditions" \
+ " first. @STANDARD@ (or @STD@): Add standard modes. @1STANDARD@ (or" \
+ " @1STD@): Add standard modes first. @BALLOON@: Add balloon battle" \
+ " modes. @COIN@: Add coin runners modes. @BATTLE@: Short cut for" \
+ " 'BALLOON,COIN'. @VERSUS@ (or @VS@): Add versus modes. @ITEMRAIN@:" \
+ " Add itemrain modes. @RACE@: Short cut for 'VERSUS,ITEMRAIN'. @ALL@" \
+ " (default): Short cut for 'STANDARD,BATTLE,RACE'. @NO-MODES@: Exclude" \
+ " 'ALL' and create auto modes only. @ENGINE@: Include engine classes" \
+ " (default). @NO-ENGINE@: Exclude engine classes. @RANDOM@: Include" \
+ " random modes (default). @NO-RANDOM@: Exclude random modes." \
+ " @OFFLINE@: Filter offline modes. @ONLINE@: Filter online modes." \
+ " @NO-TT@: Exclude time trial. @TT@: Force a time trial scenario, even" \
+ " if it is a duplicate. @FULL@: Don't eliminate duplicates from list" \
+ " (up to 1573 modes). @NSORT@: Sort the list by name. @ISORT@: Sort" \
+ " the list by index. @DEBUG@: Print a debug info about this option." )
+
+#:def_opt( "MDL", "mdl", "GP", \
+ "list", \
+ "Set global options for MDL processing. To enable MDL patching, use" \
+ " option {--patch-file} and select BRRES files for patching.\n" \
+ " Parameter @'list'@ is a comma separated list of keywords. A minus" \
+ " sign before a keyword disables a setting. Each occurrence of the" \
+ " option will only change entered settings and all other settings are" \
+ " untouched.\n" \
+ " A MDL transformation (controlled by the transformation options) is" \
+ " only done, if at least one of the keywords @VECTOR@ or @VERTEX@ is" \
+ " set.\n" \
+ " Keyword @DEFAULT@ resets the default settings (@VERTEX@) and" \
+ " @CLEAR@ disables all. The other allowed keywords are: @VECTOR," \
+ " MATRIX, VERTEX, PARENT, CHILD@ and @LOG@." )
+
+#:def_opt( "PAT", "pat", "GP", \
+ "list", \
+ "Set global options for PAT processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. The other allowed keywords are: @AUTO, SIMPLE, COMPLEX, BOTH," \
+ " SILENT@ and @LOG@." )
+
+#:def_opt( "PATCH_FILE", "patch-file|patchfile|pfile", "GP", \
+ "list", \
+ "Define, which kind of KMP, KCL and BRRES/MDL files are objects for" \
+ " patching. @--pfile@ is a short cut.\n" \
+ " Parameter @'list'@ is a comma separated list of keywords. A minus" \
+ " sign before a keyword disables a setting. Each occurrence of the" \
+ " option will only change entered settings and all other settings are" \
+ " untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings (@TRACK,LOG@) and" \
+ " @CLEAR@ disables all. The other allowed keywords are: @KMP, KCL," \
+ " OTHER-KCL, ALL-KCL, MODEL, MAP, VRCORN, OTHER-BRRES, ALL-BRRES," \
+ " TRACK (=KMP,KCL,MODEL,MAP,VRCORN), ALL, LOG@ and @LOG-ALL@." )
+
+#:def_opt( "KMG_LIMIT", "kmg-limit|kmglimit", "GP", \
+ "seconds", \
+ "Limit the run time for Ballon Battle and Coin Runners to the given" \
+ " time in SECONDS. Smaller values are not changed. The limitation is" \
+ " carried out after loading a binary file and before scanning a text" \
+ " file. Value 0 disables this option." )
+
+#:def_opt( "KMG_COPY", "kmg-copy|kmgcopy", "GP", \
+ "id", \
+ "Make all 10 slots of a KMG file equal after loading a binary file and" \
+ " before scanning a text file. ID is either a slot index (0..9) or a" \
+ " slot name (A11..A25) and declares the source slot. Value -1 disables" \
+ " this option. If ID contains brackets [...], then it is analysed as" \
+ " an arena name and the part between the brackets is searched for" \
+ " attributes A11..A25." )
+
+#:def_opt( "LT_CLEAR", "lt-clear|ltclear", "G", \
+ "", \
+ "Clear the LEX/TEST section and remove the section and course.lex if" \
+ " empty. This option is executed before all other --lt-* options." )
+
+#:def_opt( "LT_ONLINE", "lt-online|ltonline", "GP", \
+ "mode", \
+ "Set LEX/TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" \
+ " @AUTO@ (default), @NEVER@ or @ALWAYS@. Only track.szs files are" \
+ " modified. If needed, file course.lex and section TEST are created or" \
+ " removed if empty." )
+
+#:def_opt( "LT_N_PLAYERS", "lt-n-players|lt-nplayers|ltnplayers", "GP", \
+ "offline,online", \
+ "Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer" \
+ " values. Only track.szs files are modified. If needed, file" \
+ " course.lex and section TEST are created or removed if empty." )
+
+#:def_opt( "LT_COND_BIT", "lt-cond-bit|lt-condbit|ltcondbit", "GP", \
+ "bitnum", \
+ "Set LEX/TEST parameter COND-BIT to this integer value. Use -1 to" \
+ " deactivate this COND-BIT. Only track.szs files are modified. If" \
+ " needed, file course.lex and section TEST are created or removed if" \
+ " empty." )
+
+#:def_opt( "LT_GAME_MODE", "lt-game-mode|lt-gamemode|ltgamemode", "GP", \
+ "mode", \
+ "Set LEX/TEST parameter GAME-MODE to this MODE. MODE is one of @AUTO@" \
+ " (default), @BALLOON, COIN, VERSUS@ or @ITEMRAIN@. Only track.szs" \
+ " files are modified. If needed, file course.lex and section TEST are" \
+ " created or removed if empty." )
+
+#:def_opt( "LT_ENGINE", "lt-engine|ltengine", "GP", \
+ "mode", \
+ "Set LEX/TEST parameter ENGINE to this MODE. MODE is one of @AUTO@" \
+ " (default), @BATTLE, 50CC, 100CC, 150CC, 200CC, 150M@ or @200M@. Only" \
+ " track.szs files are modified. If needed, file course.lex and section" \
+ " TEST are created or removed if empty." )
+
+#:def_opt( "LT_RANDOM", "lt-random|ltrandom", "GP", \
+ "index", \
+ "Force a random scenario, if between 1 and 8. Value 0 enables auto" \
+ " selection and -1 disables this option. Only track.szs files are" \
+ " modified. If needed, file course.lex and section TEST are created or" \
+ " removed if empty." )
+
+#:def_opt( "LEX_PURGE", "lex-purge|lexpurge", "G", \
+ "", \
+ "Delete LEX sections without any impact. Delete sub-file course.lex if" \
+ " it no longer contains a section. This option is executed after all" \
+ " --lt-* options." )
+
+#:def_opt( "LOAD_BMG", "load-bmg|loadbmg", "CMP", \
+ "file", \
+ "Load immediately the file to fill an internal message pool. The" \
+ " option can be used multiple times to fill the message pool by" \
+ " different sources. A later message overrides the previous message.\n" \
+ " The internal message pool is patched by all {--patch-bmg} options." )
+
+#:def_opt( "PATCH_BMG", "patch-bmg|patchbmg|pb", "CMP", \
+ "mode[cond][=param]", \
+ "This option specifies a BMG patch mode. Some of the modes need a" \
+ " parameter or a file name of a BMG patch file (raw or text BMG), both" \
+ " separated by an equal sign. Modes with required file names are" \
+ " @PRINT, REPLACE, INSERT, OVERWRITE, DELETE, MASK, EQUAL@ and" \
+ " @NOTEQUAL@. Modes with text parameter are @FORMAT@, @REGEXP@ and" \
+ " @RM-REGEXP@. Standalone modes are @ID, ID-ALL, UNICODE, RM-ESCAPES," \
+ " RM-CUPS, CT-COPY, CT-FORCE-COPY, CT-FILL, LE-COPY, LE-FORCE-COPY," \
+ " LE-FILL, X-COPY, X-FORCE-COPY@ and @X-FILL@. Unique abbreviations" \
+ " are allowed.\n" \
+ " The optional condition @COND@ is either '@?MID@' or '@!MID@'. In" \
+ " case of '@?MID@', the patch is only applied if the message id MID" \
+ " already exists. In case of '@!MID@', the patch is only applied if" \
+ " the message id MID does not exists.\n" \
+ " If this option is used multiple times, all patch files will be" \
+ " processed in the entered order." )
+
+#:def_opt( "MACRO_BMG", "macro-bmg|macrobmg|mb", "CMP", \
+ "file", \
+ "Load a BMG file and add the messages to the macro library; already" \
+ " existing entries are replaced. The macro library is accessed by" \
+ " escape sequence @\\m{{MID}@ as fallback, if the active file has not" \
+ " already defined the message @MID@ by itself." )
+
+#:def_opt( "FILTER_BMG", "filter-bmg|filterbmg|fb|msg", "CMP", \
+ "list", \
+ "If this option is set, the BMG messages are filtered by this list." \
+ " Only enabled messages are exported to the output BMG file (binary or" \
+ " text).\n" \
+ " The parameter is a list of message ids (short MID, 'Txx' or 'Uxx'" \
+ " or Mxx' or hex number) or message ranges (MID:MID) or one of the" \
+ " keywords @NONE, IDENT (=ID), PARAM, CUPS, TRACKS, ARENAS, CHAT," \
+ " CTCODE (=CT), CTUPS, CTTRACKS, CTARENAS, CTREFS, LECODE (=LE)," \
+ " LEUPS, LETRACKS, LEARENAS, LEREFS, XCODE (=X), XUPS, XTRACKS," \
+ " XARENAS, XREFS, ALLCODE, ALLUPS, ALLTRACKS, ALLARENAS, ALLREFS," \
+ " GENERIC@ or @ALL@. If an element is preceded by a minus sign, it is" \
+ " removed from the filter list (disabled).\n" \
+ " With v2.01a, this option was renamed from --msg to the more" \
+ " meaningful name --filter-bmg. The old name is still available." )
+
+#:def_opt( "CACHE", "cache", "GP", \
+ "dir", \
+ "Define a directory for a SZS cache.If creating a YAZ0 compressed file" \
+ " with standard compression (level 9), the cache is searched for the" \
+ " compressed version. File cache-content.txt is used as file list with" \
+ " hash values. If the cache file is not found or the content differ," \
+ " the file is (re-)created and exit status 2=differ is returned.\n" \
+ " Background: Loading a compressed SZS and content verification is" \
+ " much faster than YAZ compression.\n" \
+ " For legay reasons: If parameter DIR is a file, it is split into" \
+ " directory and base name. The directory is used for the cache" \
+ " directory and the base name for option {--cname}, but only if" \
+ " {--cname} is not used." )
+
+#:def_opt( "CNAME", "cname", "GP", \
+ "name", \
+ "Name of the first cache file. This parameter overrides the generated" \
+ " cache name. The name is used only once for the very first cache" \
+ " candidate." )
+
+#:def_opt( "ID", "id", "C", \
+ "", \
+ "Print an ID with 8 characters instead of a SHA-1 sum with 40" \
+ " characters. The SHA-1 sum is used to calculate the ID. The ID" \
+ " consists of '0'-'9' and 'a'-'w' (32 characters)." )
+
+#:def_opt( "BASE64", "base64", "CO", \
+ "[=mode]", \
+ "Encode the the checksum string as BASE64 with 27 characters instead" \
+ " of hex. If a parameter is set, it acts like {--coding=mode}." )
+
+#:def_opt( "DB64", "db64", "CO", \
+ "[=mode]", \
+ "Encode the the checksum string and some length as BASE64 with 32" \
+ " characters instead of hex for database searches. This options" \
+ " implies {--coding=URL} if no other coding is defined. If a parameter" \
+ " is set, it acts like {--coding=mode}. Option {--db64} has priority" \
+ " over {--base64}." )
+
+#:def_opt( "CODING", "coding", "CP", \
+ "mode", \
+ "Define the coding of the non alphanumeric characters for BASE64:" \
+ " STANDART (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." )
+
+#:def_opt( "VERIFY", "verify", "C", \
+ "", \
+ "Calculate the checksum and compare the filename and return exit" \
+ " status (0=valid, 2=differ). The result is valid, if the checksum is" \
+ " found with a leading and a following point or minus sign. If" \
+ " {--quiet} is set, error messages are suppressed." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print in long format. Multiple usage possible." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress printing of header and footer." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress information lines in decoded text files. This includes" \
+ " syntax information ({--no-header}). If set twice, the output of" \
+ " unneeded sections is also suppressed." )
+
+#:def_opt( "PIPE", "pipe", "CM", \
+ "", \
+ "Use pipe sign instead of spaces to separate columns." )
+
+#:def_opt( "DELTA", "delta", "C", \
+ "", \
+ "Print only modified records or sections on text output. Supported" \
+ " file formats until now: @GEOHIT@, @ITEMSLOT@, @KMG@ and @OBJFLOW@." \
+ " If set twice, limit output to modified records (only relevant for" \
+ " @ITEMSLOT@)." )
+
+#:def_opt( "DIFF", "diff", "C", \
+ "", \
+ "On text output, print only differences from original files. It's a" \
+ " short cut for --no-header --brief --brief --delta --delta." \
+ " Additional, the output is limited to data sections." )
+
+#:def_opt( "BMG_ENCODING", "bmg-encoding|bmgencoding", "CP", \
+ "name", \
+ "Force a BMG encoding for new BMG files. Accepted encoding names are:" \
+ " @CP-1252@, @UTF-16BE@ (or @UTF-16@), @SHIFT-JIS@, @UTF-8@ and @AUTO@" \
+ " for automatic detection (default). Same keywords without minus signs" \
+ " are accepted too.\n" \
+ " Mario Kart Wii uses encoding @UTF-16BE@; the default if no other" \
+ " encoding is defined." )
+
+#:def_opt( "BMG_INF_SIZE", "bmg-inf-size|bmginfsize", "CP", \
+ "size", \
+ "Defines the 'INF1' size of new BMG files between 4 and 1000. The" \
+ " first 4 bytes of a INF1 record is an offset into the string pool and" \
+ " the remaining bytes the attributes. Maximal 40 attribute bytes are" \
+ " supported and additional bytes are assumed to be NULL. All BMG files" \
+ " of MKW have a size of 8." )
+
+#:def_opt( "BMG_MID", "bmg-mid|bmgmid", "CO", \
+ "[mode]", \
+ "Control the creation of BMG section @MID1@. Suppress the creation, if" \
+ " mode is @OFF@. Force the creation, if mode is @ON@. On mode @AUTO@" \
+ " (default), the source is analysed for the decision." )
+
+#:def_opt( "FORCE_ATTRIB", "force-attrib|forceattrib", "CP", \
+ "attrib", \
+ "Forces, that all attributes are set to this vector." )
+
+#:def_opt( "DEF_ATTRIB", "def-attrib|defattrib", "CP", \
+ "attrib", \
+ "Define the default attributes for BMG files. If not set, the default" \
+ " attributes are estimated. On text output, strings with default" \
+ " attributes are printed without attribute vector. The usual default" \
+ " attribute for MKW is @[1]@." )
+
+#:def_opt( "NO_ATTRIB", "no-attrib|noattrib", "C", \
+ "", \
+ "Suppress the output of any BMG attributes if creating BMG text files." )
+
+#:def_opt( "X_ESCAPES", "x-escapes|xescapes", "C", \
+ "", \
+ "Use \\x{{} escapes instead of \\z{{} escapes." )
+
+#:def_opt( "OLD_ESCAPES", "old-escapes|oldescapes", "C", \
+ "", \
+ "To be compatible with v1.43 and earlier, print 1A escape sequences" \
+ " with total size of >12 bytes as single words using \\x{{}. Also" \
+ " don't use \\x{{} and \\u{{} with parameter lists." )
+
+#:def_opt( "SINGLE_LINE", "1|single-line|singleline", "C", \
+ "", \
+ "If set, don't print continuation lines for BMG text output. If set" \
+ " twice, print only single text lines and suppress attributes like" \
+ " option {--no-attrib} does it." )
+
+#:def_opt( "NO_BMG_COLORS", "no-bmg-colors|nobmgcolors", "C", \
+ "", \
+ "If set, suppress the output of '\\c{{color}' escape sequences for" \
+ " colors definitions in BMG text output to be compatible with old" \
+ " versions of the tools." )
+
+#:def_opt( "BMG_COLORS", "bmg-colors|bmgcolors", "C", \
+ "", \
+ "Force output of '\\c{{color}' escape sequences with names, even for" \
+ " foreign (not MKWii) BMG files." )
+
+#:def_opt( "NO_BMG_INLINE", "no-bmg-inline|nobmginline", "C", \
+ "", \
+ "Print BMG attributes as separate line before the message definition" \
+ " to be compatible with versions until v1.39. The output for the" \
+ " standard value 0x01000000 is always suppressed. This was the default" \
+ " until v1.43." )
+
+#:def_opt( "EXPORT", "X|export", "C", \
+ "", \
+ "Enable the export mode and create small and machine readable text" \
+ " files for easy post processing. The option works similar like @-HBB@" \
+ " for KMP and like @-HBl1@ for BMG text files." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "SORT", "S|sort", "CP", \
+ "mode", \
+ "Define a sort mode. Allowed keywords are: @NONE@ (default), @NAME," \
+ " OFFSET, U8, PACK, BRRES, BREFT@ and @AUTO@" )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TRACKS", "T|tracks", "GP", \
+ "tracks", \
+ "Define a new track order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are track names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " track. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Tracks will only be exchanged so that always all tracks are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "ARENAS", "A|arenas", "GP", \
+ "arenas", \
+ "Define a new arena order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are arena names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " arena. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Arenas will only be exchanged so that always all arenas are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "AUTOADD_PATH", "autoadd-path|autoaddpath", "GP", \
+ "directory", \
+ "Define an alternative directory as autoadd library. The default is," \
+ " that the sub-directory called './auto-add/' of all search paths are" \
+ " used. Use {wszst test -vvvv} for tests." )
+
+#:def_opt( "TRANSFORM", "x|transform", "CP", \
+ "list", \
+ "Convert image formats. A comma separated list with terms is expected." \
+ " A term have the syntax @'[SRC=]DEST'@. It means: convert @SRC@" \
+ " format into @DEST@ format. If @SRC=@ is not set, the destination" \
+ " format is used for all source formats. This makes only sense as last" \
+ " rule. If @DEST@ is empty no transformation is done for the source." \
+ " Examples: '@TPL@' or '@GRAY@' or '@BTI.IA8@' or" \
+ " '@TPL.I4+I8=IA8,TEX=,CMPR@'\n" \
+ " @SRC@ and @DEST@ are tuple of file, image and palette formats and" \
+ " of 2 more attributes. All parts are optional and separated by" \
+ " points, the order is irrelevant.\n" \
+ " Allowed file formats are: @TPL, TEX, BTI, BREFT-IMG (=BTIMG), PNG@" \
+ " (import). Allowed image formats are: @I4, I8, IA4, IA8, RGB565" \
+ " (=R565), RGB5A3 (=R3), RGBA32 (=R32), C4, C8, C14X2, CMPR@. Allowed" \
+ " palette formats are: @P-IA8 (=P8), P-RGB565 (=P565), P-RGB5A3" \
+ " (=P3)@. Attributtes are @PALETTE@, @NO-PALETTE@, @GRAY@, @COLOR@," \
+ " @ALPHA@ and @NO-ALPHA@.\n" \
+ " All terms are managed as list. For each graphic the list is" \
+ " iterated until the first SRC tuple of a term matches the graphic." \
+ " Then the destination tuple is used for the transformation.\n" \
+ " The command {wimgt TEST} prints a clearly arranged readable table" \
+ " as result of this option." )
+
+#:def_opt( "STRIP", "strip", "C", \
+ "", \
+ "If creating a PNG file, don't add comments about creator and source" \
+ " formats." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "TINY", "tiny", "GP", \
+ "mode", \
+ "Set tiny mode to a level between 0 and 7." )
+
+#:def_opt( "YAZ0", "yaz0", "G", \
+ "", \
+ "If creating a compressed file, force Yaz0 compression. Yaz0" \
+ " compression is the default, if no compression method is defined by" \
+ " option or setup file." )
+
+#:def_opt( "YAZ1", "yaz1", "G", \
+ "", \
+ "If creating a compressed file, force Yaz1 compression. The difference" \
+ " to Yaz0 is only the magic, which is set to 'Yaz1'." )
+
+#:def_opt( "XYZ", "xyz", "G", \
+ "", \
+ "If creating a compressed file, force XYZ compression (an experimental" \
+ " Yaz0 variant)." )
+
+#:def_opt( "BZ", "bz", "G", \
+ "", \
+ "If creating a compressed file, force BZ compression (a BZIP2" \
+ " variant)." )
+
+#:def_opt( "SH", "sh", "G", \
+ "", \
+ "Dump info using SH syntax. Use {--var name} as prefix." )
+
+#:def_opt( "BASH", "bash", "G", \
+ "", \
+ "Dump info using BASH syntax. Use {--var name} as prefix." )
+
+#:def_opt( "JSON", "json", "G", \
+ "", \
+ "Dump info using JSON syntax. Options {--var} and {--array} are" \
+ " ignored." )
+
+#:def_opt( "PHP", "php", "G", \
+ "", \
+ "Dump infos using PHP syntax. Use {--var name} as variable name of the" \
+ " resulting object." )
+
+#:def_opt( "MAKEDOC", "makedoc", "G", \
+ "", \
+ "Dump infos using MakeDoc syntax. Use {--var name} as variable name of" \
+ " the resulting map." )
+
+#:def_opt( "VAR", "var", "GP", \
+ "varname", \
+ "Use @VARNAME@ as variable name or prefix on script output. The" \
+ " default variabe name is 'res'." )
+
+#:def_opt( "ARRAY", "array", "G", \
+ "", \
+ "Use an array on script output if possible. If arrays are not" \
+ " supported, then append a '_#' suffix with an zero based index to the" \
+ " variable name defined by {--var name}. In this case, only one output" \
+ " file is created." )
+
+#:def_opt( "AVAR", "avar", "GP", \
+ "varname", \
+ "Shortcut for: {--array --var name}" )
+
+#:def_opt( "SOURCE", "s|source|src", "CP", \
+ "path", \
+ "Define a secondary source path (directory/file).\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified primary source name. @%P@ and @%F@ are replaced by" \
+ " the primary source path or by the filename. @%N@ and @%E@ are" \
+ " replaced by primary source filename without extension or by the" \
+ " source extension. Finally, @%T@ is replaced by the default extension" \
+ " of a virtual destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_SRC", "remove-src|removesrc|rm-src|rmsrc", "C", \
+ "", \
+ "Remove the source file after successful operation. @--rm-src@ is a" \
+ " short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "IGNORE_SETUP", "ignore-setup|ignoresetup", "C", \
+ "", \
+ "Ignore hidden setup file '@wszst-setup.txt@'. This file is used to" \
+ " determine some default settings and to find out sub archives and" \
+ " files to encode. Use this option only if you know what you do." )
+
+#:def_opt( "PURGE", "purge", "C", \
+ "", \
+ "Remove repeated files with same checksum." )
+
+#:def_opt( "ALIGN_U8", "align-u8|alignu8", "CP", \
+ "size", \
+ "Define an align value for the sub files in U8 archives. The value" \
+ " must be a power of 2 and the default value is 32 (0x20) This value" \
+ " is only relevant if creating or normalizing U8 archives." )
+
+#:def_opt( "ALIGN_PACK", "align-pack|alignpack", "CP", \
+ "size", \
+ "Define an align value for the sub files in PACK archives. The value" \
+ " must be a power of 2 and the default value is 32 (0x20) This value" \
+ " is only relevant if creating or normalizing OACK archives." )
+
+#:def_opt( "ALIGN_BRRES", "align-brres|alignbrres", "CP", \
+ "size", \
+ "Define an align value for the sub files in BRRES archives. The value" \
+ " must be a power of 2 and the default value is 4 This value is only" \
+ " relevant if creating or normalizing BRRES archives." )
+
+#:def_opt( "ALIGN_BREFF", "align-breff|alignbreff", "CP", \
+ "size", \
+ "Define an align value for the sub files in BREFF archives. The value" \
+ " must be a power of 2 and the default value is 4 This value is only" \
+ " relevant if creating or normalizing BREFF archives." )
+
+#:def_opt( "ALIGN_BREFT", "align-breft|alignbreft", "CP", \
+ "size", \
+ "Define an align value for the sub files in BREFT archives. The value" \
+ " must be a power of 2 and the default value is 0x20 This value is" \
+ " only relevant if creating or normalizing BREFT archives." )
+
+#:def_opt( "ALIGN", "align", "CP", \
+ "size", \
+ "Define an align value for the sub files in all archives. This is a" \
+ " short cut for {--align-u8=size --align-pack=size --align-brres=size" \
+ " --align-breff=size --align-breft=size}." )
+
+#:def_opt( "ENCODE_ALL", "encode-all|encodeall|eall", "C", \
+ "", \
+ "Encode all files. Normally a file is only encoded, if the source is" \
+ " younger than the destination or the destination is missing. Only" \
+ " files in the @[encode]@ section of the file '@wszst-setup.txt@' are" \
+ " candidates for encoding. @--eall@ is a short cut. Option" \
+ " {--no-encode} takes precedence over {--encode-all}." )
+
+#:def_opt( "ENCODE_IMG", "encode-img|encodeimg|eimg", "C", \
+ "", \
+ "Encode all image files. Normally a image file is only encoded, if the" \
+ " source is younger than the destination or the destination is" \
+ " missing. Only files in the @[encode]@ section of the file" \
+ " '@wszst-setup.txt@' are candidates for encoding. @--eimg@ is a short" \
+ " cut. If set, option {--no-encode} is ignored for images." )
+
+#:def_opt( "NO_ENCODE", "no-encode|noencode|noenc", "C", \
+ "", \
+ "Do not encode files before creating an archive. @--noenc@ is a short" \
+ " cut. Option {--no-encode} takes precedence over {--encode-all}, but" \
+ " {--encode-img} takes precedence for images." )
+
+#:def_opt( "NO_RECURSE", "no-recurse|norecurse|norec", "C", \
+ "", \
+ "Do not create archives recursively. Normally files in the @[create]@" \
+ " section of the file '@wszst-setup.txt@' are created first. @--norec@" \
+ " is a short cut." )
+
+#:def_opt( "AUTO_ADD", "auto-add|autoadd|aadd", "C", \
+ "", \
+ "Analyze the KMP (if exist) and add missing BRRES, BREFF, BREFT, BRASD" \
+ " and KCL files automatically, if the tool can find the files in any" \
+ " sub directory named 'auto-add'. This sub directory is searched in" \
+ " all directories of @'SEARCH_PATH'@; use command @{wszst AUTOADD}@ to" \
+ " view them. Command {wszst AUTOADD} may also create an auto-add" \
+ " database. @--aadd@ is a short cut." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KCL and KMP files." )
+
+#:def_opt( "PT_DIR", "pt-dir|ptdir|pdir", "CO", \
+ "[=mode]", \
+ "Set one of the `point directory' modes @REMOVE@ (=@0@), @FORCE@" \
+ " (=@1@) or @AUTO@ (default). If --pt-dir is used without parameter," \
+ " then @FORCE@ is assumed.\n" \
+ " This option is only relevant if creating an U8 archive. It decides," \
+ " if a special directory with name '.' will be added as base for all" \
+ " other files." )
+
+#:def_opt( "RM_AIPARAM", "rm-aiparam|rmaiparam|rmai", "C", \
+ "", \
+ "Remove the directory AIParam and all files from the archive. This" \
+ " option has only impact, if creating a new archive or normalizing an" \
+ " existing archive. @--rmai@ is a short cut." )
+
+#:def_opt( "U8", "u8", "C", \
+ "", \
+ "Create an U8 archive, if possible. If the source is a WU8 archive," \
+ " convert it to an U8 archive. This is the default if the setup file" \
+ " '@wszst-setup.txt@' has no other definition. The default compression" \
+ " mode is set to Yaz0 (see {--yaz0})." )
+
+#:def_opt( "SZS", "szs", "C", \
+ "", \
+ "Short cut for {--u8 --yaz0}: Create an U8 archive, if possible, and" \
+ " set the compression method to Yaz0." )
+
+#:def_opt( "WU8", "wu8", "C", \
+ "", \
+ "Create a WU8 archive, if possible. If the source is an U8 archive," \
+ " convert it to a WU8 archive." )
+
+#:def_opt( "WBZ", "wbz", "C", \
+ "", \
+ "Short cut for {--wu8 --bz}: Create a WU8 archive, if possible, and" \
+ " set the compression method to BZ." )
+
+#:def_opt( "PACK", "pack", "C", \
+ "", \
+ "Create a PACK archive." )
+
+#:def_opt( "BRRES", "brres|bres", "C", \
+ "", \
+ "Create a BRRES archive." )
+
+#:def_opt( "BREFF", "breff", "C", \
+ "", \
+ "Create a BREFF archive." )
+
+#:def_opt( "BREFT", "breft", "C", \
+ "", \
+ "Create a BREFT archive." )
+
+#:def_opt( "NO_COMPRESS", "no-compress|nocompress|noc", "C", \
+ "", \
+ "Create an uncompressed file instead of a compressed SZS file. The" \
+ " default destination changes to @'%P/%N%T'@. @--noc@ is a short cut." )
+
+#:def_opt( "COMPRESS", "C|compr|compress", "CP", \
+ "level", \
+ "Define a compression level between @0..9@: @0@ (or @NOCHUNKS@)" \
+ " disables finding chunks, @1@ (or @FAST@) for the fastest standard" \
+ " compression and @9@ (or @BEST@) for the best (=default) compression." \
+ " @10@ (or @ULTRA@) and @100-150@ are special time-consuming" \
+ " compression modes. They are dedicated to competitions with size" \
+ " limitations. The special value @UNCOMPRESSED@ acts like option" \
+ " {--no-compress}.\n" \
+ " Because of many repeated data, the best bz-compression mode varies." \
+ " Therefor the levels @TRY2..TRY5@ (or short @T2..T5@) are defined to" \
+ " find the best compression mode with testing the first N modes of 9," \
+ " 1, 8, 2, 5. @TRY2@ is used for normalizing. For non bz-compression," \
+ " @TRY*@ are the same as @BEST@.\n" \
+ " Option {--norm} takes precedence over {--compr} and sets the" \
+ " compression level to @TRY2@ (@BEST@).\n" \
+ " For more modes and details type {wszst -C list}. To force colorized" \
+ " output type {wszst -C clist}." )
+
+#:def_opt( "FAST", "fast", "C", \
+ "", \
+ "Short cut for {--compr=fast}: Set the fastest real compression. It" \
+ " also overrides compression rates set by {--norm} or {--compr}." )
+
+#:def_opt( "NORM", "n|norm", "C", \
+ "", \
+ "The uncompressed data will be normalized. See command {NORMALIZE} for" \
+ " more details." )
+
+#:def_opt( "LINKS", "links", "C", \
+ "", \
+ "Support hardlinks while creating U8 and WU8 archives. Keep hardlinks" \
+ " if normalizing U8 and WU8 archives. On extracting, search hardlinks" \
+ " in every archive and try to create hardlinks at local file system." )
+
+#:def_opt( "BASEDIR", "basedir|bdir", "CP", \
+ "directory", \
+ "Extract only files from archives, that are below the DIRECTORY." \
+ " Leading points and slashes and trailing slahes are removed from the" \
+ " parameter. --bdir is short cut for --basedir." )
+
+#:def_opt( "RECURSE", "R|recurse", "CO", \
+ "[=level]", \
+ "If a extracted file is a known and supported archive, than extract it" \
+ " recursively until the entered level is reached. Level 0 (=@NONE@)" \
+ " deactivates this. If --recurse is used without parameter, then" \
+ " @UNLIMITED@ is assumed.\n" \
+ " -R does'nt accept a parameter and is a short cut for" \
+ " {--recurse=unlimited}." )
+
+#:def_opt( "EXT", "e|ext", "C", \
+ "", \
+ "For BRRES archives only: If a file is extracted, add a handy file" \
+ " extension like '.mdl' to the file name. If set twice and a textual" \
+ " file magic is available, use the file magic in lower case instead" \
+ " like '.mdl0'." )
+
+#:def_opt( "DECODE", "decode|dec", "C", \
+ "", \
+ "If a extracted file is known and can be decoded, do it. @--dec@ is a" \
+ " short cut." )
+
+#:def_opt( "MIPMAPS", "mipmaps|mm", "C", \
+ "", \
+ "If reading a source, scan for mipmaps and load them too. For PNG" \
+ " files, files named @NAME.mm#.EXT@ with #=1.. are searched. This is" \
+ " the default. @--mm@ is a short cut." )
+
+#:def_opt( "NO_MIPMAPS", "no-mipmaps|nomipmaps|no-mm|nomm", "C", \
+ "", \
+ "If reading a source, ignore mipmaps. This disables not the creation" \
+ " of mipmaps (see {-n-mipmaps}). @--no-mm@ is a short cut." )
+
+#:def_opt( "N_MIPMAPS", "n-mipmaps|nmipmaps|n-mm|nmm", "CP", \
+ "num", \
+ "Force the number of mipmaps. Values between 0 and 20 are allowed." \
+ " Value @OFF@ (default) disables this option. If enabled, options" \
+ " @--max-mipmaps@ and @--mipmap-size@ are ignored. The creation of" \
+ " mipmaps stops if the width or the height of the mipmap becomes 0." \
+ " @--n-mm@ is a short cut." )
+
+#:def_opt( "MAX_MIPMAPS", "max-mipmaps|maxmipmaps|max-mm|maxmm", "CP", \
+ "num", \
+ "Control the automatic mipmap creation. Values between 0 and 20 are" \
+ " allowed and the default is 4. The mipmap creation for an image" \
+ " stops, if the set number is reached. This option is ignored, if" \
+ " @--n-mipmaps@ is enabled. @--max-mm@ is a short cut." )
+
+#:def_opt( "MIPMAP_SIZE", "mipmap-size|mipmapsize|mm-size|mmsize", "CP", \
+ "num", \
+ "Define the minimal width and minimal height of a generated mipmap." \
+ " Any value >0 is allowed. The default is 8. This option is ignored," \
+ " if @--n-mipmaps@ is enabled. @--mm-size@ is a short cut." )
+
+#:def_opt( "FAST_MIPMAPS", "fast-mipmaps|fastmipmaps|fast-mm|fastmm", "C", \
+ "", \
+ "If resizing an image, use the old fast resize algorithm (default" \
+ " until v1.64a) instead of the new smart one. Both algorithms differ" \
+ " only, when creating a mipmap for images with odd width or odd" \
+ " height. The old algorithm is faster (factor 2-4) than the default" \
+ " algorithm, but the new algorithm creates better resized images." \
+ " @--fast-mm@ is a short cut." )
+
+#:def_opt( "CMPR_DEFAULT", "cmpr-default", "CP", \
+ "rgb1[,rgb2]", \
+ "Define 2 colors for the case, that all 16 pixels of a CMPR block are" \
+ " transparent. The default is to calculate an average color of all" \
+ " transparent pixels. Before v2.04 white was used.\n" \
+ " 2 RGB values (hex values with 6 digits each) are expected as" \
+ " parameter. If optional @RGB2@ is missed, a copy of @RGB1@ is used." \
+ " As first step, both colors are converted to RGB565 colors @C1@ and" \
+ " @C2@ and sorted, so that @C1<C2@ (mandatory for CMPR). If @C1@ and" \
+ " @C2@ are identical, the least significant bit of green is cleared" \
+ " for @C1@ and set for @C2@.\n" \
+ " Use parameter '@0@' to force black, '@-1@' to force white, or '@-@'" \
+ " to reset to auto calculation." )
+
+#:def_opt( "CUT", "cut", "C", \
+ "", \
+ "Cut different non archive files into smaller peaces (logical units" \
+ " like headers, groups, sections) or list these peaces as single sub" \
+ " files for a more detailed analysis. Supported file types are @BMG," \
+ " BREFT-IMG, KMP, PAT, TEX, TPL, BRRES@ sub files and more." )
+
+#:def_opt( "ALL", "a|all", "CM", \
+ "", \
+ "Extract and decode all known and supported files recursively. This is" \
+ " a short cut for {--recurse --decode --mipmaps}. If entered twice," \
+ " option {--cut} is included too." )
+
+#:def_opt( "RAW", "raw", "C", \
+ "", \
+ "Extract BRRES sub file in raw mode and do not adjust string pointers" \
+ " and other offsets." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEST", "VERBOSE", \
+ "", \
+ "Print the matrices of transformations." )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BRSUB", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BRSUB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BRSUB", "LONG", \
+ "", \
+ "If set, print hints about unusual versions too. If set twice, print a" \
+ " status line for each found BRRES sub file." )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "BRIEF", \
+ "", \
+ "If set once, suppress vector dumps for transformation steps and" \
+ " ignore option --long. If set twice, suppress vector dump for final" \
+ " transformation too." )
+
+#:def_cmd_opt( "MATRIX", "LONG", \
+ "", \
+ "If set once, print inverse matrix for the final transformation. If" \
+ " set twice, print inverse matrix for all transformations." )
+
+#:def_cmd_opt( "MATRIX", "QUIET", \
+ "", \
+ "Option --quiet is dedicated to automatic tests comparing the old and" \
+ " new transformation algorithms. If set once, the tables are only" \
+ " printed, if the results differ. If set twice, nothing is printed at" \
+ " all and only the exit status will inform about the results." )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VR_CALC", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VR_CALC", "BRIEF", \
+ "", \
+ "Suppress header and print only results for @VR_winner-VR_looser@." )
+
+#:def_cmd_opt( "VR_RACE", "LONG", \
+ "", \
+ "Print full matrix of delta values." )
+
+#:def_cmd_opt( "AUTOADD", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "AUTOADD", "QUIET", \
+ "", \
+ " If set, suppress logging." )
+
+#:def_cmd_opt( "AUTOADD", "VERBOSE", \
+ "", \
+ "If set, list all missed and invalid files of the current auto-add" \
+ " archive after the adding operation. If set twice, then additionally" \
+ " list all already existing files in the current auto-add archive." )
+
+#:def_cmd_opt( "AUTOADD", "DEST", \
+ "", \
+ "Define a destination directory as current auto-add archive. The" \
+ " default is the standard auto-add path. Try {AUTOADD} without sources" \
+ " to view the path." )
+
+#:def_cmd_opt( "AUTOADD", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "AUTOADD", "OVERWRITE", \
+ "", \
+ "Overwrite already existing files instead of only adding new files to" \
+ " the auto-add archive." )
+
+#:def_cmd_opt( "AUTOADD", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "AUTOADD", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "VERBOSE", \
+ "", \
+ "Print an additonally hex status value as second column before the" \
+ " file name. These values can be used to find a selection mask." )
+
+#:def_cmd_opt( "TRACKS", "ALL", \
+ "", \
+ "Print the '_d' files too. If set twice, print all files (same as" \
+ " -all)." )
+
+#:def_cmd_opt( "TRACKS", "LONG", \
+ "", \
+ "Print 5 non track files too. If set twice, print 4 more files with" \
+ " old BRRES sub file formats too." )
+
+#:def_cmd_opt( "TRACKS", "PIPE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SCANCACHE", "CACHE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SCANCACHE", "PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SUBFILE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST_L", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST_LL", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST_LLL", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LLL", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST_A", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_A", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "LONG", \
+ "", \
+ "If set, the size of each file is printed. If set twice, offset and" \
+ " size are printed. If set three times, debugging mode is enabled." )
+
+#:def_cmd_opt( "LIST_LA", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LA", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NAME_REF", "SORT", \
+ "", \
+ "Define the sort order of the reference. @NONE@ (default) uses the" \
+ " order of the string pool. @BRRES@ orders in standard BRRES order by" \
+ " ASCCI value and case sensitive. @NAME@ similar to @BRRES@, but case" \
+ " insensitive. @OFFSET@ orders by the file offset of first usage." )
+
+#:def_cmd_opt( "NAME_REF", "BRIEF", \
+ "", \
+ "If set, suppress the offsets of the strings. This makes comparisons" \
+ " after name changes easier. If set twice, suppress reference offsets" \
+ " too. If set 3 times, suppress all offsets." )
+
+#:def_cmd_opt( "NAME_REF", "LONG", \
+ "", \
+ "If set, a list ordered by @NAME@ or @BRRES@ (default) and a second" \
+ " list ordered by @OFFSET@ is printed. If set twice, a third list with" \
+ " order @NONE@ is appended." )
+
+#:def_cmd_opt( "ILIST", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "LONG", \
+ "", \
+ "If set, image width, height and size are printed. If set twice, a" \
+ " block info and attribites are printed too." )
+
+#:def_cmd_opt( "ILIST", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "LONG", \
+ "", \
+ "If set, image width, height and size are printed. If set twice, a" \
+ " block info and attribites are printed too." )
+
+#:def_cmd_opt( "ILIST_L", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_L", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "LONG", \
+ "", \
+ "If set, image width, height and size are printed. If set twice, a" \
+ " block info and attribites are printed too." )
+
+#:def_cmd_opt( "ILIST_LL", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LL", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "LONG", \
+ "", \
+ "If set, image width, height and size are printed. If set twice, a" \
+ " block info and attribites are printed too." )
+
+#:def_cmd_opt( "ILIST_A", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_A", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "LONG", \
+ "", \
+ "If set, image width, height and size are printed. If set twice, a" \
+ " block info and attribites are printed too." )
+
+#:def_cmd_opt( "ILIST_LA", "SORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ILIST_LA", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "DECODE", \
+ "", \
+ "Decode binary files to find memory addresses of sections." )
+
+#:def_cmd_opt( "MEMORY", "MIPMAPS", \
+ "", \
+ "Analyze images and dump mipmap adresses too." )
+
+#:def_cmd_opt( "MEMORY", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALL", \
+ "", \
+ "A short cut for {--recurse --decode --mipmaps}. If entered twice," \
+ " option --cut is included too." )
+
+#:def_cmd_opt( "MEMORY", "LONG", \
+ "", \
+ "If set, print absolute offsets too." )
+
+#:def_cmd_opt( "MEMORY", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "DECODE", \
+ "", \
+ "Decode binary files to find memory addresses of sections." )
+
+#:def_cmd_opt( "MEMORY_A", "MIPMAPS", \
+ "", \
+ "Analyze images and dump mipmap adresses too." )
+
+#:def_cmd_opt( "MEMORY_A", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALL", \
+ "", \
+ "A short cut for {--recurse --decode --mipmaps}. If entered twice," \
+ " option --cut is included too." )
+
+#:def_cmd_opt( "MEMORY_A", "LONG", \
+ "", \
+ "If set, print absolute offsets too." )
+
+#:def_cmd_opt( "MEMORY_A", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MEMORY_A", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "DUMP", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "SHA1", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "ID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BASE64", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "DB64", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "CODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "VERIFY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SHA1", "BRIEF", \
+ "", \
+ "Suppress output of the filename." )
+
+#:def_cmd_opt( "SHA1", "LONG", \
+ "", \
+ "If set and {--db64} is not active, start the line with the length of" \
+ " the decompressed source as decimal number (field width 9) separated" \
+ " with a comma from the SHA1 checksum. If set twice, prefix each line" \
+ " with the modification time in the format @'yyyy-mm-dd HH:MM:SS '@.\n" \
+ " If set and {--db64} is active, then CKPT lap counter, STGI lap" \
+ " counter, speed factor and slot info are inserted beteen checksum and" \
+ " filename. All columns are separated by one or two spaces." )
+
+#:def_cmd_opt( "ANALYZE", "LONG", \
+ "", \
+ "Append a list of special files with size, SHA1 and file name." )
+
+#:def_cmd_opt( "ANALYZE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "QUIET", \
+ "", \
+ "Suppress logging of input and output files." )
+
+#:def_cmd_opt( "ANALYZE", "SH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "BASH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "JSON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "PHP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "MAKEDOC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "VAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ARRAY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "AVAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "DISTRIBUTION", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "BASE64", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "DB64", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "CODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DISTRIBUTION", "SOURCE", \
+ "", \
+ "Define a text file for filename to slot translation. A »slot" \
+ " filename« list is expected. Use this option multiple times to" \
+ " define more than one source file. A definition of a later source" \
+ " overwrites previous definitions. The file @RESULT@ of the command" \
+ " line is appended automatically as last entry, if exists and not" \
+ " already included." )
+
+#:def_cmd_opt( "DIFF", "QUIET", \
+ "", \
+ "If set once, only a summary status for each section is printed. If" \
+ " set twice, only a total summary status is printed. If set three" \
+ " times, the status is only reported as exit status." )
+
+#:def_cmd_opt( "DIFF", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_CHECK", \
+ "", \
+ "Don't check the KCL and KMP files." )
+
+#:def_cmd_opt( "CHECK", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BRIEF", \
+ "", \
+ "Print only warnings and suppress hints." )
+
+#:def_cmd_opt( "CHECK", "LONG", \
+ "", \
+ "Be verbose and print more statistics." )
+
+#:def_cmd_opt( "CHECK", "QUIET", \
+ "", \
+ "Be quiet until the first warning or hint is found." )
+
+#:def_cmd_opt( "CHECK", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "CHECK", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "BRIEF", \
+ "", \
+ "Print the slot list in a compressed form without spaces." )
+
+#:def_cmd_opt( "SLOTS", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "SLOTS", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "IGNORE", \
+ "", \
+ "If set, ignore non existing source files and files without KMP" \
+ " without warning. If set twice, ignore files with standard settings" \
+ " too." )
+
+#:def_cmd_opt( "ISARENA", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ISARENA", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ISARENA", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ISARENA", "BRIEF", \
+ "", \
+ "If set, suppress the output of header and filenames." )
+
+#:def_cmd_opt( "ISARENA", "QUIET", \
+ "", \
+ "If set, print nothing and set only the exit status." )
+
+#:def_cmd_opt( "ISARENA", "IGNORE", \
+ "", \
+ "If set, ignore non existing source files and files without KMP" \
+ " without warning." )
+
+#:def_cmd_opt( "NORMALIZE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "NORMALIZE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "GAMEMODES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUPLICATE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "LONG", \
+ "", \
+ "If set, print the matrices too. If set twice, print minimum and" \
+ " maximum values too." )
+
+#:def_cmd_opt( "MINIMAP", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "TOUCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "AUTO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_X", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_Y", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SET_Z", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "XCENTER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "YCENTER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ZCENTER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "CENTER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MINIMAP", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COMPRESS", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "REMOVE_SRC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "NORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECOMPRESS", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "ENCODE", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "IGNORE_SETUP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "WU8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "YAZ0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "YAZ1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SZS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "WBZ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "RM_AIPARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN_U8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN_PACK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN_BRRES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN_BREFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN_BREFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALL", \
+ "", \
+ " Encode all files. This is a short cut for {--encode-all} (and more" \
+ " options in the future)." )
+
+#:def_cmd_opt( "CREATE", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "AUTO_ADD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "SOURCE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NO_COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "COMPRESS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "FAST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ENCODE_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ENCODE_IMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NO_ENCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NO_RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "UPDATE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "BASEDIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "EXTRACT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "RAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "BASEDIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "XDECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "RAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XDECODE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "BASEDIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "XEXPORT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "RAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XEXPORT", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "BASEDIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "RECURSE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "EXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LINKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "CUT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "XALL", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "RAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XALL", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XCOMMON", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "KMG_LIMIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "KMG_COPY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BINARY", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "KMG_LIMIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "KMG_COPY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "TEXT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "LONG", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_cmd_opt( "TEXT", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEXT", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "DECODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "DELTA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "LONG", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_cmd_opt( "BMG", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "BMG", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "LONG", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_cmd_opt( "BMG", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "KCL", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KCL", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "KMP", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "MINIMAP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "PATCH_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KMP", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LEX", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LEX", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in decoded text files." )
+
+#:def_cmd_opt( "LEX", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LEX", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "INFO", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "INFO", "NO_HEADER", \
+ "", \
+ "Suppress output of the printed filename." )
+
+#:def_cmd_opt( "GHOST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "NO_HEADER", \
+ "", \
+ "Suppress output of the printed filename." )
+
+#:def_cmd_opt( "GHOST", "SH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "BASH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "JSON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "PHP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "MAKEDOC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "VAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "ARRAY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "AVAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GHOST", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "YAZDUMP", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VEHICLE", "SOURCE", \
+ "", \
+ "Load the file instead of using the internal base." )
+
+#:def_cmd_opt( "VEHICLE", "DEST", \
+ "", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output." )
+
+#:def_cmd_opt( "VEHICLE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VEHICLE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VEHICLE", "QUIET", \
+ "", \
+ "Suppress logging." )
+
+#:def_cmd_opt( "VEHICLE", "VERBOSE", \
+ "", \
+ "Log patching." )
+
+#:def_cmd_opt( "VEHICLE", "BRIEF", \
+ "", \
+ "Suppress min/max counts on dumps." )
+
+
+##
+###############################################################################
+############### Tool 'wbmgt' ###############
+###############################################################################
+
+#:def_tool( "wbmgt", \
+ "wbmgt [option]... command [option|parameter|@file]...", \
+ "Wiimms BMG Tool : Convert and patch raw and text BMG (message) files." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wbmgt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wbmgt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wbmgt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wbmgt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wbmgt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wbmgt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wbmgt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wbmgt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wbmgt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wbmgt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wbmgt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "POINTS", "POINTS|PTS", \
+ "wbmgt POINTS [--points=list]", \
+ "Print a table with the points assigned to player after a versus or" \
+ " room race." )
+
+#:def_cmd( "REGEXP", "REGEXP|RE", \
+ "wbmgt REGEXP pattern string...", \
+ "Test implementation of regular expressions. PATTERN is the regular" \
+ " expression to find matches. Each STRING is object of the match and" \
+ " replace operation." )
+
+#:def_cmd( "EXTRACT", "EXTRACT", \
+ "wbmgt EXTRACT name source", \
+ "Extract BMG section NAME of file SOURCE and write the binary data to" \
+ " standard output. If NAME consists of less than 4 characters, then" \
+ " the first section that starts with these characters is dumped." )
+
+#:def_cmd( "SECTIONS", "SECTIONS", \
+ "wbmgt SECTIONS [source]...", \
+ "List all sections of each binary BMG file. Print offset, size, magic" \
+ " and a short info. If known, print number and size of elements too." )
+
+#:def_cmd( "LIST", "LIST|LS|LL", \
+ "wbmgt LIST [source]...", \
+ "List messages to proof the content. Patches are applied before" \
+ " listing. The lines are cut to fit the terminal width." )
+
+#:def_cmd( "SLOTS", "SLOTS", \
+ "wbmgt SLOTS [source]...", \
+ "Print a slot ordered list with slot number, message id, delta and" \
+ " attributes. Patches are applied before listing." )
+
+#:def_cmd( "DIFF", "DIFF|CMP", \
+ "wbmgt DIFF source1 source2\n" \
+ "wbmgt DIFF source... --dest dest\n", \
+ "Compare two or more BMG (raw or text) files on string level and" \
+ " report mismatches for each string. If option {--dest} is set, then" \
+ " each source file is compared with a file in the destination. Patches" \
+ " are applied to all sources before comparing." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wbmgt CAT [source]...", \
+ "Read the entered BMG files (text, binary or szs sub file) and print" \
+ " them as decoded text files to standard output. All BMG files of a" \
+ " single archive (SZS,...) are combined to 1 source. The output of all" \
+ " source files is concatenated." )
+
+#:def_cmd( "MIX", "MIX", \
+ "wbmgt MIX [source]...", \
+ "Read the entered BMG files (text, binary or szs sub file) and print" \
+ " them as decoded text files to standard output. All BMG files of all" \
+ " archives (SZS,...) are read. The output of all source files is" \
+ " combined and strings of later source files override prior defined" \
+ " strings." )
+
+#:def_cmd( "IDENTIFIER", "IDENTIFIER|ID|IDENTIFY", \
+ "wbmgt IDENTIFIER", \
+ "Create a simple text BMG with the identifier message @3DEF@ only with" \
+ " respect to options {--le-code} and {--ct-code}. Print the result to" \
+ " standard output." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wbmgt DECODE [szs]...", \
+ "Read the entered message files and decode them to text files. All BMG" \
+ " files of a single archive (SZS,...) are concatenated to 1 source." \
+ " This command is similar to {PATCH}, but the result is always" \
+ " decoded. The default destination is @'%P/%N.txt'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wbmgt ENCODE [source]...", \
+ "Read the entered message files and encode them to BMG files. All BMG" \
+ " files of a single archive (SZS,...) are concatenated to 1 source." \
+ " This command is similar to {PATCH}, but the result is always" \
+ " encoded. The default destination is @'%P/%N.bmg'@." )
+
+#:def_cmd( "PATCH", "PATCH|PAT", \
+ "wbmgt PATCH [source]...", \
+ "Patch the entered files by using the patch list specified by option" \
+ " {--patch-bmg}. The coding of the source files is not changed. The" \
+ " default destination is @'%P/%F'@.\n" \
+ " Use {wszst patch --patch-bmg ...} to patch BMG files within a SZS" \
+ " file." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "If set, the information header in decoded text files is suppressed" \
+ " (for historical reasons same as {--no-header}). If set at least" \
+ " twice, all comments are suppressed and the output is packed without" \
+ " empty lines. If set 3 times, the @#BMG@ file indentification is also" \
+ " suppressed." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TRACKS", "T|tracks", "GP", \
+ "tracks", \
+ "Define a new track order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are track names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " track. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Tracks will only be exchanged so that always all tracks are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "ARENAS", "A|arenas", "GP", \
+ "arenas", \
+ "Define a new arena order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are arena names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " arena. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Arenas will only be exchanged so that always all arenas are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "POINTS", "points|pts", "GP", \
+ "list", \
+ "This option creates the new message 3FF0 to hold a description of the" \
+ " versus points table. It defines a new table for the points assigned" \
+ " to players after a versus or room race. The parameter is a blank or" \
+ " comma and slash (next row) separated list with numbers (points)" \
+ " between 0 and 255 and the following keywords: @NINTENDO, LINEAR," \
+ " WIN, WIN15, WIN25@ to select a predefined table; @NO-BONUS, BONUS," \
+ " NULL, ONE@ as options; @N1..N12@ to select the row for N players." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "ALIGN", "align", "CP", \
+ "size", \
+ "Define an align value for the sub sections in the archive. The value" \
+ " must be a power of 2 and the default value is 32 (0x20)" )
+
+#:def_opt( "PATCH_BMG", "P|patch-bmg|patchbmg|pb|patch", "CMP", \
+ "mode[cond][=param]", \
+ "This option specifies a BMG patch mode. Some of the modes need a" \
+ " parameter or a file name of a BMG patch file (raw or text BMG), both" \
+ " separated by an equal sign. Modes with required file names are" \
+ " @PRINT, REPLACE, INSERT, OVERWRITE, DELETE, MASK, EQUAL@ and" \
+ " @NOTEQUAL@. Modes with text parameter are @FORMAT@, @REGEXP@ and" \
+ " @RM-REGEXP@. Standalone modes are @ID, ID-ALL, UNICODE, RM-ESCAPES," \
+ " RM-CUPS, CT-COPY, CT-FORCE-COPY, CT-FILL, LE-COPY, LE-FORCE-COPY," \
+ " LE-FILL, X-COPY, X-FORCE-COPY@ and @X-FILL@. Unique abbreviations" \
+ " are allowed.\n" \
+ " The optional condition @COND@ is either '@?MID@' or '@!MID@'. In" \
+ " case of '@?MID@', the patch is only applied if the message id MID" \
+ " already exists. In case of '@!MID@', the patch is only applied if" \
+ " the message id MID does not exists.\n" \
+ " If this option is used multiple times, all patch files will be" \
+ " processed in the entered order. @--patch@ is a short cut." )
+
+#:def_opt( "MACRO_BMG", "macro-bmg|macrobmg|mb", "CMP", \
+ "file", \
+ "Load a BMG file and add the messages to the macro library; already" \
+ " existing entries are replaced. The macro library is accessed by" \
+ " escape sequence @\\m{{MID}@ as fallback, if the active file has not" \
+ " already defined the message @MID@ by itself." )
+
+#:def_opt( "FILTER_BMG", "filter-bmg|filterbmg|fb|msg", "CMP", \
+ "list", \
+ "If this option is set, the BMG messages are filtered by this list." \
+ " Only enabled messages are exported to the output BMG file (binary or" \
+ " text).\n" \
+ " The parameter is a list of message ids (short MID, 'Txx' or 'Uxx'" \
+ " or Mxx' or hex number) or message ranges (MID:MID) or one of the" \
+ " keywords @NONE, IDENT (=ID), PARAM, CUPS, TRACKS, ARENAS, CHAT," \
+ " CTCODE (=CT), CTUPS, CTTRACKS, CTARENAS, CTREFS, LECODE (=LE)," \
+ " LEUPS, LETRACKS, LEARENAS, LEREFS, XCODE (=X), XUPS, XTRACKS," \
+ " XARENAS, XREFS, ALLCODE, ALLUPS, ALLTRACKS, ALLARENAS, ALLREFS," \
+ " GENERIC@ or @ALL@. If an element is preceded by a minus sign, it is" \
+ " removed from the filter list (disabled).\n" \
+ " With v2.01a, this option was renamed from --msg to the more" \
+ " meaningful name --filter-bmg. The old name is still available." )
+
+#:def_opt( "BMG_ENCODING", "encoding|bmg-encoding|bmgencoding", "CP", \
+ "name", \
+ "Force a BMG encoding for new BMG files. Accepted encoding names are:" \
+ " @CP-1252@, @UTF-16BE@ (or @UTF-16@), @SHIFT-JIS@, @UTF-8@ and @AUTO@" \
+ " for automatic detection (default). Same keywords without minus signs" \
+ " are accepted too.\n" \
+ " Mario Kart Wii uses encoding @UTF-16BE@; the default if no other" \
+ " encoding is defined." )
+
+#:def_opt( "BMG_INF_SIZE", "inf-size|infsize|bmg-inf-size|bmginfsize", "CP", \
+ "size", \
+ "Defines the 'INF1' size of new BMG files between 4 and 1000. The" \
+ " first 4 bytes of a INF1 record is an offset into the string pool and" \
+ " the remaining bytes the attributes. Maximal 40 attribute bytes are" \
+ " supported and additional bytes are assumed to be NULL. All BMG files" \
+ " of MKW have a size of 8." )
+
+#:def_opt( "BMG_MID", "bmg-mid|bmgmid", "CO", \
+ "[mode]", \
+ "Control the creation of BMG section @MID1@. Suppress the creation, if" \
+ " mode is @OFF@. Force the creation, if mode is @ON@. On mode @AUTO@" \
+ " (default), the source is analysed for the decision." )
+
+#:def_opt( "FORCE_ATTRIB", "force-attrib|forceattrib", "CP", \
+ "attrib", \
+ "Forces, that all attributes are set to this vector." )
+
+#:def_opt( "DEF_ATTRIB", "def-attrib|defattrib", "CP", \
+ "attrib", \
+ "Define the default attributes for BMG files. If not set, the default" \
+ " attributes are estimated. On text output, strings with default" \
+ " attributes are printed without attribute vector. The usual default" \
+ " attribute for MKW is @[1]@." )
+
+#:def_opt( "NO_ATTRIB", "no-attrib|noattrib", "C", \
+ "", \
+ "Suppress the output of any BMG attributes if creating BMG text files." )
+
+#:def_opt( "X_ESCAPES", "x-escapes|xescapes", "C", \
+ "", \
+ "Use \\x{{} escapes instead of \\z{{} escapes." )
+
+#:def_opt( "OLD_ESCAPES", "old-escapes|oldescapes", "C", \
+ "", \
+ "To be compatible with v1.43 and earlier, print 1A escape sequences" \
+ " with total size of >12 bytes as single words using \\x{{}. Also" \
+ " don't use \\x{{} and \\u{{} with parameter lists." )
+
+#:def_opt( "SINGLE_LINE", "1|single-line|singleline", "C", \
+ "", \
+ "If set, don't print continuation lines for BMG text output. If set" \
+ " twice, print only single text lines and suppress attributes like" \
+ " option {--no-attrib} does it." )
+
+#:def_opt( "NO_BMG_COLORS", "no-bmg-colors|nobmgcolors", "C", \
+ "", \
+ "If set, suppress the output of '\\c{{color}' escape sequences for" \
+ " colors definitions in BMG text output to be compatible with old" \
+ " versions of the tools." )
+
+#:def_opt( "BMG_COLORS", "bmg-colors|bmgcolors", "C", \
+ "", \
+ "Force output of '\\c{{color}' escape sequences with names, even for" \
+ " foreign (not MKWii) BMG files." )
+
+#:def_opt( "NO_BMG_INLINE", "no-bmg-inline|nobmginline", "C", \
+ "", \
+ "Print BMG attributes as separate line before the message definition" \
+ " to be compatible with versions until v1.39. The output for the" \
+ " standard value 0x01000000 is always suppressed. This was the default" \
+ " until v1.43." )
+
+#:def_opt( "EXPORT", "X|export", "C", \
+ "", \
+ "Enable the export mode and create small and machine readable text" \
+ " files for easy post processing. The option works similar like" \
+ " @-HBl11@ for BMG text files." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "POINTS", "POINTS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "POINTS", "BRIEF", \
+ "", \
+ "Print the table as comma separated lists in C notation." )
+
+#:def_cmd_opt( "POINTS", "LONG", \
+ "", \
+ "Append a string in {--points} format that defines the table. If set" \
+ " twice, append up to 3 strings in different modes." )
+
+#:def_cmd_opt( "EXTRACT", "NO_HEADER", \
+ "", \
+ "Exclude the section header from output." )
+
+#:def_cmd_opt( "SECTIONS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SLOTS", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "LONG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "LONG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MIX", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "LE_CODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "CT_CODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "LONG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "IDENTIFIER", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "LONG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LONG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIGN", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wctct' ###############
+###############################################################################
+
+#:def_tool( "wctct", \
+ "wctct [option]... command [option|parameter|@file]...", \
+ "Wiimms CT-CODE Tool : Manage the $CT-CODE$ extension. BRRES, TEX0," \
+ " CT-CODE, CT-TEXT and LE-BIN files are accepted as input." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wctct VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wctct HELP [--width=wd] OPT|OPTION ...\n" \
+ "wctct HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wctct HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wctct HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wctct ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wctct TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wctct COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wctct ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wctct FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wctct FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wctct SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The" \
+ " CT-CODE specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wctct FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the CT-CODE specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wctct CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wctct FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "DUMP", "D|DUMP", \
+ "wctct DUMP [source]...", \
+ "Print an information dump for the CT-CODE of each source file. BRRES," \
+ " TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wctct CAT [source]...", \
+ "Read the source files and print the CT-CODE part them as decoded text" \
+ " files to standard output. The output of all source files is" \
+ " concatenated. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted" \
+ " as input." )
+
+#:def_cmd( "BMG", "BMG", \
+ "wctct BMG [source]...", \
+ "Read the source files and print a BMG message listing to standard" \
+ " output. BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as" \
+ " input." )
+
+#:def_cmd( "TRACKS", "TRACKS", \
+ "wctct TRACKS [source]...", \
+ "Read the source files and print a track listing to standard output." \
+ " BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wctct DECODE [source]...", \
+ "Read the source files and decode them to CT-TEXT files. The default" \
+ " destination is @'%P/%N.txt'@. BRRES, TEX0, CT-CODE, CT-TEXT and" \
+ " LE-BIN are accepted as input." )
+
+#:def_cmd( "CREATE", "CREATE|C", \
+ "wctct CREATE keyword [source]...", \
+ "Read the source files, scan the CT-CODE part and create an output" \
+ " file controlled by the keyword. BRRES, TEX0, CT-CODE, CT-TEXT and" \
+ " LE-BIN files are accepted as input. Possible keywords are: @CUP1," \
+ " CRS1, r-MOD1, r-MOD2, r-OVR1, r-BAD1CODE, r-BAD1DATA (=r-CODE)," \
+ " r-TEX0, r-BRRES, r-SZS, BMG, TRACKS, LIST, REF@ and @FULL@. 'r'" \
+ " defines the region and is one of @EU, RMCP, US, RMCE, JP, RMCJ, KO@" \
+ " or @RMCK@.\n" \
+ " The Korean support needs external CT-CODE files. Use option" \
+ " {--ct-dir} to define at least one search path." )
+
+#:def_cmd( "PATCH", "PATCH|P", \
+ "wctct PATCH [source]...", \
+ "Read each source file, find and scan the CT-CODE part and patch it." \
+ " BRRES, TEX0, CT-CODE, CT-TEXT and LE-BIN are accepted as input." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "OLD_SPINY", "old-spiny|oldspiny", "G", \
+ "", \
+ "Disable the new feature to hold a Spiny Shell at the tail." )
+
+#:def_opt( "CRS1", "crs1", "GP", \
+ "value", \
+ "Store this value into all 8 members of the property array of the CRS1" \
+ " header if reading a CT-TEXT. The default value is 0x800." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress cross reference comments." )
+
+#:def_opt( "RAW", "raw", "C", \
+ "", \
+ "Print BMG messages as UTF-8 text without escape sequences." )
+
+#:def_opt( "BMG_ENCODING", "bmg-encoding|bmgencoding", "CP", \
+ "name", \
+ "Force a BMG encoding for new BMG files. Accepted encoding names are:" \
+ " @CP-1252@, @UTF-16BE@ (or @UTF-16@), @SHIFT-JIS@, @UTF-8@ and @AUTO@" \
+ " for automatic detection (default). Same keywords without minus signs" \
+ " are accepted too.\n" \
+ " Mario Kart Wii uses encoding @UTF-16BE@; the default if no other" \
+ " encoding is defined." )
+
+#:def_opt( "BMG_INF_SIZE", "bmg-inf-size|bmginfsize", "CP", \
+ "size", \
+ "Defines the 'INF1' size of new BMG files between 4 and 1000. The" \
+ " first 4 bytes of a INF1 record is an offset into the string pool and" \
+ " the remaining bytes the attributes. Maximal 40 attribute bytes are" \
+ " supported and additional bytes are assumed to be NULL. All BMG files" \
+ " of MKW have a size of 8." )
+
+#:def_opt( "BMG_MID", "bmg-mid|bmgmid", "CO", \
+ "[mode]", \
+ "Control the creation of BMG section @MID1@. Suppress the creation, if" \
+ " mode is @OFF@. Force the creation, if mode is @ON@. On mode @AUTO@" \
+ " (default), the source is analysed for the decision." )
+
+#:def_opt( "FORCE_ATTRIB", "force-attrib|forceattrib", "CP", \
+ "attrib", \
+ "Forces, that all attributes are set to this vector." )
+
+#:def_opt( "DEF_ATTRIB", "def-attrib|defattrib", "CP", \
+ "attrib", \
+ "Define the default attributes for BMG files. If not set, the default" \
+ " attributes are estimated. On text output, strings with default" \
+ " attributes are printed without attribute vector. The usual default" \
+ " attribute for MKW is @[1]@." )
+
+#:def_opt( "NO_ATTRIB", "no-attrib|noattrib", "C", \
+ "", \
+ "Suppress the output of any BMG attributes if creating BMG text files." )
+
+#:def_opt( "X_ESCAPES", "x-escapes|xescapes", "C", \
+ "", \
+ "Use \\x{{} escapes instead of \\z{{} escapes." )
+
+#:def_opt( "OLD_ESCAPES", "old-escapes|oldescapes", "C", \
+ "", \
+ "To be compatible with v1.43 and earlier, print 1A escape sequences" \
+ " with total size of >12 bytes as single words using \\x{{}. Also" \
+ " don't use \\x{{} and \\u{{} with parameter lists." )
+
+#:def_opt( "SINGLE_LINE", "1|single-line|singleline", "C", \
+ "", \
+ "If set, don't print continuation lines for BMG text output. If set" \
+ " twice, print only single text lines but not value lines." )
+
+#:def_opt( "NO_BMG_COLORS", "no-bmg-colors|nobmgcolors", "C", \
+ "", \
+ "If set, suppress the output of '\\c{{color}' escape sequences for" \
+ " colors definitions in BMG text output to be compatible with old" \
+ " versions of the tools." )
+
+#:def_opt( "BMG_COLORS", "bmg-colors|bmgcolors", "C", \
+ "", \
+ "Force output of '\\c{{color}' escape sequences with names, even for" \
+ " foreign (not MKWii) BMG files." )
+
+#:def_opt( "NO_BMG_INLINE", "no-bmg-inline|nobmginline", "C", \
+ "", \
+ "Print BMG attributes as separate line before the message definition" \
+ " to be compatible with versions until v1.39. The output for the" \
+ " standard value 0x01000000 is always suppressed. This was the default" \
+ " until v1.43." )
+
+#:def_opt( "EXPORT", "X|export", "C", \
+ "", \
+ "Enable the export mode and create small and machine readable text" \
+ " files for easy post processing. The option works similar like @-HB@" \
+ " for CT-CODE output." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KCL and KMP files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "LIST", "list", "C", \
+ "", \
+ "Cancel all previous {--rel} and {--full} and enter LIST mode" \
+ " (default) for text output.\n" \
+ " In LIST mode only a track list is generated. On scanning the tracks" \
+ " are automatically distributed to the cups. This makes rearanging" \
+ " very simple." )
+
+#:def_opt( "REF", "ref", "C", \
+ "", \
+ "Cancel all previous {--list} and {--full} and enter REFERENCE mode" \
+ " for text output.\n" \
+ " In REFERENCE mode all tracks and cups are printed separately. After" \
+ " scanning the cup and track layout is the same as the original code" \
+ " file." )
+
+#:def_opt( "FULL", "full", "C", \
+ "", \
+ "Cancel all previous {--list} and {--rel} and enter FULL mode for text" \
+ " output.\n" \
+ " FULL mode is a combination of LIST and REF modes." )
+
+#:def_opt( "HEX", "hex", "C", \
+ "", \
+ "Normally and if available, names are printed for music and property" \
+ " slots. If this option is set, hex numbers are printed always." )
+
+#:def_opt( "CT_DIR", "ct-dir|ctdir", "GP", \
+ "dir", \
+ "Define a search directory for CT-CODE parts and use the internal" \
+ " copies only, if no valid file is found. Each file is searched" \
+ " without and then with extension '.bz2'. For both cases bzip2 files" \
+ " are detected and decompressed. Only files with correct file type are" \
+ " accepted.\n" \
+ " wctct will search in the sub directory @'rmc[pujk]/'@ for files" \
+ " @'mod1.bin', 'mod2.bin', 'ovr1.bin'@ and @'bad1code.bin'@.\n" \
+ " Use this option multiple times to define more than one search" \
+ " directory." )
+
+#:def_opt( "CT_LOG", "ct-log|ctlog", "GO", \
+ "[=level]", \
+ "Define a log level for option {--ct-dir}. Without parameter, the" \
+ " current level is increased. Allowed keywords are: 0=0FF, 1=SUCCESS," \
+ " 2=FOUND, 3=ALL" )
+
+#:def_opt( "ALLOW_SLOTS", "allow-slots|allowslots", "GP", \
+ "list", \
+ "Allow and disallow slots for automatic slot assigning. A comma" \
+ " separated list of slots (A), slot ranges (A:B) or keywords is" \
+ " expected. If preceded by a minus sign, the slots are disabled. The" \
+ " keywords are: @TRACKS@ (slots 0:0x1f), @ARENAS@ (0x20:0x29) and" \
+ " @SPECIAL@ (0x36:0x3a). @CTCODE@ is an abbreviation for" \
+ " @ARENAS,SPECIAL@.\n" \
+ " The default is to enable slot ranges @0x00:0x1f@, @0x2a:0x35@," \
+ " @0x3b:0x41@ and @0x44:0xfe@." )
+
+#:def_opt( "IMAGES", "images", "CP", \
+ "dir", \
+ "If creating a CT-CODE BRRES or SZS file, then search the 8 strap" \
+ " images in the specified directory. The images are searched with" \
+ " extensions .png, .tex, .tex0 and without extension in this order" \
+ " until a valid image is found. All images will be resized to the" \
+ " correct width and height and converted to format TEX.RGB565 without" \
+ " mipmaps. If no valid image is found, a hard coded default image is" \
+ " used." )
+
+#:def_opt( "LOAD_BMG", "load-bmg|loadbmg", "CMP", \
+ "file", \
+ "Load immediately the file to fill an internal message pool. The" \
+ " option can be used multiple times to fill the message pool by" \
+ " different sources. A later message overrides the previous message.\n" \
+ " The internal message pool is patched by all {--patch-bmg} options." )
+
+#:def_opt( "PATCH_BMG", "patch-bmg|patchbmg|pb", "CMP", \
+ "mode[cond][=param]", \
+ "This option specifies a BMG patch mode. Some of the modes need a" \
+ " parameter or a file name of a BMG patch file (raw or text BMG), both" \
+ " separated by an equal sign. Modes with required file names are" \
+ " @PRINT, REPLACE, INSERT, OVERWRITE, DELETE, MASK, EQUAL@ and" \
+ " @NOTEQUAL@. Modes with text parameter are @FORMAT@, @REGEXP@ and" \
+ " @RM-REGEXP@. Standalone modes are @ID, ID-ALL, UNICODE, RM-ESCAPES," \
+ " RM-CUPS, CT-COPY, CT-FORCE-COPY, CT-FILL, LE-COPY, LE-FORCE-COPY," \
+ " LE-FILL, X-COPY, X-FORCE-COPY@ and @X-FILL@. Unique abbreviations" \
+ " are allowed.\n" \
+ " The optional condition @COND@ is either '@?MID@' or '@!MID@'. In" \
+ " case of '@?MID@', the patch is only applied if the message id MID" \
+ " already exists. In case of '@!MID@', the patch is only applied if" \
+ " the message id MID does not exists.\n" \
+ " If this option is used multiple times, all patch files will be" \
+ " processed in the entered order." )
+
+#:def_opt( "MACRO_BMG", "macro-bmg|macrobmg|mb", "CMP", \
+ "file", \
+ "Load a BMG file and add the messages to the macro library; already" \
+ " existing entries are replaced. The macro library is accessed by" \
+ " escape sequence @\\m{{MID}@ as fallback, if the active file has not" \
+ " already defined the message @MID@ by itself." )
+
+#:def_opt( "FILTER_BMG", "filter-bmg|filterbmg|fb", "CMP", \
+ "list", \
+ "If this option is set, the BMG messages are filtered by this list." \
+ " Only enabled messages are exported to the output BMG file (binary or" \
+ " text).\n" \
+ " The parameter is a list of message ids (short MID, 'Txx' or 'Uxx'" \
+ " or Mxx' or hex number) or message ranges (MID:MID) or one of the" \
+ " keywords @NONE, IDENT (=ID), PARAM, CUPS, TRACKS, ARENAS, CHAT," \
+ " CTCODE (=CT), CTUPS, CTTRACKS, CTARENAS, CTREFS, LECODE (=LE)," \
+ " LEUPS, LETRACKS, LEARENAS, LEREFS, XCODE (=X), XUPS, XTRACKS," \
+ " XARENAS, XREFS, ALLCODE, ALLUPS, ALLTRACKS, ALLARENAS, ALLREFS," \
+ " GENERIC@ or @ALL@. If an element is preceded by a minus sign, it is" \
+ " removed from the filter list (disabled).\n" \
+ " With v2.01a, this option was renamed from --msg to the more" \
+ " meaningful name --filter-bmg. The old name is still available." )
+
+#:def_opt( "PATCH_NAMES", "patch-names|patchnames", "C", \
+ "", \
+ "If set, the names of the CUP1 and CSR1 sections are patched by the" \
+ " loaded BMG files directly after loading the source files." )
+
+#:def_opt( "ORDER_BY", "order-by|orderby|order", "CP", \
+ "bmg", \
+ "Load the BMG file and filter track names. Then before creating output" \
+ " files, re-distribute the tracks of the additonal cups (9-) to the" \
+ " same cups by the order of the read track names. Tracks without BMG" \
+ " reference are placed at the end of all tracks. This option modifes" \
+ " only the track order of the cups, but will not change any name." )
+
+#:def_opt( "ORDER_ALL", "order-all|orderall", "C", \
+ "", \
+ "Used together with option {--order-by}: Re-distribute the tracks of" \
+ " all cups beginning with Mushroom Cup." )
+
+#:def_opt( "WRITE_TRACKS", "write-tracks|writetracks|wtracks", "CP", \
+ "file", \
+ "Create a machine readable file reflecting the racing track" \
+ " distribution to the cups. One line of format @'IDX|MID|NAME'@ is" \
+ " written for each track. --wtracks is a short cut." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "RAWDUMP", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "RAWDUMP", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LONG", \
+ "", \
+ "Print headers as hexdump." )
+
+#:def_cmd_opt( "DUMP", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "LIST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "REF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in CTC text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BRIEF", \
+ "", \
+ "Filter the message by tracks, that are used a racing track. If set" \
+ " twice, suppress also tracks created by the 'N' command of CT-TEXT" \
+ " files. If set 3 times, suppress always the output of first 32" \
+ " tracks." )
+
+#:def_cmd_opt( "BMG", "LONG", \
+ "", \
+ "Normally, only the track and arena names are exported. The message id" \
+ " (MID) range is 4000-40FF. If set, cup names are exported too as MID" \
+ " 4200-423F. If set twice, cup/track relations are also exported as" \
+ " MID 4300-43FF." )
+
+#:def_cmd_opt( "BMG", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "LIST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "REF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "FULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in CTC text files." )
+
+#:def_cmd_opt( "BMG", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BMG", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "NO_HEADER", \
+ "", \
+ "Suppress the table header." )
+
+#:def_cmd_opt( "TRACKS", "BRIEF", \
+ "", \
+ "Suppress the output of the music and property slots." )
+
+#:def_cmd_opt( "TRACKS", "LONG", \
+ "", \
+ "Include the first 32 standard tracks into the output. If set twice," \
+ " also include the battle arenas." )
+
+#:def_cmd_opt( "TRACKS", "RAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "LIST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "REF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "FULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "LIST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in CTC text files." )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in CTC text files." )
+
+#:def_cmd_opt( "CREATE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BMG_ENCODING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BMG_INF_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BMG_MID", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "FORCE_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEF_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_ATTRIB", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "X_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "OLD_ESCAPES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "SINGLE_LINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "BMG_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_BMG_INLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LONG", \
+ "", \
+ "BMG: Normally, only the track and arena names are exported. The" \
+ " message id (MID) range is 4000-40FF. If set, cup names are exported" \
+ " too as MID 4200-423F. If set twice, cup/track relations are also" \
+ " exported as MID 4300-43FF." )
+
+#:def_cmd_opt( "CREATE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "CT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "CT_LOG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ALLOW_SLOTS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "IMAGES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ORDER_ALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "WRITE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LOAD_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PATCH_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MACRO_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FILTER_BMG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PATCH_NAMES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ORDER_BY", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ORDER_ALL", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wimgt' ###############
+###############################################################################
+
+#:def_tool( "wimgt", \
+ "wimgt [option]... command [option|parameter|@file]...", \
+ "Wiimms Image Tool : Extract and convert graphic images. The file" \
+ " formats TPL, TEX, BTI, BREFT and PNG are supported." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wimgt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wimgt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wimgt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wimgt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wimgt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wimgt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wimgt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wimgt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wimgt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wimgt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wimgt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "LIST", "LIST|LS", \
+ "wimgt LIST [source]...", \
+ "List images files and print file and image type." )
+
+#:def_cmd( "LIST_L", "LIST-L|LL|LISTL", \
+ "wit LIST-L [source]...", \
+ "List images files and print file and image type and geometry data." \
+ " 'LIST-L' is a short cut for {LIST --long}." )
+
+#:def_cmd( "LIST_LL", "LIST-LL|LLL|LISTLL", \
+ "wit LIST-LL [source]...", \
+ "List images files and print file and image type and advanced geometry" \
+ " data. 'LIST-LL' is a short cut for {LIST --long --long}." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wimgt DECODE [source]...", \
+ "Decode (export) the entered image files into PNG files. The default" \
+ " destination is @'%P/%F.png'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wimgt ENCODE [source]...", \
+ "Encode (import) the entered PNG files and convert them to to an" \
+ " internal image format (TPL, TEX, BREFT). The default destination is" \
+ " @'%P/%N'@ (removed extension)." )
+
+#:def_cmd( "CONVERT", "CONVERT|CV", \
+ "wimgt CONVERT [source]...", \
+ "Convert the entered image files into new file and image formats. The" \
+ " old file is replaced by the new one. The difference to {ENCODE} is" \
+ " only the default file name handling." )
+
+#:def_cmd( "COPY", "COPY|CP", \
+ "wimgt COPY source dest\n" \
+ "wimgt COPY source... [-d|-D] dest", \
+ "Copy and convert an image from 'source' to 'dest'. Multiple sources" \
+ " can be used, if 'dest' is a directory or contains at least one" \
+ " %-pattern.\n" \
+ " This is an alternative for the ENCODE and DECODE commands. The" \
+ " default destination file format is selected by scanning the file" \
+ " extension of the destination. Option --transform may override this." \
+ " Option --overwrite is set implicitly." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Create smaller output." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "ALL", "a|all", "C", \
+ "", \
+ "Convert all files and not only the files with changed file or image" \
+ " formats." )
+
+#:def_opt( "MIPMAPS", "mipmaps", "C", \
+ "", \
+ "If reading a source, scan for mipmaps and load them too. For PNG" \
+ " files, files named @NAME.mm#.EXT@ with #=1.. are searched. This is" \
+ " the default. @--mm@ is a short cut." )
+
+#:def_opt( "NO_MIPMAPS", "no-mipmaps|nomipmaps|no-mm|nomm", "C", \
+ "", \
+ "If reading a source, ignore mipmaps. This disables not the creation" \
+ " of mipmaps (see {-n-mipmaps}). @--no-mm@ is a short cut." )
+
+#:def_opt( "N_MIPMAPS", "n-mipmaps|nmipmaps|n-mm|nmm", "CP", \
+ "num", \
+ "Force the number of mipmaps. Values between 0 and 20 are allowed." \
+ " Value @OFF@ (default) disables this option. If enabled, options" \
+ " @--max-mipmaps@ and @--mipmap-size@ are ignored. The creation of" \
+ " mipmaps stops if the width or the height of the mipmap becomes 0." \
+ " @--n-mm@ is a short cut." )
+
+#:def_opt( "MAX_MIPMAPS", "max-mipmaps|maxmipmaps|max-mm|maxmm", "CP", \
+ "num", \
+ "Control the automatic mipmap creation. Values between 0 and 20 are" \
+ " allowed and the default is 4. The mipmap creation for an image" \
+ " stops, if the set number is reached. This option is ignored, if" \
+ " @--n-mipmaps@ is enabled. @--max-mm@ is a short cut." )
+
+#:def_opt( "MIPMAP_SIZE", "mipmap-size|mipmapsize|mm-size|mmsize", "CP", \
+ "num", \
+ "Define the minimal width and minimal height of a generated mipmap." \
+ " Any value >0 is allowed. The default is 8. This option is ignored," \
+ " if @--n-mipmaps@ is enabled. @--mm-size@ is a short cut." )
+
+#:def_opt( "FAST_MIPMAPS", "fast-mipmaps|fastmipmaps|fast-mm|fastmm", "C", \
+ "", \
+ "If resizing an image, use the old fast resize algorithm (default" \
+ " until v1.64a) instead of the new smart one. Both algorithms differ" \
+ " only, when creating a mipmap for images with odd width or odd" \
+ " height. The old algorithm is faster (factor 2-4) than the default" \
+ " algorithm, but the new algorithm creates better resized images." \
+ " @--fast-mm@ is a short cut." )
+
+#:def_opt( "CMPR_DEFAULT", "cmpr-default", "CP", \
+ "rgb1[,rgb2]", \
+ "Define 2 colors for the case, that all 16 pixels of a CMPR block are" \
+ " transparent. The default is to calculate an average color of all" \
+ " transparent pixels. Before v2.04 white was used.\n" \
+ " 2 RGB values (hex values with 6 digits each) are expected as" \
+ " parameter. If optional @RGB2@ is missed, a copy of @RGB1@ is used." \
+ " As first step, both colors are converted to RGB565 colors @C1@ and" \
+ " @C2@ and sorted, so that @C1<C2@ (mandatory for CMPR). If @C1@ and" \
+ " @C2@ are identical, the least significant bit of green is cleared" \
+ " for @C1@ and set for @C2@.\n" \
+ " Use parameter '@0@' to force black, '@-1@' to force white, or '@-@'" \
+ " to reset to auto calculation." )
+
+#:def_opt( "PRE_CONVERT", "pre-convert|preconvert", "C", \
+ "", \
+ "Convert the image before the image format for the destination file is" \
+ " selected. This results in a perhaps worser graphic and is only" \
+ " useful to control graphic conversions." )
+
+#:def_opt( "PATCH", "P|patch", "CMP", \
+ "mode1.mode2...=file", \
+ "This option specifies patch mode list and a file, separated by an" \
+ " equal sign. Mode is a point separated list of the keywords: @TOP@" \
+ " (@T@), @BOTTOM@ (@B@), @VCENTER@ (@V@), @INS-TOP@ (@IT@) and" \
+ " @INS-BOTTOM@ (@IB@) for the vertical alignment, @LEFT@ (@L@)," \
+ " @RIGHT@ (@R@), @HCENTER@ (@H@), @INS-LEFT@ (@IL@) and @INS-RIGHT@" \
+ " (@IR@) for the horizontal alignment, @COPY@ (@CP@), @BACKGROUND@" \
+ " (@BG@), @FOREGROUND@ (@FG@) and @MIX@ (@MX@) as color calculation" \
+ " mode and @SHRINK@ (@SH@), @GROW@ (@GR@) and @LEAVE@ (@LV@) as image" \
+ " size mode.\n" \
+ " Abbreviations are allowed. The default is" \
+ " @VCENTER.HCENTER.MIX.LEAVE@ or in short form @V.H.MX.LV@. If this" \
+ " option is used multiple times all patch files will be used in the" \
+ " entered order." )
+
+#:def_opt( "TRANSFORM", "x|transform", "CP", \
+ "list", \
+ "Convert image formats. A comma separated list with terms is expected." \
+ " A term have the syntax @'[SRC=]DEST'@. It means: convert @SRC@" \
+ " format into @DEST@ format. If @SRC=@ is not set, the destination" \
+ " format is used for all source formats. This makes only sense as last" \
+ " rule. If @DEST@ is empty no transformation is done for the source." \
+ " Examples: '@TPL@' or '@GRAY@' or '@BTI.IA8@' or" \
+ " '@TPL.I4+I8=IA8,TEX=,CMPR@'\n" \
+ " @SRC@ and @DEST@ are tuple of file, image and palette formats and" \
+ " of 2 more attributes. All parts are optional and separated by" \
+ " points, the order is irrelevant.\n" \
+ " Allowed file formats are: @TPL, TEX, BTI, BREFT-IMG (=BTIMG), PNG@" \
+ " (import). Allowed image formats are: @I4, I8, IA4, IA8, RGB565" \
+ " (=R565), RGB5A3 (=R3), RGBA32 (=R32), C4, C8, C14X2, CMPR@. Allowed" \
+ " palette formats are: @P-IA8 (=P8), P-RGB565 (=P565), P-RGB5A3" \
+ " (=P3)@. Attributtes are @PALETTE@, @NO-PALETTE@, @GRAY@, @COLOR@," \
+ " @ALPHA@ and @NO-ALPHA@.\n" \
+ " All terms are managed as list. For each graphic the list is" \
+ " iterated until the first SRC tuple of a term matches the graphic." \
+ " Then the destination tuple is used for the transformation.\n" \
+ " The command {wimgt TEST} prints a clearly arranged readable table" \
+ " as result of this option." )
+
+#:def_opt( "STRIP", "strip", "C", \
+ "", \
+ "If creating a PNG file, don't add comments about creator and source" \
+ " formats." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "LONG", \
+ "", \
+ "If set, geometry data of the image is printed. If set twice, advanced" \
+ " geometry data is printed." )
+
+#:def_cmd_opt( "LIST", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "LONG", \
+ "", \
+ "If set, geometry data of the image is printed. If set twice, advanced" \
+ " geometry data is printed." )
+
+#:def_cmd_opt( "LIST_L", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_L", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "LONG", \
+ "", \
+ "If set, geometry data of the image is printed. If set twice, advanced" \
+ " geometry data is printed." )
+
+#:def_cmd_opt( "LIST_LL", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST_LL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRE_CONVERT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PATCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ALL", \
+ "", \
+ "If source and destination file are the same, the file is only written" \
+ " on modifications (transform, patch, ...). If --all is set, then the" \
+ " file is always written." )
+
+#:def_cmd_opt( "ENCODE", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRE_CONVERT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PATCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "ALL", \
+ "", \
+ "If source and destination file are the same, the file is only written" \
+ " on modifications (transform, patch, ...). If --all is set, then the" \
+ " file is always written." )
+
+#:def_cmd_opt( "CONVERT", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "PRE_CONVERT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "PATCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CONVERT", "STRIP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ALL", \
+ "", \
+ "If source and destination file are the same, the file is only written" \
+ " on modifications (transform, patch, ...). If --all is set, then the" \
+ " file is always written." )
+
+#:def_cmd_opt( "COPY", "N_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MAX_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MIPMAP_SIZE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PRE_CONVERT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PATCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NO_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "FAST_MIPMAPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "CMPR_DEFAULT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRANSFORM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "STRIP", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wkclt' ###############
+###############################################################################
+
+#:def_tool( "wkclt", \
+ "wkclt [option]... command [option|parameter|@file]...", \
+ "Wiimms KCL Tool : Analyze, modify, export and create KCL and OBJ" \
+ " files." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wkclt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wkclt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wkclt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wkclt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wkclt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wkclt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wkclt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wkclt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wkclt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wkclt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wkclt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wkclt SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The KCL" \
+ " specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wkclt FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the KCL specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wkclt CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "MATRIX", "MATRIX", \
+ "wkclt MATRIX [patch-option]... [vector]...", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results.", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results. The transformations are done with 4" \
+ " different methods to confirm the algorithms. Only the main results" \
+ " and results, which differ, are printed.\n" \
+ " Normally, the exit status is @OK@ (null). If at least one old" \
+ " transformation returns different results for the different" \
+ " algorithms, then status @DIFFER@ (not null) is returned." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wkclt FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wkclt CAT source...", \
+ "Read the entered KCL and OBJ files and print them as OBJ files to" \
+ " standard output. The output of all source files is concatenated.\n" \
+ " Automated dropping of bad KCL triangles is enabled if no other drop" \
+ " option is specified by option {--kcl}." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wkclt DECODE source...", \
+ "Read the entered KCL and OBJ files and export them to OBJ files. The" \
+ " default destination is @'%P/%N.txt'@.\n" \
+ " Automated dropping of bad KCL triangles is enabled if no other drop" \
+ " option is specified by option {--kcl}." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wkclt ENCODE source...", \
+ "Read the entered KCL and OBJ files and encode (compile) them to" \
+ " binary KCL files. The default destination is @'%P/%N.kcl'@.\n" \
+ " See https://szs.wiimm.de/doc/kcl for encoding details." )
+
+#:def_cmd( "COPY", "COPY|CP", \
+ "wkclt COPY source dest\n" \
+ "wkclt COPY source... [-d|-D] dest", \
+ "Copy and convert a collision file from 'source' to 'dest'. Multiple" \
+ " KCL and OBJ sources can be used, if 'dest' is a directory or" \
+ " contains at least one %-pattern.\n" \
+ " This is an alternative for the DECODE and ENCODE commands. The" \
+ " default destination file format is selected by scanning the file" \
+ " extension of the destination. Is it '.kcl', a binary KCL file is" \
+ " created. Is it '.txt' or '.obj', an OBJ file is created. Otherwise" \
+ " the output format is the same as the source.\n" \
+ " Automated dropping of bad KCL triangles is enabled if no other drop" \
+ " option is specified and the destination is an OBJ file." )
+
+#:def_cmd( "CFF", "CFF", \
+ "wkclt CFF source...", \
+ "CFF is an abbreviation of 'create flag file' and will create a flag" \
+ " file template for each entered source file. If the flag file already" \
+ " exists, only missing group names are added at the end of file." )
+
+#:def_cmd( "FLAGS", "FLAGS|F", \
+ "wkclt FLAGS source...", \
+ "Print a KCL type and flag usage statistic for each source to standard" \
+ " output." )
+
+#:def_cmd( "DUMP", "DUMP|D", \
+ "wkclt DUMP source...", \
+ "This debugging command prints an information dump about the internal" \
+ " triangle data base and the octree in human and machine readable text" \
+ " format. The output of all source files is concatenated and printed" \
+ " to standard output." )
+
+#:def_cmd( "DBRIEF", "DBRIEF|DB", \
+ "wkclt DBRIEF source...", \
+ "Command @DBRIEF@ is a short cut for {DUMP --brief}. The output of the" \
+ " triangle list is suppressed and only the header data and statistics" \
+ " are printed." )
+
+#:def_cmd( "LIST", "LIST", \
+ "wkclt LIST source...", \
+ "This debugging command prints a list of all triangles with metrics in" \
+ " human and machine readable text format. It is like DUMP, but reduced" \
+ " to the list of triangles. The output of all source files is" \
+ " concatenated and printed to standard output." )
+
+#:def_cmd( "TRIANGLES", "TRIANGLES", \
+ "wkclt TRIANGLES source...", \
+ "This debugging commands prints one data line for each triangle. The" \
+ " goal is to compare data. Therefor and to create smaller lines the" \
+ " precision of the floating points numbers is reduced.\n" \
+ " The print order is: flag used length | 3 points | 4 normals. For" \
+ " each point and normal 3 coordinates are printed." )
+
+#:def_cmd( "TRAVERSE", "TRAVERSE", \
+ "wkclt TRAVERSE source point...", \
+ "For each point, the octree of the source file is traversed to find" \
+ " and print the related triangles. A point is either a comma separated" \
+ " list with 3 parser expressions (one for each coordinate) or a vector" \
+ " expression." )
+
+#:def_cmd( "FALL", "FALL", \
+ "wkclt FALL source point...", \
+ "For each entered point, the lowest point is searched, that can be" \
+ " reached without collision. The point is expanded to a cube with edge" \
+ " length of 100.0 for the collision tests." )
+
+#:def_cmd( "CHECK", "CHECK|CHK", \
+ "wkclt CHECK source...", \
+ "Read the entered KCL files (text or binary) and and make a" \
+ " plausibility check. Hints and warnings are written to standard" \
+ " output. The exit status is @'DIFFER'@ if at least one KMP warning" \
+ " found." )
+
+#:def_cmd( "BLOW", "BLOW", \
+ "wkclt BLOW source...", \
+ "Try to calculate the used blow size (KCL_BLOW) of a KCL. Print one" \
+ " line for each source file." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "SCALE", "scale", "CP", \
+ "vector[@origin]", \
+ "Transform the data: Scale all coordinates and size values by 'vector'" \
+ " relative to the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Negative values mirror the coordinates. Each parameter is either a" \
+ " vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "SHIFT", "shift", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--translate}, but the addition is done before rotation. The" \
+ " parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XSS", "xss", "CP", \
+ "x1old,x1new,x2old,x2new", \
+ "--xss (x-scale-shift) calculates the X values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "YSS", "yss", "CP", \
+ "y1old,y1new,y2old,y2new", \
+ "--yss (y-scale-shift) calculates the Y values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ZSS", "zss", "CP", \
+ "z1old,z1new,z2old,z2new", \
+ "--zss (z-scale-shift) calculates the Z values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ROT", "rot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' (is a vector) around the 3 axes. All 3 axes goes" \
+ " through the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y,z').\n" \
+ " Option --rot is an alternative for {--xrot}, {--yrot} and {--zrot}" \
+ " to define all 3 rotations in one step. Transformations are" \
+ " calculated in the order SCALE, SHIFT, X-ROTATE, Y-ROTATE, Z-ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XROT", "xrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('y,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YROT", "yrot|hrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead. This is" \
+ " a horizontal counterclockwise rotation and the old option name" \
+ " --hrot can also used.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "ZROT", "zrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the z-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "TRANSLATE", "translate", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--shift}, but the addition is done after rotation. The parameter is" \
+ " either a vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z'). @--trans@ is a short cut.\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "NULL", "null", "C", \
+ "", \
+ "Create a neutral transformation without affecting the coordinates." \
+ " The only influence is, that the dependent values (like maximum) are" \
+ " re-calculated as if a transformation has taken place." )
+
+#:def_opt( "NEXT", "next", "C", \
+ "", \
+ "Close the current transformation step with all scaling, shifting," \
+ " rotation and translation options and open a new step with cleared" \
+ " options. On transformation each step is logical done one by one. In" \
+ " real, one total transformation matrix is calculated and used for" \
+ " fast transformations.\n" \
+ " If option --next is used, the ability for modifying the scale and" \
+ " rotation vectors (not the positions) of different KMP sections is" \
+ " nearly always lost. A warning is printed if this occurs." )
+
+#:def_opt( "ASCALE", "ascale", "CP", \
+ "factor@dir", \
+ "Transform the data and do an axis scale: Close the current" \
+ " transformation step like {--next} and scale the data by @'factor'@" \
+ " into the direction given by the vector @'dir'@. Store the resulting" \
+ " matrix as single transformation step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "AROT", "arot", "CP", \
+ "degree[@pos1]@pos2", \
+ "Transform the data and do an axis rotation: Close the current" \
+ " transformation step like {--next} and rotate the data by @'degree'@" \
+ " around the axis defined by the 2 points. If @'pos1'@ is not set, use" \
+ " @0,0,0@ instead. Store the resulting matrix as single transformation" \
+ " step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "TFORM_SCRIPT", "tform-script|tformscript", "CP", \
+ "script", \
+ "Load the script and execute it by the text parser.\n" \
+ " Then for each coordinate (2D and 3D), call the macro @TRANSFORM@" \
+ " after all other transformations. Call it without parameters and set" \
+ " variable @$$I@ with a zero based index of all vertices, variable" \
+ " @$$D@ to the dimension (2 or 3) and the variable @$$P@ to the vector" \
+ " of the current vertex. If the macro returns a vector, it is the new" \
+ " position.\n" \
+ " For each file, macro @BEGIN@ is called at the beginning and @END@" \
+ " after processing all points, but only, if the macros are defined." \
+ " For @END@, variable @$$I@ is set to the number of processed vertices" \
+ " in the current file.\n" \
+ " Before each macro call, the private and local variables are cleared" \
+ " and only global parameters are permanent. The zero based index is" \
+ " cleared for each new source. The parameters of the macro calls are" \
+ " defined in the local name space." )
+
+#:def_opt( "KCL", "kcl", "GP", \
+ "list", \
+ "Set global options for KCL processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. Keywords @SMALL, MEDIUM@ and @CHARY@ select the default" \
+ " parameters for the octree creation. The other allowed keywords are:" \
+ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \
+ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \
+ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \
+ " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." )
+
+#:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \
+ "joblist", \
+ "Modify the KCL flag of KCL files. A comma separated job list in the" \
+ " format @'srclist=dest'@ is expected. @'srclist'@ is a plus sign" \
+ " separated list with single values like @<val>@, @T<type>@ and" \
+ " @<val>/<mask>@ or ranges like @<val>:<val>@, @T<type>:<type>@ and" \
+ " @<val>:<val>/<mask>@. @'<val>'@ is a complete KCL flag in the range" \
+ " of @0..0xffff@. @'<type>'@ are only the base types in the range of" \
+ " @0..0x1f@. If @<mask>@ is present, it marks the relevant bits. For" \
+ " the @T<type>@ variant, the mask is set to @0x1f@.\n" \
+ " All KCL flags of the source list are assigned to the new value" \
+ " @'dest'@, but only the set bits of @'<mask>'@ are modified. A later" \
+ " definition overrides the previous one." )
+
+#:def_opt( "KCL_SCRIPT", "kcl-script|kclscript", "CP", \
+ "script", \
+ "After reading a KCL source file and executing all transformations," \
+ " the text file @'script'@ is executed by the internal text parser." \
+ " The script should use the parser functions @tri$$*()@ to read and" \
+ " modify the triangle positions and flags, or to add or remove" \
+ " complete triangles.\n" \
+ " If this option is used multiple times, each script is executed in" \
+ " the entered order." )
+
+#:def_opt( "TRI_AREA", "tri-area|triarea", "GP", \
+ "EXPR", \
+ "Define the minimal area size of KCL triangles. The intention is to" \
+ " ignore triangles that are generally to small. @EXPR@ is a floating" \
+ " point number or expression. Triangles are invalidated if their area" \
+ " size is smaller than @EXPR@. The test is executed after reading" \
+ " files, after transformations, and after calculating normals and" \
+ " lengths. Values between 0.01 and 4.0 are recommended. The careful" \
+ " value 1.0 is used as default. Value 0 disables this filter" \
+ " functionality." )
+
+#:def_opt( "TRI_HEIGHT", "tri-height|triheight|tri-ht|triht|kcl-min|kclmin", "GP", \
+ "EXPR", \
+ "Define the minimal height of KCL triangles. The intention is to" \
+ " ignore deformed triangles (very slim, but long). @EXPR@ is a" \
+ " floating point number or expression. Triangles are invalidated if at" \
+ " least 1 of the 3 heights is smaller than @EXPR@. The test is" \
+ " executed after reading files, after transformations, and after" \
+ " calculating normals and lengths. Values between 0.01 and 2.0 are" \
+ " recommended. The careful value 1.0 is used as default. Value 0" \
+ " disables this filter functionality.\n" \
+ " --tri-ht is an alternative name for the option." )
+
+#:def_opt( "FLAG_FILE", "flag-file|flagfile", "CP", \
+ "filename", \
+ "Define a flag file if scanning an OBJ file (KCL processing). The file" \
+ " name may contain %-escapes. Set it to an empty string to disable" \
+ " flag files at all.\n" \
+ " The tool search the flag file in the following order until found:" \
+ " File defined by --flag-file; OBJ file name with replaced extension" \
+ " ('a.obj' becomes 'a.flag'); OBJ file name with appended extension" \
+ " ('a.obj' becomes 'a.obj.flag')." )
+
+#:def_opt( "SLOT", "slot", "CP", \
+ "keyword", \
+ "Patch a track file to run at the specified slot. KMP and KCL may be" \
+ " modified. BRRES files may be added to or removed from SZS. The main" \
+ " keywords are @DAISY, DESERT, SHERBET, SHYGUY, STANDARD@ and @MOST@." \
+ " Slot numbers (except '42' and '4.2') and different other track names" \
+ " are also accepted. For some conversions, the auto-add library is" \
+ " needed." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Create smaller output." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KCL files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "TINY", "tiny", "GP", \
+ "mode", \
+ "Set tiny mode to a level between 0 and 7." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEST", "VERBOSE", \
+ "", \
+ "Print the matrices of transformations." )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "BRIEF", \
+ "", \
+ "If set once, suppress vector dumps for transformation steps and" \
+ " ignore option --long. If set twice, suppress vector dump for final" \
+ " transformation too." )
+
+#:def_cmd_opt( "MATRIX", "LONG", \
+ "", \
+ "If set once, print inverse matrix for the final transformation. If" \
+ " set twice, print inverse matrix for all transformations." )
+
+#:def_cmd_opt( "MATRIX", "QUIET", \
+ "", \
+ "Option --quiet is dedicated to automatic tests comparing the old and" \
+ " new transformation algorithms. If set once, the tables are only" \
+ " printed, if the results differ. If set twice, nothing is printed at" \
+ " all and only the exit status will inform about the results." )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COPY", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "LONG", \
+ "", \
+ "Force usage of @'f(typ,variant)'@. If set twice, force usage of" \
+ " @'a(typ,w,x,y,z)'@." )
+
+#:def_cmd_opt( "CFF", "BRIEF", \
+ "", \
+ "Suppress the comments with the alternative expression formats." )
+
+#:def_cmd_opt( "CFF", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CFF", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "BRIEF", \
+ "", \
+ "Suppress the output of detailed flag list and print only the type" \
+ " summary." )
+
+#:def_cmd_opt( "FLAGS", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLAGS", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "BRIEF", \
+ "", \
+ "Suppress the output of the triangle list and print only the header" \
+ " data and statistics." )
+
+#:def_cmd_opt( "DUMP", "LONG", \
+ "", \
+ "If set, append an octree dump to the output. If set twice, add a" \
+ " triangle usage list behind the octree dump." )
+
+#:def_cmd_opt( "DUMP", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "BRIEF", \
+ "", \
+ "Suppress the output of the triangle list and print only the header" \
+ " data and statistics." )
+
+#:def_cmd_opt( "DBRIEF", "LONG", \
+ "", \
+ "If set, append an octree dump to the output. If set twice, add a" \
+ " triangle usage list behind the octree dump." )
+
+#:def_cmd_opt( "DBRIEF", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DBRIEF", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LIST", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "BRIEF", \
+ "", \
+ "Suppress the output of the 'normals' data." )
+
+#:def_cmd_opt( "TRIANGLES", "LONG", \
+ "", \
+ "For each occurrence of option --long increase the precision of the" \
+ " floating points numbers by adding 1 fractional digit, but only up to" \
+ " additionally 5 digits." )
+
+#:def_cmd_opt( "TRIANGLES", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRIANGLES", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "BRIEF", \
+ "", \
+ "Print the 0-based triangle index instead of the triangle coordinates." )
+
+#:def_cmd_opt( "TRAVERSE", "LONG", \
+ "", \
+ "If set, print a calculation log. If set twice, print a calculation" \
+ " log for each octree traversing step." )
+
+#:def_cmd_opt( "TRAVERSE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRAVERSE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "BRIEF", \
+ "", \
+ "Print only the height (y coordinate) of the result." )
+
+#:def_cmd_opt( "FALL", "LONG", \
+ "", \
+ "If set, print a calculation log. If set twice, be more verbose." )
+
+#:def_cmd_opt( "FALL", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FALL", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BRIEF", \
+ "", \
+ "Print only warnings and suppress hints." )
+
+#:def_cmd_opt( "CHECK", "LONG", \
+ "", \
+ "Be verbose and print more statistics." )
+
+#:def_cmd_opt( "CHECK", "QUIET", \
+ "", \
+ "Be quiet until the first warning or hint is found." )
+
+#:def_cmd_opt( "CHECK", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "KCL_FLAG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "TRI_AREA", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "TRI_HEIGHT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "FLAG_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "BLOW", "IGNORE", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wkmpt' ###############
+###############################################################################
+
+#:def_tool( "wkmpt", \
+ "wkmpt [option]... command [option|parameter|@file]...", \
+ "Wiimms KMP Tool : Analyze, modify, export and create (compile) KMP" \
+ " files." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wkmpt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wkmpt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wkmpt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wkmpt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wkmpt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wkmpt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wkmpt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wkmpt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wkmpt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wkmpt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wkmpt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wkmpt SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The KMP" \
+ " specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wkmpt FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the KMP specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wkmpt CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "MATRIX", "MATRIX", \
+ "wkmpt MATRIX [patch-option]... [vector]...", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results.", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results. The transformations are done with 4" \
+ " different methods to confirm the algorithms. Only the main results" \
+ " and results, which differ, are printed.\n" \
+ " Normally, the exit status is @OK@ (null). If at least one old" \
+ " transformation returns different results for the different" \
+ " algorithms, then status @DIFFER@ (not null) is returned." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wkmpt FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "STARTPOS", "STARTPOS|SP", \
+ "wkmpt STARTPOS [patch-option]... key_or_file...", \
+ "Print an ASCII image or a table of the start positions. The parameter" \
+ " list is a wild mix of filenames, keywords and numbers.\n" \
+ " If a parameter contains a slash ('/' or '\\'), it is a filename of" \
+ " a KMP or SZS file and a KMP is loaded. The KMP is used to print" \
+ " absolute positions and to find the settings for @LEFT/RIGHT@ and" \
+ " @WIDE/NARROW@ automatically.\n" \
+ " A parameter may also be one of the following keywords to define a" \
+ " setting: @RESET, IMAGE, TABLE, RELATIVE, ABSOLUTE, LEFT, RIGHT," \
+ " WIDE, NARROW, AUTO, NO-AUTO, DECIMAL, HEXADECIMAL, Z0, Z1, Z2, Z3@." \
+ " A table or image is only printed on numbers 1 to 12." )
+
+#:def_cmd( "OBJECTS", "OBJECTS|OBJ", \
+ "wkmpt OBJECTS key...", \
+ "Infos about all objects, that match any of the entered keys, are" \
+ " printed. A key match, if the text is part of the object name, file" \
+ " list or info (ignoring case). If a key is a number (decimal or hex)," \
+ " the object with that id matches too. This command uses an internal" \
+ " object and file database." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wkmpt CAT [source]...", \
+ "Read the entered KMP files (text, binary or szs) and print them as" \
+ " decoded text files to standard output. The output of all source" \
+ " files is concatenated." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wkmpt DECODE [source]...", \
+ "Read the entered KMP files (text or binary) and decode them to text" \
+ " files. The default destination is @'%P/%N.txt'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wkmpt ENCODE source...", \
+ "Read the entered KMP files (text or binary) and encode (compile) them" \
+ " to binary files. The default destination is @'%P/%N.kmp'@." )
+
+#:def_cmd( "DIFF", "DIFF|CMP", \
+ "wkmpt DIFF source1 source2\n" \
+ "wkmpt DIFF source... --dest dest", \
+ "Compare the KMP of two or more sources (KMP, KMP-text or SZS). Each" \
+ " KMP will be converted into the internal format, and then fixed and" \
+ " patched controlled by options. Only the known sections are compared." \
+ " If option SORT (see {--diff}) is set, elements of section GOBJ are" \
+ " sorted by object-id.\n" \
+ " This command is in development. So for the section @POTI@ only a" \
+ " simple notice about the different data record is printed.\n" \
+ " If option {--dest} is set, then each source file is compared with a" \
+ " file in the destination." )
+
+#:def_cmd( "DRAW", "DRAW|D|COBJECT|COB", \
+ "wkmpt DRAW source...", \
+ "Read the entered KMP files (text or binary), of needed load the" \
+ " related KCL file, draw KMP objects and create an OBJ file. The" \
+ " default destination is @'%P/%N.kmp.obj'@.\n" \
+ " Automated dropping of bad KCL triangles is enabled if no drop" \
+ " option is specified by option {--kcl}." )
+
+#:def_cmd( "CHECK", "CHECK|CHK", \
+ "wkmpt CHECK source...", \
+ "Read the entered KMP files (text or binary) and and make a" \
+ " plausibility check. Hints and warnings are written to standard" \
+ " output. The exit status is @'DIFFER'@ if at least one KMP warning" \
+ " found." )
+
+#:def_cmd( "STGI", "STGI", \
+ "wkmpt STGI file...", \
+ "Find the first KMP:STGI of each file and print an analysis of it as" \
+ " single line statistic. Additional the number of lap counter check" \
+ " points ('LC') is printed. Track and KMP (binary and text) files are" \
+ " accepted as input." )
+
+#:def_cmd( "KTPT", "KTPT", \
+ "wkmpt KTPT [source]...", \
+ "Analyse the start positions (KMP:KTPT) and lap counters (KMP:CKPT" \
+ " with mode 0) and print a simple information list. Use enemy points" \
+ " (KMP:ENPT) to find recommendations.\n" \
+ " This command is dedicated to LE-CODE, which supports an alternative" \
+ " position for the finish line at the minimap." )
+
+#:def_cmd( "ROUTES", "ROUTES", \
+ "wkmpt ROUTES file...", \
+ "Print the internal cross references for routes of KMP sections CKPH," \
+ " CKPT, ENPH, ENPT, ITPH and ITPT." )
+
+#:def_cmd( "GAMEMODES", "GAMEMODES|GMODES", \
+ "wkmpt GAMEMODES [source]...", \
+ "Analyze the presence flags combinations with and without extension" \
+ " support and print a list. The lists consists of index, scenario" \
+ " version and scenario name. Scenario versions are only equal, if the" \
+ " scenarios are duplicates. Duplicates happens only, if {--gamemodes}" \
+ " option TT or FULL is set." )
+
+#:def_cmd( "WIM0", "WIM0|W0", \
+ "wkmpt WIM0 [source]...", \
+ "Analyze the WIM0 section of each KMP file (text, binary or szs) and" \
+ " print an info about it." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "Enable LE-CODE and CT-CODE support. The optional parameter is" \
+ " deprecated and ignored." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "SCALE", "scale", "CP", \
+ "vector[@origin]", \
+ "Transform the data: Scale all coordinates and size values by 'vector'" \
+ " relative to the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Negative values mirror the coordinates. Each parameter is either a" \
+ " vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "SHIFT", "shift", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--translate}, but the addition is done before rotation. The" \
+ " parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XSS", "xss", "CP", \
+ "x1old,x1new,x2old,x2new", \
+ "--xss (x-scale-shift) calculates the X values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "YSS", "yss", "CP", \
+ "y1old,y1new,y2old,y2new", \
+ "--yss (y-scale-shift) calculates the Y values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ZSS", "zss", "CP", \
+ "z1old,z1new,z2old,z2new", \
+ "--zss (z-scale-shift) calculates the Z values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ROT", "rot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' (is a vector) around the 3 axes. All 3 axes goes" \
+ " through the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y,z').\n" \
+ " Option --rot is an alternative for {--xrot}, {--yrot} and {--zrot}" \
+ " to define all 3 rotations in one step. Transformations are" \
+ " calculated in the order SCALE, SHIFT, X-ROTATE, Y-ROTATE, Z-ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XROT", "xrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('y,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YROT", "yrot|hrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead. This is" \
+ " a horizontal counterclockwise rotation and the old option name" \
+ " --hrot can also used.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "ZROT", "zrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the z-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YPOS", "ypos", "CP", \
+ "pos", \
+ "This option defines an Y position for KMP:CKPT transformations. It" \
+ " has only impact to X and Z rotations (Options {--xrot} and" \
+ " {--zrot}). If not set, the mean y of the active rotation origins are" \
+ " used." )
+
+#:def_opt( "TRANSLATE", "translate", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--shift}, but the addition is done after rotation. The parameter is" \
+ " either a vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z'). @--trans@ is a short cut.\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "NULL", "null", "C", \
+ "", \
+ "Create a neutral transformation without affecting the coordinates." \
+ " The only influence is, that the dependent values (like maximum) are" \
+ " re-calculated as if a transformation has taken place." )
+
+#:def_opt( "NEXT", "next", "C", \
+ "", \
+ "Close the current transformation step with all scaling, shifting," \
+ " rotation and translation options and open a new step with cleared" \
+ " options. On transformation each step is logical done one by one. In" \
+ " real, one total transformation matrix is calculated and used for" \
+ " fast transformations.\n" \
+ " If option --next is used, the ability for modifying the scale and" \
+ " rotation vectors (not the positions) of different KMP sections is" \
+ " nearly always lost. A warning is printed if this occurs." )
+
+#:def_opt( "ASCALE", "ascale", "CP", \
+ "factor@dir", \
+ "Transform the data and do an axis scale: Close the current" \
+ " transformation step like {--next} and scale the data by @'factor'@" \
+ " into the direction given by the vector @'dir'@. Store the resulting" \
+ " matrix as single transformation step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "AROT", "arot", "CP", \
+ "degree[@pos1]@pos2", \
+ "Transform the data and do an axis rotation: Close the current" \
+ " transformation step like {--next} and rotate the data by @'degree'@" \
+ " around the axis defined by the 2 points. If @'pos1'@ is not set, use" \
+ " @0,0,0@ instead. Store the resulting matrix as single transformation" \
+ " step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "TFORM_SCRIPT", "tform-script|tformscript", "CP", \
+ "script", \
+ "Load the script and execute it by the text parser.\n" \
+ " Then for each coordinate (2D and 3D), call the macro @TRANSFORM@" \
+ " after all other transformations. Call it without parameters and set" \
+ " variable @$$I@ with a zero based index of all vertices, variable" \
+ " @$$D@ to the dimension (2 or 3) and the variable @$$P@ to the vector" \
+ " of the current vertex. If the macro returns a vector, it is the new" \
+ " position.\n" \
+ " For each file, macro @BEGIN@ is called at the beginning and @END@" \
+ " after processing all points, but only, if the macros are defined." \
+ " For @END@, variable @$$I@ is set to the number of processed vertices" \
+ " in the current file.\n" \
+ " Before each macro call, the private and local variables are cleared" \
+ " and only global parameters are permanent. The zero based index is" \
+ " cleared for each new source. The parameters of the macro calls are" \
+ " defined in the local name space." )
+
+#:def_opt( "RM_GOBJ", "rm-gobj|rmgobj", "CP", \
+ "objlist", \
+ "Remove objects from the KMP section @GOBJ@. Therefor a comma" \
+ " separated object list with single values like @'a'@ or ranges like" \
+ " @'a:b'@ is expected. @'a'@ and @'b'@ are numbers, object names" \
+ " (prefixed by 'o$$') or any other parser expressions." )
+
+#:def_opt( "BATTLE", "battle", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " If mode is @ON@, assume a battle arena and enable a spüecial" \
+ " battle support. If mode is @OFF@, disable special battle arena" \
+ " support. If mode is @AUTO@, analyse the KMP and estimate, if it is a" \
+ " battle areana. Modes @ON@ and @OFF@ override KMP parameter" \
+ " @BATTLE-MODE@." )
+
+#:def_opt( "EXPORT_FLAGS", "export-flags|exportflags|exflags", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used. --exflags is an alternative name for the option.\n" \
+ " If mode is @ON@, this feature is forced: On creating a KMP text" \
+ " file, the option @EXPORT-FLAGS@ is always set to 1. On creating a" \
+ " binary KMP file, the flags are always exported as lowest byte of the" \
+ " scale factors or x-rotation.\n" \
+ " If mode is @OFF@, this feature is totally disabled. If mode is not" \
+ " @AUTO@, KMP parameter @EXPORT-FLAGS@ is overridden." )
+
+#:def_opt( "ROUTE_OPTIONS", "route-options|routeoptions|ropt", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " On mode @ON@, the new commands @$$PREV@ and @$$NEXT@ are printed" \
+ " for each group of KMP sections ENPT and ITPT. On mode @AUTO@, the" \
+ " command is only printed, if any option is set or if parameter" \
+ " @SHOW-OPTIONS@ is >0. On mode @OFF@, this feature is totally" \
+ " disabled to create KMP text files that are compatible with versions" \
+ " <1.60a.\n" \
+ " This option exists only for a transition period. Its behaviour will" \
+ " be changed in the future. @--ropt@ is a short cut." )
+
+#:def_opt( "WIM0", "wim0", "GO", \
+ "[=mode]", \
+ "@MODE@ is either @OFF@, @AUTO@ (default) or @ON@. Without value, @ON@" \
+ " is used.\n" \
+ " If mode is @ON@, a KMP section called WIM0 is added on binary KMP" \
+ " creation. The sections contains information for Wiimms tools.\n" \
+ " If mode is @OFF@, this feature is totally disabled. If mode is not" \
+ " @AUTO@, KMP parameter @KMP-WIM0@ is overridden." )
+
+#:def_opt( "SLOT", "slot", "CP", \
+ "keyword", \
+ "Patch a track file to run at the specified slot. KMP and KCL may be" \
+ " modified. BRRES files may be added to or removed from SZS. The main" \
+ " keywords are @DAISY, DESERT, SHERBET, SHYGUY, STANDARD@ and @MOST@." \
+ " Slot numbers (except '42' and '4.2') and different other track names" \
+ " are also accepted. For some conversions, the auto-add library is" \
+ " needed." )
+
+#:def_opt( "DRAW", "w|draw", "CP", \
+ "list", \
+ "The parameter is a comma separated list of keywords to select the" \
+ " elements to draw. Allowed keywords are: @CKPT, CJGPT, JGPT, KTPT," \
+ " ENPT, ITPT, POTI, CNPT, ITEMBOXES, COINS, ROADOBJECTS, SOLIDOBJECTS," \
+ " DECORATION, BLACK, WHITE, KCL, NONE@ and @ALL@ (default); the" \
+ " classes @POINTS, OBJECTS@ and @RESPAWN@; the presence-flag selectors" \
+ " @[1-3]OFFLINE@ and @[1-3]ONLINE@; the special options @DETAILED," \
+ " DISPATCH@ and @WARNINGS@. If a keyword is prefixed by a minus sign," \
+ " the option is disabled. Option @KCL@ decides, if the reference KCL" \
+ " is included in the output. If @DETAILED@ is disabled, an output with" \
+ " less faces is created. If @DISPATCH@ is enabled, the settings of" \
+ " dispatch points are visualized. If @WARNINGS@ is enabled, some" \
+ " objects are drawn in red." )
+
+#:def_opt( "POS_MODE", "pos-mode|posmode", "CP", \
+ "list", \
+ "Define a comma separated list of modes for the next {--pos-file}" \
+ " options. Each element of the list begins with a keyword followed by" \
+ " a column index and/or a parameter list: @X<col>, Y<col>, Z<col>," \
+ " D<col>, C<num>, T<num>, FA<col>=<str>, FB<col>=<str>, FC<col>=<str>," \
+ " <COLOR>@" )
+
+#:def_opt( "POS_FILE", "pos-file|posfile", "CP", \
+ "file", \
+ "Load a position file created by mkw-ana and print the positions into" \
+ " the map. Define the modes first, because the last defined modes set" \
+ " by {--pos-mode} are used!" )
+
+#:def_opt( "PNG", "png", "CP", \
+ "pix_size ['a' align] ['x' x1[:x2]] ['y' y1[:y2]] ['t' types]", \
+ "Draw a PNG with a top view of the track instead of an OBJ file." \
+ " Transformations are done after the KMP 3D drawing, but before PNG" \
+ " creation.\n" \
+ " @'pix_size'@ is the number of world units (sqare) used for 1 PNG" \
+ " pixel. @'align'@ is a factor as anti-aliasing pixel multiplicator" \
+ " (>1 is on). @'x'@ and @'y'@ defines the part of the world that is" \
+ " displayed. If not set, the check points (KMP/CKPT) are used to find" \
+ " a good area. @'t'@ is a bit field with 32 bits to enable the the KCL" \
+ " types. Each bit corresponds to one of the KCL types and only . The" \
+ " default is to display all but not walls and solid fall (0x7fef0bff).\n" \
+ " All numeric values can be any expression allowed by the parser." )
+
+#:def_opt( "LOAD_KCL", "load-kcl|loadkcl", "GP", \
+ "file", \
+ "Load a KCL or OBJ file for reference issues." )
+
+#:def_opt( "KCL", "kcl", "GP", \
+ "list", \
+ "Set global options for KCL processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. Keywords @SMALL, MEDIUM@ and @CHARY@ select the default" \
+ " parameters for the octree creation. The other allowed keywords are:" \
+ " @FAST, NEW, CENTER, ROUND, NORMALS, MTL, WIIMM, TRIANGLES, OUT-SWAP," \
+ " G, USEMTL, CLIP, IN-SWAP, AUTO, HEX4, HEX23, HEX, DROP-UNUSED," \
+ " DROP-FIXED, DROP-INVALID, DROP, RM-FACEDOWN, RM-FACEUP, FIX-ALL," \
+ " CONV-FACEUP, WEAK-WALLS, SORT, INPLACE, SILENT@ and @LOG@." )
+
+#:def_opt( "KCL_FLAG", "kcl-flag|kclflag", "CP", \
+ "joblist", \
+ "Modify the KCL flag of KCL files. A comma separated job list in the" \
+ " format @'srclist=dest'@ is expected. @'srclist'@ is a plus sign" \
+ " separated list with single values like @<val>@, @T<type>@ and" \
+ " @<val>/<mask>@ or ranges like @<val>:<val>@, @T<type>:<type>@ and" \
+ " @<val>:<val>/<mask>@. @'<val>'@ is a complete KCL flag in the range" \
+ " of @0..0xffff@. @'<type>'@ are only the base types in the range of" \
+ " @0..0x1f@. If @<mask>@ is present, it marks the relevant bits. For" \
+ " the @T<type>@ variant, the mask is set to @0x1f@.\n" \
+ " All KCL flags of the source list are assigned to the new value" \
+ " @'dest'@, but only the set bits of @'<mask>'@ are modified. A later" \
+ " definition overrides the previous one." )
+
+#:def_opt( "KCL_SCRIPT", "kcl-script|kclscript", "CP", \
+ "script", \
+ "After reading a KCL source file and executing all transformations," \
+ " the text file @'script'@ is executed by the internal text parser." \
+ " The script should use the parser functions @tri$$*()@ to read and" \
+ " modify the triangle positions and flags, or to add or remove" \
+ " complete triangles.\n" \
+ " If this option is used multiple times, each script is executed in" \
+ " the entered order." )
+
+#:def_opt( "TRI_AREA", "tri-area|triarea", "GP", \
+ "EXPR", \
+ "Define the minimal area size of KCL triangles. The intention is to" \
+ " ignore triangles that are generally to small. @EXPR@ is a floating" \
+ " point number or expression. Triangles are invalidated if their area" \
+ " size is smaller than @EXPR@. The test is executed after reading" \
+ " files, after transformations, and after calculating normals and" \
+ " lengths. Values between 0.01 and 4.0 are recommended. The careful" \
+ " value 1.0 is used as default. Value 0 disables this filter" \
+ " functionality." )
+
+#:def_opt( "TRI_HEIGHT", "tri-height|triheight|tri-ht|triht|kcl-min|kclmin", "GP", \
+ "EXPR", \
+ "Define the minimal height of KCL triangles. The intention is to" \
+ " ignore deformed triangles (very slim, but long). @EXPR@ is a" \
+ " floating point number or expression. Triangles are invalidated if at" \
+ " least 1 of the 3 heights is smaller than @EXPR@. The test is" \
+ " executed after reading files, after transformations, and after" \
+ " calculating normals and lengths. Values between 0.01 and 2.0 are" \
+ " recommended. The careful value 1.0 is used as default. Value 0" \
+ " disables this filter functionality.\n" \
+ " --tri-ht is an alternative name for the option." )
+
+#:def_opt( "FLAG_FILE", "flag-file|flagfile", "CP", \
+ "filename", \
+ "Define a flag file if scanning an OBJ file (KCL processing). The file" \
+ " name may contain %-escapes. Set it to an empty string to disable" \
+ " flag files at all.\n" \
+ " The tool search the flag file in the following order until found:" \
+ " File defined by --flag-file; OBJ file name with replaced extension" \
+ " ('a.obj' becomes 'a.flag'); OBJ file name with appended extension" \
+ " ('a.obj' becomes 'a.obj.flag')." )
+
+#:def_opt( "KMP", "kmp", "GP", \
+ "list", \
+ "Set global options for KMP processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. The other allowed keywords are: @FORCE, NEW, RM-SPCITEM, LEFT," \
+ " RIGHT, WIDE, NARROW, FIX-CKPH, FIX-ENPH, FIX-ITPH, FIX-PH," \
+ " FIX-CKNEXT, FIX-CKJGPT, FIX-CK, FIX-ALL, MASK-PFLAGS, RM-LECODE," \
+ " PURGE-GOBJ, FULL-DEFOBJ, DUMP-CLASS, DUMP-ONEWAY, DUMP-ALL, 1LAP ..." \
+ " 9LAPS, MAX-LAPS, RM-EMPTY, INPLACE, SILENT@ and @LOG@." )
+
+#:def_opt( "SPEED_MOD", "speed-mod|speedmod", "GP", \
+ "factor", \
+ "The speed modifier is a user extensions to change the basic speed of" \
+ " all vehicles. The speed factor itself is stored into KMP:STGI" \
+ " section of a track.\n" \
+ " If --speed-mod is set to a value >0.0, then the last 2 bytes of" \
+ " the STGI section are patched. The value 0.0 reset these 2 bytes and" \
+ " deactivates the speed modifier." )
+
+#:def_opt( "KTPT2", "ktpt2", "GP", \
+ "vector", \
+ "Insert or replace a second KTPT. Use VECTOR as new position. VECTOR" \
+ " is either @X,Z@ or @X,Y,Z@ or an expression. Set Y to 0 for an" \
+ " automatic defined height.\n" \
+ " If the first 4 characters of VECTOR are 'AUTO' (ignoring case)," \
+ " then the position is calculated automatically and set to the" \
+ " recommendation of command @wkmpt KTPT@.\n" \
+ " The tool looks for the nearest lap counter (CKPT with mode 0) and" \
+ " adjust the KTPT: The direction of the lap counter is copied and the" \
+ " KTPT is moved to the lap counter line using the new direction.\n" \
+ " LE-CODE uses the second KTPT to draw the finish line at another" \
+ " place away from the start position." )
+
+#:def_opt( "TFORM_KMP", "tform-kmp|tformkmp|tkmp", "GP", \
+ "list", \
+ "Select KMP sections and objects for a transformation. @--tkmp@ is a" \
+ " short cut. The option expects a comma separated list of keywords." \
+ " Non ambiguous of keywords are allowed and minus signs within" \
+ " keywords are optional (e.g. @GOBJS@). A minus sign before a keyword" \
+ " disables transformation of the related section or object.\n" \
+ " Sections are selected by the KMP section names @AREA, CAME, CKPT," \
+ " CNPT, ENPT, GOBJ, ITPT, JGPT, KTPT, MSPT@ and @POTI@.\n" \
+ " Objects are selected by the keywords @AREA-POSITION, AREA-ROTATE," \
+ " AREA-SCALE, CAME-POSITION, CKPT-POSITION, CNPT-POSITION," \
+ " CNPT-ROTATE, ENPT-POSITION, ENPT-SCALE, GOBJ-POSITION, GOBJ-ROTATE," \
+ " GOBJ-SCALE, ITPT-POSITION, ITPT-SCALE, JGPT-POSITION, JGPT-ROTATE," \
+ " KTPT-POSITION, KTPT-ROTATE, MSPT-POSITION, MSPT-ROTATE@ and" \
+ " @POTI-POSITION@.\n" \
+ " The keywords @NONE@ and @ALL@ (default) complete the field." )
+
+#:def_opt( "REPAIR_XPF", "repair-xpflags|repairxpflags|repxpf", "CP", \
+ "file", \
+ "Load a KMP file and use it to repair the settings of the extended" \
+ " presence flags, if they are destroyed by another KMP tool." \
+ " @--repxpf@ is a short cut for this option." )
+
+#:def_opt( "GAMEMODES", "gamemodes|gmodes", "CP", \
+ "list", \
+ "Filter the list of combinations. The parameter is a comma separated" \
+ " list of keywords: @AUTO@: Add a automatic mode without conditions" \
+ " first. @STANDARD@ (or @STD@): Add standard modes. @1STANDARD@ (or" \
+ " @1STD@): Add standard modes first. @BALLOON@: Add balloon battle" \
+ " modes. @COIN@: Add coin runners modes. @BATTLE@: Short cut for" \
+ " 'BALLOON,COIN'. @VERSUS@ (or @VS@): Add versus modes. @ITEMRAIN@:" \
+ " Add itemrain modes. @RACE@: Short cut for 'VERSUS,ITEMRAIN'. @ALL@" \
+ " (default): Short cut for 'STANDARD,BATTLE,RACE'. @NO-MODES@: Exclude" \
+ " 'ALL' and create auto modes only. @ENGINE@: Include engine classes" \
+ " (default). @NO-ENGINE@: Exclude engine classes. @RANDOM@: Include" \
+ " random modes (default). @NO-RANDOM@: Exclude random modes." \
+ " @OFFLINE@: Filter offline modes. @ONLINE@: Filter online modes." \
+ " @NO-TT@: Exclude time trial. @TT@: Force a time trial scenario, even" \
+ " if it is a duplicate. @FULL@: Don't eliminate duplicates from list" \
+ " (up to 1573 modes). @NSORT@: Sort the list by name. @ISORT@: Sort" \
+ " the list by index. @DEBUG@: Print a debug info about this option." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress information lines in decoded KMP text files. This includes" \
+ " syntax information ({--no-header}). If set twice, the output of" \
+ " unneeded sections is also suppressed." )
+
+#:def_opt( "EXPORT", "X|export", "C", \
+ "", \
+ "Enable the export mode and create small and machine readable text" \
+ " files for easy post processing. The option works similar like @-HBB@" \
+ " for KMP text files." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "EPSILON", "epsilon", "CP", \
+ "float", \
+ "When comparing floating point numbers, 2 numbers are considered" \
+ " identical if their difference is less than or equal to epsilon. The" \
+ " default value is @0.01@." )
+
+#:def_opt( "DIFF", "diff", "CP", \
+ "list", \
+ "List of KMP sections names that should be compared. To select a" \
+ " section, use a combiantion of the following keywords: @AREA, CAME," \
+ " CNPT, CKPH, CKPT, ENPH, ENPT, GOBJ, ITPH, ITPT, JGPT, KTPT, MSPT," \
+ " POTI, STGI, NONE, GOOD, DEFAULT@ of @ALL@ (default). Additional" \
+ " keywords are @SORT@ (default) and @NOSORT@" )
+
+#:def_opt( "GENERIC", "G|generic", "C", \
+ "", \
+ "Forget scanned entry names and use generic names for output." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KMP files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "TINY", "tiny", "GP", \
+ "mode", \
+ "Set tiny mode to a level between 0 and 7." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEST", "VERBOSE", \
+ "", \
+ "Print the matrices of transformations." )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "BRIEF", \
+ "", \
+ "If set once, suppress vector dumps for transformation steps and" \
+ " ignore option --long. If set twice, suppress vector dump for final" \
+ " transformation too." )
+
+#:def_cmd_opt( "MATRIX", "LONG", \
+ "", \
+ "If set once, print inverse matrix for the final transformation. If" \
+ " set twice, print inverse matrix for all transformations." )
+
+#:def_cmd_opt( "MATRIX", "QUIET", \
+ "", \
+ "Option --quiet is dedicated to automatic tests comparing the old and" \
+ " new transformation algorithms. If set once, the tables are only" \
+ " printed, if the results differ. If set twice, nothing is printed at" \
+ " all and only the exit status will inform about the results." )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STARTPOS", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "OBJECTS", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "OBJECTS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "OBJECTS", "BRIEF", \
+ "", \
+ "Don't print the file list and the info line(s). If set twice, only ID" \
+ " and object name is printed and option {--long} is ignored." )
+
+#:def_cmd_opt( "OBJECTS", "LONG", \
+ "", \
+ "Print each setting starting on a new line. --long and {--brief} can" \
+ " be used together." )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in KMP text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "GENERIC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in KMP text files." )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "GENERIC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "QUIET", \
+ "", \
+ "If set once, only a summary status is printed. If set twice, the" \
+ " status is only reported as exit status." )
+
+#:def_cmd_opt( "DIFF", "EPSILON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "DIFF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DIFF", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "DRAW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "POS_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "POS_FILE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "PNG", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in KMP text files." )
+
+#:def_cmd_opt( "DRAW", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NO_PARAM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "GENERIC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "BATTLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "EXPORT_FLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ROUTE_OPTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "WIM0", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "YPOS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "SPEED_MOD", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "TFORM_KMP", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "REPAIR_XPF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "RM_GOBJ", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "SLOT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "LOAD_KCL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DRAW", "KCL_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "BRIEF", \
+ "", \
+ "Print only warnings and suppress hints." )
+
+#:def_cmd_opt( "CHECK", "LONG", \
+ "", \
+ "Be verbose and print more statistics." )
+
+#:def_cmd_opt( "CHECK", "QUIET", \
+ "", \
+ "Be quiet until the first warning or hint is found." )
+
+#:def_cmd_opt( "CHECK", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "GENERIC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CHECK", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STGI", "IGNORE", \
+ "", \
+ "If set, ignore non existing source files and files without KMP" \
+ " without warning. If set twice, ignore files with standard settings" \
+ " too." )
+
+#:def_cmd_opt( "KTPT", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KTPT", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KTPT", "KTPT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "KTPT", "IGNORE", \
+ "", \
+ "If set, ignore non existing source files and files without KMP" \
+ " without warning." )
+
+#:def_cmd_opt( "KTPT", "LONG", \
+ "", \
+ "If set, compare each KTPT with each lap counter (some CKPT) and print" \
+ " positions, directions, distances and recommendations as wide table." )
+
+#:def_cmd_opt( "ROUTES", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ROUTES", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ROUTES", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ROUTES", "IGNORE", \
+ "", \
+ "If set, ignore non existing source files and files without KMP" \
+ " without warning." )
+
+#:def_cmd_opt( "GOBJ", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GOBJ", "NO_HEADER", \
+ "", \
+ "Suppress head and foot lines." )
+
+#:def_cmd_opt( "GOBJ", "BRIEF", \
+ "", \
+ "Print only summary for each object category. If set twice, print a" \
+ " status vector only." )
+
+#:def_cmd_opt( "GOBJ", "LONG", \
+ "", \
+ "?" )
+
+#:def_cmd_opt( "GAMEMODES", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GAMEMODES", "GAMEMODES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GAMEMODES", "NO_HEADER", \
+ "", \
+ "Suppress head and foot lines." )
+
+#:def_cmd_opt( "GAMEMODES", "BRIEF", \
+ "", \
+ "Print only the scenario version and configuration name. If set twice," \
+ " suppress ead and foot lines too." )
+
+#:def_cmd_opt( "GAMEMODES", "LONG", \
+ "", \
+ "If set, print a status vector for each GOBJ element too: '-': Object" \
+ " diabled; '=': Object diabled by presence flags, but visible before" \
+ " race; '+': Object enabled; 'e': Depends on engine; 'r': Depends on" \
+ " random scenario; 'b': Defintion object of type BITS; 'o': Defintion" \
+ " object of type OR; 'a': Defintion object of type AND." )
+
+#:def_cmd_opt( "WIM0", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "WIM0", "LONG", \
+ "", \
+ "If set, disable table format and append a full hexdump for each WIM0" \
+ " section." )
+
+
+##
+###############################################################################
+############### Tool 'wlect' ###############
+###############################################################################
+
+#:def_tool( "wlect", \
+ "wlect [option]... command [option|parameter|@file]...", \
+ "Wiimms LE-CODE Tool : Manage the $LE-CODE$ and LEX extensions." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wlect VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wlect HELP [--width=wd] OPT|OPTION ...\n" \
+ "wlect HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wlect HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wlect HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wlect ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wlect TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wlect COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wlect ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wlect FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wlect FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wlect SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The" \
+ " LE-CODE specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wlect FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the LE-CODE specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wlect CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wlect FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "DUMP", "DUMP|D", \
+ "wlect DUMP [source]...", \
+ "Print an information dump for each source file. LE-CODE binaries and" \
+ " LEX binaries are accepted as input." )
+
+#:def_cmd( "DL", "DL", \
+ "wlect DL [source]...", \
+ "Short cut for {DUMP --long}." )
+
+#:def_cmd( "DLL", "DLL", \
+ "wlect DLL [source]...", \
+ "Short cut for {DUMP --long --long}." )
+
+#:def_cmd( "BIN_DIFF", "BIN-DIFF|BINDIFF|BD", \
+ "wlect BIN-DIFF settings binary1 binary2", \
+ "Compare parts of 2 different LECODE binary files. @SETTINGS@ is a" \
+ " string with plus and minus signs to switch between plus/minus modes," \
+ " and some key letters to select parts: s:size, h:header, t:timestamp," \
+ " b:body, p:parameters, d:data, c:code and a:all. In plus-mode, a test" \
+ " is enabled, in minus-mode it is disabled. Scanning starts in" \
+ " plus-mode.\n" \
+ " Example: @a-t@: compare all except timestamps.\n" \
+ " The exist status is @OK@ (0) if nothing differ, @DIFFER@ (2) if at" \
+ " least one test failed, or an error code." )
+
+#:def_cmd( "PATCH", "PATCH|P", \
+ "wlect PATCH [le_bin]...", \
+ "Read each LE-BIN file and patch it. Use {--le-define} to setup cups" \
+ " and tracks." )
+
+#:def_cmd( "LPAR", "LPAR", \
+ "wlect LPAR [le_bin]...", \
+ "Read each LE-BIN file and patch it. Then extract the LE-CODE" \
+ " parameters and store them as LPAR text file. Print the result to" \
+ " standard output if no other destination is defined." )
+
+#:def_cmd( "CREATE", "CREATE|CR", \
+ "wlect CREATE [keyword]", \
+ "Create a file and print it to standard output. The kind of file is" \
+ " defined by KEYWORD. Use command without keywords to get a list of" \
+ " possible keywords.\n" \
+ " The following keywords are possible: @LEX@ for a LEX text file with" \
+ " all known sections except @TEST@. @LEX+@ for a LEX text file with" \
+ " all known sections including @TEST@. @SET1, CANN, HIPT@ and @TEST@" \
+ " (section names) for a LEX text file with 1 section only. @LPAR@ for" \
+ " an example LE-CODE parameter file." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wlect CAT [source]...", \
+ "Read the entered LEX and LE-CODE files (text, binary or szs) and" \
+ " print them as decoded text files to standard output. The output of" \
+ " all source files is concatenated." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wlect DECODE [source]...", \
+ "Read the entered LEX files (text or binary) and decode them to text" \
+ " files. The default destination is @'%P/%N.txt'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wlect ENCODE source...", \
+ "Read the entered LEX files (text or binary) and encode (compile) them" \
+ " to binary files. The default destination is @'%P/%N.lex'@." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "This option is completely ignored by wlect. It only exists due to" \
+ " compatibility with the other tools." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress cross reference comments." )
+
+#:def_opt( "EXPORT", "X|export", "C", \
+ "", \
+ "Enable the export mode and create small and machine readable text" \
+ " files for easy post processing." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "LT_CLEAR", "lt-clear|ltclear", "C", \
+ "", \
+ "Clear LEX section TEST and remove the section if empty. This option" \
+ " is executed before all other --lt-* options." )
+
+#:def_opt( "LT_ONLINE", "lt-online|ltonline", "CP", \
+ "value", \
+ "Set LEX/TEST parameter OFFLINE-ONLINE to this MODE. MODE is one of" \
+ " @AUTO@ (default), @NEVER@ or @ALWAYS@. If needed, LEX section TEST" \
+ " is created or removed if empty." )
+
+#:def_opt( "LT_N_PLAYERS", "lt-n-players|lt-nplayers|ltnplayers", "CP", \
+ "offline,online", \
+ "Set LEX/TEST parameters N-OFFLINE and N-ONLINE to these integer" \
+ " values. If needed, LEX section TEST is created or removed if empty." )
+
+#:def_opt( "LT_COND_BIT", "lt-cond-bit|lt-condbit|ltcondbit", "GP", \
+ "bitnum", \
+ "Set LEX/TEST parameter COND-BIT to this integer value. Use -1 to" \
+ " deactivate this COND-BIT. If needed, LEX section TEST are created or" \
+ " removed if empty." )
+
+#:def_opt( "LT_GAME_MODE", "lt-game-mode|lt-gamemode|ltgamemode", "GP", \
+ "mode", \
+ "Set LEX/TEST parameter GAME-MODE to this MODE. MODE is one of @AUTO@" \
+ " (default), @Balloon, COIN, VERSUS@ or @ITEMRAIN@. If needed, LEX" \
+ " section TEST is created or removed if empty." )
+
+#:def_opt( "LT_ENGINE", "lt-engine|ltengine", "GP", \
+ "mode", \
+ "Set LEX/TEST parameter ENGINE to this MODE. MODE is one of @AUTO@" \
+ " (default), @BATTLE, 50CC, 100CC, 150CC, 200CC, 150M@ or @200M@. Only" \
+ " track.szs files are modified. If needed, LEX section TEST is created" \
+ " or removed if empty." )
+
+#:def_opt( "LT_RANDOM", "lt-random|ltrandom", "GP", \
+ "index", \
+ "Force a random scenario, if between 1 and 8. Value 0 enables auto" \
+ " selection and -1 disables this option. If needed, LEX section TEST" \
+ " is created or removed if empty." )
+
+#:def_opt( "LEX_PURGE", "lex-purge|lexpurge", "G", \
+ "", \
+ "Delete LEX sections without any impact. This option is executed after" \
+ " all --lt-* options." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "LE_DEFINE", "le-define|ledefine", "CP", \
+ "file", \
+ "Use this file as definition file to patch LE-CODE. The file format" \
+ " can be LE-BIN or any supported CT-CODE file (BRRES, TEX0, CT-CODE or" \
+ " CT-TEXT)." )
+
+#:def_opt( "LPAR", "lpar", "CP", \
+ "file", \
+ "Read a LPAR file to overwrite settings of LE-CODE section LPAR." )
+
+#:def_opt( "ALIAS", "alias", "CP", \
+ "list", \
+ "The parameter is a comma separated list of @SLOT=ALIAS@ elements." \
+ " SLOT defines the slot, for which the ALIAS is defined. ALIAS itself" \
+ " is a slot number to be executed, if SLOT is selected. Empty and" \
+ " invalid elements are ignored. Multiple usage is possible: the lists" \
+ " are concatenated." )
+
+#:def_opt( "ENGINE", "engine", "CP", \
+ "list", \
+ "Define probabilities for engine classes. @LIST@ is a vector for" \
+ " @100cc,150cc,mirror@ If 200cc is enabled by {--200cc}, then vector" \
+ " is interpreted as @150cc,200cc,mirror@. Any numbers are accepted." \
+ " They are normalized to get a total of 100 percent. Use @0,1,0@ to" \
+ " force 150cc only. Use @0,0,0@ to reset to Nintendos VR based choice." )
+
+#:def_opt( "200CC", "200cc", "CO", \
+ "[=mode]", \
+ "Enable or disable 200cc support. Mode is one of @OFF@, @AUTO@" \
+ " (default) or @ON@ (default, if option is used without parameter)." \
+ " LE-CODE hasn't implemented this feature yet!" )
+
+#:def_opt( "PERFMON", "perf-mon|perfmon", "CO", \
+ "[=mode]", \
+ "Enable or disable the performance monitor. Mode is one of @OFF@," \
+ " @AUTO@ (default, don't change setting), @ON@ (enable it for Wii" \
+ " only; default, if option is used without parameter) or @FORCE@" \
+ " (enable it for Wii and for Dolphin)." )
+
+#:def_opt( "CUSTOM_TT", "custom-tt|customtt", "CO", \
+ "[=mode]", \
+ "Enable or disable time trial for custom tracks. Mode is one of @OFF@," \
+ " @AUTO@ (default) or @ON@ (default, if option is used without" \
+ " parameter)." )
+
+#:def_opt( "XPFLAGS", "xpflags", "CO", \
+ "[=mode]", \
+ "Enable or disable support for Extended Presence Flags. Mode is one of" \
+ " @OFF@, @AUTO@ (default) or @ON@ (default, if option is used without" \
+ " parameter). Disable it only for tests!" )
+
+#:def_opt( "TRACK_DIR", "track-dir|trackdir", "CP", \
+ "directory", \
+ "Define a destination directory, where track files are copied, moved" \
+ " or linked to. Usually it is @.../Race/Course/@.\n" \
+ " Files are searched in directories defined by {--copy-tracks}," \
+ " {--move-tracks}, {--move1-tracks} and {--link-tracks} in definition" \
+ " order. Already existing files are removed before operation." )
+
+#:def_opt( "COPY_TRACKS", "copy-tracks|copytracks", "CMP", \
+ "directory", \
+ "Define a search directory for all included tracks. Files found in" \
+ " this directory are copied to the directory specified by option" \
+ " {--track-dir}." )
+
+#:def_opt( "MOVE_TRACKS", "move-tracks|movetracks", "CMP", \
+ "directory", \
+ "Define a search directory for all included tracks. Files found in" \
+ " this directory are moved to the directory specified by option" \
+ " {--track-dir}. If moving fails, the file is copied and the source" \
+ " removed." )
+
+#:def_opt( "MOVE1_TRACKS", "move1-tracks|move1tracks", "CMP", \
+ "directory", \
+ "Define a search directory for all included tracks. Files found in" \
+ " this directory are moved to the directory specified by option" \
+ " {--track-dir}, but only if a file has not more than one hard link." \
+ " This guarantees an unique version of the file. If the file has more" \
+ " hard links or moving fails, the file is copied and the source" \
+ " removed." )
+
+#:def_opt( "LINK_TRACKS", "link-tracks|linktracks", "CMP", \
+ "directory", \
+ "Define a search directory for all included tracks. Files found in" \
+ " this directory are linked to the directory specified by option" \
+ " {--track-dir}. If linking fails, the file is copied." )
+
+#:def_opt( "COMPLETE", "C|complete", "C", \
+ "", \
+ " Append missing sections to the LEX file." )
+
+#:def_opt( "LOAD_BMG", "load-bmg|loadbmg", "CMP", \
+ "file", \
+ "Load immediately the file to fill an internal message pool. The" \
+ " option can be used multiple times to fill the message pool by" \
+ " different sources. A later message overrides the previous message.\n" \
+ " The internal message pool is patched by all {--patch-bmg} options." )
+
+#:def_opt( "PATCH_BMG", "patch-bmg|patchbmg|pb", "CMP", \
+ "mode[cond][=param]", \
+ "This option specifies a BMG patch mode. Some of the modes need a" \
+ " parameter or a file name of a BMG patch file (raw or text BMG), both" \
+ " separated by an equal sign. Modes with required file names are" \
+ " @PRINT, REPLACE, INSERT, OVERWRITE, DELETE, MASK, EQUAL@ and" \
+ " @NOTEQUAL@. Modes with text parameter are @FORMAT@, @REGEXP@ and" \
+ " @RM-REGEXP@. Standalone modes are @ID, ID-ALL, UNICODE, RM-ESCAPES," \
+ " RM-CUPS, CT-COPY, CT-FORCE-COPY, CT-FILL, LE-COPY, LE-FORCE-COPY," \
+ " LE-FILL, X-COPY, X-FORCE-COPY@ and @X-FILL@. Unique abbreviations" \
+ " are allowed.\n" \
+ " The optional condition @COND@ is either '@?MID@' or '@!MID@'. In" \
+ " case of '@?MID@', the patch is only applied if the message id MID" \
+ " already exists. In case of '@!MID@', the patch is only applied if" \
+ " the message id MID does not exists.\n" \
+ " If this option is used multiple times, all patch files will be" \
+ " processed in the entered order." )
+
+#:def_opt( "MACRO_BMG", "macro-bmg|macrobmg|mb", "CMP", \
+ "file", \
+ "Load a BMG file and add the messages to the macro library; already" \
+ " existing entries are replaced. The macro library is accessed by" \
+ " escape sequence @\\m{{MID}@ as fallback, if the active file has not" \
+ " already defined the message @MID@ by itself." )
+
+#:def_opt( "PATCH_NAMES", "patch-names|patchnames", "C", \
+ "", \
+ "If set, the names of the CUP1 and CSR1 sections are patched by the" \
+ " loaded BMG files directly after loading the source files." )
+
+#:def_opt( "ORDER_BY", "order-by|orderby|order", "CP", \
+ "bmg", \
+ "Load the BMG file and filter track names. Then before creating output" \
+ " files, re-distribute the tracks of the additonal cups (9-) to the" \
+ " same cups by the order of the read track names. Tracks without BMG" \
+ " reference are placed at the end of all tracks. This option modifes" \
+ " only the track order of the cups, but will not change any name." )
+
+#:def_opt( "ORDER_ALL", "order-all|orderall", "C", \
+ "", \
+ "Used together with option {--order-by}: Re-distribute the tracks of" \
+ " all cups beginning with Mushroom Cup." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LE_DEFINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ALIAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "200CC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "PERFMON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "CUSTOM_TT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "XPFLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LONG", \
+ "", \
+ "For LE-CODE binaries: If set, print cups with tracks or arenas. For" \
+ " each track, property and music slot is printed in brackets. If set" \
+ " twice, print a track list too.\n" \
+ " For LEX binaries: If set, print a hex dump of max 16 bytes (1 line)" \
+ " of the element data. If set twice, print a hex dump of max 64 bytes" \
+ " (4 lines). If set 3 times ore more, print a complete hex dump." )
+
+#:def_cmd_opt( "DUMP", "VERBOSE", \
+ "", \
+ "For LE-CODE binaries: If set, print a track slot usage table." )
+
+#:def_cmd_opt( "DL", "LE_DEFINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "ALIAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "200CC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "PERFMON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "CUSTOM_TT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "XPFLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DL", "LONG", \
+ "", \
+ "For LE-CODE binaries: If set, print cups with tracks or arenas. For" \
+ " each track, property and music slot is printed in brackets. If set" \
+ " twice, print a track list too.\n" \
+ " For LEX binaries: If set, print a hex dump of max 16 bytes (1 line)" \
+ " of the element data. If set twice, print a hex dump of max 64 bytes" \
+ " (4 lines). If set 3 times ore more, print a complete hex dump." )
+
+#:def_cmd_opt( "DL", "VERBOSE", \
+ "", \
+ "For LE-CODE binaries: If set, print a track slot usage table." )
+
+#:def_cmd_opt( "DLL", "LE_DEFINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "ALIAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "200CC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "PERFMON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "CUSTOM_TT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "XPFLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DLL", "LONG", \
+ "", \
+ "For LE-CODE binaries: If set, print cups with tracks or arenas. For" \
+ " each track, property and music slot is printed in brackets. If set" \
+ " twice, print a track list too.\n" \
+ " For LEX binaries: If set, print a hex dump of max 16 bytes (1 line)" \
+ " of the element data. If set twice, print a hex dump of max 64 bytes" \
+ " (4 lines). If set 3 times ore more, print a complete hex dump." )
+
+#:def_cmd_opt( "DLL", "VERBOSE", \
+ "", \
+ "For LE-CODE binaries: If set, print a track slot usage table." )
+
+#:def_cmd_opt( "BIN_DIFF", "QUIET", \
+ "", \
+ "Suppress all messages and tell result as exit status only." )
+
+#:def_cmd_opt( "BIN_DIFF", "VERBOSE", \
+ "", \
+ "Be more verbose and tell, what tests are planned." )
+
+#:def_cmd_opt( "PATCH", "LE_DEFINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALIAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "200CC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PERFMON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "CUSTOM_TT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "XPFLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TRACK_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "COPY_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MOVE_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MOVE1_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "LINK_TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "LE_DEFINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "ALIAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "200CC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "PERFMON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "CUSTOM_TT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "XPFLAGS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in LE text files." )
+
+#:def_cmd_opt( "LPAR", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "LPAR", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in LE text files." )
+
+#:def_cmd_opt( "CREATE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LPAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_CLEAR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_ONLINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_N_PLAYERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_COND_BIT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_GAME_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_ENGINE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LT_RANDOM", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CREATE", "LEX_PURGE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "COMPLETE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in LE text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "COMPLETE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in LE text files." )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "EXPORT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "COMPLETE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wmdlt' ###############
+###############################################################################
+
+#:def_tool( "wmdlt", \
+ "wmdlt [option]... command [option|parameter|@file]...", \
+ "Wiimms MDL Tool : Decode raw MDL and encode text MDL files." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wmdlt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wmdlt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wmdlt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wmdlt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wmdlt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wmdlt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wmdlt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wmdlt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wmdlt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wmdlt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wmdlt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wmdlt SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The MDL" \
+ " specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wmdlt FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the MDL specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wmdlt CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "MATRIX", "MATRIX", \
+ "wmdlt MATRIX [patch-option]... [vector]...", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results.", \
+ "Use the transformation options as base and calculate and print the" \
+ " related vectors and the transformation matrices. Then do a forward" \
+ " and backward transformation for each @vector@ parameter using the" \
+ " matrices and print the results. The transformations are done with 4" \
+ " different methods to confirm the algorithms. Only the main results" \
+ " and results, which differ, are printed.\n" \
+ " Normally, the exit status is @OK@ (null). If at least one old" \
+ " transformation returns different results for the different" \
+ " algorithms, then status @DIFFER@ (not null) is returned." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wmdlt FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wmdlt CAT [source]...", \
+ "Read the entered MDL files (text or binary) and print them as decoded" \
+ " text files to standard output (stdout). The output of all source" \
+ " files is concatenated.\n" \
+ " A decoded MDL0 file can only be used for analysis. Encoding or" \
+ " creating a new MDL0 file is not supported." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wmdlt DECODE [source]...", \
+ "Read the entered MDL files (text or binary) and decode them to text" \
+ " files. The default destination is @'%P/%N.txt'@.\n" \
+ " A decoded MDL0 file can only be used for analysis. Encoding or" \
+ " creating a new MDL0 file is not supported." )
+
+#:def_cmd( "STRINGS", "STRINGS", \
+ "wmdlt STRINGS [source]...", \
+ "Read the entered MDL files (text or binary) and print all strings of" \
+ " all sections.\n" \
+ " For archives like SZS or BREES, the strings of each containing MDL" \
+ " are printed. It is also possible to address an internal sub-file" \
+ " like @track.szs/course_model.brres@." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "This option is completely ignored by wlect. It only exists due to" \
+ " compatibility with the other tools." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "MDL", "mdl", "GP", \
+ "list", \
+ "Set global options for MDL processing. To enable MDL patching, use" \
+ " option {--patch-file} and select BRRES files for patching.\n" \
+ " Parameter @'list'@ is a comma separated list of keywords. A minus" \
+ " sign before a keyword disables a setting. Each occurrence of the" \
+ " option will only change entered settings and all other settings are" \
+ " untouched.\n" \
+ " A MDL transformation (controlled by the transformation options) is" \
+ " only done, if at least one of the keywords @VECTOR@ or @VERTEX@ is" \
+ " set.\n" \
+ " Keyword @DEFAULT@ resets the default settings (@VERTEX@) and" \
+ " @CLEAR@ disables all. The other allowed keywords are: @VECTOR," \
+ " MATRIX, VERTEX, PARENT, CHILD@ and @LOG@." )
+
+#:def_opt( "SCALE", "scale", "CP", \
+ "vector[@origin]", \
+ "Transform the data: Scale all coordinates and size values by 'vector'" \
+ " relative to the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Negative values mirror the coordinates. Each parameter is either a" \
+ " vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "SHIFT", "shift", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--translate}, but the addition is done before rotation. The" \
+ " parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XSS", "xss", "CP", \
+ "x1old,x1new,x2old,x2new", \
+ "--xss (x-scale-shift) calculates the X values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "YSS", "yss", "CP", \
+ "y1old,y1new,y2old,y2new", \
+ "--yss (y-scale-shift) calculates the Y values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ZSS", "zss", "CP", \
+ "z1old,z1new,z2old,z2new", \
+ "--zss (z-scale-shift) calculates the Z values of {--scale} and" \
+ " {--shift}, so that old values are transformed to the new values. The" \
+ " parameters are numbers or expression." )
+
+#:def_opt( "ROT", "rot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' (is a vector) around the 3 axes. All 3 axes goes" \
+ " through the point 'origin'. If the origin is not set, @0,0,0@ is" \
+ " used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y,z').\n" \
+ " Option --rot is an alternative for {--xrot}, {--yrot} and {--zrot}" \
+ " to define all 3 rotations in one step. Transformations are" \
+ " calculated in the order SCALE, SHIFT, X-ROTATE, Y-ROTATE, Z-ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "XROT", "xrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('y,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "YROT", "yrot|hrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the x-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead. This is" \
+ " a horizontal counterclockwise rotation and the old option name" \
+ " --hrot can also used.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,z' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "ZROT", "zrot", "CP", \
+ "degree[@origin]", \
+ "Transform the data: Rotate all coordinates and rotation values by the" \
+ " angle 'degree' around the z-axis, that goes through the point" \
+ " 'origin'. If the origin is not set, @0,0,0@ is used instead.\n" \
+ " Each parameter is either a vector expression or a comma separated" \
+ " expression list of coordinates ('x,y' or 'x,y,z').\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, X-ROTATE," \
+ " Y-ROTATE, Z-ROTATE, TRANSLATE." )
+
+#:def_opt( "TRANSLATE", "translate", "CP", \
+ "vector", \
+ "Transform the data: Add 'vector' to all coordinates. It's simlar to" \
+ " {--shift}, but the addition is done after rotation. The parameter is" \
+ " either a vector expression or a comma separated expression list of" \
+ " coordinates ('x,z' or 'x,y,z'). @--trans@ is a short cut.\n" \
+ " Transformations are calculated in the order SCALE, SHIFT, ROTATE," \
+ " TRANSLATE." )
+
+#:def_opt( "NULL", "null", "C", \
+ "", \
+ "Create a neutral transformation without affecting the coordinates." \
+ " The only influence is, that the dependent values (like maximum) are" \
+ " re-calculated as if a transformation has taken place." )
+
+#:def_opt( "NEXT", "next", "C", \
+ "", \
+ "Close the current transformation step with all scaling, shifting," \
+ " rotation and translation options and open a new step with cleared" \
+ " options. On transformation each step is logical done one by one. In" \
+ " real, one total transformation matrix is calculated and used for" \
+ " fast transformations.\n" \
+ " If option --next is used, the ability for modifying the scale and" \
+ " rotation vectors (not the positions) of different KMP sections is" \
+ " nearly always lost. A warning is printed if this occurs." )
+
+#:def_opt( "ASCALE", "ascale", "CP", \
+ "factor@dir", \
+ "Transform the data and do an axis scale: Close the current" \
+ " transformation step like {--next} and scale the data by @'factor'@" \
+ " into the direction given by the vector @'dir'@. Store the resulting" \
+ " matrix as single transformation step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "AROT", "arot", "CP", \
+ "degree[@pos1]@pos2", \
+ "Transform the data and do an axis rotation: Close the current" \
+ " transformation step like {--next} and rotate the data by @'degree'@" \
+ " around the axis defined by the 2 points. If @'pos1'@ is not set, use" \
+ " @0,0,0@ instead. Store the resulting matrix as single transformation" \
+ " step and open a new one.\n" \
+ " This kind of transformation is EXPERIMENTAL!" )
+
+#:def_opt( "TFORM_SCRIPT", "tform-script|tformscript", "CP", \
+ "script", \
+ "Load the script and execute it by the text parser.\n" \
+ " Then for each coordinate (2D and 3D), call the macro @TRANSFORM@" \
+ " after all other transformations. Call it without parameters and set" \
+ " variable @$$I@ with a zero based index of all vertices, variable" \
+ " @$$D@ to the dimension (2 or 3) and the variable @$$P@ to the vector" \
+ " of the current vertex. If the macro returns a vector, it is the new" \
+ " position.\n" \
+ " For each file, macro @BEGIN@ is called at the beginning and @END@" \
+ " after processing all points, but only, if the macros are defined." \
+ " For @END@, variable @$$I@ is set to the number of processed vertices" \
+ " in the current file.\n" \
+ " Before each macro call, the private and local variables are cleared" \
+ " and only global parameters are permanent. The zero based index is" \
+ " cleared for each new source. The parameters of the macro calls are" \
+ " defined in the local name space." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress cross reference comments." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KMP files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "TINY", "tiny", "GP", \
+ "mode", \
+ "Set tiny mode to a level between 0 and 7." )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TEST", "VERBOSE", \
+ "", \
+ "Print the matrices of transformations." )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "MATRIX", "BRIEF", \
+ "", \
+ "If set once, suppress vector dumps for transformation steps and" \
+ " ignore option --long. If set twice, suppress vector dump for final" \
+ " transformation too." )
+
+#:def_cmd_opt( "MATRIX", "LONG", \
+ "", \
+ "If set once, print inverse matrix for the final transformation. If" \
+ " set twice, print inverse matrix for all transformations." )
+
+#:def_cmd_opt( "MATRIX", "QUIET", \
+ "", \
+ "Option --quiet is dedicated to automatic tests comparing the old and" \
+ " new transformation algorithms. If set once, the tables are only" \
+ " printed, if the results differ. If set twice, nothing is printed at" \
+ " all and only the exit status will inform about the results." )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in MDL text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in MDL text files." )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in MDL text files." )
+
+#:def_cmd_opt( "STRINGS", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "STRINGS", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in MDL text files." )
+
+#:def_cmd_opt( "GEOMETRY", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "GEOMETRY", "MDL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in MDL text files." )
+
+#:def_cmd_opt( "XTEST", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "SCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "SHIFT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "XSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "YSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "ZSS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "ROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "XROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "YROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "ZROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "TRANSLATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "ASCALE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "AROT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "TFORM_SCRIPT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "NEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "XTEST", "MDL", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wpatt' ###############
+###############################################################################
+
+#:def_tool( "wpatt", \
+ "wpatt [option]... command [option|parameter|@file]...", \
+ "Wiimms PAT Tool : Decode raw PAT and encode text PAT files." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wpatt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wpatt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wpatt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wpatt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wpatt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wpatt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wpatt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wpatt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wpatt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wpatt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wpatt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "SYMBOLS", "SYMBOLS", \
+ "wpatt SYMBOLS", \
+ "Print predefined symbols of text parser to standard output. The PAT" \
+ " specific symbols are included." )
+
+#:def_cmd( "FUNCTIONS", "FUNCTIONS", \
+ "wpatt FUNCTIONS [key]...", \
+ "Print a list with all parser functions including the PAT specific" \
+ " functions. If one key ore more key entered, then only functions that" \
+ " match at least one key are printed." )
+
+#:def_cmd( "CALCULATE", "CALCULATE", \
+ "wpatt CALCULATE expression...", \
+ "Calculate each expression and print the result to standard output." )
+
+#:def_cmd( "FLOAT", "FLOAT", \
+ "wpatt FLOAT number...", \
+ "This commands helps to convert hex values into floating point numbers" \
+ " and vice versa. For each non empty parameter, a line with 4 bytes" \
+ " hex and a float, 8 bytes hex and a double float, and the parameter" \
+ " itself is printed. If a parameter begins with 'x' or '0x', it is a" \
+ " hex string, otherwise it is a floating point number.\n" \
+ " The special parameters \"+\" and \"-\" mean: Increment or decrement" \
+ " the previous value by the smallest possible value. Use different" \
+ " increments for floats and doubles.\n" \
+ " All conversions are done using big endian." )
+
+#:def_cmd( "CAT", "CAT", \
+ "wpatt CAT [source]...", \
+ "Read the entered PAT files (text or binary) and print them as decoded" \
+ " text files to standard output (stdout). The output of all source" \
+ " files is concatenated." )
+
+#:def_cmd( "DECODE", "DECODE|DEC", \
+ "wpatt DECODE [source]...", \
+ "Read the entered PAT files (text or binary) and decode them to text" \
+ " files. The default destination is @'%P/%N.txt'@." )
+
+#:def_cmd( "ENCODE", "ENCODE|ENC", \
+ "wpatt ENCODE [source]...", \
+ "Read the entered PAT files (text or binary) and encode (compile) them" \
+ " to binary files. The default destination is @'%P/%N.pat'@." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "This option is completely ignored by wlect. It only exists due to" \
+ " compatibility with the other tools." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "ROUND", "round", "C", \
+ "", \
+ "Print additional lines with rounded values (to 3 and 2 bytes for" \
+ " floats and 7 and 6 bytes for doubles)." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "Suppress cross reference comments." )
+
+#:def_opt( "NO_PARAM", "P|no-param|noparam", "C", \
+ "", \
+ "Disable parameter support in decoded KMP text files." )
+
+#:def_opt( "NO_ECHO", "no-echo|noecho", "C", \
+ "", \
+ "Suppress output of @@ECHO commands while scanning text files." )
+
+#:def_opt( "NO_CHECK", "N|no-check|nocheck", "C", \
+ "", \
+ "Do not make plausibility checks for KMP files." )
+
+#:def_opt( "MAX_FILE_SIZE", "M|max-file-size|maxfilesize", "GP", \
+ "size", \
+ "This security option defines the maximum file size for input files;" \
+ " larger files are ignored with a warning. The default unit is MiB and" \
+ " the default size is 100 MiB; that should be enough for standard" \
+ " usage." )
+
+#:def_opt( "PAT", "pat", "GP", \
+ "list", \
+ "Set global options for PAT processing. Parameter @'list'@ is a comma" \
+ " separated list of keywords. A minus sign before a keyword disables a" \
+ " setting. Each occurrence of the option will only change entered" \
+ " settings and all other settings are untouched.\n" \
+ " Keyword @DEFAULT@ resets the default settings and @CLEAR@ disables" \
+ " all. The other allowed keywords are: @AUTO, SIMPLE, COMPLEX, BOTH," \
+ " SILENT@ and @LOG@." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "SYMBOLS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FUNCTIONS", "BRIEF", \
+ "", \
+ "Suppress the output of the description and print only function type" \
+ " and syntax." )
+
+#:def_cmd_opt( "FUNCTIONS", "LONG", \
+ "", \
+ "Usually only the function syntax is compared to the keywords. But if" \
+ " --long is set, the descriptions are compared too." )
+
+#:def_cmd_opt( "CALCULATE", "CONST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FLOAT", "ROUND", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in PAT text files." )
+
+#:def_cmd_opt( "CAT", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "CAT", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_HEADER", \
+ "", \
+ "Suppress the syntax information section in PAT text files." )
+
+#:def_cmd_opt( "DECODE", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DECODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_ECHO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "NO_CHECK", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ENCODE", "IGNORE", \
+ "", \
+ "" )
+
+
+##
+###############################################################################
+############### Tool 'wstrt' ###############
+###############################################################################
+
+#:def_tool( "wstrt", \
+ "wstrt [option]... command [option|parameter|@file]...", \
+ "Wiimms StaticR Tool : Manipulate the 'main.dol' and 'StaticR.rel'" \
+ " files of Mario Kart Wii." )
+
+#:def_cmd( "VERSION", "VERSION", \
+ "wstrt VERSION [ignored]...", \
+ "Print program name and version and exit." )
+
+#:def_cmd( "HELP", "HELP|H|?", \
+ "wstrt HELP [--width=wd] OPT|OPTION ...\n" \
+ "wstrt HELP [--width=wd] CMD|COMMAND [ignored]...\n" \
+ "wstrt HELP [--width=wd] command [-b] [ignored]...\n" \
+ "wstrt HELP [--width=wd] [ignored]...", \
+ "Print help for commands and options.", \
+ "Print help for commands and options.\n" \
+ " The first variant (with keyword @OPT@ or @OPTION@) prints a list of" \
+ " all global and command specific options. If at least one option is" \
+ " set, only info about the declared options are printed. The second" \
+ " variant (with keyword @CMD@ or @COMMAND@) prints an overview about" \
+ " all commands. The third variant (with a valid command name) prints" \
+ " details about the declared command. The fourth variant prints an" \
+ " overview about all commands and all global options." )
+
+#:def_cmd( "ARGTEST", "ARGTEST", \
+ "wstrt ARGTEST ...", \
+ "This debug command accepts all kinds of parameters and prints one" \
+ " line for each parameter." )
+
+#:def_cmd( "TEST", "TEST", \
+ "wstrt TEST [options]... [ignored]...", \
+ "This debugging command accepts all options and parameters and prints" \
+ " a list of the internal option values. The command is designed to" \
+ " test the option parameters. The non option parameters are completely" \
+ " ignored." )
+
+#:def_cmd( "COLORS", "COLORS", \
+ "wstrt COLORS", \
+ "Ignore all parameters and print colored text for testing." )
+
+#:def_cmd( "ERROR", "ERROR|ERR", \
+ "wstrt ERROR [error_code]", \
+ "Translate an exit code to a message name. If no exit code is entered," \
+ " print a table with all error messages." )
+
+#:def_cmd( "FILETYPE", "FILETYPE|FT", \
+ "wstrt FILETYPE file...", \
+ "Scan the header of the entered files and print file type and path for" \
+ " each file as list." )
+
+#:def_cmd( "FILEATTRIB", "FILEATTRIB|FA", \
+ "wstrt FILEATTRIB [keyword]...", \
+ "Print a table with attributes for all known file types. If at least" \
+ " one keyword is entered, only matching file types are printed. A" \
+ " keyword is either a file type (like 'BRRES' or 'BMG') or one of the" \
+ " printed keywords (like 'ARCHIVE' or 'EXTRACT')." )
+
+#:def_cmd( "DUMP", "DUMP", \
+ "wstrt DUMP file...", \
+ "Dump the structure of 'StaticR.rel' (in development) and of DOL files" \
+ " as text." )
+
+#:def_cmd( "HEXDUMP", "HEXDUMP|XDUMP", \
+ "wstrt HEXDUMP file...", \
+ "Dump the content of DOL files as hex dump and use virtual addresses." \
+ " Select parts by --vaddr, --faddr and --sname. Without selectors, the" \
+ " whole file is dumped." )
+
+#:def_cmd( "EXTRACT", "EXTRACT|X", \
+ "wstrt EXTRACT dol...", \
+ "Extract the sections of a DOL file into a directory. StaticR.rel" \
+ " files are ignored." )
+
+#:def_cmd( "TRACKS", "TRACKS", \
+ "wstrt TRACKS [file]...", \
+ "Show track infos in the order of the 'StaticR.rel' files. If no file" \
+ " is entered, the standard order is used." )
+
+#:def_cmd( "ARENAS", "ARENAS", \
+ "wstrt ARENAS [file]...", \
+ "Show arena infos in the order of the 'StaticR.rel' files. If no file" \
+ " is entered, the standard order is used." )
+
+#:def_cmd( "FILES", "FILES", \
+ "wstrt FILES [file]...", \
+ "List track and arena file names in machine readable format. Use the" \
+ " order of the entered 'StaticR.rel' files. If no file is entered, the" \
+ " standard order is used." )
+
+#:def_cmd( "FIND", "FIND", \
+ "wstrt FIND [+]TRACK keyword...\n" \
+ "wstrt FIND [+]ARENA keyword...", \
+ "Find a track or arena by keyword and print one line for each keyword" \
+ " in machine readable format @'type slot'@ or, if not found, a simple" \
+ " @'-'@. The name is searched in the entered context (tracks or" \
+ " arenas). If @TRACK@ or @ARENA@ is prefixed by a plus, then a failed" \
+ " search will be continued in the other context. If at least one name" \
+ " is not found, the tool terminates with exit code @NOT_EXISTS@." )
+
+#:def_cmd( "POINTS", "POINTS|PTS", \
+ "wstrt POINTS [--points=list] [file]...", \
+ "Print a table with the points assigned to player after a versus or" \
+ " room race for each entered file. If no file is entered, the standard" \
+ " table is used. However, if option {--points} is set only the" \
+ " resulting table is printed." )
+
+#:def_cmd( "ANALYZE", "ANALYZE|ANA|ANALYSE", \
+ "wstrt ANALYZE [file]...", \
+ "Open 'StaticR.rel' and DOL files and analyze them. The files will be" \
+ " classified using SHA1 checksums." )
+
+#:def_cmd( "PATCH", "PATCH", \
+ "wstrt PATCH [file]...", \
+ "Patch 'main.dol and 'StaticR.rel' files of Mario Kart Wii. No backup" \
+ " is made." )
+
+#:def_opt( "VERSION", "V|version", "G", \
+ "", \
+ "Stop parsing the command line, print a version info and exit." )
+
+#:def_opt( "HELP", "h|help", "G", \
+ "", \
+ "Stop parsing the command line, print a help message and exit." )
+
+#:def_opt( "XHELP", "xhelp", "G", \
+ "", \
+ "Stop parsing the command line and print a help message with all" \
+ " commands included. Exit after printing." )
+
+#:def_opt( "ALLOW_ALL", "allow-all|allowall", "G", \
+ "", \
+ "Usually commands accept only options with impact to the command. All" \
+ " other options fire a syntax error. But if @--allow-all@ is set, all" \
+ " commands accept all options.\n" \
+ " This makes changing the command of a long command line without" \
+ " removing useless options easier. It also helps to override wrong" \
+ " option permissions." )
+
+#:def_opt( "COMPATIBLE", "compatible", "GP", \
+ "vers", \
+ "The option expects a version number (format @'#.##'@ or @'v#.##'@) or" \
+ " a revision number (format @'r#'@) as parameter. If set, the tools" \
+ " try to create BMG and KMP text files, that are compatible to the" \
+ " entered version of the tools. This may override other legacy" \
+ " options." )
+
+#:def_opt( "WIDTH", "width", "GP", \
+ "width", \
+ "Define the terminal width (number of columns) for help and some other" \
+ " messages and disable the automatic detection of the terminal width." )
+
+#:def_opt( "QUIET", "q|quiet", "GM", \
+ "", \
+ "Be quiet and print only error messages. Multiple usage is possible." \
+ " The impact is command dependent. In general: If set three times," \
+ " different file format warnings are suppressed." )
+
+#:def_opt( "VERBOSE", "v|verbose", "GM", \
+ "", \
+ "Be verbose and print more progress information. Multiple usage is" \
+ " possible. The impact is command dependent." )
+
+#:def_opt( "LOGGING", "L|logging", "GM", \
+ "", \
+ "This debug option enables the logging of internal lists and maps." )
+
+#:def_opt( "DE", "de", "G", \
+ "", \
+ "Use german track and arena names." )
+
+#:def_opt( "COLORS", "colors", "GO", \
+ "[=modus]", \
+ "Define the modus for colored text output. Allowed keywords are: @OFF@" \
+ " or @NO-COLORS@ to disable colors, @AUTO@ (default) for automatic" \
+ " detection, @ON@ for automatic detection but never @OFF@, @8-COLORS@" \
+ " and @256-COLORS@ to force 8 or 256 color support. Without parameter," \
+ " @ON@ is used.\n" \
+ " @AUTO@ will enable colorized output only for terminals. @AUTO@ and" \
+ " @ON@ use environment variable @TERM@ to find the correct color" \
+ " modus.\n" \
+ " If a command is prefixed by @'C-'@, then @--color=ON@ is used" \
+ " implicitly as default." )
+
+#:def_opt( "NO_COLORS", "no-colors|nocolors", "G", \
+ "", \
+ "Deactive colorized text. This is the default, if an output file is" \
+ " not a terminal." )
+
+#:def_opt( "CT_CODE", "ct-code|ctcode", "G", \
+ "", \
+ "Enable CT-CODE support." )
+
+#:def_opt( "LE_CODE", "le-code|lecode", "GO", \
+ "[=param]", \
+ "This option is completely ignored by wlect. It only exists due to" \
+ " compatibility with the other tools." )
+
+#:def_opt( "CHDIR", "chdir", "GMP", \
+ "dir", \
+ "Set a new working directory for all following options, for all" \
+ " parameters and for the command execution. This option can be used" \
+ " multiple times, but for parameter parsing and for command execution" \
+ " only the last usage is relevant. Nevertheless, @'@@param'@ values" \
+ " are scanned while reading the command line." )
+
+#:def_opt( "CONST", "c|const", "GMP", \
+ "list", \
+ "Define constant values, that are used by the internal encoders and by" \
+ " the numeric options as predefined global variables. This option" \
+ " allows a conditional encoding of text files. It can be used multiple" \
+ " times for multiple definitions.\n" \
+ " The parameter is a comma separated list of terms and a term is" \
+ " '@name=expression@'. The expression is calculated by the text" \
+ " parser." )
+
+#:def_opt( "LONG", "l|long", "CM", \
+ "", \
+ "Print long numeric message IDs instead of alternative message names" \
+ " like Txx, Uxx or Mxx." )
+
+#:def_opt( "BRIEF", "B|brief", "C", \
+ "", \
+ "List only the track file names and suppress table header and footer." )
+
+#:def_opt( "NO_HEADER", "H|no-header|noheader", "C", \
+ "", \
+ "Suppress the syntax information section in BMG text files." )
+
+#:def_opt( "TRACKS", "T|tracks", "GP", \
+ "tracks", \
+ "Define a new track order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are track names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " track. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Tracks will only be exchanged so that always all tracks are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "ARENAS", "A|arenas", "GP", \
+ "arenas", \
+ "Define a new arena order. A comma separated list in the format" \
+ " @[a=]b@ or @a:=b@ is expected. @'a'@ and @'b'@ are arena names or" \
+ " slot numbers. @'a'@ is the destination slot and @'b'@ the assigned" \
+ " arena. If @'a'@ is omitted, the next slot is used; this means" \
+ " @[a=]b,c,d@ is possible.\n" \
+ " Arenas will only be exchanged so that always all arenas are" \
+ " assigned. But if using @':='@ the new slots are assigned without" \
+ " exchanging and the old values are lost." )
+
+#:def_opt( "REGION", "R|region", "GP", \
+ "region", \
+ "If 'region' is an unsigned number, the region for online versus races" \
+ " and for battles is patched to the entered number. If the number is" \
+ " prefixed by the letter @'t'@, a test mode is enabled and the places" \
+ " are patched with ascending numbers. You can patch StaticR.rel and" \
+ " main.dol.\n" \
+ " Otherwise a keyword is expected. Official regions are: @JAPAN(0)," \
+ " AMERICA(1), EUROPE(2), AUSTRALIA(OCEANIA,3), KOREA(4), TAIWAN(5)@" \
+ " and @CHINA(6)@. @RESTORE@ restores the original Nintendo values and" \
+ " @NONE@ disables region patching (default).\n" \
+ " See https://wiimmfi.de/reg-list for other regions." )
+
+#:def_opt( "VS_REGION", "vs-region|vsregion|vregion", "GP", \
+ "region", \
+ "Same as {--region}, but only for online versus races." )
+
+#:def_opt( "BT_REGION", "bt-region|btregion|bregion", "GP", \
+ "region", \
+ "Same as {--region}, but only for online battles." )
+
+#:def_opt( "ALL_RANKS", "all-ranks|allranks", "GO", \
+ "[=mode]", \
+ "If set to @ON@ (default without parameter), the server query to" \
+ " Nintendos servers is manipulated, so that the player will find all" \
+ " players in online races independent of their ranking points. Value" \
+ " @RESTORE@ disables this feature and restores Nintendos original" \
+ " query. Value @NONE@ disables this kind of patching (default)." )
+
+#:def_opt( "POINTS", "points|pts", "GP", \
+ "list", \
+ "This patch option defines a new table for the points assigned to" \
+ " players after a versus or room race. The parameter is a blank or" \
+ " comma and slash (next row) separated list with numbers (points)" \
+ " between 0 and 255 and the following keywords: @NINTENDO, LINEAR," \
+ " WIN, WIN15, WIN25@ to select a predefined table; @NO-BONUS, BONUS," \
+ " NULL, ONE@ as options; @N1..N12@ to select the row for N players." )
+
+#:def_opt( "HTTPS", "https", "GP", \
+ "mode", \
+ "Patch the https strings of REL and DOL files. 'mode' is one of the" \
+ " following keywords:\n" \
+ "@RESTORE@ restores the original URLs and domains.\n" \
+ "@HTTP@ replaces HTTPS requests by HTTP and sub-domain '@naswii.@' by" \
+ " '@nas.@'.\n" \
+ "@DOMAIN@ replace HTTPS requests by HTTP and the domain" \
+ " '@nintendowifi.net@' by a domain specified by option {--domain}.\n" \
+ "@SAKE0@ same as DOMAIN, but don't replace URLs with SAKE domain.\n" \
+ "@SAKE1@ same as SAKE0, but replace HTTPS of SAKE domains." )
+
+#:def_opt( "DOMAIN", "domain", "GP", \
+ "dom", \
+ "Define a domain for option {--https}. The default is '@wiimmfi.de@'." )
+
+#:def_opt( "WIIMMFI", "wiimmfi", "G", \
+ "", \
+ "Patch the files for the new custom server. It is a short cut for" \
+ " {--https domain --domain wiimmfi.de}." )
+
+#:def_opt( "WC24", "wc24", "G", \
+ "", \
+ "Exclude 2 strings of file StaticR.rel from --wiimmfi and --domain" \
+ " patch to enable WC24 support." )
+
+#:def_opt( "PB_MODE", "pb-mode|pbmode", "GP", \
+ "mode", \
+ "Mode for the patched-by string: @OFF@ disables modifications. @RESET@" \
+ " resets the string to stars. @WIIMMFI@ defines it only, if patched" \
+ " for Wiimmfi. @AUTO@ (default) defines it only, if patched. @ALWAYS@" \
+ " defines it always." )
+
+#:def_opt( "VS", "vs", "GP", \
+ "char", \
+ "Reset (str is empty) or replace the second character of 'vs' to" \
+ " create an own online world for versus races. The file StaticR.rel" \
+ " will be patched at 4 places." )
+
+#:def_opt( "BT", "bt", "GP", \
+ "char", \
+ "Reset (str is empty) or replace the second character of 'bt' to" \
+ " create an own online world for battles. The file StaticR.rel will be" \
+ " patched at 4 places." )
+
+#:def_opt( "CANNON", "cannon", "GP", \
+ "idx,p1,p2,p3,p4", \
+ "Patch parameters for cannon with index IDX (0..2). Parameters P1..P4" \
+ " are floating point numbers. Repeat this option for each cannon, that" \
+ " should be modified." )
+
+#:def_opt( "MENO", "meno", "G", \
+ "", \
+ "Patch some 'MenuSingle' and 'MenuMulti' strings of file StaticR.rel" \
+ " for online usage to 'MenO*' (MenuOnline) to distinguish between" \
+ " offline and online races." )
+
+#:def_opt( "TEST", "t|test", "GM", \
+ "", \
+ "Run in test mode, modify nothing.\n" \
+ ">>> USE THIS OPTION IF UNSURE! <<<" )
+
+#:def_opt( "FORCE", "force", "GM", \
+ "", \
+ "The tools analyse input files and reject files with invalid data" \
+ " structures. If --force is set, little repairable issues are ignored" \
+ " and a warning is printed.\n" \
+ "Option {--kmp force} does the same, but only for KMP files.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "REPAIR_MAGICS", "repair-magics|repairmagics", "GO", \
+ "[=mode]", \
+ "Control the reparing of missing or wrong magics of files and" \
+ " sub-files by analysing file path and file extension. @MODE@ is one" \
+ " of @OFF@ (default), @ANALYZE@ or @REPAIR@ (default, if set without" \
+ " mode). @OFF@ disables this feature, @ANALYZE@ enables it for" \
+ " analysis only, and @REPAIR@ repairs all magics while reading the" \
+ " files. Keyword @FNAME@ can be appended (separated by a comma) to" \
+ " give filename scanning the highest priority.\n" \
+ ">>> THE RESULT MAY BE INVALID OUTPUT FILES! <<<" )
+
+#:def_opt( "DEST", "d|dest", "CP", \
+ "path", \
+ "Define a destination path (directory/file). The destination @-@" \
+ " means: write to standard output.\n" \
+ " The path may contain escape sequences: @%Q@ is replaced by the" \
+ " fully qualified source name. @%P@ and @%F@ are replaced by the" \
+ " source path or by the filename. @%N@ and @%E@ are replaced by source" \
+ " filename without extension or by the source extension. Finally, @%T@" \
+ " is replaced by the default extension of the destination format.\n" \
+ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \
+ " the same extension is used twice in row." )
+
+#:def_opt( "DEST2", "D|DEST", "CP", \
+ "path", \
+ "Like {--dest}, but create the directory path automatically." )
+
+#:def_opt( "ESC", "E|esc", "CP", \
+ "char", \
+ "Define an alternative escape character for destination files. The" \
+ " default is '%'. For Windows batch files it is a good choice to set" \
+ " @'-E$$'@." )
+
+#:def_opt( "OVERWRITE", "o|overwrite", "C", \
+ "", \
+ "Overwrite already existing files without warning and ignore option" \
+ " {--number}." )
+
+#:def_opt( "NUMBER", "number|num", "C", \
+ "", \
+ "If a file already exist, append a number directly before the file" \
+ " extension to make the filename unique. If other numbered files" \
+ " already exist (ignoring case), use the maximum existing index+1." \
+ " @--num@ is a short cut." )
+
+#:def_opt( "REMOVE_DEST", "r|remove-dest|removedest|rm-dest|rmdest|remove", "C", \
+ "", \
+ "Remove already existing files before creating it. If set," \
+ " {--overwrite} is ignored. @--rm-dest@ is a short cut." )
+
+#:def_opt( "UPDATE", "u|update", "C", \
+ "", \
+ "Update only existing files and don't create new files. If set," \
+ " {--overwrite} and {--remove-dest} are ignored." )
+
+#:def_opt( "PRESERVE", "p|preserve", "C", \
+ "", \
+ "Preserve file times (atime+mtime) while converting or copying files." )
+
+#:def_opt( "IGNORE", "i|ignore", "C", \
+ "", \
+ "Ignore non existing source files without warning." )
+
+#:def_opt( "CLEAN_DOL", "clean-dol|cleandol", "G", \
+ "", \
+ "Remove additional DOL sections, reset entry point and VBI address," \
+ " and try to restore other patches known by SZS tools. This is done" \
+ " after loading a DOL and before analysing and patching to allow" \
+ " re-patching." )
+
+#:def_opt( "ADD_CTCODE", "add-ctcode|addctcode", "C", \
+ "", \
+ "If source is an original main.dol file of MKWii, then append 2" \
+ " sections (usually T2 and D8) with @CT-CODE@. The CTCODE is inserted" \
+ " after sections defined by {--add-section} and then only, if there" \
+ " are no address collisions.\n" \
+ " If {--ct-dir} is used, then files named @rmc[ejp]/boot_code.bin@" \
+ " and @boot_code.bin@ for T2, and @rmc[ejp]/boot_data.bin@ and" \
+ " @boot_data.bin@ for D8 are searched." )
+
+#:def_opt( "CT_DIR", "ct-dir|ctdir", "GP", \
+ "dir", \
+ "Define a search directory for CT-CODE parts and use the internal" \
+ " copies only, if no valid file is found. Each file is searched" \
+ " without and then with extension '.bz2'. For both cases bzip2 files" \
+ " are detected and decompressed. Only files with correct file type are" \
+ " accepted.\n" \
+ " Use this option multiple times to define more than one search" \
+ " directory." )
+
+#:def_opt( "MOVE_D8", "move-d8|moved8", "C", \
+ "", \
+ "Move the @CT-CODE@ section D8 to another place at the middle of" \
+ " binary. It is done automatically, if the original place overlaps" \
+ " other existing sections." )
+
+#:def_opt( "ADD_SECTION", "add-section|addsection", "CP", \
+ "file", \
+ "Each option call adds the filename to an internal list. Each file" \
+ " must be of type GCT, GCH or WCH. All GCT files together are combined" \
+ " with an internal code handler to one section (like a GCH file). GCH" \
+ " and WCH define sections and patches. The defined sections are added" \
+ " and VBI hooks are optionally initialized. Use option {--force} to" \
+ " allow overlapped sections. Use option {--verbose} up to 2 times for" \
+ " a log.\n" \
+ " If a single file is not found and the filename (not path) contains" \
+ " at least 1 '@@' character, then all '@@' characters of it are" \
+ " replaced by the region code (one of P,E,J,K) for a second try.\n" \
+ " The intention of this option is to add a Gecko Code Handler and" \
+ " cheat codes to a main.dol for automatic execution." )
+
+#:def_opt( "GCT_MOVE", "gct-move|gctmove", "CO", \
+ "[=mode]", \
+ "If a section is of type gecko code handler + cheat code, then make" \
+ " the heap smaller and move the cheat codes before the FST section.\n" \
+ " Parameter MODE is optional. If set, OFF disables and ON enables" \
+ " this feature. For mode AUTO (default) this feature is enabled, if" \
+ " the cheat codes are too large or for internal reasons." )
+
+#:def_opt( "GCT_ADDR", "gct-addr|gctaddr", "CP", \
+ "address", \
+ "If {--gct-move} is active, a text section is created to manage the" \
+ " code handling. This section is only needed at start and is placed by" \
+ " default at address 0c802c0000 (good address for all 4 regions) as" \
+ " part of BSS. This option changes the start address of the section." \
+ " If address is @0@ or invalid, then unused BSS space is searched." )
+
+#:def_opt( "GCT_SPACE", "gct-space|gctspace", "CP", \
+ "size", \
+ "Define the minimal space for the code part of {--gct-move}. This" \
+ " value is ignored, if it is smaller than the size of the cheat codes." \
+ " This option was only implemented to test the memory allocation by" \
+ " {--gct-move} with large blocks." )
+
+#:def_opt( "ALLOW_USER_GCH", "allow-user-gch|allowusergch", "CO", \
+ "[=mode]", \
+ " This option is only relevant, if main.dol is patched for wiimmfi.de." \
+ " It is dedicated to custom distribution creators for test purposes." \
+ " If enabled, a user can load an own instance of Gecko Code Handler" \
+ " and cheat codes and can use them online. If disabled, pachcing for" \
+ " online modus is disabled if an alternative Gecko Code Handler is" \
+ " detected.\n" \
+ " Parameter MODE is optional. If set, OFF disables and ON enables" \
+ " this feature. For mode AUTO (default) it depends on other options." )
+
+#:def_opt( "SECTIONS", "sections", "C", \
+ "", \
+ "Print in machine readable sections and parameter lines." )
+
+#:def_opt( "VADDR", "vaddr|va", "CP", \
+ "RANGE", \
+ "Comma separated list of virtual addresses to select the hex-dump" \
+ " ranges. Each element is either @ADDRESS@ (1 byte) or @START:END@ or" \
+ " @START#SIZE@." )
+
+#:def_opt( "FADDR", "faddr|fa", "CP", \
+ "RANGE", \
+ "Comma separated list of file addresses to select the hex-dump ranges." \
+ " Each element is either @ADDRESS@ (1 byte) or @START:END@ or" \
+ " @START#SIZE@." )
+
+#:def_opt( "SNAME", "sname|sn", "CP", \
+ "LIST", \
+ "Comma separated list of section names to select the hex-dump ranges." )
+
+#:def_opt( "INT1", "i1", "C", \
+ "", \
+ "Format: Print single bytes as integer number (default)." )
+
+#:def_opt( "INT2", "i2", "C", \
+ "", \
+ "Format: Print each 2 bytes as integer number." )
+
+#:def_opt( "INT3", "i3", "C", \
+ "", \
+ "Format: Print each 3 bytes as integer number." )
+
+#:def_opt( "INT4", "i4", "C", \
+ "", \
+ "Format: Print each 4 bytes as integer number." )
+
+#:def_opt( "INT5", "i5", "C", \
+ "", \
+ "Format: Print each 5 bytes as integer number." )
+
+#:def_opt( "INT6", "i6", "C", \
+ "", \
+ "Format: Print each 6 bytes as integer number." )
+
+#:def_opt( "INT7", "i7", "C", \
+ "", \
+ "Format: Print each 7 bytes as integer number." )
+
+#:def_opt( "INT8", "i8", "C", \
+ "", \
+ "Format: Print each 8 bytes as integer number." )
+
+#:def_opt( "FLOAT", "float", "C", \
+ "", \
+ "Format: Print each 4 bytes as floating point number." )
+
+#:def_opt( "DOUBLE", "double", "C", \
+ "", \
+ "Format: Print each 8 bytes as double floating point number." )
+
+#:def_opt( "LE", "le", "C", \
+ "", \
+ "Use little endian for binary data." )
+
+#:def_opt( "BE", "be", "C", \
+ "", \
+ "Use big endian for binary data (default)." )
+
+#:def_opt( "ZEROS", "zeros", "C", \
+ "", \
+ "Print integer numbers with leading zeros." )
+
+#:def_opt( "HEX", "hex", "C", \
+ "", \
+ "Print integer numbers as hexadecimal numbers (default)." )
+
+#:def_opt( "DEC", "dec", "C", \
+ "", \
+ "Print integer numbers as decimal numbers." )
+
+#:def_opt( "C_SYNTAX", "c-syntax|csyntax", "C", \
+ "", \
+ "Print output in `C' syntax." )
+
+#:def_opt( "ADDR", "address", "CP", \
+ "addr", \
+ "Use @ADDR@ instead of null as start address for the dump." )
+
+#:def_opt( "ALIGN", "align", "C", \
+ "", \
+ "Try to align the dump, so that the addresses (printed or not) are" \
+ " multiple of bytes-per-line." )
+
+#:def_opt( "TRIGGER", "trigger", "CP", \
+ "num", \
+ "If the number @NUM@ is found and printed, close the current line and" \
+ " start with a new one. If {--align} is set too, continue the next" \
+ " line with the current column. The trigger works only for integer" \
+ " formats, but not for floats." )
+
+#:def_opt( "NO_ADDR", "no-address|noaddress", "C", \
+ "", \
+ "Suppress the address column of the dump." )
+
+#:def_opt( "NO_NUMBERS", "no-numbers|nonumbers", "C", \
+ "", \
+ "Suppress the numbers column of the dump." )
+
+#:def_opt( "NO_TEXT", "no-text|notext", "C", \
+ "", \
+ "Suppress the text column of the dump." )
+
+#:def_opt( "FORMAT", "format", "C", \
+ "", \
+ "Add @'#FORMAT:'@ info lines." )
+
+#:def_opt( "NO_NULL", "no-null|nonull", "C", \
+ "", \
+ "Ignore data lines with NULL bytes only and print a summary for each" \
+ " NULL block. (@'#NULL: ...'@)" )
+
+#:def_opt( "NARROW", "narrow", "C", \
+ "", \
+ "Suppress the spaces that are usually inserted for readability." )
+
+#:def_opt( "SMALL", "small", "C", \
+ "", \
+ "Each call will halve the number of bytes per line. Usually, 16 bytes" \
+ " per lines are reduced to 8, then to 4, 2 and 1. The effective number" \
+ " of bytes per line is format dependent." )
+
+#:def_opt( "WIDE", "wide", "C", \
+ "", \
+ "Each call will round down the current bytes per line value to the" \
+ " next multiple of 16 and then increment it by 16. Usually, 16 bytes" \
+ " per lines are enhanced to 32, then to 48, 64, 80 and so on. The" \
+ " effective number of bytes per line is format dependent." )
+
+#:def_opt( "BYTES", "bytes", "CP", \
+ "num", \
+ "Print up to @NUM@ bytes per line instead of 16. The maximum allowed" \
+ " value is 600. The effective number of bytes per line is format" \
+ " dependent (multiple of format size)." )
+
+#:def_cmd_opt( "VERSION", "BRIEF", \
+ "", \
+ "Print only the version number, revision and system. If set twice," \
+ " print only the version number." )
+
+#:def_cmd_opt( "VERSION", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "VERSION", "LONG", \
+ "", \
+ "Print in long format. Ignored if option {--sections} is set." )
+
+#:def_cmd_opt( "HELP", "WIDTH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "NO_COLORS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "COLORS", "LONG", \
+ "", \
+ "Print also a list of all colored text types. If set twice, include" \
+ " alternative names. If set three times, include raw color names." )
+
+#:def_cmd_opt( "COLORS", "BRIEF", \
+ "", \
+ "Ignore option --long and print a single status line about current" \
+ " color settings." )
+
+#:def_cmd_opt( "ERROR", "SECTIONS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ERROR", "LONG", \
+ "", \
+ "Print message text instead of message name." )
+
+#:def_cmd_opt( "ERROR", "BRIEF", \
+ "", \
+ "Print message number instead of message name." )
+
+#:def_cmd_opt( "FILETYPE", "LONG", \
+ "", \
+ "Print an additional column with the decompressed file type and" \
+ " version. If entered twice, a validation status column is added." )
+
+#:def_cmd_opt( "FILETYPE", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILEATTRIB", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "RAWDUMP", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "RAWDUMP", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "DUMP", "LONG", \
+ "", \
+ "For DOL files: If set, a second table with the image map is printed." \
+ " If set twice, a third table with delta values is printed too." )
+
+#:def_cmd_opt( "HEXDUMP", "VADDR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "FADDR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "SNAME", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "LOGGING", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT1", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT3", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT4", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT5", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT6", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT7", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "INT8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "FLOAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "DOUBLE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "LE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "BE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "ZEROS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "HEX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "DEC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "C_SYNTAX", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "ADDR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "ALIGN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "TRIGGER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "NO_ADDR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "NO_NUMBERS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "NO_TEXT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "FORMAT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "NO_NULL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "NARROW", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "SMALL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "WIDE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HEXDUMP", "BYTES", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "HTTPS", "LONG", \
+ "", \
+ " Print output a C source" )
+
+#:def_cmd_opt( "HTTPS", "VERBOSE", \
+ "", \
+ " Print hex dump if an entry differs." )
+
+#:def_cmd_opt( "EXTRACT", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "EXTRACT", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "LONG", \
+ "", \
+ "Add columns for music slot and short name." )
+
+#:def_cmd_opt( "TRACKS", "DE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "TRACKS", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "NO_HEADER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "BRIEF", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "LONG", \
+ "", \
+ "Add columns for music slot and short name." )
+
+#:def_cmd_opt( "ARENAS", "DE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ARENAS", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FILES", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "FIND", "LONG", \
+ "", \
+ "Add a user friendly track or arena name at the end of each line. If" \
+ " set twice, add also the file names of the track and sound files" \
+ " before the track name. If set three times, add the slot index and" \
+ " the internal index (both zero based) before the file names." )
+
+#:def_cmd_opt( "FIND", "DE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "POINTS", "POINTS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "POINTS", "BRIEF", \
+ "", \
+ "Print the table as comma separated lists in C notation." )
+
+#:def_cmd_opt( "POINTS", "LONG", \
+ "", \
+ "Append a string in {--points} format that defines the table. If set" \
+ " twice, append up to 3 strings in different modes." )
+
+#:def_cmd_opt( "ANALYZE", "CLEAN_DOL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "ANALYZE", "LONG", \
+ "", \
+ "Print different lists if bugs found. If set twice, print the lists" \
+ " always." )
+
+#:def_cmd_opt( "PATCH", "DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DEST2", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ESC", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "OVERWRITE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "NUMBER", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REMOVE_DEST", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "UPDATE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PRESERVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "IGNORE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "CLEAN_DOL", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "TRACKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ARENAS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "VS_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BT_REGION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALL_RANKS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "HTTPS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "DOMAIN", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "WIIMMFI", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "PB_MODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "WC24", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "VS", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "BT", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "CANNON", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MENO", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ADD_CTCODE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "CT_DIR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "MOVE_D8", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ADD_SECTION", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "GCT_MOVE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "GCT_ADDR", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "GCT_SPACE", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "ALLOW_USER_GCH", \
+ "", \
+ "" )
+
+#:def_cmd_opt( "PATCH", "FORCE", \
+ "", \
+ "Accept overlapped sections.\n" \
+ ">>> THE RESULT IS MOST LIKELY INVALID! <<<" )
+
+
+##
+###############################################################################
+############### END ###############
+###############################################################################
+