diff --git a/engine/core/include/console.hpp b/engine/core/include/console.hpp index 4fe6642..ce64726 100755 --- a/engine/core/include/console.hpp +++ b/engine/core/include/console.hpp @@ -14,6 +14,8 @@ namespace prism::console { }; struct console_argument { + explicit console_argument(std::string_view string) : data(string.data()) {} + explicit console_argument(bool data) : data(data) {} explicit console_argument(int data) : data(data) {} diff --git a/engine/core/src/console.cpp b/engine/core/src/console.cpp index 36c666b..1b71bef 100644 --- a/engine/core/src/console.cpp +++ b/engine/core/src/console.cpp @@ -88,6 +88,8 @@ void prism::console::parse_and_invoke_command(const std::string_view command) { return console_argument(false); } else if(is_numeric(arg)) { return console_argument(std::stoi(arg.data())); + } else { + return console_argument(arg); } return std::nullopt; diff --git a/engine/core/src/engine.cpp b/engine/core/src/engine.cpp index c921aa3..8d86741 100755 --- a/engine/core/src/engine.cpp +++ b/engine/core/src/engine.cpp @@ -27,9 +27,14 @@ using prism::engine; engine::engine(const int argc, char* argv[]) { log("Prism Engine loading..."); + + console::register_command("echo", console::argument_format(1), [](const console::arguments& args) { + log(std::get(args[0].data)); + }); - console::register_command("test_cmd", console::argument_format(0), [](const console::arguments&) { - log("Test cmd!"); + console::register_command("platform_info", console::argument_format(0), [this](const console::arguments&) { + log("Platform: {}", platform::get_name()); + log("GFX: {}", gfx->get_name()); }); console::register_variable("rs_dynamic_resolution", render_options.dynamic_resolution);