Files
iw6-mod/src/client/game/game.hpp
T
2026-09-09 21:14:45 +02:00

79 lines
1.2 KiB
C++

#pragma once
#include "structs.hpp"
namespace launcher
{
enum class mode
{
none,
multiplayer,
server,
};
}
#define SERVER_CD_KEY "iw6-mod-CD-Key"
namespace game
{
namespace environment
{
launcher::mode get_mode();
bool is_mp();
bool is_dedi();
void set_mode(launcher::mode mode);
std::string get_string();
}
template <typename T>
class symbol
{
public:
symbol(const size_t sp_address, const size_t mp_address)
: sp_object_(reinterpret_cast<T*>(sp_address))
, mp_object_(reinterpret_cast<T*>(mp_address))
{
}
T* get() const
{
return mp_object_;
}
operator T*() const
{
return this->get();
}
T* operator->() const
{
return this->get();
}
private:
T* sp_object_;
T* mp_object_;
};
[[nodiscard]] int Cmd_Argc();
[[nodiscard]] const char* Cmd_Argv(int index);
[[nodiscard]] int SV_Cmd_Argc();
[[nodiscard]] const char* SV_Cmd_Argv(int index);
[[nodiscard]] HANDLE Sys_OpenFileReliable(const char* filename);
[[nodiscard]] bool is_headless();
void show_error(const std::string& text, const std::string& title = "Error");
constexpr auto MAX_GENTITIES = 2048;
constexpr auto ENTITYNUM_NONE = MAX_GENTITIES - 1;
constexpr auto JUMP_LAND_SLOWDOWN_TIME = 1800;
}
#include "symbols.hpp"