X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fapp%2FRuntime.hpp;h=ee438537a345ef43e0f884f24ca799588b15ba4a;hb=9ebe2c320fd9f94266ab93fa2f9d9908a0a284d3;hp=81c015c3668456360b1c84dc77587ba026848b1a;hpb=39df551265bff648c1ac166043bb4b046122cc8d;p=blank.git diff --git a/src/app/Runtime.hpp b/src/app/Runtime.hpp index 81c015c..ee43853 100644 --- a/src/app/Runtime.hpp +++ b/src/app/Runtime.hpp @@ -1,6 +1,8 @@ #ifndef BLANK_RUNTIME_HPP_ #define BLANK_RUNTIME_HPP_ +#include "../net/Client.hpp" +#include "../net/Server.hpp" #include "../ui/Interface.hpp" #include "../world/World.hpp" @@ -10,6 +12,8 @@ namespace blank { +class HeadlessApplication; + /// Parse and interpret arguemnts, then set up the environment and execute. class Runtime { @@ -27,6 +31,12 @@ public: ERROR, }; + enum Target { + STANDALONE, + SERVER, + CLIENT, + }; + struct Config { bool vsync = true; bool doublebuf = true; @@ -36,7 +46,9 @@ public: std::string save_path; std::string world_name = "default"; + Client::Config client = Client::Config(); Interface::Config interface = Interface::Config(); + Server::Config server = Server::Config(); World::Config world = World::Config(); }; @@ -46,9 +58,17 @@ public: int Execute(); +private: + void RunStandalone(); + void RunServer(); + void RunClient(); + + void Run(HeadlessApplication &); + private: const char *name; Mode mode; + Target target; std::size_t n; std::size_t t; Config config;