diff options
Diffstat (limited to '')
33 files changed, 1600 insertions, 691 deletions
diff --git a/project/src/ui/gen-ui.c b/project/src/ui/gen-ui.c index 7563642..40a35a7 100644 --- a/project/src/ui/gen-ui.c +++ b/project/src/ui/gen-ui.c @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * diff --git a/project/src/ui/tab-wbmgt.inc b/project/src/ui/tab-wbmgt.inc index 40a02fa..753342c 100644 --- a/project/src/ui/tab-wbmgt.inc +++ b/project/src/ui/tab-wbmgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -221,6 +221,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wctct.inc b/project/src/ui/tab-wctct.inc index 33e5203..bb24731 100644 --- a/project/src/ui/tab-wctct.inc +++ b/project/src/ui/tab-wctct.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -208,6 +208,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wimgt.inc b/project/src/ui/tab-wimgt.inc index 6c572fc..3ab70bd 100644 --- a/project/src/ui/tab-wimgt.inc +++ b/project/src/ui/tab-wimgt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -178,6 +178,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wkclt.inc b/project/src/ui/tab-wkclt.inc index 682dd7b..2a137c8 100644 --- a/project/src/ui/tab-wkclt.inc +++ b/project/src/ui/tab-wkclt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -169,6 +169,17 @@ " If the flag file already exists, only missing group names" " are added at the end of file." }, + { H_DEF_CMD, "TYPES", "TYPES", + "wkclt TYPES arg...", + "Print a line with KCL flag details for each argument." + " ARG is a comma or space separated list of a optional BASEVAL" + " and a list of TERMS. BASEVAL can be any hexa-decimal number." + " The format of TERMS is @X[=]VALUE@." + " So a TERM begin with letter @T@ (Type), @V@ (Value) or a group" + " identifier (W, X,Y or Z), followed by an optional equal sign" + " and finished by a decimal number." + " It overrides the related part of BASEVAL." }, + { T_DEF_CMD, "FLAGS", "FLAGS|F", "wkclt FLAGS source...", "Print a KCL type and flag usage statistic for each source" @@ -226,6 +237,11 @@ " Hints and warnings are written to standard output." " The exit status is @'DIFFER'@ if at least one KMP warning found." }, + { T_DEF_CMD, "SHA1", "SHA1", + "wszst SHA1 [source]...", + "Print a SHA1 checksum of the KCL for each source." + " The checksum is calculated after patching." }, + { H_DEF_CMD, "ANALYZE", "ANALYZE", "wkclt ANALYZE source...", "Analyze some KCL data." }, @@ -275,6 +291,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, @@ -367,6 +386,18 @@ { T_OPT_CP, "SLOT", "slot", 0, 0 /* copy of wszst */ }, + { T_OPT_C, "ID", "id", + 0, 0 /* copy of wszst */ }, + + { T_OPT_CO, "BASE64", "base64", + 0, 0 /* copy of wszst */ }, + + { T_OPT_CO, "DB64", "db64", + 0, 0 /* copy of wszst */ }, + + { T_OPT_CP, "CODING", "coding", + 0, 0 /* copy of wszst */ }, + { T_OPT_C, "ROUND", "round", 0, 0 /* copy of wszst */ }, @@ -701,6 +732,13 @@ { T_COPT, "CONST", 0,0,0 }, { T_COPT, "FLAG_FILE", 0,0,0 }, + //---------- COMMAND wkclt TYPES ---------- + + { T_CMD_BEG, "TYPES", 0,0,0 }, + { T_COPT, "NO_HEADER", 0,0,0 }, + { T_COPT, "BRIEF", 0,0, + "Print only the resulting flag." }, + //---------- COMMAND wkclt FLAGS ---------- { T_CMD_BEG, "FLAGS", 0,0,0 }, @@ -795,6 +833,19 @@ { T_COPT, "NO_CHECK", 0,0,0 }, { T_COPT, "IGNORE", 0,0,0 }, + //---------- COMMAND wkclt SHA1 ---------- + + { T_CMD_BEG, "SHA1", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_COPT, "ID", 0,0,0 }, + { T_COPT, "BASE64", 0,0,0 }, + { T_COPT, "DB64", 0,0,0 }, + { T_COPT, "CODING", 0,0,0 }, + { T_COPT, "BRIEF", 0,0, + "Suppress output of the filename." }, + { T_SEP_OPT, 0,0,0,0 }, + { T_COPY_GRP, "TRANSFORM", 0,0,0 }, + //---------- COMMAND wkclt ANALYZE ---------- { T_CMD_BEG, "ANALYZE", 0,0,0 }, diff --git a/project/src/ui/tab-wkmpt.inc b/project/src/ui/tab-wkmpt.inc index ace5125..0b2a49a 100644 --- a/project/src/ui/tab-wkmpt.inc +++ b/project/src/ui/tab-wkmpt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -275,6 +275,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wlect.inc b/project/src/ui/tab-wlect.inc index 1aba6e5..d5ac35d 100644 --- a/project/src/ui/tab-wlect.inc +++ b/project/src/ui/tab-wlect.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -231,6 +231,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, @@ -426,6 +429,12 @@ " The file format can be LE-BIN or any supported CT-CODE file" " (BRRES, TEX0, CT-CODE or CT-TEXT)." }, + { H_OPT_CP, "LE_ARENA", "le-arena|learena", + "file", + "Use this file to define property and music defaults for arenas." + " The file format can be an text file." + " Option {--le-define} may override these defaults." }, + { T_OPT_CP, "LPAR", "lpar", "file", "Read a LPAR file to overwrite settings of LE-CODE section LPAR." }, @@ -637,6 +646,7 @@ { T_GRP_BEG, "PATCH", 0,0,0 }, { T_COPT, "LE_DEFINE", 0,0,0 }, + { H_COPT, "LE_ARENA", 0,0,0 }, { T_COPT, "LPAR", 0,0,0 }, { T_COPT, "ALIAS", 0,0,0 }, { T_COPY_GRP, "PARAM", 0,0,0 }, diff --git a/project/src/ui/tab-wmdlt.inc b/project/src/ui/tab-wmdlt.inc index ced4e6a..85018fd 100644 --- a/project/src/ui/tab-wmdlt.inc +++ b/project/src/ui/tab-wmdlt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -201,6 +201,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wpatt.inc b/project/src/ui/tab-wpatt.inc index 5b7e71a..b2f193e 100644 --- a/project/src/ui/tab-wpatt.inc +++ b/project/src/ui/tab-wpatt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -169,6 +169,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, diff --git a/project/src/ui/tab-wstrt.inc b/project/src/ui/tab-wstrt.inc index 3bef0fb..4015738 100644 --- a/project/src/ui/tab-wstrt.inc +++ b/project/src/ui/tab-wstrt.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -116,10 +116,11 @@ " Keywords are @PAL@ (default), @USA@, @JAPAN@, @KOREA@, or any abbreviation of them." " They select the region for the following addresses." " The hex numbers (with or without @0x@ prefix) are interpreted as addresses." - " If possible, they are ported to all other regions." + " If an address begins with @m@ or @s@," + " then it is interpreted as a file offset for @main.dol@ or @staticr.rel@." + " All addresses are ported to all other regions." " The result is printed as colorized table." - "\n" - " This address porting is EXPERIMENTAL!" }, + "\1 See https://szs.wiimm.de/cmd/wstrt/port for more details." }, { T_DEF_CMD, "WHERE", "WHERE", "wstrt WHERE address...", @@ -129,7 +130,8 @@ " The result is output as a human and machine readable table." "\n " " This command is well suited to converting addresses" - " into file offsets and vice versa." }, + " into file offsets and vice versa." + "\1 See https://szs.wiimm.de/cmd/wstrt/where for more details." }, { H_DEF_CMD, "HTTPS", "_HTTPS", "wstrt _HTTPS file...", @@ -230,6 +232,9 @@ { T_OPT_GM, "LOGGING", "L|logging", 0, 0 /* copy of wszst */ }, + { T_OPT_GP, "WARN", "W|warn", + 0, 0 /* copy of wszst */ }, + { T_OPT_G, "DE", "de", 0, 0 /* copy of wszst */ }, @@ -660,7 +665,13 @@ { T_OPT_C, "NO_0X", "0|no-0x|no0x", 0, - "Suppress 0x prefix of hex numbers." }, + "Suppress 0x prefix of hex numbers." + " This is the default for cheat codes." }, + + { T_OPT_C, "UPPER", "U|upper", + 0, + "Print digits A-F of hex numbers in upper case." + " This is the default for cheat codes." }, { T_SEP_OPT, 0,0,0,0 }, //----- separator ----- @@ -995,6 +1006,7 @@ { T_COPT, "PORT_DB", 0,0,0 }, { T_COPT, "ORDER", 0,0,0 }, { T_COPT, "NO_0X", 0,0,0 }, + { T_COPT, "UPPER", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress the table header and footer and output exactly 1 line for" " each specified address. This makes the output more machine-readable." }, @@ -1008,6 +1020,7 @@ { T_CMD_BEG, "WHERE", 0,0,0 }, { T_COPT, "ORDER", 0,0,0 }, { T_COPT, "NO_0X", 0,0,0 }, + { T_COPT, "UPPER", 0,0,0 }, { T_COPT, "NO_HEADER", 0,0, "Suppress the table header and footer and output exactly 1 line for" " each specified address. This makes the output more machine-readable." }, diff --git a/project/src/ui/tab-wszst.inc b/project/src/ui/tab-wszst.inc index 8220457..d836fdf 100644 --- a/project/src/ui/tab-wszst.inc +++ b/project/src/ui/tab-wszst.inc @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -226,6 +226,11 @@ "This hidden command exports some definitions to standard output." " Use keyword @HELP@ to get a list of possible keywords." }, + { H_DEF_CMD, "SIZEOF", "SIZEOF", + "wszst SIZEOF key...", + "This hidden command prints a list with the size of" + " data structures and variables." }, + { H_DEF_CMD, "CODE", "_CODE", "wszst _CODE [files]", "All bytes of all input files are xor'ed with 0xDC and copied to stdout." @@ -340,15 +345,28 @@ { T_DEF_CMD, "SHA1", "SHA1", "wszst SHA1 [source]...", "Print a SHA1 checksum for each source." - " The checksum is calculated by using the uncompressed data." }, + " The checksum is calculated by using the uncompressed data" + " and after patching." }, { T_DEF_CMD, "ANALYZE", "ANALYZE|ANA|ANALYSE", "wszst ANALYZE [source]...", "Analyse track files and print results in machine readable format." }, + { T_DEF_CMD, "IS_TEXTURE", "IS-TEXTURE|ISTEXTURE", + "wszst IS-TEXTURE --reference reference [source]...", + "Test each source to see if it's a texture hack versus a reference file." + " For each source, one human and machine readable status line is printed." + " It is either »-1=err« on error, »1=yes« for a texture hack," + " or »0=no LIST« with a comma separated list of reasons." + "\n " + " At the moment KCL, KMP (see notes) and LEX are checked." + " KMP section CAME has been intentionally left out." + " Section ENPT is only checked if KCL contains a least one face" + " of type force-recalculation." }, + { H_DEF_CMD, "FEATURES", "FEATURES", "wszst FEATURES [source]...", - "Analyse track files and a feature list in machine readable format." }, + "Analyse track files and create a feature list in machine readable format." }, { T_DEF_CMD, "DISTRIBUTION", "DISTRIBUTION|DIST", "wszst DISTRIBUTION result source...\n" @@ -673,9 +691,8 @@ "MAX_WIDTH", "max-width|maxwidth", "maxwidth", "Define the maximum terminal width (number of columns)" - " for help and some other messages" - " and disable the automatic detection of the terminal width." - " This option is ignored if {--width} is set." }, + " for help and some other messages." + " The default is 120. This option is ignored if --width is set." }, { T_OPT_GM, "QUIET", "q|quiet", 0, @@ -695,6 +712,20 @@ 0, "This debug option enables the logging of internal lists and maps." }, + { T_OPT_GP, "WARN", "W|warn", + "list", + "Enable or disable warnings." + " Parameter @'list'@ is a comma separated list of keywords." + " A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning" + " and all other warnings are untouched." + "\n " + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and @ALL@ enables all." + " The other allowed keywords are:" + " @INVALID-OFFSET@." + // "\1 See https://szs.wiimm.de/opt/warn for details." + }, + { T_OPT_G, "DE", "de", 0, "Use german track and arena names." }, @@ -1017,7 +1048,7 @@ "@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 @ON@, assume a battle arena and enable a special 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@." }, @@ -1519,7 +1550,7 @@ { T_OPT_CP, "CODING", "coding", "mode", "Define the coding of the non alphanumeric characters for BASE64:" - " STANDART (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." }, + " STANDARD (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." }, { T_OPT_C, "VERIFY", "verify", 0, @@ -1955,6 +1986,10 @@ "\1 Read https://szs.wiimm.de/opt/source for more details." }, + { T_OPT_CP, "REFERENCE", "ref|reference", + "path", + "Define a reference SZS." }, + { T_OPT_CP, "DEST", "d|dest", "path", "Define a destination path (directory/file)." @@ -2796,6 +2831,16 @@ { T_CMD_BEG, "EXPORT", 0,0,0 }, + //---------- COMMAND wszst _SIZEOF ---------- + + { T_CMD_BEG, "SIZEOF", 0,0,0 }, + { T_COPT, "SORT", 0,0, + "Define a sort mode. Keywords are:" + " @NONE@ (default), @NAME@ end @SIZE@." }, + { T_COPT, "BRIEF", 0,0, + "Limit output to SZS specific data." }, + { T_COPT, "LOGGING", 0,0,0 }, + //---------- COMMAND wszst _CODE ---------- { T_CMD_BEG, "CODE", 0,0,0 }, @@ -2981,9 +3026,19 @@ { T_SEP_OPT, 0,0,0,0 }, { T_COPY_GRP, "SCRIPT", 0,0,0 }, { T_SEP_OPT, 0,0,0,0 }, + { T_COPT, "REFERENCE", 0,0,0 }, { T_COPT, "DEST", 0,0,0 }, { T_COPT, "DEST2", 0,0,0 }, + //---------- COMMAND wszst IS_TEXTURE ---------- + + { T_CMD_BEG, "IS_TEXTURE", 0,0,0 }, + { T_COPT, "IGNORE", 0,0,0 }, + { T_COPT, "REFERENCE", 0,0,0 }, + { T_COPT, "BATTLE", 0,0,0 }, + { T_COPT, "LONG", 0,0, + "Append a colon and the filename after each status." }, + //---------- COMMAND wszst FEATURES ---------- { T_CMD_BEG, "FEATURES", 0,0,0 }, @@ -2992,7 +3047,7 @@ " If set twice, suppress empty lines (for grouping) too." " If set three times, omit inactive features (=0) too." }, { T_COPT, "LONG", 0,0, - "Print additnal comments." }, + "Print additional comments." }, { T_COPT, "IGNORE", 0,0,0 }, { T_COPT, "QUIET", 0,0, "Suppress logging of input and output files." }, diff --git a/project/src/ui/ui-wbmgt.c b/project/src/ui/ui-wbmgt.c index 29ef8b5..aa991c4 100644 --- a/project/src/ui/ui-wbmgt.c +++ b/project/src/ui/ui-wbmgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -349,8 +349,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -371,6 +371,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -531,7 +541,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 63 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 64 }; @@ -660,7 +670,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBM:T:A:td:D:E:orupiP:1X"; +static const char OptionShort[] = "VhqvLW:c:lHBM:T:A:td:D:E:orupiP:1X"; static const struct option OptionLong[] = { @@ -677,6 +687,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -803,7 +814,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0, + /* 0x057 W */ OPT_WARN, /* 0x058 X */ OPT_EXPORT, /* 0x059 */ 0,0,0,0, 0,0,0,0, 0,0, /* 0x063 c */ OPT_CONST, @@ -1029,6 +1040,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1410,7 +1422,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wbmgt [option]... command [option|parameter|file]...", "Wiimms BMG Tool : Convert and patch raw and text BMG (message) files.", 0, - 25, + 26, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wbmgt.h b/project/src/ui/ui-wbmgt.h index e957987..855342f 100644 --- a/project/src/ui/ui-wbmgt.h +++ b/project/src/ui/ui-wbmgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -103,6 +103,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -124,7 +125,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 63 + OPT__N_TOTAL // == 64 } enumOptions; @@ -350,6 +351,7 @@ typedef enum enumGetOpt GO_PATCH_BMG = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_EXPORT = 'X', GO_CONST = 'c', diff --git a/project/src/ui/ui-wctct.c b/project/src/ui/ui-wctct.c index 10469ab..1344aa3 100644 --- a/project/src/ui/ui-wctct.c +++ b/project/src/ui/ui-wctct.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -449,8 +449,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -471,6 +471,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -662,7 +672,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " 0x3b:0x41 and 0x44:0xfe." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 82 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 83 }; @@ -851,7 +861,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHB1XPNM:T:A:td:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:lHB1XPNM:T:A:td:D:E:orupi"; static const struct option OptionLong[] = { @@ -868,6 +878,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -1021,7 +1032,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0, + /* 0x057 W */ OPT_WARN, /* 0x058 X */ OPT_EXPORT, /* 0x059 */ 0,0,0,0, 0,0,0,0, 0,0, /* 0x063 c */ OPT_CONST, @@ -1264,6 +1275,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1642,7 +1654,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms CT-CODE Tool : Manage the CT-CODE extension. BRRES, TEX0," " CT-CODE, CT-TEXT and LE-BIN files are accepted as input.", 0, - 27, + 28, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wctct.h b/project/src/ui/ui-wctct.h index f943d52..532b082 100644 --- a/project/src/ui/ui-wctct.h +++ b/project/src/ui/ui-wctct.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -118,6 +118,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -143,7 +144,7 @@ typedef enum enumOptions OPT_CT_LOG, OPT_ALLOW_SLOTS, - OPT__N_TOTAL // == 82 + OPT__N_TOTAL // == 83 } enumOptions; @@ -420,6 +421,7 @@ typedef enum enumGetOpt GO_NO_PARAM = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_EXPORT = 'X', GO_CONST = 'c', diff --git a/project/src/ui/ui-wimgt.c b/project/src/ui/ui-wimgt.c index 367da79..7ffff1c 100644 --- a/project/src/ui/ui-wimgt.c +++ b/project/src/ui/ui-wimgt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -312,8 +312,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -334,6 +334,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -482,7 +492,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 56 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 57 }; @@ -601,7 +611,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBM:T:A:td:D:E:orupiaP:x:"; +static const char OptionShort[] = "VhqvLW:c:lHBM:T:A:td:D:E:orupiaP:x:"; static const struct option OptionLong[] = { @@ -618,6 +628,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -726,7 +737,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0,0,0,0, 0,0,0,0, 0,0, + /* 0x057 W */ OPT_WARN, + /* 0x058 */ 0,0,0,0, 0,0,0,0, 0, /* 0x061 a */ OPT_ALL, /* 0x062 */ 0, /* 0x063 c */ OPT_CONST, @@ -896,6 +908,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1175,7 +1188,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms Image Tool : Extract and convert graphic images. The file" " formats TPL, TEX, BTI, BREFT and PNG are supported.", 0, - 22, + 23, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wimgt.h b/project/src/ui/ui-wimgt.h index 93bb369..4595e8e 100644 --- a/project/src/ui/ui-wimgt.h +++ b/project/src/ui/ui-wimgt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -97,6 +97,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -117,7 +118,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 56 + OPT__N_TOTAL // == 57 } enumOptions; @@ -282,6 +283,7 @@ typedef enum enumGetOpt GO_PATCH = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_ALL = 'a', GO_CONST = 'c', diff --git a/project/src/ui/ui-wkclt.c b/project/src/ui/ui-wkclt.c index 9670bbd..adcb273 100644 --- a/project/src/ui/ui-wkclt.c +++ b/project/src/ui/ui-wkclt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -261,6 +261,34 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " See https://szs.wiimm.de/opt/slot for details." }, + { OPT_ID, false, false, false, false, false, 0, "id", + 0, + "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)." + }, + + { OPT_BASE64, true, false, false, false, false, 0, "base64", + "[=mode]", + "Encode the the checksum string as BASE64 with 27 characters instead" + " of hex. If a parameter is set, it acts like --coding=mode." + }, + + { OPT_DB64, true, false, false, false, false, 0, "db64", + "[=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." + }, + + { OPT_CODING, false, false, false, false, false, 0, "coding", + "mode", + "Define the coding of the non alphanumeric characters for BASE64:" + " STANDARD (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." + }, + { OPT_ROUND, false, false, false, false, false, 0, "round", 0, "Print additional lines with rounded values (to 3 and 2 bytes for" @@ -365,7 +393,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 37 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 41 //----- global options ----- @@ -421,8 +449,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -443,6 +471,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -642,7 +680,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 72 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 77 }; @@ -773,6 +811,12 @@ static const InfoOption_t option_cmd_CFF_BRIEF = "Suppress the comments with the alternative expression formats." }; +static const InfoOption_t option_cmd_TYPES_BRIEF = + { OPT_BRIEF, false, false, false, false, false, 'B', "brief", + 0, + "Print only the resulting flag." + }; + static const InfoOption_t option_cmd_FLAGS_BRIEF = { OPT_BRIEF, false, false, false, false, false, 'B', "brief", 0, @@ -851,6 +895,12 @@ static const InfoOption_t option_cmd_CHECK_QUIET = "Be quiet until the first warning or hint is found." }; +static const InfoOption_t option_cmd_SHA1_BRIEF = + { OPT_BRIEF, false, false, false, false, false, 'B', "brief", + 0, + "Suppress output of the filename." + }; + // /////////////////////////////////////////////////////////////////////////////// @@ -880,6 +930,7 @@ static const KeywordTab_t CommandTab[] = { CMD_ENCODE, "ENCODE", "ENC", 0 }, { CMD_COPY, "COPY", "CP", 0 }, { CMD_CFF, "CFF", 0, 0 }, + { CMD_TYPES, "TYPES", 0, 0 }, { CMD_FLAGS, "FLAGS", "F", 0 }, { CMD_DUMP, "DUMP", "D", 0 }, { CMD_DBRIEF, "DBRIEF", "DB", 0 }, @@ -888,6 +939,7 @@ static const KeywordTab_t CommandTab[] = { CMD_TRAVERSE, "TRAVERSE", 0, 0 }, { CMD_FALL, "FALL", 0, 0 }, { CMD_CHECK, "CHECK", "CHK", 0 }, + { CMD_SHA1, "SHA1", 0, 0 }, { CMD_ANALYZE, "ANALYZE", 0, 0 }, { CMD_BLOW, "BLOW", 0, 0 }, @@ -899,7 +951,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBPNM:T:A:td:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:lHBPNM:T:A:td:D:E:orupi"; static const struct option OptionLong[] = { @@ -916,6 +968,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -961,6 +1014,10 @@ static const struct option OptionLong[] = { "xtridata", 2, 0, GO_XTRIDATA }, { "xtri", 2, 0, GO_XTRIDATA }, { "slot", 1, 0, GO_SLOT }, + { "id", 0, 0, GO_ID }, + { "base64", 2, 0, GO_BASE64 }, + { "db64", 2, 0, GO_DB64 }, + { "coding", 1, 0, GO_CODING }, { "round", 0, 0, GO_ROUND }, { "long", 0, 0, 'l' }, { "no-header", 0, 0, 'H' }, @@ -1040,7 +1097,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x057 W */ OPT_WARN, + /* 0x058 */ 0,0,0,0, 0,0,0,0, 0,0,0, /* 0x063 c */ OPT_CONST, /* 0x064 d */ OPT_DEST, /* 0x065 */ 0,0,0, @@ -1093,20 +1151,24 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x0a0 */ OPT_FLAG_FILE, /* 0x0a1 */ OPT_XTRIDATA, /* 0x0a2 */ OPT_SLOT, - /* 0x0a3 */ OPT_ROUND, - /* 0x0a4 */ OPT_NO_ECHO, - /* 0x0a5 */ OPT_UTF_8, - /* 0x0a6 */ OPT_NO_UTF_8, - /* 0x0a7 */ OPT_FORCE, - /* 0x0a8 */ OPT_REPAIR_MAGICS, - /* 0x0a9 */ OPT_TINY, - /* 0x0aa */ OPT_OLD, - /* 0x0ab */ OPT_STD, - /* 0x0ac */ OPT_NEW, - /* 0x0ad */ OPT_EXTRACT, - /* 0x0ae */ OPT_NUMBER, - /* 0x0af */ OPT_SECTIONS, - /* 0x0b0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x0a3 */ OPT_ID, + /* 0x0a4 */ OPT_BASE64, + /* 0x0a5 */ OPT_DB64, + /* 0x0a6 */ OPT_CODING, + /* 0x0a7 */ OPT_ROUND, + /* 0x0a8 */ OPT_NO_ECHO, + /* 0x0a9 */ OPT_UTF_8, + /* 0x0aa */ OPT_NO_UTF_8, + /* 0x0ab */ OPT_FORCE, + /* 0x0ac */ OPT_REPAIR_MAGICS, + /* 0x0ad */ OPT_TINY, + /* 0x0ae */ OPT_OLD, + /* 0x0af */ OPT_STD, + /* 0x0b0 */ OPT_NEW, + /* 0x0b1 */ OPT_EXTRACT, + /* 0x0b2 */ OPT_NUMBER, + /* 0x0b3 */ OPT_SECTIONS, + /* 0x0b4 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1122,184 +1184,196 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[37] = // cmd #1 +static u8 option_allowed_cmd_VERSION[41] = // cmd #1 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_HELP[37] = // cmd #2 +static u8 option_allowed_cmd_HELP[41] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_CONFIG[37] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[41] = // cmd #3 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ARGTEST[37] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[41] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_TEST[37] = // cmd #5 +static u8 option_allowed_cmd_TEST[41] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1 + 1,1,1,1,1, 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_COLORS[37] = // cmd #6 +static u8 option_allowed_cmd_COLORS[41] = // cmd #6 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ERROR[37] = // cmd #7 +static u8 option_allowed_cmd_ERROR[41] = // cmd #7 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 1 }; -static u8 option_allowed_cmd_FILETYPE[37] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[41] = // cmd #8 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_FILEATTRIB[37] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[41] = // cmd #9 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_SYMBOLS[37] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[41] = // cmd #10 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FUNCTIONS[37] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[41] = // cmd #11 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_CALCULATE[37] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[41] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_MATRIX[37] = // cmd #13 +static u8 option_allowed_cmd_MATRIX[41] = // cmd #13 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FLOAT[37] = // cmd #14 +static u8 option_allowed_cmd_FLOAT[41] = // cmd #14 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_EXPORT[37] = // cmd #15 +static u8 option_allowed_cmd_EXPORT[41] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0 + 0,0,0,0,0, 0,0,0,0,0, 0 +}; + +static u8 option_allowed_cmd_CAT[41] = // cmd #16 +{ + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_CAT[37] = // cmd #16 +static u8 option_allowed_cmd_DECODE[41] = // cmd #17 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_DECODE[37] = // cmd #17 +static u8 option_allowed_cmd_ENCODE[41] = // cmd #18 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,1, - 1,1,1,1,1, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_ENCODE[37] = // cmd #18 +static u8 option_allowed_cmd_COPY[41] = // cmd #19 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,1, - 1,1,1,1,1, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_COPY[37] = // cmd #19 +static u8 option_allowed_cmd_CFF[41] = // cmd #20 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,1, - 1,1,1,1,1, 1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 1,0,1,0,1, + 1,1,1,1,1, 1,1,1,1,1, 0 }; -static u8 option_allowed_cmd_CFF[37] = // cmd #20 +static u8 option_allowed_cmd_TYPES[41] = // cmd #21 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,1,0,1,0, 1,1,1,1,1, - 1,1,1,1,1, 1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FLAGS[37] = // cmd #21 +static u8 option_allowed_cmd_FLAGS[41] = // cmd #22 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,1,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,1,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_DUMP[37] = // cmd #22 +static u8 option_allowed_cmd_DUMP[41] = // cmd #23 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_DBRIEF[37] = // cmd #23 +static u8 option_allowed_cmd_DBRIEF[41] = // cmd #24 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_LIST[37] = // cmd #24 +static u8 option_allowed_cmd_LIST[41] = // cmd #25 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_TRIANGLES[37] = // cmd #25 +static u8 option_allowed_cmd_TRIANGLES[41] = // cmd #26 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_TRAVERSE[37] = // cmd #26 +static u8 option_allowed_cmd_TRAVERSE[41] = // cmd #27 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_FALL[37] = // cmd #27 +static u8 option_allowed_cmd_FALL[41] = // cmd #28 { - 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,1,0,1,0, 0,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,0,1,0,0, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_CHECK[37] = // cmd #28 +static u8 option_allowed_cmd_CHECK[41] = // cmd #29 { - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,1,0, 1,1,0,0,0, - 0,0,0,0,0, 1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,0,1, + 1,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_ANALYZE[37] = // cmd #29 +static u8 option_allowed_cmd_SHA1[41] = // cmd #30 +{ + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,1, 0 +}; + +static u8 option_allowed_cmd_ANALYZE[41] = // cmd #31 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0 + 0,0,0,0,0, 0,0,0,0,1, 0 }; -static u8 option_allowed_cmd_BLOW[37] = // cmd #30 +static u8 option_allowed_cmd_BLOW[41] = // cmd #32 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 1,0 + 0,0,0,0,0, 0,0,0,0,1, 0 }; @@ -1321,6 +1395,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1688,6 +1763,14 @@ static const InfoOption_t * option_tab_cmd_CFF[] = 0 }; +static const InfoOption_t * option_tab_cmd_TYPES[] = +{ + OptionInfo + OPT_NO_HEADER, + &option_cmd_TYPES_BRIEF, + + 0 +}; + static const InfoOption_t * option_tab_cmd_FLAGS[] = { OptionInfo + OPT_NO_HEADER, @@ -1952,6 +2035,44 @@ static const InfoOption_t * option_tab_cmd_CHECK[] = 0 }; +static const InfoOption_t * option_tab_cmd_SHA1[] = +{ + OptionInfo + OPT_IGNORE, + OptionInfo + OPT_ID, + OptionInfo + OPT_BASE64, + OptionInfo + OPT_DB64, + OptionInfo + OPT_CODING, + &option_cmd_SHA1_BRIEF, + + OptionInfo + OPT_NONE, // separator + + OptionInfo + OPT_CONST, + OptionInfo + OPT_SCALE, + OptionInfo + OPT_SHIFT, + OptionInfo + OPT_XSS, + OptionInfo + OPT_YSS, + OptionInfo + OPT_ZSS, + OptionInfo + OPT_ROT, + OptionInfo + OPT_XROT, + OptionInfo + OPT_YROT, + OptionInfo + OPT_ZROT, + OptionInfo + OPT_TRANSLATE, + OptionInfo + OPT_NULL, + OptionInfo + OPT_NEXT, + OptionInfo + OPT_ASCALE, + OptionInfo + OPT_AROT, + OptionInfo + OPT_TFORM_SCRIPT, + OptionInfo + OPT_KCL, + OptionInfo + OPT_KCL_FLAG, + OptionInfo + OPT_KCL_SCRIPT, + OptionInfo + OPT_TRI_AREA, + OptionInfo + OPT_TRI_HEIGHT, + OptionInfo + OPT_FLAG_FILE, + OptionInfo + OPT_SLOT, + + 0 +}; + static const InfoOption_t * option_tab_cmd_ANALYZE[] = { OptionInfo + OPT_IGNORE, @@ -2010,7 +2131,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KCL Tool : Analyze, modify, export and create KCL and OBJ" " files.", 0, - 26, + 27, option_tab_tool, 0 }, @@ -2358,6 +2479,26 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_CFF }, + { CMD_TYPES, + true, + false, + false, + "TYPES", + 0, + "wkclt TYPES arg...", + "Print a line with KCL flag details for each argument. ARG is a comma" + " or space separated list of a optional BASEVAL and a list of TERMS." + " BASEVAL can be any hexa-decimal number. The format of TERMS is" + " X[=]VALUE. So a TERM begin with letter T (Type), V (Value) or a" + " group identifier (W, X,Y or Z), followed by an optional equal sign" + " and finished by a decimal number. It overrides the related part of" + " BASEVAL.", + 0, + 2, + option_tab_cmd_TYPES, + option_allowed_cmd_TYPES + }, + { CMD_FLAGS, false, false, @@ -2491,6 +2632,21 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_CHECK }, + { CMD_SHA1, + false, + false, + false, + "SHA1", + 0, + "wszst SHA1 [source]...", + "Print a SHA1 checksum of the KCL for each source. The checksum is" + " calculated after patching.", + 0, + 29, + option_tab_cmd_SHA1, + option_allowed_cmd_SHA1 + }, + { CMD_ANALYZE, true, false, diff --git a/project/src/ui/ui-wkclt.h b/project/src/ui/ui-wkclt.h index a23e0d9..50c89ca 100644 --- a/project/src/ui/ui-wkclt.h +++ b/project/src/ui/ui-wkclt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -75,6 +75,10 @@ typedef enum enumOptions OPT_KCL_SCRIPT, OPT_FLAG_FILE, OPT_SLOT, + OPT_ID, + OPT_BASE64, + OPT_DB64, + OPT_CODING, OPT_ROUND, OPT_LONG, OPT_NO_HEADER, @@ -93,7 +97,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 37 + OPT__N_SPECIFIC, // == 41 //----- global options ----- @@ -108,6 +112,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -133,7 +138,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 72 + OPT__N_TOTAL // == 77 } enumOptions; @@ -167,6 +172,10 @@ typedef enum enumOptions // OB_KCL_SCRIPT = 1llu << OPT_KCL_SCRIPT, // OB_FLAG_FILE = 1llu << OPT_FLAG_FILE, // OB_SLOT = 1llu << OPT_SLOT, +// OB_ID = 1llu << OPT_ID, +// OB_BASE64 = 1llu << OPT_BASE64, +// OB_DB64 = 1llu << OPT_DB64, +// OB_CODING = 1llu << OPT_CODING, // OB_ROUND = 1llu << OPT_ROUND, // OB_LONG = 1llu << OPT_LONG, // OB_NO_HEADER = 1llu << OPT_NO_HEADER, @@ -285,6 +294,9 @@ typedef enum enumOptions // | OB_IGNORE // | OB_FLAG_FILE, // +// OB_CMD_TYPES = OB_NO_HEADER +// | OB_BRIEF, +// // OB_CMD_FLAGS = OB_NO_HEADER // | OB_NO_CHECK // | OB_IGNORE @@ -327,6 +339,14 @@ typedef enum enumOptions // | OB_NO_CHECK // | OB_IGNORE, // +// OB_CMD_SHA1 = OB_IGNORE +// | OB_ID +// | OB_BASE64 +// | OB_DB64 +// | OB_CODING +// | OB_BRIEF +// | OB_GRP_TRANSFORM, +// // OB_CMD_ANALYZE = OB_IGNORE // | OB_GRP_TRANSFORM, // @@ -364,6 +384,7 @@ typedef enum enumCommands CMD_ENCODE, CMD_COPY, CMD_CFF, + CMD_TYPES, CMD_FLAGS, CMD_DUMP, CMD_DBRIEF, @@ -372,11 +393,12 @@ typedef enum enumCommands CMD_TRAVERSE, CMD_FALL, CMD_CHECK, + CMD_SHA1, CMD_ANALYZE, CMD_BLOW, - CMD__N // == 31 + CMD__N // == 33 } enumCommands; @@ -400,6 +422,7 @@ typedef enum enumGetOpt GO_NO_PARAM = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_CONST = 'c', GO_DEST = 'd', @@ -449,6 +472,10 @@ typedef enum enumGetOpt GO_FLAG_FILE, GO_XTRIDATA, GO_SLOT, + GO_ID, + GO_BASE64, + GO_DB64, + GO_CODING, GO_ROUND, GO_NO_ECHO, GO_UTF_8, diff --git a/project/src/ui/ui-wkmpt.c b/project/src/ui/ui-wkmpt.c index 3227bcd..3d566eb 100644 --- a/project/src/ui/ui-wkmpt.c +++ b/project/src/ui/ui-wkmpt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -541,8 +541,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -563,6 +563,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -622,7 +632,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_BATTLE, true, false, false, false, false, 0, "battle", "[=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" + " If mode is ON, assume a battle arena and enable a special 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." @@ -867,7 +877,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 93 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 94 }; @@ -1151,7 +1161,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:w:lHBXPGNM:T:A:td:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:w:lHBXPGNM:T:A:td:D:E:orupi"; static const struct option OptionLong[] = { @@ -1168,6 +1178,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -1328,7 +1339,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0, + /* 0x057 W */ OPT_WARN, /* 0x058 X */ OPT_EXPORT, /* 0x059 */ 0,0,0,0, 0,0,0,0, 0,0, /* 0x063 c */ OPT_CONST, @@ -1629,6 +1640,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -2184,7 +2196,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms KMP Tool : Analyze, modify, export and create (compile) KMP" " files.", 0, - 35, + 36, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wkmpt.h b/project/src/ui/ui-wkmpt.h index 7c0fbe2..a40d695 100644 --- a/project/src/ui/ui-wkmpt.h +++ b/project/src/ui/ui-wkmpt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -120,6 +120,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -154,7 +155,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 93 + OPT__N_TOTAL // == 94 } enumOptions; @@ -435,6 +436,7 @@ typedef enum enumGetOpt GO_NO_PARAM = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_EXPORT = 'X', GO_CONST = 'c', diff --git a/project/src/ui/ui-wlect.c b/project/src/ui/ui-wlect.c index ef0a3e4..1c67b0d 100644 --- a/project/src/ui/ui-wlect.c +++ b/project/src/ui/ui-wlect.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -117,6 +117,13 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " CT-TEXT)." }, + { OPT_LE_ARENA, false, true, false, false, false, 0, "le-arena", + "file", + "Use this file to define property and music defaults for arenas. The" + " file format can be an text file. Option --le-define may override" + " these defaults." + }, + { OPT_LPAR, false, false, false, false, false, 0, "lpar", "file", "Read a LPAR file to overwrite settings of LE-CODE section LPAR." @@ -351,7 +358,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 43 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 44 //----- global options ----- @@ -407,8 +414,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -429,6 +436,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -595,7 +612,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 77 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 79 }; @@ -756,7 +773,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBXPM:tCd:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:lHBXPM:tCd:D:E:orupi"; static const struct option OptionLong[] = { @@ -773,6 +790,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -833,6 +851,8 @@ static const struct option OptionLong[] = { "EXTRACT", 0, 0, GO_EXTRACT }, { "le-define", 1, 0, GO_LE_DEFINE }, { "ledefine", 1, 0, GO_LE_DEFINE }, + { "le-arena", 1, 0, GO_LE_ARENA }, + { "learena", 1, 0, GO_LE_ARENA }, { "lpar", 1, 0, GO_LPAR }, { "alias", 1, 0, GO_ALIAS }, { "engine", 1, 0, GO_ENGINE }, @@ -916,7 +936,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x050 P */ OPT_NO_PARAM, /* 0x051 */ 0,0,0,0, 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0, + /* 0x057 W */ OPT_WARN, /* 0x058 X */ OPT_EXPORT, /* 0x059 */ 0,0,0,0, 0,0,0,0, 0,0, /* 0x063 c */ OPT_CONST, @@ -968,29 +988,30 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x09d */ OPT_NEW, /* 0x09e */ OPT_EXTRACT, /* 0x09f */ OPT_LE_DEFINE, - /* 0x0a0 */ OPT_LPAR, - /* 0x0a1 */ OPT_ALIAS, - /* 0x0a2 */ OPT_ENGINE, - /* 0x0a3 */ OPT_200CC, - /* 0x0a4 */ OPT_PERFMON, - /* 0x0a5 */ OPT_CUSTOM_TT, - /* 0x0a6 */ OPT_XPFLAGS, - /* 0x0a7 */ OPT_SPEEDOMETER, - /* 0x0a8 */ OPT_DEBUG, - /* 0x0a9 */ OPT_TRACK_DIR, - /* 0x0aa */ OPT_COPY_TRACKS, - /* 0x0ab */ OPT_MOVE_TRACKS, - /* 0x0ac */ OPT_MOVE1_TRACKS, - /* 0x0ad */ OPT_LINK_TRACKS, - /* 0x0ae */ OPT_LOAD_BMG, - /* 0x0af */ OPT_PATCH_BMG, - /* 0x0b0 */ OPT_MACRO_BMG, - /* 0x0b1 */ OPT_PATCH_NAMES, - /* 0x0b2 */ OPT_ORDER_BY, - /* 0x0b3 */ OPT_ORDER_ALL, - /* 0x0b4 */ OPT_NUMBER, - /* 0x0b5 */ OPT_SECTIONS, - /* 0x0b6 */ 0,0,0,0, 0,0,0,0, 0,0, + /* 0x0a0 */ OPT_LE_ARENA, + /* 0x0a1 */ OPT_LPAR, + /* 0x0a2 */ OPT_ALIAS, + /* 0x0a3 */ OPT_ENGINE, + /* 0x0a4 */ OPT_200CC, + /* 0x0a5 */ OPT_PERFMON, + /* 0x0a6 */ OPT_CUSTOM_TT, + /* 0x0a7 */ OPT_XPFLAGS, + /* 0x0a8 */ OPT_SPEEDOMETER, + /* 0x0a9 */ OPT_DEBUG, + /* 0x0aa */ OPT_TRACK_DIR, + /* 0x0ab */ OPT_COPY_TRACKS, + /* 0x0ac */ OPT_MOVE_TRACKS, + /* 0x0ad */ OPT_MOVE1_TRACKS, + /* 0x0ae */ OPT_LINK_TRACKS, + /* 0x0af */ OPT_LOAD_BMG, + /* 0x0b0 */ OPT_PATCH_BMG, + /* 0x0b1 */ OPT_MACRO_BMG, + /* 0x0b2 */ OPT_PATCH_NAMES, + /* 0x0b3 */ OPT_ORDER_BY, + /* 0x0b4 */ OPT_ORDER_ALL, + /* 0x0b5 */ OPT_NUMBER, + /* 0x0b6 */ OPT_SECTIONS, + /* 0x0b7 */ 0,0,0,0, 0,0,0,0, 0, /* 0x0c0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0d0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, /* 0x0e0 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,0, @@ -1006,154 +1027,154 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[43] = // cmd #1 +static u8 option_allowed_cmd_VERSION[44] = // cmd #1 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_HELP[43] = // cmd #2 +static u8 option_allowed_cmd_HELP[44] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[43] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[44] = // cmd #3 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[43] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[44] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_TEST[43] = // cmd #5 +static u8 option_allowed_cmd_TEST[44] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[43] = // cmd #6 +static u8 option_allowed_cmd_COLORS[44] = // cmd #6 { 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[43] = // cmd #7 +static u8 option_allowed_cmd_ERROR[44] = // cmd #7 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[43] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[44] = // cmd #8 { 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_FILEATTRIB[43] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[44] = // cmd #9 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[43] = // cmd #10 +static u8 option_allowed_cmd_SYMBOLS[44] = // cmd #10 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[43] = // cmd #11 +static u8 option_allowed_cmd_FUNCTIONS[44] = // cmd #11 { 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[43] = // cmd #12 +static u8 option_allowed_cmd_CALCULATE[44] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[43] = // cmd #13 +static u8 option_allowed_cmd_FLOAT[44] = // cmd #13 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[43] = // cmd #14 +static u8 option_allowed_cmd_EXPORT[44] = // cmd #14 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DPAD[43] = // cmd #15 +static u8 option_allowed_cmd_DPAD[44] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DUMP[43] = // cmd #16 +static u8 option_allowed_cmd_DUMP[44] = // cmd #16 { - 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DL[43] = // cmd #17 +static u8 option_allowed_cmd_DL[44] = // cmd #17 { - 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_DLL[43] = // cmd #18 +static u8 option_allowed_cmd_DLL[44] = // cmd #18 { - 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,1,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_BIN_DIFF[43] = // cmd #19 +static u8 option_allowed_cmd_BIN_DIFF[44] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 }; -static u8 option_allowed_cmd_PATCH[43] = // cmd #20 +static u8 option_allowed_cmd_PATCH[44] = // cmd #20 { - 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_LPAR[43] = // cmd #21 +static u8 option_allowed_cmd_LPAR[44] = // cmd #21 { - 0,0,0,1,1, 1,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,1,1, 1,0,0,0,0, 0,1,1,1,1, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_CREATE[43] = // cmd #22 +static u8 option_allowed_cmd_CREATE[44] = // cmd #22 { - 0,0,0,1,1, 1,0,1,1,1, 1,0,1,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,1,1, 1,0,1,1,1, 1,0,0,1,0, 1,1,1,1,1, 1,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_CAT[43] = // cmd #23 +static u8 option_allowed_cmd_CAT[44] = // cmd #23 { - 0,0,0,1,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,1,0 + 0,0,0,1,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0 }; -static u8 option_allowed_cmd_DECODE[43] = // cmd #24 +static u8 option_allowed_cmd_DECODE[44] = // cmd #24 { - 0,0,0,1,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,1,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; -static u8 option_allowed_cmd_ENCODE[43] = // cmd #25 +static u8 option_allowed_cmd_ENCODE[44] = // cmd #25 { - 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 1,1,0 + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,1,1,0 }; @@ -1175,6 +1196,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1573,7 +1595,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wlect [option]... command [option|parameter|file]...", "Wiimms LE-CODE Tool : Manage the LE-CODE and LEX extensions.", 0, - 27, + 28, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wlect.h b/project/src/ui/ui-wlect.h index 15ffb62..4e6198e 100644 --- a/project/src/ui/ui-wlect.h +++ b/project/src/ui/ui-wlect.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -67,6 +67,7 @@ typedef enum enumOptions OPT_LT_ONLINE, OPT_LT_N_PLAYERS, OPT_LE_DEFINE, + OPT_LE_ARENA, OPT_LPAR, OPT_ALIAS, OPT_ENGINE, @@ -99,7 +100,7 @@ typedef enum enumOptions OPT_IGNORE, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 43 + OPT__N_SPECIFIC, // == 44 //----- global options ----- @@ -114,6 +115,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -138,7 +140,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 77 + OPT__N_TOTAL // == 79 } enumOptions; @@ -164,6 +166,7 @@ typedef enum enumOptions // OB_LT_ONLINE = 1llu << OPT_LT_ONLINE, // OB_LT_N_PLAYERS = 1llu << OPT_LT_N_PLAYERS, // OB_LE_DEFINE = 1llu << OPT_LE_DEFINE, +// OB_LE_ARENA = 1llu << OPT_LE_ARENA, // OB_LPAR = 1llu << OPT_LPAR, // OB_ALIAS = 1llu << OPT_ALIAS, // OB_ENGINE = 1llu << OPT_ENGINE, @@ -216,6 +219,7 @@ typedef enum enumOptions // | OB_DEBUG, // // OB_GRP_PATCH = OB_LE_DEFINE +// | OB_LE_ARENA // | OB_LPAR // | OB_ALIAS // | OB_GRP_PARAM, @@ -379,6 +383,7 @@ typedef enum enumGetOpt GO_MAX_FILE_SIZE = 'M', GO_NO_PARAM = 'P', GO_VERSION = 'V', + GO_WARN = 'W', GO_EXPORT = 'X', GO_CONST = 'c', @@ -426,6 +431,7 @@ typedef enum enumGetOpt GO_NEW, GO_EXTRACT, GO_LE_DEFINE, + GO_LE_ARENA, GO_LPAR, GO_ALIAS, GO_ENGINE, diff --git a/project/src/ui/ui-wmdlt.c b/project/src/ui/ui-wmdlt.c index 712ab1e..14d0016 100644 --- a/project/src/ui/ui-wmdlt.c +++ b/project/src/ui/ui-wmdlt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -371,8 +371,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -393,6 +393,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -562,7 +572,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 65 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 66 }; @@ -719,7 +729,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBPNM:T:A:td:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:lHBPNM:T:A:td:D:E:orupi"; static const struct option OptionLong[] = { @@ -736,6 +746,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -843,7 +854,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x057 W */ OPT_WARN, + /* 0x058 */ 0,0,0,0, 0,0,0,0, 0,0,0, /* 0x063 c */ OPT_CONST, /* 0x064 d */ OPT_DEST, /* 0x065 */ 0,0,0, @@ -1064,6 +1076,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1439,7 +1452,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wmdlt [option]... command [option|parameter|file]...", "Wiimms MDL Tool : Decode raw MDL and encode text MDL files.", 0, - 24, + 25, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wmdlt.h b/project/src/ui/ui-wmdlt.h index 80b7b9b..54e94e3 100644 --- a/project/src/ui/ui-wmdlt.h +++ b/project/src/ui/ui-wmdlt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -104,6 +104,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -126,7 +127,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 65 + OPT__N_TOTAL // == 66 } enumOptions; @@ -343,6 +344,7 @@ typedef enum enumGetOpt GO_NO_PARAM = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_CONST = 'c', GO_DEST = 'd', diff --git a/project/src/ui/ui-wpatt.c b/project/src/ui/ui-wpatt.c index 3e4d23a..b0df846 100644 --- a/project/src/ui/ui-wpatt.c +++ b/project/src/ui/ui-wpatt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -213,8 +213,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -235,6 +235,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -393,7 +403,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 49 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 50 }; @@ -516,7 +526,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHBPNM:T:A:td:D:E:orupi"; +static const char OptionShort[] = "VhqvLW:c:lHBPNM:T:A:td:D:E:orupi"; static const struct option OptionLong[] = { @@ -533,6 +543,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -622,7 +633,8 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x057 W */ OPT_WARN, + /* 0x058 */ 0,0,0,0, 0,0,0,0, 0,0,0, /* 0x063 c */ OPT_CONST, /* 0x064 d */ OPT_DEST, /* 0x065 */ 0,0,0, @@ -787,6 +799,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -987,7 +1000,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wpatt [option]... command [option|parameter|file]...", "Wiimms PAT Tool : Decode raw PAT and encode text PAT files.", 0, - 23, + 24, option_tab_tool, 0 }, diff --git a/project/src/ui/ui-wpatt.h b/project/src/ui/ui-wpatt.h index 06cf1ed..414f0a8 100644 --- a/project/src/ui/ui-wpatt.h +++ b/project/src/ui/ui-wpatt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -89,6 +89,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -110,7 +111,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 49 + OPT__N_TOTAL // == 50 } enumOptions; @@ -266,6 +267,7 @@ typedef enum enumGetOpt GO_NO_PARAM = 'P', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_CONST = 'c', GO_DEST = 'd', diff --git a/project/src/ui/ui-wstrt.c b/project/src/ui/ui-wstrt.c index 32cace8..b82ca2a 100644 --- a/project/src/ui/ui-wstrt.c +++ b/project/src/ui/ui-wstrt.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -306,7 +306,14 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_NO_0X, false, false, false, false, false, '0', "no-0x", 0, - "Suppress 0x prefix of hex numbers." + "Suppress 0x prefix of hex numbers. This is the default for cheat" + " codes." + }, + + { OPT_UPPER, false, false, false, false, false, 'U', "upper", + 0, + "Print digits A-F of hex numbers in upper case. This is the default" + " for cheat codes." }, { OPT_VADDR, false, false, false, false, true, 0, "vaddr", @@ -479,7 +486,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " dependent (multiple of format size)." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 65 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 66 //----- global options ----- @@ -540,8 +547,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -562,6 +569,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -869,7 +886,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " directory." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 116 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 118 }; @@ -1079,7 +1096,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "Vh@qvLc:lBHT:A:R:td:D:E:orupi0"; +static const char OptionShort[] = "Vh@qvLW:c:lBHT:A:R:td:D:E:orupi0U"; static const struct option OptionLong[] = { @@ -1097,6 +1114,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -1210,6 +1228,7 @@ static const struct option OptionLong[] = { "order", 1, 0, GO_ORDER }, { "no-0x", 0, 0, '0' }, { "no0x", 0, 0, '0' }, + { "upper", 0, 0, 'U' }, { "vaddr", 1, 0, GO_VADDR }, { "va", 1, 0, GO_VADDR }, { "faddr", 1, 0, GO_FADDR }, @@ -1281,9 +1300,10 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x052 R */ OPT_REGION, /* 0x053 */ 0, /* 0x054 T */ OPT_TRACKS, - /* 0x055 */ 0, + /* 0x055 U */ OPT_UPPER, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0,0,0,0, 0,0,0,0, 0,0,0,0, + /* 0x057 W */ OPT_WARN, + /* 0x058 */ 0,0,0,0, 0,0,0,0, 0,0,0, /* 0x063 c */ OPT_CONST, /* 0x064 d */ OPT_DEST, /* 0x065 */ 0,0,0, @@ -1407,172 +1427,172 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[65] = // cmd #1 +static u8 option_allowed_cmd_VERSION[66] = // cmd #1 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_HELP[65] = // cmd #2 +static u8 option_allowed_cmd_HELP[66] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1 + 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_CONFIG[65] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[66] = // cmd #3 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ARGTEST[65] = // cmd #4 +static u8 option_allowed_cmd_ARGTEST[66] = // cmd #4 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1 + 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_TEST[65] = // cmd #5 +static u8 option_allowed_cmd_TEST[66] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1 + 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_COLORS[65] = // cmd #6 +static u8 option_allowed_cmd_COLORS[66] = // cmd #6 { 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ERROR[65] = // cmd #7 +static u8 option_allowed_cmd_ERROR[66] = // cmd #7 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FILETYPE[65] = // cmd #8 +static u8 option_allowed_cmd_FILETYPE[66] = // cmd #8 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FILEATTRIB[65] = // cmd #9 +static u8 option_allowed_cmd_FILEATTRIB[66] = // cmd #9 { 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_RAWDUMP[65] = // cmd #10 +static u8 option_allowed_cmd_RAWDUMP[66] = // cmd #10 { 0,0,0,0,0, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_DUMP[65] = // cmd #11 +static u8 option_allowed_cmd_DUMP[66] = // cmd #11 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_CDUMP[65] = // cmd #12 +static u8 option_allowed_cmd_CDUMP[66] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_HEXDUMP[65] = // cmd #13 +static u8 option_allowed_cmd_HEXDUMP[66] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1 + 0,0,0,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, + 1,1,1,1,1, 1 }; -static u8 option_allowed_cmd_PORT[65] = // cmd #14 +static u8 option_allowed_cmd_PORT[66] = // cmd #14 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_WHERE[65] = // cmd #15 +static u8 option_allowed_cmd_WHERE[66] = // cmd #15 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_HTTPS[65] = // cmd #16 +static u8 option_allowed_cmd_HTTPS[66] = // cmd #16 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_EXTRACT[65] = // cmd #17 +static u8 option_allowed_cmd_EXTRACT[66] = // cmd #17 { 0,0,0,0,0, 0,1,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_TRACKS[65] = // cmd #18 +static u8 option_allowed_cmd_TRACKS[66] = // cmd #18 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ARENAS[65] = // cmd #19 +static u8 option_allowed_cmd_ARENAS[66] = // cmd #19 { 0,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FILES[65] = // cmd #20 +static u8 option_allowed_cmd_FILES[66] = // cmd #20 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_FIND[65] = // cmd #21 +static u8 option_allowed_cmd_FIND[66] = // cmd #21 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_POINTS[65] = // cmd #22 +static u8 option_allowed_cmd_POINTS[66] = // cmd #22 { 0,1,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_ANALYZE[65] = // cmd #23 +static u8 option_allowed_cmd_ANALYZE[66] = // cmd #23 { 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; -static u8 option_allowed_cmd_PATCH[65] = // cmd #24 +static u8 option_allowed_cmd_PATCH[66] = // cmd #24 { 0,0,0,0,0, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0 + 0,0,0,0,0, 0 }; @@ -1594,6 +1614,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -1772,6 +1793,7 @@ static const InfoOption_t * option_tab_cmd_PORT[] = OptionInfo + OPT_PORT_DB, OptionInfo + OPT_ORDER, OptionInfo + OPT_NO_0X, + OptionInfo + OPT_UPPER, &option_cmd_PORT_NO_HEADER, &option_cmd_PORT_BRIEF, &option_cmd_PORT_LONG, @@ -1783,6 +1805,7 @@ static const InfoOption_t * option_tab_cmd_WHERE[] = { OptionInfo + OPT_ORDER, OptionInfo + OPT_NO_0X, + OptionInfo + OPT_UPPER, &option_cmd_WHERE_NO_HEADER, &option_cmd_WHERE_BRIEF, &option_cmd_WHERE_LONG, @@ -1997,7 +2020,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "Wiimms StaticR Tool : Manipulate the 'main.dol' and 'StaticR.rel'" " files of Mario Kart Wii.", 0, - 39, + 40, option_tab_tool, 0 }, @@ -2218,12 +2241,13 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "The command expects a list of keywords or hex numbers. Keywords are" " PAL (default), USA, JAPAN, KOREA, or any abbreviation of them. They" " select the region for the following addresses. The hex numbers (with" - " or without 0x prefix) are interpreted as addresses. If possible," - " they are ported to all other regions. The result is printed as" - " colorized table.\n" - " This address porting is EXPERIMENTAL!", + " or without 0x prefix) are interpreted as addresses. If an address" + " begins with m or s, then it is interpreted as a file offset for" + " main.dol or staticr.rel. All addresses are ported to all other" + " regions. The result is printed as colorized table. See" + " https://szs.wiimm.de/cmd/wstrt/port for more details.", 0, - 6, + 7, option_tab_cmd_PORT, option_allowed_cmd_PORT }, @@ -2239,9 +2263,10 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " in which the specified addresses are located is calculated for each" " region. The result is output as a human and machine readable table.\n" " This command is well suited to converting addresses into file" - " offsets and vice versa.", + " offsets and vice versa. See https://szs.wiimm.de/cmd/wstrt/where for" + " more details.", 0, - 5, + 6, option_tab_cmd_WHERE, option_allowed_cmd_WHERE }, diff --git a/project/src/ui/ui-wstrt.h b/project/src/ui/ui-wstrt.h index f3ca5e2..31ecfe0 100644 --- a/project/src/ui/ui-wstrt.h +++ b/project/src/ui/ui-wstrt.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -89,6 +89,7 @@ typedef enum enumOptions OPT_PORT_DB, OPT_ORDER, OPT_NO_0X, + OPT_UPPER, OPT_VADDR, OPT_FADDR, OPT_SNAME, @@ -121,7 +122,7 @@ typedef enum enumOptions OPT_WIDE, OPT_BYTES, - OPT__N_SPECIFIC, // == 65 + OPT__N_SPECIFIC, // == 66 //----- global options ----- @@ -137,6 +138,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -177,7 +179,7 @@ typedef enum enumOptions OPT_CLEAN_DOL, OPT_CT_DIR, - OPT__N_TOTAL // == 116 + OPT__N_TOTAL // == 118 } enumOptions; @@ -225,6 +227,7 @@ typedef enum enumOptions // OB_PORT_DB = 1llu << OPT_PORT_DB, // OB_ORDER = 1llu << OPT_ORDER, // OB_NO_0X = 1llu << OPT_NO_0X, +// OB_UPPER = 1llu << OPT_UPPER, // OB_VADDR = 1llu << OPT_VADDR, // OB_FADDR = 1llu << OPT_FADDR, // OB_SNAME = 1llu << OPT_SNAME, @@ -340,12 +343,14 @@ typedef enum enumOptions // OB_CMD_PORT = OB_PORT_DB // | OB_ORDER // | OB_NO_0X +// | OB_UPPER // | OB_NO_HEADER // | OB_BRIEF // | OB_LONG, // // OB_CMD_WHERE = OB_ORDER // | OB_NO_0X +// | OB_UPPER // | OB_NO_HEADER // | OB_BRIEF // | OB_LONG, @@ -459,7 +464,9 @@ typedef enum enumGetOpt GO_LOGGING = 'L', GO_REGION = 'R', GO_TRACKS = 'T', + GO_UPPER = 'U', GO_VERSION = 'V', + GO_WARN = 'W', GO_CONST = 'c', GO_DEST = 'd', diff --git a/project/src/ui/ui-wszst.c b/project/src/ui/ui-wszst.c index 124c1ea..1d62e8e 100644 --- a/project/src/ui/ui-wszst.c +++ b/project/src/ui/ui-wszst.c @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -466,7 +466,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_CODING, false, false, false, false, false, 0, "coding", "mode", "Define the coding of the non alphanumeric characters for BASE64:" - " STANDART (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." + " STANDARD (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." }, { OPT_VERIFY, false, false, false, false, false, 0, "verify", @@ -720,6 +720,11 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " https://szs.wiimm.de/opt/source for more details." }, + { OPT_REFERENCE, false, false, false, false, false, 0, "ref", + "path", + "Define a reference SZS." + }, + { OPT_DEST, false, false, false, false, false, 'd', "dest", "path", "Define a destination path (directory/file). The destination - means:" @@ -1127,7 +1132,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "Print in machine readable sections and parameter lines." }, - {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 134 + {0,0,0,0,0,0,0,0,0,0}, // OPT__N_SPECIFIC == 135 //----- global options ----- @@ -1183,8 +1188,8 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_MAX_WIDTH, false, false, false, true, false, 0, "max-width", "maxwidth", "Define the maximum terminal width (number of columns) for help and" - " some other messages and disable the automatic detection of the" - " terminal width. This option is ignored if --width is set." + " some other messages. The default is 120. This option is ignored if" + " --width is set." }, { OPT_QUIET, false, false, false, false, false, 'q', "quiet", @@ -1205,6 +1210,16 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = "This debug option enables the logging of internal lists and maps." }, + { OPT_WARN, false, false, false, false, false, 'W', "warn", + "list", + "Enable or disable warnings. Parameter 'list' is a comma separated" + " list of keywords. A minus sign before a keyword disables a warning." + " Each occurrence of the option will only change entered warning and" + " all other warnings are untouched.\n" + " Keyword DEFAULT resets the default settings, OFF disables and ALL" + " enables all. The other allowed keywords are: INVALID-OFFSET." + }, + { OPT_DE, false, false, false, false, false, 0, "de", 0, "Use german track and arena names." @@ -1264,7 +1279,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = { OPT_BATTLE, true, false, false, false, false, 0, "battle", "[=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" + " If mode is ON, assume a battle arena and enable a special 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." @@ -1753,7 +1768,7 @@ static const InfoOption_t OptionInfo[OPT__N_TOTAL+1] = " helper option." }, - {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 209 + {0,0,0,0,0,0,0,0,0,0} // OPT__N_TOTAL == 211 }; @@ -1964,6 +1979,18 @@ static const InfoOption_t option_cmd_TRACKS_LONG = " old BRRES sub file formats too." }; +static const InfoOption_t option_cmd_SIZEOF_SORT = + { OPT_SORT, false, false, false, false, false, 'S', "sort", + "mode", + "Define a sort mode. Keywords are: NONE (default), NAME end SIZE." + }; + +static const InfoOption_t option_cmd_SIZEOF_BRIEF = + { OPT_BRIEF, false, false, false, false, false, 'B', "brief", + 0, + "Limit output to SZS specific data." + }; + static const InfoOption_t option_cmd_LIST_LONG = { OPT_LONG, false, false, false, false, false, 'l', "long", 0, @@ -2058,6 +2085,12 @@ static const InfoOption_t option_cmd_ANALYZE_QUIET = "Suppress logging of input and output files." }; +static const InfoOption_t option_cmd_IS_TEXTURE_LONG = + { OPT_LONG, false, false, false, false, false, 'l', "long", + 0, + "Append a colon and the filename after each status." + }; + static const InfoOption_t option_cmd_FEATURES_BRIEF = { OPT_BRIEF, false, false, false, false, false, 'B', "brief", 0, @@ -2068,7 +2101,7 @@ static const InfoOption_t option_cmd_FEATURES_BRIEF = static const InfoOption_t option_cmd_FEATURES_LONG = { OPT_LONG, false, false, false, false, false, 'l', "long", 0, - "Print additnal comments." + "Print additional comments." }; static const InfoOption_t option_cmd_FEATURES_QUIET = @@ -2258,6 +2291,7 @@ static const KeywordTab_t CommandTab[] = { CMD_TRACKS, "TRACKS", 0, 0 }, { CMD_SCANCACHE, "SCANCACHE", 0, 0 }, { CMD_EXPORT, "_EXPORT", 0, 0 }, + { CMD_SIZEOF, "SIZEOF", 0, 0 }, { CMD_CODE, "_CODE", 0, 0 }, { CMD_RECODE, "_RECODE", 0, 0 }, { CMD_SUBFILE, "_SUBFILE", 0, 0 }, @@ -2288,6 +2322,7 @@ static const KeywordTab_t CommandTab[] = { CMD_SHA1, "SHA1", 0, 0 }, { CMD_ANALYZE, "ANALYZE", "ANA", 0 }, { CMD_ANALYZE, "ANALYSE", 0, 0 }, + { CMD_IS_TEXTURE, "IS-TEXTURE", "ISTEXTURE", 0 }, { CMD_FEATURES, "FEATURES", 0, 0 }, { CMD_DISTRIBUTION, "DISTRIBUTION", "DIST", 0 }, { CMD_DIFF, "DIFF", "CMP", 0 }, @@ -2330,7 +2365,7 @@ static const KeywordTab_t CommandTab[] = /////////////// OptionShort & OptionLong /////////////// /////////////////////////////////////////////////////////////////////////////// -static const char OptionShort[] = "VhqvLc:lHB1XPS:M:T:A:x:ts:d:D:E:orupiNC:nRea"; +static const char OptionShort[] = "VhqvLW:c:lHB1XPS:M:T:A:x:ts:d:D:E:orupiNC:nRea"; static const struct option OptionLong[] = { @@ -2347,6 +2382,7 @@ static const struct option OptionLong[] = { "quiet", 0, 0, 'q' }, { "verbose", 0, 0, 'v' }, { "logging", 0, 0, 'L' }, + { "warn", 1, 0, 'W' }, { "de", 0, 0, GO_DE }, { "colors", 2, 0, GO_COLORS }, { "no-colors", 0, 0, GO_NO_COLORS }, @@ -2575,6 +2611,8 @@ static const struct option OptionLong[] = { "EXTRACT", 1, 0, GO_EXTRACT }, { "source", 1, 0, 's' }, { "src", 1, 0, 's' }, + { "ref", 1, 0, GO_REFERENCE }, + { "reference", 1, 0, GO_REFERENCE }, { "dest", 1, 0, 'd' }, { "DEST", 1, 0, 'D' }, { "esc", 1, 0, 'E' }, @@ -2721,7 +2759,7 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x054 T */ OPT_TRACKS, /* 0x055 */ 0, /* 0x056 V */ OPT_VERSION, - /* 0x057 */ 0, + /* 0x057 W */ OPT_WARN, /* 0x058 X */ OPT_EXPORT, /* 0x059 */ 0,0,0,0, 0,0,0,0, /* 0x061 a */ OPT_ALL, @@ -2880,49 +2918,50 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /* 0x102 */ OPT_STD, /* 0x103 */ OPT_NEW, /* 0x104 */ OPT_EXTRACT, - /* 0x105 */ OPT_NUMBER, - /* 0x106 */ OPT_REMOVE_SRC, - /* 0x107 */ OPT_IGNORE_SETUP, - /* 0x108 */ OPT_PURGE, - /* 0x109 */ OPT_ALIGN_U8, - /* 0x10a */ OPT_ALIGN_PACK, - /* 0x10b */ OPT_ALIGN_BRRES, - /* 0x10c */ OPT_ALIGN_BREFF, - /* 0x10d */ OPT_ALIGN_BREFT, - /* 0x10e */ OPT_ALIGN, - /* 0x10f */ OPT_ENCODE_ALL, - /* 0x110 */ OPT_ENCODE_IMG, - /* 0x111 */ OPT_NO_ENCODE, - /* 0x112 */ OPT_NO_RECURSE, - /* 0x113 */ OPT_AUTO_ADD, - /* 0x114 */ OPT_NO_ECHO, - /* 0x115 */ OPT_PT_DIR, - /* 0x116 */ OPT_RM_AIPARAM, - /* 0x117 */ OPT_U8, - /* 0x118 */ OPT_SZS, - /* 0x119 */ OPT_WU8, - /* 0x11a */ OPT_XWU8, - /* 0x11b */ OPT_WBZ, - /* 0x11c */ OPT_PACK, - /* 0x11d */ OPT_BRRES, - /* 0x11e */ OPT_BREFF, - /* 0x11f */ OPT_BREFT, - /* 0x120 */ OPT_NO_COMPRESS, - /* 0x121 */ OPT_FAST, - /* 0x122 */ OPT_LINKS, - /* 0x123 */ OPT_BASEDIR, - /* 0x124 */ OPT_DECODE, - /* 0x125 */ OPT_MIPMAPS, - /* 0x126 */ OPT_NO_MIPMAPS, - /* 0x127 */ OPT_N_MIPMAPS, - /* 0x128 */ OPT_MAX_MIPMAPS, - /* 0x129 */ OPT_MIPMAP_SIZE, - /* 0x12a */ OPT_FAST_MIPMAPS, - /* 0x12b */ OPT_CMPR_DEFAULT, - /* 0x12c */ OPT_CUT, - /* 0x12d */ OPT_RAW, - /* 0x12e */ OPT_SECTIONS, - /* 0x12f */ 0,0,0,0, 0,0,0, + /* 0x105 */ OPT_REFERENCE, + /* 0x106 */ OPT_NUMBER, + /* 0x107 */ OPT_REMOVE_SRC, + /* 0x108 */ OPT_IGNORE_SETUP, + /* 0x109 */ OPT_PURGE, + /* 0x10a */ OPT_ALIGN_U8, + /* 0x10b */ OPT_ALIGN_PACK, + /* 0x10c */ OPT_ALIGN_BRRES, + /* 0x10d */ OPT_ALIGN_BREFF, + /* 0x10e */ OPT_ALIGN_BREFT, + /* 0x10f */ OPT_ALIGN, + /* 0x110 */ OPT_ENCODE_ALL, + /* 0x111 */ OPT_ENCODE_IMG, + /* 0x112 */ OPT_NO_ENCODE, + /* 0x113 */ OPT_NO_RECURSE, + /* 0x114 */ OPT_AUTO_ADD, + /* 0x115 */ OPT_NO_ECHO, + /* 0x116 */ OPT_PT_DIR, + /* 0x117 */ OPT_RM_AIPARAM, + /* 0x118 */ OPT_U8, + /* 0x119 */ OPT_SZS, + /* 0x11a */ OPT_WU8, + /* 0x11b */ OPT_XWU8, + /* 0x11c */ OPT_WBZ, + /* 0x11d */ OPT_PACK, + /* 0x11e */ OPT_BRRES, + /* 0x11f */ OPT_BREFF, + /* 0x120 */ OPT_BREFT, + /* 0x121 */ OPT_NO_COMPRESS, + /* 0x122 */ OPT_FAST, + /* 0x123 */ OPT_LINKS, + /* 0x124 */ OPT_BASEDIR, + /* 0x125 */ OPT_DECODE, + /* 0x126 */ OPT_MIPMAPS, + /* 0x127 */ OPT_NO_MIPMAPS, + /* 0x128 */ OPT_N_MIPMAPS, + /* 0x129 */ OPT_MAX_MIPMAPS, + /* 0x12a */ OPT_MIPMAP_SIZE, + /* 0x12b */ OPT_FAST_MIPMAPS, + /* 0x12c */ OPT_CMPR_DEFAULT, + /* 0x12d */ OPT_CUT, + /* 0x12e */ OPT_RAW, + /* 0x12f */ OPT_SECTIONS, + /* 0x130 */ 0,0,0,0, 0,0, }; // @@ -2930,688 +2969,706 @@ static const OptionIndex_t OptionIndex[UIOPT_INDEX_SIZE] = /////////////// opt_allowed_cmd_* /////////////// /////////////////////////////////////////////////////////////////////////////// -static u8 option_allowed_cmd_VERSION[134] = // cmd #1 +static u8 option_allowed_cmd_VERSION[135] = // cmd #1 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_HELP[134] = // cmd #2 +static u8 option_allowed_cmd_HELP[135] = // cmd #2 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_CONFIG[134] = // cmd #3 +static u8 option_allowed_cmd_CONFIG[135] = // cmd #3 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_INSTALL[134] = // cmd #4 +static u8 option_allowed_cmd_INSTALL[135] = // cmd #4 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ARGTEST[134] = // cmd #5 +static u8 option_allowed_cmd_ARGTEST[135] = // cmd #5 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_TEST[134] = // cmd #6 +static u8 option_allowed_cmd_TEST[135] = // cmd #6 { 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1 + 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1 }; -static u8 option_allowed_cmd_COLORS[134] = // cmd #7 +static u8 option_allowed_cmd_COLORS[135] = // cmd #7 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ERROR[134] = // cmd #8 +static u8 option_allowed_cmd_ERROR[135] = // cmd #8 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_FILETYPE[134] = // cmd #9 +static u8 option_allowed_cmd_FILETYPE[135] = // cmd #9 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FILEATTRIB[134] = // cmd #10 +static u8 option_allowed_cmd_FILEATTRIB[135] = // cmd #10 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_BRSUB[134] = // cmd #11 +static u8 option_allowed_cmd_BRSUB[135] = // cmd #11 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_SYMBOLS[134] = // cmd #12 +static u8 option_allowed_cmd_SYMBOLS[135] = // cmd #12 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FUNCTIONS[134] = // cmd #13 +static u8 option_allowed_cmd_FUNCTIONS[135] = // cmd #13 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_CALCULATE[134] = // cmd #14 +static u8 option_allowed_cmd_CALCULATE[135] = // cmd #14 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_MATRIX[134] = // cmd #15 +static u8 option_allowed_cmd_MATRIX[135] = // cmd #15 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FLOAT[134] = // cmd #16 +static u8 option_allowed_cmd_FLOAT[135] = // cmd #16 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_VR_CALC[134] = // cmd #17 +static u8 option_allowed_cmd_VR_CALC[135] = // cmd #17 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_VR_RACE[134] = // cmd #18 +static u8 option_allowed_cmd_VR_RACE[135] = // cmd #18 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_AUTOADD[134] = // cmd #19 +static u8 option_allowed_cmd_AUTOADD[135] = // cmd #19 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,1,0,0,1, 0,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,1,0,0, 1,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_TRACKS[134] = // cmd #20 +static u8 option_allowed_cmd_TRACKS[135] = // cmd #20 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,1,0,0, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0 }; -static u8 option_allowed_cmd_SCANCACHE[134] = // cmd #21 +static u8 option_allowed_cmd_SCANCACHE[135] = // cmd #21 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_EXPORT[134] = // cmd #22 +static u8 option_allowed_cmd_EXPORT[135] = // cmd #22 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_CODE[134] = // cmd #23 +static u8 option_allowed_cmd_SIZEOF[135] = // cmd #23 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 +}; + +static u8 option_allowed_cmd_CODE[135] = // cmd #24 +{ 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_RECODE[134] = // cmd #24 +static u8 option_allowed_cmd_RECODE[135] = // cmd #25 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_SUBFILE[134] = // cmd #25 +static u8 option_allowed_cmd_SUBFILE[135] = // cmd #26 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_TESTNORM[134] = // cmd #26 +static u8 option_allowed_cmd_TESTNORM[135] = // cmd #27 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_LIST[134] = // cmd #27 +static u8 option_allowed_cmd_LIST[135] = // cmd #28 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_LIST_L[134] = // cmd #28 +static u8 option_allowed_cmd_LIST_L[135] = // cmd #29 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LL[134] = // cmd #29 +static u8 option_allowed_cmd_LIST_LL[135] = // cmd #30 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LLL[134] = // cmd #30 +static u8 option_allowed_cmd_LIST_LLL[135] = // cmd #31 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_LIST_A[134] = // cmd #31 +static u8 option_allowed_cmd_LIST_A[135] = // cmd #32 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_LIST_LA[134] = // cmd #32 +static u8 option_allowed_cmd_LIST_LA[135] = // cmd #33 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,0,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,0,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_NAME_REF[134] = // cmd #33 +static u8 option_allowed_cmd_NAME_REF[135] = // cmd #34 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ILIST[134] = // cmd #34 +static u8 option_allowed_cmd_ILIST[135] = // cmd #35 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_L[134] = // cmd #35 +static u8 option_allowed_cmd_ILIST_L[135] = // cmd #36 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_LL[134] = // cmd #36 +static u8 option_allowed_cmd_ILIST_LL[135] = // cmd #37 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_A[134] = // cmd #37 +static u8 option_allowed_cmd_ILIST_A[135] = // cmd #38 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_ILIST_LA[134] = // cmd #38 +static u8 option_allowed_cmd_ILIST_LA[135] = // cmd #39 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_MEMORY[134] = // cmd #39 +static u8 option_allowed_cmd_MEMORY[135] = // cmd #40 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_MEMORY_A[134] = // cmd #40 +static u8 option_allowed_cmd_MEMORY_A[135] = // cmd #41 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,0,0 }; -static u8 option_allowed_cmd_DUMP[134] = // cmd #41 +static u8 option_allowed_cmd_DUMP[135] = // cmd #42 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_SHA1[134] = // cmd #42 +static u8 option_allowed_cmd_SHA1[135] = // cmd #43 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, 1,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 +}; + +static u8 option_allowed_cmd_ANALYZE[135] = // cmd #44 +{ + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,0,0,0,0, 0,0,0,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_ANALYZE[134] = // cmd #43 +static u8 option_allowed_cmd_IS_TEXTURE[135] = // cmd #45 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_FEATURES[134] = // cmd #44 +static u8 option_allowed_cmd_FEATURES[135] = // cmd #46 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,1, 1,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_DISTRIBUTION[134] = // cmd #45 +static u8 option_allowed_cmd_DISTRIBUTION[135] = // cmd #47 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,1,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,1,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_DIFF[134] = // cmd #46 +static u8 option_allowed_cmd_DIFF[135] = // cmd #48 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 1,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 1,1,0,0 + 0,1,0,0,0, 0,0,0,0,0, 0,1,1,0,0 }; -static u8 option_allowed_cmd_CHECK[134] = // cmd #47 +static u8 option_allowed_cmd_CHECK[135] = // cmd #49 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,1,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_SLOTS[134] = // cmd #48 +static u8 option_allowed_cmd_SLOTS[135] = // cmd #50 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 0,0,0,0,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_STGI[134] = // cmd #49 +static u8 option_allowed_cmd_STGI[135] = // cmd #51 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ISARENA[134] = // cmd #50 +static u8 option_allowed_cmd_ISARENA[135] = // cmd #52 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_NORMALIZE[134] = // cmd #51 +static u8 option_allowed_cmd_NORMALIZE[135] = // cmd #53 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, 0,0,0,0,0, 0,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,0,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_PATCH[134] = // cmd #52 +static u8 option_allowed_cmd_PATCH[135] = // cmd #54 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_COPY[134] = // cmd #53 +static u8 option_allowed_cmd_COPY[135] = // cmd #55 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_DUPLICATE[134] = // cmd #54 +static u8 option_allowed_cmd_DUPLICATE[135] = // cmd #56 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,1,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_MINIMAP[134] = // cmd #55 +static u8 option_allowed_cmd_MINIMAP[135] = // cmd #57 { 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 1,0,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,0,0,0,0, 0,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_COMPRESS[134] = // cmd #56 +static u8 option_allowed_cmd_COMPRESS[135] = // cmd #58 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,1,1,1,1, 0,0,0,0,0, 1,1,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_DECOMPRESS[134] = // cmd #57 +static u8 option_allowed_cmd_DECOMPRESS[135] = // cmd #59 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,0,0, - 1,1,1,1,1, 1,0,0,0,0, 1,0,0,1,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,1,1,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,1, 1,1,1,1,0, + 0,1,1,1,1, 1,1,0,0,0, 0,1,0,0,1, 1,1,0,1,0, 0,0,0,0,0, 0,0,0,1,1, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_ENCODE[134] = // cmd #58 +static u8 option_allowed_cmd_ENCODE[135] = // cmd #60 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, - 1,1,1,1,1, 1,1,1,1,1, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 0,1,1,1,1, 1,1,1,1,1, 1,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_CREATE[134] = // cmd #59 +static u8 option_allowed_cmd_CREATE[135] = // cmd #61 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,0,1,0, - 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,0,1,0, - 0,0,0,1,1, 1,1,1,1,1, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,0,1, + 0,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,0,1, + 0,0,0,0,1, 1,1,1,1,1, 1,0,1,0,0 }; -static u8 option_allowed_cmd_UPDATE[134] = // cmd #60 +static u8 option_allowed_cmd_UPDATE[135] = // cmd #62 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,1,1, 1,1,1,0,1, 1,1,1,0,0, - 0,0,0,0,0, 0,1,1,1,1, 0,1,1,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,0,0,0, - 1,0,0,0,0, 0,0,0,0,0, 0,1,0,0 + 0,0,0,0,0, 0,0,0,0,0, 1,1,0,0,0, 0,0,1,0,1, 1,1,1,1,0, 1,1,1,1,0, + 0,0,0,0,0, 0,0,1,1,1, 1,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 1,1,1,0,0, + 0,1,0,0,0, 0,0,0,0,0, 0,0,1,0,0 }; -static u8 option_allowed_cmd_EXTRACT[134] = // cmd #61 +static u8 option_allowed_cmd_EXTRACT[135] = // cmd #63 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,1,1, 1,1,1,0,1, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,0,1, 1,1,1,1,0, 1,1,1,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,0,0,0,1, 1,1,1,1,0 }; -static u8 option_allowed_cmd_XDECODE[134] = // cmd #62 +static u8 option_allowed_cmd_XDECODE[135] = // cmd #64 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,1,1, 1,1,1,0,1, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,0,1, 1,1,1,1,0, 1,1,1,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,0,0,0,1, 1,1,1,1,0 }; -static u8 option_allowed_cmd_XEXPORT[134] = // cmd #63 +static u8 option_allowed_cmd_XEXPORT[135] = // cmd #65 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,1,1, 1,1,1,0,1, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,0,1, 1,1,1,1,0, 1,1,1,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,0,0,0,1, 1,1,1,1,0 }; -static u8 option_allowed_cmd_XALL[134] = // cmd #64 +static u8 option_allowed_cmd_XALL[135] = // cmd #66 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,1,1,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,1,1, 1,1,1,0,1, 1,1,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, - 1,1,1,1,1, 0,0,0,1,1, 1,1,1,0 + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 1,1,0,0,1, 1,1,1,1,0, 1,1,1,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, + 1,1,1,1,1, 1,0,0,0,1, 1,1,1,1,0 }; -static u8 option_allowed_cmd_XCOMMON[134] = // cmd #65 +static u8 option_allowed_cmd_XCOMMON[135] = // cmd #67 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_BINARY[134] = // cmd #66 +static u8 option_allowed_cmd_BINARY[135] = // cmd #68 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_TEXT[134] = // cmd #67 +static u8 option_allowed_cmd_TEXT[135] = // cmd #69 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,1,1,0,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,1,0,0, + 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_CAT[134] = // cmd #68 +static u8 option_allowed_cmd_CAT[135] = // cmd #70 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,1,1,0,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 1,1,1,1,1, 1,1,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_BMG[134] = // cmd #69 +static u8 option_allowed_cmd_BMG[135] = // cmd #71 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,0,0,0,1, 1,1,1,1,1, - 1,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 1,1,1,1,1, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_KCL[134] = // cmd #70 +static u8 option_allowed_cmd_KCL[135] = // cmd #72 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_KMP[134] = // cmd #71 +static u8 option_allowed_cmd_KMP[135] = // cmd #73 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,1, 1,1,1,1,0, 1,0,0,1,1, 1,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,1,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_LEX[134] = // cmd #72 +static u8 option_allowed_cmd_LEX[135] = // cmd #74 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_INFO[134] = // cmd #73 +static u8 option_allowed_cmd_INFO[135] = // cmd #75 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_GHOST[134] = // cmd #74 +static u8 option_allowed_cmd_GHOST[135] = // cmd #76 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 0,0,0,0,0, 0,0,1,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,0,0,0,0, 0,0,0,1,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1 }; -static u8 option_allowed_cmd_YAZDUMP[134] = // cmd #75 +static u8 option_allowed_cmd_YAZDUMP[135] = // cmd #77 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,1,1, 1,1,1,0,1, 1,1,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 1,1,1,1,0, 1,1,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; -static u8 option_allowed_cmd_VEHICLE[134] = // cmd #76 +static u8 option_allowed_cmd_VEHICLE[135] = // cmd #78 { 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,1, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,1,1, 0,1,0,0,0, 0,0,0,0,0, + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,1,0,1, 1,0,1,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0, - 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0 + 0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0 }; @@ -3633,6 +3690,7 @@ static const InfoOption_t * option_tab_tool[] = OptionInfo + OPT_QUIET, OptionInfo + OPT_VERBOSE, OptionInfo + OPT_LOGGING, + OptionInfo + OPT_WARN, OptionInfo + OPT_DE, OptionInfo + OPT_COLORS, OptionInfo + OPT_NO_COLORS, @@ -3916,6 +3974,15 @@ static const InfoOption_t * option_tab_cmd_EXPORT[] = 0 }; +static const InfoOption_t * option_tab_cmd_SIZEOF[] = +{ + &option_cmd_SIZEOF_SORT, + &option_cmd_SIZEOF_BRIEF, + OptionInfo + OPT_LOGGING, + + 0 +}; + static const InfoOption_t * option_tab_cmd_CODE[] = { @@ -4908,12 +4975,23 @@ static const InfoOption_t * option_tab_cmd_ANALYZE[] = OptionInfo + OPT_NONE, // separator + OptionInfo + OPT_REFERENCE, OptionInfo + OPT_DEST, OptionInfo + OPT_DEST2, 0 }; +static const InfoOption_t * option_tab_cmd_IS_TEXTURE[] = +{ + OptionInfo + OPT_IGNORE, + OptionInfo + OPT_REFERENCE, + OptionInfo + OPT_BATTLE, + &option_cmd_IS_TEXTURE_LONG, + + 0 +}; + static const InfoOption_t * option_tab_cmd_FEATURES[] = { &option_cmd_FEATURES_BRIEF, @@ -6825,7 +6903,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = " SZS, U8, PACK, BRRES, BREFF and BREFT archives. Additonally, RARC" " archive can be extracted. It is also a wrapper to all other tools.", 0, - 66, + 67, option_tab_tool, 0 }, @@ -7204,6 +7282,21 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = option_allowed_cmd_EXPORT }, + { CMD_SIZEOF, + true, + false, + false, + "SIZEOF", + 0, + "wszst SIZEOF key...", + "This hidden command prints a list with the size of data structures" + " and variables.", + 0, + 3, + option_tab_cmd_SIZEOF, + option_allowed_cmd_SIZEOF + }, + { CMD_CODE, true, false, @@ -7503,7 +7596,7 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = 0, "wszst SHA1 [source]...", "Print a SHA1 checksum for each source. The checksum is calculated by" - " using the uncompressed data.", + " using the uncompressed data and after patching.", 0, 48, option_tab_cmd_SHA1, @@ -7519,11 +7612,31 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "wszst ANALYZE [source]...", "Analyse track files and print results in machine readable format.", 0, - 15, + 16, option_tab_cmd_ANALYZE, option_allowed_cmd_ANALYZE }, + { CMD_IS_TEXTURE, + false, + false, + false, + "IS-TEXTURE", + "ISTEXTURE", + "wszst IS-TEXTURE --reference reference [source]...", + "Test each source to see if it's a texture hack versus a reference" + " file. For each source, one human and machine readable status line is" + " printed. It is either »-1=err« on error, »1=yes« for a texture" + " hack, or »0=no LIST« with a comma separated list of reasons.\n" + " At the moment KCL, KMP (see notes) and LEX are checked. KMP section" + " CAME has been intentionally left out. Section ENPT is only checked" + " if KCL contains a least one face of type force-recalculation.", + 0, + 4, + option_tab_cmd_IS_TEXTURE, + option_allowed_cmd_IS_TEXTURE + }, + { CMD_FEATURES, true, false, @@ -7531,7 +7644,8 @@ static const InfoCommand_t CommandInfo[CMD__N+1] = "FEATURES", 0, "wszst FEATURES [source]...", - "Analyse track files and a feature list in machine readable format.", + "Analyse track files and create a feature list in machine readable" + " format.", 0, 18, option_tab_cmd_FEATURES, diff --git a/project/src/ui/ui-wszst.h b/project/src/ui/ui-wszst.h index 997abfe..161aa7e 100644 --- a/project/src/ui/ui-wszst.h +++ b/project/src/ui/ui-wszst.h @@ -16,7 +16,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * @@ -133,6 +133,7 @@ typedef enum enumOptions OPT_ANALYZE, OPT_ANALYZE_MODE, OPT_SOURCE, + OPT_REFERENCE, OPT_DEST, OPT_DEST2, OPT_ESC, @@ -190,7 +191,7 @@ typedef enum enumOptions OPT_RAW, OPT_SECTIONS, - OPT__N_SPECIFIC, // == 134 + OPT__N_SPECIFIC, // == 135 //----- global options ----- @@ -205,6 +206,7 @@ typedef enum enumOptions OPT_QUIET, OPT_VERBOSE, OPT_LOGGING, + OPT_WARN, OPT_DE, OPT_COLORS, OPT_NO_COLORS, @@ -270,7 +272,7 @@ typedef enum enumOptions OPT_NEW, OPT_EXTRACT, - OPT__N_TOTAL // == 209 + OPT__N_TOTAL // == 211 } enumOptions; @@ -362,6 +364,7 @@ typedef enum enumOptions // OB_ANALYZE = 1llu << OPT_ANALYZE, // OB_ANALYZE_MODE = 1llu << OPT_ANALYZE_MODE, // OB_SOURCE = 1llu << OPT_SOURCE, +// OB_REFERENCE = 1llu << OPT_REFERENCE, // OB_DEST = 1llu << OPT_DEST, // OB_DEST2 = 1llu << OPT_DEST2, // OB_ESC = 1llu << OPT_ESC, @@ -625,6 +628,9 @@ typedef enum enumOptions // // OB_CMD_EXPORT = 0, // +// OB_CMD_SIZEOF = OB_SORT +// | OB_BRIEF, +// // OB_CMD_CODE = 0, // // OB_CMD_RECODE = 0, @@ -713,9 +719,14 @@ typedef enum enumOptions // OB_CMD_ANALYZE = OB_LONG // | OB_IGNORE // | OB_GRP_SCRIPT +// | OB_REFERENCE // | OB_DEST // | OB_DEST2, // +// OB_CMD_IS_TEXTURE = OB_IGNORE +// | OB_REFERENCE +// | OB_LONG, +// // OB_CMD_FEATURES = OB_BRIEF // | OB_LONG // | OB_IGNORE @@ -955,6 +966,7 @@ typedef enum enumCommands CMD_TRACKS, CMD_SCANCACHE, CMD_EXPORT, + CMD_SIZEOF, CMD_CODE, CMD_RECODE, CMD_SUBFILE, @@ -980,6 +992,7 @@ typedef enum enumCommands CMD_SHA1, CMD_ANALYZE, + CMD_IS_TEXTURE, CMD_FEATURES, CMD_DISTRIBUTION, @@ -1018,7 +1031,7 @@ typedef enum enumCommands CMD_VEHICLE, - CMD__N // == 77 + CMD__N // == 79 } enumCommands; @@ -1047,6 +1060,7 @@ typedef enum enumGetOpt GO_SORT = 'S', GO_TRACKS = 'T', GO_VERSION = 'V', + GO_WARN = 'W', GO_EXPORT = 'X', GO_ALL = 'a', @@ -1200,6 +1214,7 @@ typedef enum enumGetOpt GO_STD, GO_NEW, GO_EXTRACT, + GO_REFERENCE, GO_NUMBER, GO_REMOVE_SRC, GO_IGNORE_SETUP, diff --git a/project/src/ui/ui.def b/project/src/ui/ui.def index 4631580..8e47764 100644 --- a/project/src/ui/ui.def +++ b/project/src/ui/ui.def @@ -246,12 +246,22 @@ #:def_cmd( "SHA1", "SHA1", \ "wszst SHA1 [source]...", \ "Print a SHA1 checksum for each source. The checksum is calculated by" \ - " using the uncompressed data." ) + " using the uncompressed data and after patching." ) #:def_cmd( "ANALYZE", "ANALYZE|ANA|ANALYSE", \ "wszst ANALYZE [source]...", \ "Analyse track files and print results in machine readable format." ) +#:def_cmd( "IS_TEXTURE", "IS-TEXTURE|ISTEXTURE", \ + "wszst IS-TEXTURE --reference reference [source]...", \ + "Test each source to see if it's a texture hack versus a reference" \ + " file. For each source, one human and machine readable status line is" \ + " printed. It is either »-1=err« on error, »1=yes« for a texture" \ + " hack, or »0=no LIST« with a comma separated list of reasons.\n" \ + " At the moment KCL, KMP (see notes) and LEX are checked. KMP section" \ + " CAME has been intentionally left out. Section ENPT is only checked" \ + " if KCL contains a least one face of type force-recalculation." ) + #:def_cmd( "DISTRIBUTION", "DISTRIBUTION|DIST", \ "wszst DISTRIBUTION result source...\n" \ "wszst DISTRIBUTION directory [source]...", \ @@ -524,8 +534,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -542,6 +552,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -825,11 +844,10 @@ "[=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@." ) + " If mode is @ON@, assume a battle arena and enable a special 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]", \ @@ -1224,7 +1242,7 @@ #:def_opt( "CODING", "coding", "CP", \ "mode", \ "Define the coding of the non alphanumeric characters for BASE64:" \ - " STANDART (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." ) + " STANDARD (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." ) #:def_opt( "VERIFY", "verify", "C", \ "", \ @@ -1538,6 +1556,10 @@ " A @'?'@ direct behind @'%'@ in @%E@ and @%T@ conversions avoid that" \ " the same extension is used twice in row." ) +#:def_opt( "REFERENCE", "ref|reference", "CP", \ + "path", \ + "Define a reference SZS." ) + #:def_opt( "DEST", "d|dest", "CP", \ "path", \ "Define a destination path (directory/file). The destination @-@" \ @@ -2229,6 +2251,19 @@ "", \ "" ) +#:def_cmd_opt( "SIZEOF", "SORT", \ + "", \ + "Define a sort mode. Keywords are: @NONE@ (default), @NAME@ end" \ + " @SIZE@." ) + +#:def_cmd_opt( "SIZEOF", "BRIEF", \ + "", \ + "Limit output to SZS specific data." ) + +#:def_cmd_opt( "SIZEOF", "LOGGING", \ + "", \ + "" ) + #:def_cmd_opt( "SUBFILE", "DEST", \ "", \ "" ) @@ -5138,6 +5173,10 @@ "", \ "" ) +#:def_cmd_opt( "ANALYZE", "REFERENCE", \ + "", \ + "" ) + #:def_cmd_opt( "ANALYZE", "DEST", \ "", \ "" ) @@ -5146,6 +5185,22 @@ "", \ "" ) +#:def_cmd_opt( "IS_TEXTURE", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_TEXTURE", "REFERENCE", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_TEXTURE", "BATTLE", \ + "", \ + "" ) + +#:def_cmd_opt( "IS_TEXTURE", "LONG", \ + "", \ + "Append a colon and the filename after each status." ) + #:def_cmd_opt( "FEATURES", "BRIEF", \ "", \ "Suppres any comments at all. If set twice, suppress empty lines (for" \ @@ -5153,7 +5208,7 @@ #:def_cmd_opt( "FEATURES", "LONG", \ "", \ - "Print additnal comments." ) + "Print additional comments." ) #:def_cmd_opt( "FEATURES", "IGNORE", \ "", \ @@ -11349,8 +11404,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -11367,6 +11422,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -12601,8 +12665,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -12619,6 +12683,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -13954,8 +14027,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -13972,6 +14045,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -14894,6 +14976,11 @@ " output. The exit status is @'DIFFER'@ if at least one KMP warning" \ " found." ) +#:def_cmd( "SHA1", "SHA1", \ + "wszst SHA1 [source]...", \ + "Print a SHA1 checksum of the KCL for each source. The checksum is" \ + " calculated after patching." ) + #:def_cmd( "BLOW", "BLOW", \ "wkclt BLOW source...", \ "Try to calculate the used blow size (KCL_BLOW) of a KCL. Print one" \ @@ -14945,8 +15032,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -14963,6 +15050,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -15237,6 +15333,30 @@ " are also accepted. For some conversions, the auto-add library is" \ " needed." ) +#: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:" \ + " STANDARD (+/=, default), URL (-_=), STAR (-_*) or XML (.-*)." ) + #:def_opt( "ROUND", "round", "C", \ "", \ "Print additional lines with rounded values (to 3 and 2 bytes for" \ @@ -16152,6 +16272,14 @@ "", \ "" ) +#:def_cmd_opt( "TYPES", "NO_HEADER", \ + "", \ + "" ) + +#:def_cmd_opt( "TYPES", "BRIEF", \ + "", \ + "Print only the resulting flag." ) + #:def_cmd_opt( "FLAGS", "NO_HEADER", \ "", \ "" ) @@ -16940,6 +17068,122 @@ "", \ "" ) +#:def_cmd_opt( "SHA1", "IGNORE", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "ID", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "BASE64", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "DB64", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "CODING", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "BRIEF", \ + "", \ + "Suppress output of the filename." ) + +#:def_cmd_opt( "SHA1", "CONST", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "SCALE", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "SHIFT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "XSS", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "YSS", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "ZSS", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "ROT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "XROT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "YROT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "ZROT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "TRANSLATE", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "NULL", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "NEXT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "ASCALE", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "AROT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "TFORM_SCRIPT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "KCL", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "KCL_FLAG", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "KCL_SCRIPT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "TRI_AREA", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "TRI_HEIGHT", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "FLAG_FILE", \ + "", \ + "" ) + +#:def_cmd_opt( "SHA1", "SLOT", \ + "", \ + "" ) + #:def_cmd_opt( "ANALYZE", "IGNORE", \ "", \ "" ) @@ -17295,8 +17539,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -17313,6 +17557,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -17524,11 +17777,10 @@ "[=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@." ) + " If mode is @ON@, assume a battle arena and enable a special 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]", \ @@ -19356,8 +19608,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -19374,6 +19626,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -20618,8 +20879,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -20636,6 +20897,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -21874,8 +22144,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -21892,6 +22162,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -22384,9 +22663,10 @@ " @PAL@ (default), @USA@, @JAPAN@, @KOREA@, or any abbreviation of" \ " them. They select the region for the following addresses. The hex" \ " numbers (with or without @0x@ prefix) are interpreted as addresses." \ - " If possible, they are ported to all other regions. The result is" \ - " printed as colorized table.\n" \ - " This address porting is EXPERIMENTAL!" ) + " If an address begins with @m@ or @s@, then it is interpreted as a" \ + " file offset for @main.dol@ or @staticr.rel@. All addresses are" \ + " ported to all other regions. The result is printed as colorized" \ + " table." ) #:def_cmd( "WHERE", "WHERE", \ "wstrt WHERE address...", \ @@ -22489,8 +22769,8 @@ #:def_opt( "MAX_WIDTH", "max-width|maxwidth", "GP", \ "maxwidth", \ "Define the maximum terminal width (number of columns) for help and" \ - " some other messages and disable the automatic detection of the" \ - " terminal width. This option is ignored if {--width} is set." ) + " some other messages. The default is 120. This option is ignored if" \ + " --width is set." ) #:def_opt( "QUIET", "q|quiet", "GM", \ "", \ @@ -22507,6 +22787,15 @@ "", \ "This debug option enables the logging of internal lists and maps." ) +#:def_opt( "WARN", "W|warn", "GP", \ + "list", \ + "Enable or disable warnings. Parameter @'list'@ is a comma separated" \ + " list of keywords. A minus sign before a keyword disables a warning." \ + " Each occurrence of the option will only change entered warning and" \ + " all other warnings are untouched.\n" \ + " Keyword @DEFAULT@ resets the default settings, @OFF@ disables and" \ + " @ALL@ enables all. The other allowed keywords are: @INVALID-OFFSET@." ) + #:def_opt( "DE", "de", "G", \ "", \ "Use german track and arena names." ) @@ -22867,7 +23156,13 @@ #:def_opt( "NO_0X", "0|no-0x|no0x", "C", \ "", \ - "Suppress 0x prefix of hex numbers." ) + "Suppress 0x prefix of hex numbers. This is the default for cheat" \ + " codes." ) + +#:def_opt( "UPPER", "U|upper", "C", \ + "", \ + "Print digits A-F of hex numbers in upper case. This is the default" \ + " for cheat codes." ) #:def_opt( "VADDR", "vaddr|va", "CP", \ "RANGE", \ @@ -23243,6 +23538,10 @@ "", \ "" ) +#:def_cmd_opt( "PORT", "UPPER", \ + "", \ + "" ) + #:def_cmd_opt( "PORT", "NO_HEADER", \ "", \ "Suppress the table header and footer and output exactly 1 line for" \ @@ -23264,6 +23563,10 @@ "", \ "" ) +#:def_cmd_opt( "WHERE", "UPPER", \ + "", \ + "" ) + #:def_cmd_opt( "WHERE", "NO_HEADER", \ "", \ "Suppress the table header and footer and output exactly 1 line for" \ diff --git a/project/src/ui/ui.h b/project/src/ui/ui.h index 72b5a90..409b8fd 100644 --- a/project/src/ui/ui.h +++ b/project/src/ui/ui.h @@ -17,7 +17,7 @@ * This file is part of the SZS project. * * Visit https://szs.wiimm.de/ for project details and sources. * * * - * Copyright (c) 2011-2021 by Dirk Clemens <wiimm@wiimm.de> * + * Copyright (c) 2011-2022 by Dirk Clemens <wiimm@wiimm.de> * * * *************************************************************************** * * |
