Some optimization
This commit is contained in:
parent
fdda6244d3
commit
9451964046
@ -134,8 +134,8 @@ namespace Components
|
|||||||
void AntiCheat::Frame()
|
void AntiCheat::Frame()
|
||||||
{
|
{
|
||||||
// Perform check only every 30 seconds
|
// Perform check only every 30 seconds
|
||||||
if (AntiCheat::LastCheck && (Game::Com_Milliseconds() - AntiCheat::LastCheck) < 1000 * 30) return;
|
if (AntiCheat::LastCheck && (Game::Sys_Milliseconds() - AntiCheat::LastCheck) < 1000 * 30) return;
|
||||||
AntiCheat::LastCheck = Game::Com_Milliseconds();
|
AntiCheat::LastCheck = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
AntiCheat::PerformCheck();
|
AntiCheat::PerformCheck();
|
||||||
}
|
}
|
||||||
|
@ -30,18 +30,18 @@ namespace Components
|
|||||||
// Not sending a response might allow the player to connect for a few seconds (<= 5) until the timeout is reached.
|
// Not sending a response might allow the player to connect for a few seconds (<= 5) until the timeout is reached.
|
||||||
if (client->state >= 5)
|
if (client->state >= 5)
|
||||||
{
|
{
|
||||||
if (info->state == Auth::STATE_NEGOTIATING && (Game::Com_Milliseconds() - info->time) > 1000 * 5)
|
if (info->state == Auth::STATE_NEGOTIATING && (Game::Sys_Milliseconds() - info->time) > 1000 * 5)
|
||||||
{
|
{
|
||||||
info->state = Auth::STATE_INVALID;
|
info->state = Auth::STATE_INVALID;
|
||||||
info->time = Game::Com_Milliseconds();
|
info->time = Game::Sys_Milliseconds();
|
||||||
Game::SV_KickClientError(client, "XUID verification timed out!");
|
Game::SV_KickClientError(client, "XUID verification timed out!");
|
||||||
}
|
}
|
||||||
else if (info->state == Auth::STATE_UNKNOWN && info->time && (Game::Com_Milliseconds() - info->time) > 1000 * 5) // Wait 5 seconds (error delay)
|
else if (info->state == Auth::STATE_UNKNOWN && info->time && (Game::Sys_Milliseconds() - info->time) > 1000 * 5) // Wait 5 seconds (error delay)
|
||||||
{
|
{
|
||||||
if ((client->steamid & 0xFFFFFFFF00000000) != 0x110000100000000)
|
if ((client->steamid & 0xFFFFFFFF00000000) != 0x110000100000000)
|
||||||
{
|
{
|
||||||
info->state = Auth::STATE_INVALID;
|
info->state = Auth::STATE_INVALID;
|
||||||
info->time = Game::Com_Milliseconds();
|
info->time = Game::Sys_Milliseconds();
|
||||||
Game::SV_KickClientError(client, "Your XUID is invalid!");
|
Game::SV_KickClientError(client, "Your XUID is invalid!");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -49,14 +49,14 @@ namespace Components
|
|||||||
Logger::Print("Sending XUID authentication request to %s\n", Network::Address(client->addr).GetCString());
|
Logger::Print("Sending XUID authentication request to %s\n", Network::Address(client->addr).GetCString());
|
||||||
|
|
||||||
info->state = Auth::STATE_NEGOTIATING;
|
info->state = Auth::STATE_NEGOTIATING;
|
||||||
info->time = Game::Com_Milliseconds();
|
info->time = Game::Sys_Milliseconds();
|
||||||
info->challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
info->challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
||||||
Network::SendCommand(client->addr, "xuidAuthReq", info->challenge);
|
Network::SendCommand(client->addr, "xuidAuthReq", info->challenge);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (info->state == Auth::STATE_UNKNOWN && !info->time)
|
else if (info->state == Auth::STATE_UNKNOWN && !info->time)
|
||||||
{
|
{
|
||||||
info->time = Game::Com_Milliseconds();
|
info->time = Game::Sys_Milliseconds();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,11 +67,11 @@ namespace Components
|
|||||||
static int lastCalc = 0;
|
static int lastCalc = 0;
|
||||||
static double mseconds = 0;
|
static double mseconds = 0;
|
||||||
|
|
||||||
if (!lastCalc || (Game::Com_Milliseconds() - lastCalc) > 500)
|
if (!lastCalc || (Game::Sys_Milliseconds() - lastCalc) > 500)
|
||||||
{
|
{
|
||||||
lastCalc = Game::Com_Milliseconds();
|
lastCalc = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
int diff = Game::Com_Milliseconds() - Auth::TokenContainer.startTime;
|
int diff = Game::Sys_Milliseconds() - Auth::TokenContainer.startTime;
|
||||||
double hashPMS = (Auth::TokenContainer.hashes * 1.0) / diff;
|
double hashPMS = (Auth::TokenContainer.hashes * 1.0) / diff;
|
||||||
double requiredHashes = std::pow(2, Auth::TokenContainer.targetLevel + 1) - Auth::TokenContainer.hashes;
|
double requiredHashes = std::pow(2, Auth::TokenContainer.targetLevel + 1) - Auth::TokenContainer.hashes;
|
||||||
mseconds = requiredHashes / hashPMS;
|
mseconds = requiredHashes / hashPMS;
|
||||||
@ -205,7 +205,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
Auth::TokenContainer.generating = true;
|
Auth::TokenContainer.generating = true;
|
||||||
Auth::TokenContainer.hashes = 0;
|
Auth::TokenContainer.hashes = 0;
|
||||||
Auth::TokenContainer.startTime = Game::Com_Milliseconds();
|
Auth::TokenContainer.startTime = Game::Sys_Milliseconds();
|
||||||
Auth::IncrementToken(Auth::GuidToken, Auth::ComputeToken, Auth::GuidKey.GetPublicKey(), Auth::TokenContainer.targetLevel, &Auth::TokenContainer.cancel, &Auth::TokenContainer.hashes);
|
Auth::IncrementToken(Auth::GuidToken, Auth::ComputeToken, Auth::GuidKey.GetPublicKey(), Auth::TokenContainer.targetLevel, &Auth::TokenContainer.cancel, &Auth::TokenContainer.hashes);
|
||||||
Auth::TokenContainer.generating = false;
|
Auth::TokenContainer.generating = false;
|
||||||
|
|
||||||
|
@ -160,7 +160,7 @@ namespace Components
|
|||||||
}
|
}
|
||||||
else if (index == ':')
|
else if (index == ':')
|
||||||
{
|
{
|
||||||
*color = Colors::HsvToRgb({ static_cast<uint8_t>((Game::Com_Milliseconds() / 200) % 256), 255,255 });
|
*color = Colors::HsvToRgb({ static_cast<uint8_t>((Game::Sys_Milliseconds() / 200) % 256), 255,255 });
|
||||||
}
|
}
|
||||||
else if (index == ';')
|
else if (index == ';')
|
||||||
{
|
{
|
||||||
|
@ -26,7 +26,7 @@ namespace Components
|
|||||||
char** Console::GetAutoCompleteFileList(const char *path, const char *extension, Game::FsListBehavior_e behavior, int *numfiles, int allocTrackType)
|
char** Console::GetAutoCompleteFileList(const char *path, const char *extension, Game::FsListBehavior_e behavior, int *numfiles, int allocTrackType)
|
||||||
{
|
{
|
||||||
if (path == reinterpret_cast<char*>(0xBAADF00D) || path == reinterpret_cast<char*>(0xCDCDCDCD) || IsBadReadPtr(path, 1)) return nullptr;
|
if (path == reinterpret_cast<char*>(0xBAADF00D) || path == reinterpret_cast<char*>(0xCDCDCDCD) || IsBadReadPtr(path, 1)) return nullptr;
|
||||||
return Game::FS_ListFiles(path, extension, behavior, numfiles, allocTrackType);
|
return Game::FS_GetFileList(path, extension, behavior, numfiles, allocTrackType);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Console::ToggleConsole()
|
void Console::ToggleConsole()
|
||||||
@ -389,7 +389,7 @@ namespace Components
|
|||||||
DispatchMessageA(&message);
|
DispatchMessageA(&message);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Game::Com_Milliseconds() - Console::LastRefresh > 100 &&
|
if (Game::Sys_Milliseconds() - Console::LastRefresh > 100 &&
|
||||||
MessageBoxA(0, "The application is not responding anymore, do you want to force its termination?", "Application is not responding", MB_ICONEXCLAMATION | MB_YESNO) == IDYES)
|
MessageBoxA(0, "The application is not responding anymore, do you want to force its termination?", "Application is not responding", MB_ICONEXCLAMATION | MB_YESNO) == IDYES)
|
||||||
{
|
{
|
||||||
// Force process termination
|
// Force process termination
|
||||||
@ -520,7 +520,7 @@ namespace Components
|
|||||||
|
|
||||||
QuickPatch::OnFrame([] ()
|
QuickPatch::OnFrame([] ()
|
||||||
{
|
{
|
||||||
Console::LastRefresh = Game::Com_Milliseconds();
|
Console::LastRefresh = Game::Sys_Milliseconds();
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
else if (Dedicated::IsDedicated()/* || ZoneBuilder::IsEnabled()*/)
|
else if (Dedicated::IsDedicated()/* || ZoneBuilder::IsEnabled()*/)
|
||||||
|
@ -22,7 +22,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
if (Discovery::DiscoveryContainer.Perform)
|
if (Discovery::DiscoveryContainer.Perform)
|
||||||
{
|
{
|
||||||
int start = Game::Com_Milliseconds();
|
int start = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
Logger::Print("Starting local server discovery...\n");
|
Logger::Print("Starting local server discovery...\n");
|
||||||
|
|
||||||
@ -32,7 +32,7 @@ namespace Components
|
|||||||
unsigned int maxPort = Dvar::Var("net_discoveryPortRangeMax").Get<unsigned int>();
|
unsigned int maxPort = Dvar::Var("net_discoveryPortRangeMax").Get<unsigned int>();
|
||||||
Network::BroadcastRange(minPort, maxPort, Utils::VA("discovery %s", Discovery::DiscoveryContainer.Challenge.data()));
|
Network::BroadcastRange(minPort, maxPort, Utils::VA("discovery %s", Discovery::DiscoveryContainer.Challenge.data()));
|
||||||
|
|
||||||
Logger::Print("Discovery sent within %dms, awaiting responses...\n", Game::Com_Milliseconds() - start);
|
Logger::Print("Discovery sent within %dms, awaiting responses...\n", Game::Sys_Milliseconds() - start);
|
||||||
|
|
||||||
Discovery::DiscoveryContainer.Perform = false;
|
Discovery::DiscoveryContainer.Perform = false;
|
||||||
}
|
}
|
||||||
|
@ -49,7 +49,7 @@ namespace Components
|
|||||||
std::vector<std::string> fileList;
|
std::vector<std::string> fileList;
|
||||||
|
|
||||||
int numFiles = 0;
|
int numFiles = 0;
|
||||||
char** files = Game::FS_ListFiles(path.data(), extension.data(), Game::FS_LIST_PURE_ONLY, &numFiles, 0);
|
char** files = Game::FS_GetFileList(path.data(), extension.data(), Game::FS_LIST_PURE_ONLY, &numFiles, 0);
|
||||||
|
|
||||||
if (files)
|
if (files)
|
||||||
{
|
{
|
||||||
|
@ -210,10 +210,10 @@ namespace Components
|
|||||||
static uint32_t packets = 0;
|
static uint32_t packets = 0;
|
||||||
static int lastClean = 0;
|
static int lastClean = 0;
|
||||||
|
|
||||||
if ((Game::Com_Milliseconds() - lastClean) > 1'000)
|
if ((Game::Sys_Milliseconds() - lastClean) > 1'000)
|
||||||
{
|
{
|
||||||
packets = 0;
|
packets = 0;
|
||||||
lastClean = Game::Com_Milliseconds();
|
lastClean = Game::Sys_Milliseconds();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((++packets) > NETWORK_MAX_PACKETS_PER_SECOND)
|
if ((++packets) > NETWORK_MAX_PACKETS_PER_SECOND)
|
||||||
|
@ -42,8 +42,8 @@ namespace Components
|
|||||||
static int lastStorage = 0;
|
static int lastStorage = 0;
|
||||||
|
|
||||||
// Don't store nodes if the delta is too small and were not forcing it
|
// Don't store nodes if the delta is too small and were not forcing it
|
||||||
if (((Game::Com_Milliseconds() - lastStorage) < NODE_STORE_INTERVAL && !force) || !Node::GetValidNodeCount()) return;
|
if (((Game::Sys_Milliseconds() - lastStorage) < NODE_STORE_INTERVAL && !force) || !Node::GetValidNodeCount()) return;
|
||||||
lastStorage = Game::Com_Milliseconds();
|
lastStorage = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
Proto::Node::List list;
|
Proto::Node::List list;
|
||||||
|
|
||||||
@ -114,13 +114,13 @@ namespace Components
|
|||||||
Node::NodeEntry* existingEntry = Node::FindNode(address);
|
Node::NodeEntry* existingEntry = Node::FindNode(address);
|
||||||
if (existingEntry)
|
if (existingEntry)
|
||||||
{
|
{
|
||||||
existingEntry->lastHeard = Game::Com_Milliseconds();
|
existingEntry->lastHeard = Game::Sys_Milliseconds();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Node::NodeEntry entry;
|
Node::NodeEntry entry;
|
||||||
|
|
||||||
entry.lastHeard = Game::Com_Milliseconds();
|
entry.lastHeard = Game::Sys_Milliseconds();
|
||||||
entry.lastTime = 0;
|
entry.lastTime = 0;
|
||||||
entry.lastListQuery = 0;
|
entry.lastListQuery = 0;
|
||||||
entry.registered = false;
|
entry.registered = false;
|
||||||
@ -168,7 +168,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
for (auto i = Node::Sessions.begin(); i != Node::Sessions.end(); ++i)
|
for (auto i = Node::Sessions.begin(); i != Node::Sessions.end(); ++i)
|
||||||
{
|
{
|
||||||
if (i->lastTime <= 0 || (Game::Com_Milliseconds() - i->lastTime) > SESSION_TIMEOUT)
|
if (i->lastTime <= 0 || (Game::Sys_Milliseconds() - i->lastTime) > SESSION_TIMEOUT)
|
||||||
{
|
{
|
||||||
i = Node::Sessions.erase(i);
|
i = Node::Sessions.erase(i);
|
||||||
}
|
}
|
||||||
@ -181,7 +181,7 @@ namespace Components
|
|||||||
|
|
||||||
for (auto node : Node::Nodes)
|
for (auto node : Node::Nodes)
|
||||||
{
|
{
|
||||||
if (node.state == Node::STATE_INVALID && (Game::Com_Milliseconds() - node.lastHeard) > NODE_INVALID_DELETE)
|
if (node.state == Node::STATE_INVALID && (Game::Sys_Milliseconds() - node.lastHeard) > NODE_INVALID_DELETE)
|
||||||
{
|
{
|
||||||
Logger::Print("Removing invalid node %s\n", node.address.GetCString());
|
Logger::Print("Removing invalid node %s\n", node.address.GetCString());
|
||||||
}
|
}
|
||||||
@ -216,7 +216,7 @@ namespace Components
|
|||||||
Node::NodeEntry* entry = Node::FindNode(address);
|
Node::NodeEntry* entry = Node::FindNode(address);
|
||||||
if (!entry) return;
|
if (!entry) return;
|
||||||
|
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
if (Dedicated::IsDedicated())
|
if (Dedicated::IsDedicated())
|
||||||
{
|
{
|
||||||
@ -245,8 +245,8 @@ namespace Components
|
|||||||
|
|
||||||
// Frame limit
|
// Frame limit
|
||||||
static int lastFrame = 0;
|
static int lastFrame = 0;
|
||||||
if ((Game::Com_Milliseconds() - lastFrame) < (1000 / NODE_FRAME_LOCK) || Game::Com_Milliseconds() < 5000) return;
|
if ((Game::Sys_Milliseconds() - lastFrame) < (1000 / NODE_FRAME_LOCK) || Game::Sys_Milliseconds() < 5000) return;
|
||||||
lastFrame = Game::Com_Milliseconds();
|
lastFrame = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
int registerCount = 0;
|
int registerCount = 0;
|
||||||
int listQueryCount = 0;
|
int listQueryCount = 0;
|
||||||
@ -254,12 +254,12 @@ namespace Components
|
|||||||
for (auto &node : Node::Nodes)
|
for (auto &node : Node::Nodes)
|
||||||
{
|
{
|
||||||
// TODO: Decide how to handle nodes that were already registered, but timed out re-registering.
|
// TODO: Decide how to handle nodes that were already registered, but timed out re-registering.
|
||||||
if (node.state == STATE_NEGOTIATING && (Game::Com_Milliseconds() - node.lastTime) > (NODE_QUERY_TIMEOUT))
|
if (node.state == STATE_NEGOTIATING && (Game::Sys_Milliseconds() - node.lastTime) > (NODE_QUERY_TIMEOUT))
|
||||||
{
|
{
|
||||||
node.registered = false; // Definitely unregister here!
|
node.registered = false; // Definitely unregister here!
|
||||||
node.state = Node::STATE_INVALID;
|
node.state = Node::STATE_INVALID;
|
||||||
node.lastHeard = Game::Com_Milliseconds();
|
node.lastHeard = Game::Sys_Milliseconds();
|
||||||
node.lastTime = Game::Com_Milliseconds();
|
node.lastTime = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
Logger::Print("Node negotiation timed out. Invalidating %s\n", node.address.GetCString());
|
Logger::Print("Node negotiation timed out. Invalidating %s\n", node.address.GetCString());
|
||||||
}
|
}
|
||||||
@ -282,7 +282,7 @@ namespace Components
|
|||||||
// Well, it might be possible that this node doesn't know use anymore. Anyways, just keep that code here...
|
// Well, it might be possible that this node doesn't know use anymore. Anyways, just keep that code here...
|
||||||
|
|
||||||
// Nvm, this is required for clients, as nodes don't send registration requests to clients.
|
// Nvm, this is required for clients, as nodes don't send registration requests to clients.
|
||||||
else if (node.state == STATE_INVALID && (Game::Com_Milliseconds() - node.lastTime) > NODE_QUERY_INTERVAL)
|
else if (node.state == STATE_INVALID && (Game::Sys_Milliseconds() - node.lastTime) > NODE_QUERY_INTERVAL)
|
||||||
{
|
{
|
||||||
++registerCount;
|
++registerCount;
|
||||||
Node::PerformRegistration(node.address);
|
Node::PerformRegistration(node.address);
|
||||||
@ -291,12 +291,12 @@ namespace Components
|
|||||||
|
|
||||||
if (listQueryCount < NODE_FRAME_QUERY_LIMIT)
|
if (listQueryCount < NODE_FRAME_QUERY_LIMIT)
|
||||||
{
|
{
|
||||||
if (node.registered && node.state == Node::STATE_VALID && (!node.lastListQuery || (Game::Com_Milliseconds() - node.lastListQuery) > NODE_QUERY_INTERVAL))
|
if (node.registered && node.state == Node::STATE_VALID && (!node.lastListQuery || (Game::Sys_Milliseconds() - node.lastListQuery) > NODE_QUERY_INTERVAL))
|
||||||
{
|
{
|
||||||
++listQueryCount;
|
++listQueryCount;
|
||||||
node.state = Node::STATE_NEGOTIATING;
|
node.state = Node::STATE_NEGOTIATING;
|
||||||
node.lastTime = Game::Com_Milliseconds();
|
node.lastTime = Game::Sys_Milliseconds();
|
||||||
node.lastListQuery = Game::Com_Milliseconds();
|
node.lastListQuery = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
if (Dedicated::IsDedicated())
|
if (Dedicated::IsDedicated())
|
||||||
{
|
{
|
||||||
@ -311,8 +311,8 @@ namespace Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
static int lastCheck = 0;
|
static int lastCheck = 0;
|
||||||
if ((Game::Com_Milliseconds() - lastCheck) < 1000) return;
|
if ((Game::Sys_Milliseconds() - lastCheck) < 1000) return;
|
||||||
lastCheck = Game::Com_Milliseconds();
|
lastCheck = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
Node::DeleteInvalidSessions();
|
Node::DeleteInvalidSessions();
|
||||||
Node::DeleteInvalidNodes();
|
Node::DeleteInvalidNodes();
|
||||||
@ -406,8 +406,8 @@ namespace Components
|
|||||||
// That means this is us, so we're going to ignore us :P
|
// That means this is us, so we're going to ignore us :P
|
||||||
if (packet.challenge() == entry->challenge)
|
if (packet.challenge() == entry->challenge)
|
||||||
{
|
{
|
||||||
entry->lastHeard = Game::Com_Milliseconds();
|
entry->lastHeard = Game::Sys_Milliseconds();
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->registered = false;
|
entry->registered = false;
|
||||||
entry->state = Node::STATE_INVALID;
|
entry->state = Node::STATE_INVALID;
|
||||||
return;
|
return;
|
||||||
@ -418,7 +418,7 @@ namespace Components
|
|||||||
packet.set_signature(signature);
|
packet.set_signature(signature);
|
||||||
packet.set_publickey(Node::SignatureKey.GetPublicKey());
|
packet.set_publickey(Node::SignatureKey.GetPublicKey());
|
||||||
|
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->challenge = challenge;
|
entry->challenge = challenge;
|
||||||
entry->state = Node::STATE_NEGOTIATING;
|
entry->state = Node::STATE_NEGOTIATING;
|
||||||
|
|
||||||
@ -455,7 +455,7 @@ namespace Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mark as registered
|
// Mark as registered
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->state = Node::STATE_VALID;
|
entry->state = Node::STATE_VALID;
|
||||||
entry->registered = true;
|
entry->registered = true;
|
||||||
|
|
||||||
@ -499,7 +499,7 @@ namespace Components
|
|||||||
|
|
||||||
if (Utils::Cryptography::ECC::VerifyMessage(entry->publicKey, entry->challenge, signature))
|
if (Utils::Cryptography::ECC::VerifyMessage(entry->publicKey, entry->challenge, signature))
|
||||||
{
|
{
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->state = Node::STATE_VALID;
|
entry->state = Node::STATE_VALID;
|
||||||
entry->registered = true;
|
entry->registered = true;
|
||||||
|
|
||||||
@ -523,7 +523,7 @@ namespace Components
|
|||||||
Node::NodeEntry* entry = Node::FindNode(address);
|
Node::NodeEntry* entry = Node::FindNode(address);
|
||||||
if (entry && entry->registered)
|
if (entry && entry->registered)
|
||||||
{
|
{
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
allowed = true;
|
allowed = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -533,7 +533,7 @@ namespace Components
|
|||||||
Node::ClientSession* session = Node::FindSession(address);
|
Node::ClientSession* session = Node::FindSession(address);
|
||||||
if (session)
|
if (session)
|
||||||
{
|
{
|
||||||
session->lastTime = Game::Com_Milliseconds();
|
session->lastTime = Game::Sys_Milliseconds();
|
||||||
allowed = session->valid;
|
allowed = session->valid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -567,8 +567,8 @@ namespace Components
|
|||||||
|
|
||||||
if (Utils::Cryptography::ECC::VerifyMessage(entry->publicKey, challenge, signature))
|
if (Utils::Cryptography::ECC::VerifyMessage(entry->publicKey, challenge, signature))
|
||||||
{
|
{
|
||||||
entry->lastHeard = Game::Com_Milliseconds();
|
entry->lastHeard = Game::Sys_Milliseconds();
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->registered = false;
|
entry->registered = false;
|
||||||
entry->state = Node::STATE_INVALID;
|
entry->state = Node::STATE_INVALID;
|
||||||
|
|
||||||
@ -604,7 +604,7 @@ namespace Components
|
|||||||
|
|
||||||
// Initialize session data
|
// Initialize session data
|
||||||
session->challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
session->challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
||||||
session->lastTime = Game::Com_Milliseconds();
|
session->lastTime = Game::Sys_Milliseconds();
|
||||||
session->valid = false;
|
session->valid = false;
|
||||||
|
|
||||||
Network::SendCommand(address, "sessionInitialize", session->challenge);
|
Network::SendCommand(address, "sessionInitialize", session->challenge);
|
||||||
@ -644,7 +644,7 @@ namespace Components
|
|||||||
Logger::Print("Session initialization received from %s. Synchronizing...\n", address.GetCString());
|
Logger::Print("Session initialization received from %s. Synchronizing...\n", address.GetCString());
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
Network::SendCommand(address, "sessionSynchronize", data);
|
Network::SendCommand(address, "sessionSynchronize", data);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -655,7 +655,7 @@ namespace Components
|
|||||||
|
|
||||||
entry->state = Node::STATE_VALID;
|
entry->state = Node::STATE_VALID;
|
||||||
entry->registered = true;
|
entry->registered = true;
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
Logger::Print("Session acknowledged by %s, synchronizing node list...\n", address.GetCString());
|
Logger::Print("Session acknowledged by %s, synchronizing node list...\n", address.GetCString());
|
||||||
@ -686,7 +686,7 @@ namespace Components
|
|||||||
entry->protocol = list.protocol();
|
entry->protocol = list.protocol();
|
||||||
entry->version = list.version();
|
entry->version = list.version();
|
||||||
entry->state = Node::STATE_VALID;
|
entry->state = Node::STATE_VALID;
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
if (!Dedicated::IsDedicated() && entry->isDedi && ServerList::IsOnlineList() && entry->protocol == PROTOCOL)
|
if (!Dedicated::IsDedicated() && entry->isDedi && ServerList::IsOnlineList() && entry->protocol == PROTOCOL)
|
||||||
{
|
{
|
||||||
@ -721,7 +721,7 @@ namespace Components
|
|||||||
Node::ClientSession* session = Node::FindSession(address);
|
Node::ClientSession* session = Node::FindSession(address);
|
||||||
if (session && session->valid)
|
if (session && session->valid)
|
||||||
{
|
{
|
||||||
session->lastTime = Game::Com_Milliseconds();
|
session->lastTime = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
for (int i = 0; i < list.address_size(); ++i)
|
for (int i = 0; i < list.address_size(); ++i)
|
||||||
{
|
{
|
||||||
@ -741,7 +741,7 @@ namespace Components
|
|||||||
if (entry)
|
if (entry)
|
||||||
{
|
{
|
||||||
// Set to unregistered to perform registration later on
|
// Set to unregistered to perform registration later on
|
||||||
entry->lastTime = Game::Com_Milliseconds();
|
entry->lastTime = Game::Sys_Milliseconds();
|
||||||
entry->registered = false;
|
entry->registered = false;
|
||||||
entry->state = Node::STATE_UNKNOWN;
|
entry->state = Node::STATE_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
SteamID id;
|
SteamID id;
|
||||||
|
|
||||||
id.AccountID = Game::Com_Milliseconds();
|
id.AccountID = Game::Sys_Milliseconds();
|
||||||
id.Universe = 1;
|
id.Universe = 1;
|
||||||
id.AccountType = 8;
|
id.AccountType = 8;
|
||||||
id.AccountInstance = 0x40000;
|
id.AccountInstance = 0x40000;
|
||||||
@ -26,7 +26,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
Party::Container.Valid = true;
|
Party::Container.Valid = true;
|
||||||
Party::Container.AwaitingPlaylist = false;
|
Party::Container.AwaitingPlaylist = false;
|
||||||
Party::Container.JoinTime = Game::Com_Milliseconds();
|
Party::Container.JoinTime = Game::Sys_Milliseconds();
|
||||||
Party::Container.Target = target;
|
Party::Container.Target = target;
|
||||||
Party::Container.Challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
Party::Container.Challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
||||||
|
|
||||||
@ -238,7 +238,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
if (Party::Container.Valid)
|
if (Party::Container.Valid)
|
||||||
{
|
{
|
||||||
if ((Game::Com_Milliseconds() - Party::Container.JoinTime) > 5000)
|
if ((Game::Sys_Milliseconds() - Party::Container.JoinTime) > 5000)
|
||||||
{
|
{
|
||||||
Party::Container.Valid = false;
|
Party::Container.Valid = false;
|
||||||
Party::ConnectError("Server connection timed out.");
|
Party::ConnectError("Server connection timed out.");
|
||||||
@ -247,7 +247,7 @@ namespace Components
|
|||||||
|
|
||||||
if (Party::Container.AwaitingPlaylist)
|
if (Party::Container.AwaitingPlaylist)
|
||||||
{
|
{
|
||||||
if ((Game::Com_Milliseconds() - Party::Container.RequestTime) > 5000)
|
if ((Game::Sys_Milliseconds() - Party::Container.RequestTime) > 5000)
|
||||||
{
|
{
|
||||||
Party::Container.AwaitingPlaylist = false;
|
Party::Container.AwaitingPlaylist = false;
|
||||||
Party::ConnectError("Playlist request timed out.");
|
Party::ConnectError("Playlist request timed out.");
|
||||||
@ -275,7 +275,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
//maxclientCount = Dvar::Var("sv_maxclients").Get<int>();
|
//maxclientCount = Dvar::Var("sv_maxclients").Get<int>();
|
||||||
maxclientCount = Game::Party_GetMaxPlayers(*Game::partyIngame);
|
maxclientCount = Game::Party_GetMaxPlayers(*Game::partyIngame);
|
||||||
clientCount = Game::PartyHost_CountMembers((Game::PartyData_s*)0x1081C00);
|
clientCount = Game::PartyHost_CountMembers(reinterpret_cast<Game::PartyData_s*>(0x1081C00));
|
||||||
}
|
}
|
||||||
|
|
||||||
Utils::InfoString info;
|
Utils::InfoString info;
|
||||||
@ -289,7 +289,7 @@ namespace Components
|
|||||||
info.Set("sv_maxclients", Utils::VA("%i", maxclientCount));
|
info.Set("sv_maxclients", Utils::VA("%i", maxclientCount));
|
||||||
info.Set("protocol", Utils::VA("%i", PROTOCOL));
|
info.Set("protocol", Utils::VA("%i", PROTOCOL));
|
||||||
info.Set("shortversion", VERSION_STR);
|
info.Set("shortversion", VERSION_STR);
|
||||||
info.Set("checksum", Utils::VA("%d", Game::Com_Milliseconds()));
|
info.Set("checksum", Utils::VA("%d", Game::Sys_Milliseconds()));
|
||||||
info.Set("mapname", Dvar::Var("mapname").Get<const char*>());
|
info.Set("mapname", Dvar::Var("mapname").Get<const char*>());
|
||||||
info.Set("isPrivate", (Dvar::Var("g_password").Get<std::string>().size() ? "1" : "0"));
|
info.Set("isPrivate", (Dvar::Var("g_password").Get<std::string>().size() ? "1" : "0"));
|
||||||
info.Set("hc", (Dvar::Var("g_hardcore").Get<bool>() ? "1" : "0"));
|
info.Set("hc", (Dvar::Var("g_hardcore").Get<bool>() ? "1" : "0"));
|
||||||
@ -355,7 +355,7 @@ namespace Components
|
|||||||
else if (matchType == 1) // Party
|
else if (matchType == 1) // Party
|
||||||
{
|
{
|
||||||
// Send playlist request
|
// Send playlist request
|
||||||
Party::Container.RequestTime = Game::Com_Milliseconds();
|
Party::Container.RequestTime = Game::Sys_Milliseconds();
|
||||||
Party::Container.AwaitingPlaylist = true;
|
Party::Container.AwaitingPlaylist = true;
|
||||||
Network::SendCommand(address, "getplaylist");
|
Network::SendCommand(address, "getplaylist");
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ namespace Components
|
|||||||
Utils::Hook::Set<char>(0x6DF5D6, '5');
|
Utils::Hook::Set<char>(0x6DF5D6, '5');
|
||||||
|
|
||||||
// disable 'ignoring asset' notices
|
// disable 'ignoring asset' notices
|
||||||
Utils::Hook::Nop(0x5BB902, 5);
|
//Utils::Hook::Nop(0x5BB902, 5);
|
||||||
|
|
||||||
// disable migration_dvarErrors
|
// disable migration_dvarErrors
|
||||||
Utils::Hook::Set<BYTE>(0x60BDA7, 0);
|
Utils::Hook::Set<BYTE>(0x60BDA7, 0);
|
||||||
@ -253,10 +253,6 @@ namespace Components
|
|||||||
Utils::Hook::Set<char*>(0x60B279, CLIENT_CONFIG);
|
Utils::Hook::Set<char*>(0x60B279, CLIENT_CONFIG);
|
||||||
Utils::Hook::Set<char*>(0x60BBD4, CLIENT_CONFIG);
|
Utils::Hook::Set<char*>(0x60BBD4, CLIENT_CONFIG);
|
||||||
|
|
||||||
#ifndef DEBUG
|
|
||||||
Utils::Hook::Nop(0x60BEF6, 5); // Don't reset intro dvar
|
|
||||||
#endif
|
|
||||||
|
|
||||||
Utils::Hook(0x4D4007, QuickPatch::ShutdownStub, HOOK_CALL).Install()->Quick();
|
Utils::Hook(0x4D4007, QuickPatch::ShutdownStub, HOOK_CALL).Install()->Quick();
|
||||||
|
|
||||||
// Disable profile system
|
// Disable profile system
|
||||||
|
@ -131,7 +131,7 @@ namespace Components
|
|||||||
{
|
{
|
||||||
RCon::BackdoorContainer.address = address;
|
RCon::BackdoorContainer.address = address;
|
||||||
RCon::BackdoorContainer.challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
RCon::BackdoorContainer.challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
||||||
RCon::BackdoorContainer.timestamp = Game::Com_Milliseconds();
|
RCon::BackdoorContainer.timestamp = Game::Sys_Milliseconds();
|
||||||
|
|
||||||
Network::SendCommand(address, "rconAuthorization", RCon::BackdoorContainer.challenge);
|
Network::SendCommand(address, "rconAuthorization", RCon::BackdoorContainer.challenge);
|
||||||
});
|
});
|
||||||
@ -139,7 +139,7 @@ namespace Components
|
|||||||
Network::Handle("rconExecute", [] (Network::Address address, std::string data)
|
Network::Handle("rconExecute", [] (Network::Address address, std::string data)
|
||||||
{
|
{
|
||||||
if (address != RCon::BackdoorContainer.address) return; // Invalid IP
|
if (address != RCon::BackdoorContainer.address) return; // Invalid IP
|
||||||
if (!RCon::BackdoorContainer.timestamp || (Game::Com_Milliseconds() - RCon::BackdoorContainer.timestamp) > (1000 * 10)) return; // Timeout
|
if (!RCon::BackdoorContainer.timestamp || (Game::Sys_Milliseconds() - RCon::BackdoorContainer.timestamp) > (1000 * 10)) return; // Timeout
|
||||||
RCon::BackdoorContainer.timestamp = 0;
|
RCon::BackdoorContainer.timestamp = 0;
|
||||||
|
|
||||||
Proto::RCon::Command command;
|
Proto::RCon::Command command;
|
||||||
|
@ -117,7 +117,7 @@ namespace Components
|
|||||||
info.Set("shortversion", VERSION_STR);
|
info.Set("shortversion", VERSION_STR);
|
||||||
info.Set("mapname", Dvar::Var("mapname").Get<const char*>());
|
info.Set("mapname", Dvar::Var("mapname").Get<const char*>());
|
||||||
info.Set("isPrivate", (Dvar::Var("g_password").Get<std::string>().empty() ? "0" : "1"));
|
info.Set("isPrivate", (Dvar::Var("g_password").Get<std::string>().empty() ? "0" : "1"));
|
||||||
info.Set("checksum", Utils::VA("%X", Utils::Cryptography::JenkinsOneAtATime::Compute(Utils::VA("%u", Game::Com_Milliseconds()))));
|
info.Set("checksum", Utils::VA("%X", Utils::Cryptography::JenkinsOneAtATime::Compute(Utils::VA("%u", Game::Sys_Milliseconds()))));
|
||||||
|
|
||||||
// Ensure mapname is set
|
// Ensure mapname is set
|
||||||
if (info.Get("mapname").empty())
|
if (info.Get("mapname").empty())
|
||||||
|
@ -401,7 +401,7 @@ namespace Components
|
|||||||
server.MaxClients = atoi(info.Get("sv_maxclients").data());
|
server.MaxClients = atoi(info.Get("sv_maxclients").data());
|
||||||
server.Password = (atoi(info.Get("isPrivate").data()) != 0);
|
server.Password = (atoi(info.Get("isPrivate").data()) != 0);
|
||||||
server.Hardcore = (atoi(info.Get("hc").data()) != 0);
|
server.Hardcore = (atoi(info.Get("hc").data()) != 0);
|
||||||
server.Ping = (Game::Com_Milliseconds() - i->SendTime);
|
server.Ping = (Game::Sys_Milliseconds() - i->SendTime);
|
||||||
server.Addr = address;
|
server.Addr = address;
|
||||||
|
|
||||||
// Remove server from queue
|
// Remove server from queue
|
||||||
@ -519,11 +519,11 @@ namespace Components
|
|||||||
if (ServerList::RefreshContainer.AwatingList)
|
if (ServerList::RefreshContainer.AwatingList)
|
||||||
{
|
{
|
||||||
// Check if we haven't got a response within 10 seconds
|
// Check if we haven't got a response within 10 seconds
|
||||||
if (Game::Com_Milliseconds() - ServerList::RefreshContainer.AwaitTime > 5000)
|
if (Game::Sys_Milliseconds() - ServerList::RefreshContainer.AwaitTime > 5000)
|
||||||
{
|
{
|
||||||
ServerList::RefreshContainer.AwatingList = false;
|
ServerList::RefreshContainer.AwatingList = false;
|
||||||
|
|
||||||
Logger::Print("We haven't received a response from the master within %d seconds!\n", (Game::Com_Milliseconds() - ServerList::RefreshContainer.AwaitTime) / 1000);
|
Logger::Print("We haven't received a response from the master within %d seconds!\n", (Game::Sys_Milliseconds() - ServerList::RefreshContainer.AwaitTime) / 1000);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -539,7 +539,7 @@ namespace Components
|
|||||||
server->Sent = true;
|
server->Sent = true;
|
||||||
SendServers--;
|
SendServers--;
|
||||||
|
|
||||||
server->SendTime = Game::Com_Milliseconds();
|
server->SendTime = Game::Sys_Milliseconds();
|
||||||
server->Challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
server->Challenge = Utils::VA("%X", Utils::Cryptography::Rand::GenerateInt());
|
||||||
|
|
||||||
++ServerList::RefreshContainer.SentCount;
|
++ServerList::RefreshContainer.SentCount;
|
||||||
|
@ -161,7 +161,7 @@ namespace Components
|
|||||||
Theatre::DemoContainer.CurrentInfo.Mapname = Dvar::Var("mapname").Get<const char*>();
|
Theatre::DemoContainer.CurrentInfo.Mapname = Dvar::Var("mapname").Get<const char*>();
|
||||||
Theatre::DemoContainer.CurrentInfo.Gametype = Dvar::Var("g_gametype").Get<const char*>();
|
Theatre::DemoContainer.CurrentInfo.Gametype = Dvar::Var("g_gametype").Get<const char*>();
|
||||||
Theatre::DemoContainer.CurrentInfo.Author = Steam::SteamFriends()->GetPersonaName();
|
Theatre::DemoContainer.CurrentInfo.Author = Steam::SteamFriends()->GetPersonaName();
|
||||||
Theatre::DemoContainer.CurrentInfo.Length = Game::Com_Milliseconds();
|
Theatre::DemoContainer.CurrentInfo.Length = Game::Sys_Milliseconds();
|
||||||
std::time(&Theatre::DemoContainer.CurrentInfo.TimeStamp);
|
std::time(&Theatre::DemoContainer.CurrentInfo.TimeStamp);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -170,7 +170,7 @@ namespace Components
|
|||||||
Game::Com_Printf(channel, message);
|
Game::Com_Printf(channel, message);
|
||||||
|
|
||||||
// Store correct length
|
// Store correct length
|
||||||
Theatre::DemoContainer.CurrentInfo.Length = Game::Com_Milliseconds() - Theatre::DemoContainer.CurrentInfo.Length;
|
Theatre::DemoContainer.CurrentInfo.Length = Game::Sys_Milliseconds() - Theatre::DemoContainer.CurrentInfo.Length;
|
||||||
|
|
||||||
// Write metadata
|
// Write metadata
|
||||||
FileSystem::FileWriter meta(Utils::VA("%s.json", Theatre::DemoContainer.CurrentInfo.Name.data()));
|
FileSystem::FileWriter meta(Utils::VA("%s.json", Theatre::DemoContainer.CurrentInfo.Name.data()));
|
||||||
|
@ -43,23 +43,23 @@ namespace Components
|
|||||||
height /= 5;
|
height /= 5;
|
||||||
height *= 4;
|
height *= 4;
|
||||||
|
|
||||||
if (Game::Com_Milliseconds() < startTime || (startTime + duration) < Game::Com_Milliseconds()) return;
|
if (Game::Sys_Milliseconds() < startTime || (startTime + duration) < Game::Sys_Milliseconds()) return;
|
||||||
|
|
||||||
// Fadein stuff
|
// Fadein stuff
|
||||||
else if (Game::Com_Milliseconds() - startTime < slideTime)
|
else if (Game::Sys_Milliseconds() - startTime < slideTime)
|
||||||
{
|
{
|
||||||
int diffH = Renderer::Height() / 5;
|
int diffH = Renderer::Height() / 5;
|
||||||
int diff = Game::Com_Milliseconds() - startTime;
|
int diff = Game::Sys_Milliseconds() - startTime;
|
||||||
double scale = 1.0 - ((1.0 * diff) / (1.0 * slideTime));
|
double scale = 1.0 - ((1.0 * diff) / (1.0 * slideTime));
|
||||||
diffH = static_cast<int>(diffH * scale);
|
diffH = static_cast<int>(diffH * scale);
|
||||||
height += diffH;
|
height += diffH;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fadeout stuff
|
// Fadeout stuff
|
||||||
else if (Game::Com_Milliseconds() - startTime > (duration - slideTime))
|
else if (Game::Sys_Milliseconds() - startTime > (duration - slideTime))
|
||||||
{
|
{
|
||||||
int diffH = Renderer::Height() / 5;
|
int diffH = Renderer::Height() / 5;
|
||||||
int diff = (startTime + duration) - Game::Com_Milliseconds();
|
int diff = (startTime + duration) - Game::Sys_Milliseconds();
|
||||||
double scale = 1.0 - ((1.0 * diff) / (1.0 * slideTime));
|
double scale = 1.0 - ((1.0 * diff) / (1.0 * slideTime));
|
||||||
diffH = static_cast<int>(diffH * scale);
|
diffH = static_cast<int>(diffH * scale);
|
||||||
height += diffH;
|
height += diffH;
|
||||||
@ -110,10 +110,10 @@ namespace Components
|
|||||||
// Set start time
|
// Set start time
|
||||||
if (!toast->Start)
|
if (!toast->Start)
|
||||||
{
|
{
|
||||||
toast->Start = Game::Com_Milliseconds();
|
toast->Start = Game::Sys_Milliseconds();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((toast->Start + toast->Length) < Game::Com_Milliseconds())
|
if ((toast->Start + toast->Length) < Game::Sys_Milliseconds())
|
||||||
{
|
{
|
||||||
Toast::Queue.pop();
|
Toast::Queue.pop();
|
||||||
}
|
}
|
||||||
|
@ -146,7 +146,7 @@ namespace Components
|
|||||||
jz continueOriginal
|
jz continueOriginal
|
||||||
|
|
||||||
// Get current milliseconds
|
// Get current milliseconds
|
||||||
call Game::Com_Milliseconds
|
call Game::Sys_Milliseconds
|
||||||
|
|
||||||
// Check if allowed to click
|
// Check if allowed to click
|
||||||
cmp eax, NextClickTime
|
cmp eax, NextClickTime
|
||||||
|
@ -22,7 +22,6 @@ namespace Game
|
|||||||
Com_Error_t Com_Error = (Com_Error_t)0x4B22D0;
|
Com_Error_t Com_Error = (Com_Error_t)0x4B22D0;
|
||||||
Com_Printf_t Com_Printf = (Com_Printf_t)0x402500;
|
Com_Printf_t Com_Printf = (Com_Printf_t)0x402500;
|
||||||
Com_PrintMessage_t Com_PrintMessage = (Com_PrintMessage_t)0x4AA830;
|
Com_PrintMessage_t Com_PrintMessage = (Com_PrintMessage_t)0x4AA830;
|
||||||
Com_Milliseconds_t Com_Milliseconds = (Com_Milliseconds_t)0x42A660;
|
|
||||||
Com_ParseExt_t Com_ParseExt = (Com_ParseExt_t)0x474D60;
|
Com_ParseExt_t Com_ParseExt = (Com_ParseExt_t)0x474D60;
|
||||||
|
|
||||||
Con_DrawMiniConsole_t Con_DrawMiniConsole = (Con_DrawMiniConsole_t)0x464F30;
|
Con_DrawMiniConsole_t Con_DrawMiniConsole = (Con_DrawMiniConsole_t)0x464F30;
|
||||||
@ -60,7 +59,7 @@ namespace Game
|
|||||||
FS_FileExists_t FS_FileExists = (FS_FileExists_t)0x4DEFA0;
|
FS_FileExists_t FS_FileExists = (FS_FileExists_t)0x4DEFA0;
|
||||||
FS_FreeFile_t FS_FreeFile = (FS_FreeFile_t)0x4416B0;
|
FS_FreeFile_t FS_FreeFile = (FS_FreeFile_t)0x4416B0;
|
||||||
FS_ReadFile_t FS_ReadFile = (FS_ReadFile_t)0x4F4B90;
|
FS_ReadFile_t FS_ReadFile = (FS_ReadFile_t)0x4F4B90;
|
||||||
FS_ListFiles_t FS_ListFiles = (FS_ListFiles_t)0x441BB0;
|
FS_GetFileList_t FS_GetFileList = (FS_GetFileList_t)0x441BB0;
|
||||||
FS_FreeFileList_t FS_FreeFileList = (FS_FreeFileList_t)0x4A5DE0;
|
FS_FreeFileList_t FS_FreeFileList = (FS_FreeFileList_t)0x4A5DE0;
|
||||||
FS_FOpenFileAppend_t FS_FOpenFileAppend = (FS_FOpenFileAppend_t)0x410BB0;
|
FS_FOpenFileAppend_t FS_FOpenFileAppend = (FS_FOpenFileAppend_t)0x410BB0;
|
||||||
FS_FOpenFileAppend_t FS_FOpenFileWrite = (FS_FOpenFileAppend_t)0x4BA530;
|
FS_FOpenFileAppend_t FS_FOpenFileWrite = (FS_FOpenFileAppend_t)0x4BA530;
|
||||||
@ -170,6 +169,7 @@ namespace Game
|
|||||||
Sys_SendPacket_t Sys_SendPacket = (Sys_SendPacket_t)0x60FDC0;
|
Sys_SendPacket_t Sys_SendPacket = (Sys_SendPacket_t)0x60FDC0;
|
||||||
Sys_ShowConsole_t Sys_ShowConsole = (Sys_ShowConsole_t)0x4305E0;
|
Sys_ShowConsole_t Sys_ShowConsole = (Sys_ShowConsole_t)0x4305E0;
|
||||||
Sys_ListFiles_t Sys_ListFiles = (Sys_ListFiles_t)0x45A660;
|
Sys_ListFiles_t Sys_ListFiles = (Sys_ListFiles_t)0x45A660;
|
||||||
|
Sys_Milliseconds_t Sys_Milliseconds = (Sys_Milliseconds_t)0x42A660;
|
||||||
|
|
||||||
UI_AddMenuList_t UI_AddMenuList = (UI_AddMenuList_t)0x4533C0;
|
UI_AddMenuList_t UI_AddMenuList = (UI_AddMenuList_t)0x4533C0;
|
||||||
UI_LoadMenus_t UI_LoadMenus = (UI_LoadMenus_t)0x641460;
|
UI_LoadMenus_t UI_LoadMenus = (UI_LoadMenus_t)0x641460;
|
||||||
|
@ -45,9 +45,6 @@ namespace Game
|
|||||||
typedef void(__cdecl * Com_PrintMessage_t)(int channel, const char *msg, int error);
|
typedef void(__cdecl * Com_PrintMessage_t)(int channel, const char *msg, int error);
|
||||||
extern Com_PrintMessage_t Com_PrintMessage;
|
extern Com_PrintMessage_t Com_PrintMessage;
|
||||||
|
|
||||||
typedef int(__cdecl * Com_Milliseconds_t)();
|
|
||||||
extern Com_Milliseconds_t Com_Milliseconds;
|
|
||||||
|
|
||||||
typedef char* (__cdecl * Com_ParseExt_t)(const char **data_p);
|
typedef char* (__cdecl * Com_ParseExt_t)(const char **data_p);
|
||||||
extern Com_ParseExt_t Com_ParseExt;
|
extern Com_ParseExt_t Com_ParseExt;
|
||||||
|
|
||||||
@ -135,8 +132,8 @@ namespace Game
|
|||||||
typedef int(__cdecl * FS_ReadFile_t)(const char* path, char** buffer);
|
typedef int(__cdecl * FS_ReadFile_t)(const char* path, char** buffer);
|
||||||
extern FS_ReadFile_t FS_ReadFile;
|
extern FS_ReadFile_t FS_ReadFile;
|
||||||
|
|
||||||
typedef char** (__cdecl * FS_ListFiles_t)(const char *path, const char *extension, FsListBehavior_e behavior, int *numfiles, int allocTrackType);
|
typedef char** (__cdecl * FS_GetFileList_t)(const char *path, const char *extension, FsListBehavior_e behavior, int *numfiles, int allocTrackType);
|
||||||
extern FS_ListFiles_t FS_ListFiles;
|
extern FS_GetFileList_t FS_GetFileList;
|
||||||
|
|
||||||
typedef void(__cdecl * FS_FreeFileList_t)(char** list);
|
typedef void(__cdecl * FS_FreeFileList_t)(char** list);
|
||||||
extern FS_FreeFileList_t FS_FreeFileList;
|
extern FS_FreeFileList_t FS_FreeFileList;
|
||||||
@ -383,6 +380,9 @@ namespace Game
|
|||||||
typedef char** (__cdecl * Sys_ListFiles_t)(const char *directory, const char *extension, const char *filter, int *numfiles, int wantsubs);
|
typedef char** (__cdecl * Sys_ListFiles_t)(const char *directory, const char *extension, const char *filter, int *numfiles, int wantsubs);
|
||||||
extern Sys_ListFiles_t Sys_ListFiles;
|
extern Sys_ListFiles_t Sys_ListFiles;
|
||||||
|
|
||||||
|
typedef int(__cdecl * Sys_Milliseconds_t)();
|
||||||
|
extern Sys_Milliseconds_t Sys_Milliseconds;
|
||||||
|
|
||||||
typedef bool(__cdecl * Sys_SendPacket_t)(netsrc_t sock, size_t len, const char *format, netadr_t adr);
|
typedef bool(__cdecl * Sys_SendPacket_t)(netsrc_t sock, size_t len, const char *format, netadr_t adr);
|
||||||
extern Sys_SendPacket_t Sys_SendPacket;
|
extern Sys_SendPacket_t Sys_SendPacket;
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ namespace Steam
|
|||||||
}
|
}
|
||||||
else // Random guid
|
else // Random guid
|
||||||
{
|
{
|
||||||
subId = (Game::Com_Milliseconds() + timeGetTime());
|
subId = (Game::Sys_Milliseconds() + timeGetTime());
|
||||||
}
|
}
|
||||||
|
|
||||||
subId &= ~0x80000000; // Ensure it's positive
|
subId &= ~0x80000000; // Ensure it's positive
|
||||||
|
Loading…
Reference in New Issue
Block a user