2023-11-01 13:27:28 -04:00
|
|
|
#include "addr_utils.hpp"
|
2023-10-09 11:54:34 -04:00
|
|
|
#include "structs.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#pragma region //msg_t
|
|
|
|
|
|
|
|
unsigned __int64 MSG_ReadInt64(const msg_t* msg) {
|
|
|
|
auto func = reinterpret_cast<unsigned __int64(*)(const msg_t*)>(0x1412B9270_g);
|
|
|
|
return func(msg);
|
|
|
|
}
|
|
|
|
|
|
|
|
void MSG_WriteInt64(const msg_t* msg, const unsigned __int64 value) {
|
|
|
|
auto func = reinterpret_cast<void(*)(const msg_t*, const unsigned __int64)>(0x1412BA7F0_g);
|
|
|
|
func(msg, value);
|
|
|
|
}
|
|
|
|
|
|
|
|
#pragma endregion
|
|
|
|
|
|
|
|
|
|
|
|
#pragma region //XUID
|
|
|
|
|
|
|
|
void XUID::Deserialize(const msg_t* msg) {
|
|
|
|
this->m_id = MSG_ReadInt64(msg);
|
|
|
|
}
|
|
|
|
|
|
|
|
void XUID::Serialize(const msg_t* msg) {
|
|
|
|
MSG_WriteInt64(msg, this->m_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::FromHexString(const char* xuidString) {
|
|
|
|
this->m_id = I_atoui64_hex(xuidString);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::FromMsg(const msg_t* msg) {
|
|
|
|
this->m_id = MSG_ReadInt64(msg);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::FromString(const char* xuidString) {
|
|
|
|
this->m_id = I_atoui64(xuidString);
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::FromUInt64(unsigned __int64 id) {
|
|
|
|
this->m_id = id;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::FromUniversalId(unsigned __int64 id) {
|
|
|
|
this->m_id = id;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
unsigned __int64 XUID::GetUniversalId() {
|
|
|
|
return this->m_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool XUID::IsNull() {
|
|
|
|
return this->m_id == 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool XUID::IsValid() {
|
|
|
|
return this->m_id != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::NullXUID() {
|
|
|
|
this->m_id = 0;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::RandomXUID() {
|
|
|
|
unsigned int* RandSeed;
|
|
|
|
unsigned int BackupRandSeed;
|
|
|
|
this->m_id = 0;
|
|
|
|
RandSeed = GetRandSeed();
|
|
|
|
BackupRandSeed = *RandSeed;
|
|
|
|
*RandSeed = Sys_Microseconds();
|
|
|
|
this->m_id = I_irand(1, 0x7FFFFFFF);
|
|
|
|
*RandSeed = BackupRandSeed;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
const char* XUID::ToDevString() {
|
|
|
|
return va("%zu", this->m_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
const char* XUID::ToHexString() {
|
|
|
|
return va("%zx", this->m_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
const char* XUID::ToString() {
|
|
|
|
return va("%zu", this->m_id);
|
|
|
|
}
|
|
|
|
|
|
|
|
bool XUID::operator !=(const XUID* xuid) {
|
|
|
|
return this->m_id != xuid->m_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
XUID* XUID::operator =(const XUID* xuid) {
|
|
|
|
this->m_id = xuid->m_id;
|
|
|
|
return this;
|
|
|
|
}
|
|
|
|
|
|
|
|
bool XUID::operator ==(const XUID* xuid) {
|
|
|
|
return this->m_id == xuid->m_id;
|
|
|
|
}
|
|
|
|
|
|
|
|
#pragma endregion
|
|
|
|
|
|
|
|
|
|
|
|
ClActiveClient* ms_activeClients;
|
|
|
|
|
|
|
|
clientUIActive_t* clientUIActives;
|
|
|
|
|
|
|
|
gentity_s* g_entities;
|