diff options
| author | root <root@dc13.lemmi> | 2020-07-21 10:00:46 +0200 |
|---|---|---|
| committer | root <root@dc13.lemmi> | 2020-07-21 10:00:46 +0200 |
| commit | 1192c4575ea7afdf38e3fa0df4587a08620af11e (patch) | |
| tree | 6910a62487c282d0840d2e668aa7eb40b7c8a3fd /project/src/ui/ui.def | |
| parent | 76de8a89f7c1d1b4522eb66e8f89d248e8c1781f (diff) | |
SZS v2.18a
Diffstat (limited to 'project/src/ui/ui.def')
| -rw-r--r-- | project/src/ui/ui.def | 23034 |
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 ############### +############################################################################### + |
