100 lines
1.7 KiB
C++
100 lines
1.7 KiB
C++
|
#include <std_include.hpp>
|
||
|
#include "game.hpp"
|
||
|
|
||
|
namespace game
|
||
|
{
|
||
|
int Cmd_Argc()
|
||
|
{
|
||
|
return cmd_args->argc[cmd_args->nesting];
|
||
|
}
|
||
|
|
||
|
const char* Cmd_Argv(const int index)
|
||
|
{
|
||
|
return cmd_args->argv[cmd_args->nesting][index];
|
||
|
}
|
||
|
|
||
|
int SV_Cmd_Argc()
|
||
|
{
|
||
|
return sv_cmd_args->argc[sv_cmd_args->nesting];
|
||
|
}
|
||
|
|
||
|
const char* SV_Cmd_Argv(const int index)
|
||
|
{
|
||
|
return sv_cmd_args->argv[sv_cmd_args->nesting][index];
|
||
|
}
|
||
|
|
||
|
namespace environment
|
||
|
{
|
||
|
launcher::mode mode = launcher::mode::none;
|
||
|
|
||
|
launcher::mode translate_surrogate(const launcher::mode _mode)
|
||
|
{
|
||
|
switch (_mode)
|
||
|
{
|
||
|
case launcher::mode::survival:
|
||
|
case launcher::mode::zombies:
|
||
|
return launcher::mode::multiplayer;
|
||
|
default:
|
||
|
return _mode;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
launcher::mode get_real_mode()
|
||
|
{
|
||
|
if (mode == launcher::mode::none)
|
||
|
{
|
||
|
throw std::runtime_error("Launcher mode not valid. Something must be wrong.");
|
||
|
}
|
||
|
|
||
|
return mode;
|
||
|
}
|
||
|
|
||
|
launcher::mode get_mode()
|
||
|
{
|
||
|
return translate_surrogate(get_real_mode());
|
||
|
}
|
||
|
|
||
|
bool is_sp()
|
||
|
{
|
||
|
return get_mode() == launcher::mode::singleplayer;
|
||
|
}
|
||
|
|
||
|
bool is_mp()
|
||
|
{
|
||
|
return get_mode() == launcher::mode::multiplayer;
|
||
|
}
|
||
|
|
||
|
bool is_dedi()
|
||
|
{
|
||
|
return get_mode() == launcher::mode::server;
|
||
|
}
|
||
|
|
||
|
void set_mode(const launcher::mode _mode)
|
||
|
{
|
||
|
mode = _mode;
|
||
|
}
|
||
|
|
||
|
std::string get_string()
|
||
|
{
|
||
|
const auto current_mode = get_real_mode();
|
||
|
switch (current_mode)
|
||
|
{
|
||
|
case launcher::mode::server:
|
||
|
return "Dedicated Server";
|
||
|
|
||
|
case launcher::mode::multiplayer:
|
||
|
return "Multiplayer";
|
||
|
|
||
|
case launcher::mode::singleplayer:
|
||
|
return "Singleplayer";
|
||
|
|
||
|
case launcher::mode::none:
|
||
|
return "None";
|
||
|
|
||
|
default:
|
||
|
return "Unknown (" + std::to_string(static_cast<int>(mode)) + ")";
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|