diff --git a/src/saland/Game.cpp b/src/saland/Game.cpp index 89e5c98..6cebe7e 100644 --- a/src/saland/Game.cpp +++ b/src/saland/Game.cpp @@ -92,6 +92,10 @@ struct GotoConsoleCommand : public ConsoleCommand { teleportY = string2int_trows(args[2]); return "Teleport queued!"; } + + virtual std::string helpMessage() const override { + return "Call like \"goto \". Where and is the regions to go to."; + } }; struct ResetRegionConsoleCommand : public ConsoleCommand { @@ -100,6 +104,10 @@ struct ResetRegionConsoleCommand : public ConsoleCommand { reset_region = true; return "Region reset queued!"; } + + virtual std::string helpMessage() const override { + return "Resets the current region back to default"; + } }; static GotoConsoleCommand gcc; diff --git a/src/saland/console/Console.cpp b/src/saland/console/Console.cpp index 6716bf2..94b7bac 100644 --- a/src/saland/console/Console.cpp +++ b/src/saland/console/Console.cpp @@ -42,13 +42,20 @@ void RegisterCommand(ConsoleCommand* command) { struct HelpConsoleCommand : public ConsoleCommand { virtual std::string getCommand() const override {return "help"; } - virtual std::string run(const std::vector&) override { + virtual std::string run(const std::vector& args) override { + if (args.size() > 1 && commands.find(args.at(1)) != commands.end() ) { + std::stringstream ss; + ss << "Command \"" << args.at(1) << "\": " << commands[args.at(1)]->helpMessage(); + return ss.str(); + } std::string helpMessage = "Allowed commands: "; for (const auto& cmd : commands) { helpMessage += cmd.first + ", "; } return helpMessage; } + + virtual std::string helpMessage() const { return "Displays this message"; } }; static HelpConsoleCommand hcc; diff --git a/src/saland/console/Console.hpp b/src/saland/console/Console.hpp index 4eb336e..a11b271 100644 --- a/src/saland/console/Console.hpp +++ b/src/saland/console/Console.hpp @@ -33,6 +33,7 @@ https://github.com/sago007/saland struct ConsoleCommand { virtual std::string getCommand() const {return "version"; } virtual std::string run(const std::vector&) { return "Not implemented"; } + virtual std::string helpMessage() const { return "No help availeble"; } }; /**