ref: 2a46c247d9548c26d782d2fc6bcc6f7bf04101c2
parent: 42569734720d794a4f1cd93e456ee8347dec7135
author: KuroiIeWa5Da <tyuki@adu.me>
date: Sat Jan 28 01:56:20 EST 2012
Updated Music Disassembler to support a help parameter hg-commit-id: d5725126c98b
--- a/music/pokeredmusicdisasm/main.cpp
+++ b/music/pokeredmusicdisasm/main.cpp
@@ -6,6 +6,36 @@
using namespace std;
+void PrintUsage()
+{
+ Console::PrintLn("Usage: [<offset> [<file> | --]]");
+ Console::PrintLn("Usage: [--offset=<offset> | -o <offset>] [--file=[<file> | --] | -f [<file> | --]] [--stop=<offset> | -s <offset>]");
+ Console::PrintLn("Usage: [-h | --help]");
+ Console::PrintLn("");
+ Console::PrintLn("Used without parameters will start in limited interactive mode where the program will ask you the file and offset");
+ Console::PrintLn("An offset is a requirement but the file may be blank or explicitly set, whenever the file is set you may use '--' to substitute for the default file '../baserom.gbc'");
+ Console::PrintLn("If parameter options are not used the ordering is important:");
+ Console::PrintLn("There is an intentional glitch in the program, since long paramaters must be specified with --xxx= with or without a value, you may use the short option instead -xxx even though it's suppose to be -xxx=");
+ Console::PrintLn("\t* <offset> <file>");
+ Console::PrintLn("If parameter options are used the ordering does not matter, ensure the <offset> parameter option or parameter is present");
+ Console::PrintLn("You may mix and match parameters and parameter options, keep in mind that bare parameters must be in a certain order");
+ Console::PrintLn("If the offset parameter is missing in any way the program will prompt you for it");
+ Console::PrintLn("The program will stop parsing when it encounters mus_end regardlessly");
+ Console::PrintLn("Parameter types");
+ Console::PrintLn("\t* <xxx> - Bare parameter, they must be in a certain order");
+ Console::PrintLn("\t* -xxx=xxx - Long parameter option, it can be in any order but is case sensitive, can contain no spaces, must contain the equal sign, and is read literally");
+ Console::PrintLn("\t* -xxx xxx - Short parameter option, it can be in any order but is case sensitive, must contain 1 space and is read literally");
+ Console::PrintLn("----");
+ Console::PrintLn("Breakdown of parameters:");
+ Console::PrintLn("<offset> - A bare parameter, it must be in hexidecimal eith alone or prefixed with 0x and be the first parameter. It tells the parser where to start parsing");
+ Console::PrintLn("<file> - A bare parameter, it must be the second parameter and tells the parser which rom file to parse");
+ Console::PrintLn("-- - A special file path value meaning use the default file '../baserom.gbc'");
+ Console::PrintLn("--offset, -o - the parameterized offset in hexidecimal, It tells the parser where to start parsing");
+ Console::PrintLn("--file, -f - the parameterized file path, It tells the parser which rom file to parse");
+ Console::PrintLn("--stop, -s - tells the parser to stop at that hexidecimal address or until it reaches mus_end.");
+ Console::PrintLn("help, --help, -h - prints this info and exits, if the bare parameter is used it must be the first parameter");
+}
+
/*
Usage:
pokeredmusicdisasm [<offset> [<file> | --]]
@@ -25,6 +55,13 @@
// Get the file path, this can be set with -f filename, --file=filename, arg #2, or missing (missing means default)
// the filepath can contain the actual filename or -- to use the built-in path, if the path is not missing then it must be set (can't be blank)
+ // Is the user asking for help with -h, --help=, or help
+ if((a.SearchKeys("h") != -1) || (a.SearchKeys("help") != -1) || (a.GetArgv(1) == "help"))
+ {
+ PrintUsage();
+ return 0;
+ }
+
// Does a -f or --file key exist
if(a.SearchKeys("f") != -1) filePath = a.GetValue(a.SearchKeys("f"), true);
else if(a.SearchKeys("file") != -1) filePath = a.GetValue(a.SearchKeys("file"));