diff options
Diffstat (limited to 'src/server/init.cc')
| -rw-r--r-- | src/server/init.cc | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/server/init.cc b/src/server/init.cc new file mode 100644 index 0000000..31dca46 --- /dev/null +++ b/src/server/init.cc @@ -0,0 +1,45 @@ +#include "server/init.hh" + +namespace server { + +const shared::args_t& get_options() { + static shared::args_t ret{ + {.name = "seed", .desc = "manually set the worldseed", .val = "S:"}, + {.name = "directory", + .desc = "manually set the directory", + .val = "d:"}, + {.name = "tickrate", + .desc = "override the default tickrate", + .val = "t:"}, + {.name = "distance", + .desc = "limit the max chunk distance the server provides", + .val = "D:"}, + }; + return ret; +} + +bool parse_arg(const int& c, const char* const arg) { + switch (c) { + case 'S': + server::state.seed = + boost::lexical_cast<decltype(server::state.seed)>(arg); + break; + case 'd': + server::state.directory = + boost::lexical_cast<decltype(server::state.directory)>(arg); + break; + case 't': + server::state.tickrate = + boost::lexical_cast<decltype(server::state.tickrate)>(arg); + break; + case 'D': + server::state.draw_distance = + boost::lexical_cast<decltype(server::state.draw_distance)>(arg); + break; + default: + return false; + } + return true; +} + +} // namespace server |
