[Download]: Poll every 1000 msec, fix bug (#707)
This commit is contained in:
parent
90b124420f
commit
06e7f86a42
@ -3,6 +3,10 @@
|
|||||||
|
|
||||||
#include "GSC/Script.hpp"
|
#include "GSC/Script.hpp"
|
||||||
|
|
||||||
|
// From Quake-III
|
||||||
|
#define ANGLE2SHORT(x) ((int)((x) * (USHRT_MAX + 1) / 360.0f) & USHRT_MAX)
|
||||||
|
#define SHORT2ANGLE(x) ((x)* (360.0f / (USHRT_MAX + 1)))
|
||||||
|
|
||||||
namespace Components
|
namespace Components
|
||||||
{
|
{
|
||||||
std::vector<Bots::botData> Bots::BotNames;
|
std::vector<Bots::botData> Bots::BotNames;
|
||||||
@ -280,6 +284,10 @@ namespace Components
|
|||||||
userCmd.rightmove = g_botai[entnum].right;
|
userCmd.rightmove = g_botai[entnum].right;
|
||||||
userCmd.weapon = g_botai[entnum].weapon;
|
userCmd.weapon = g_botai[entnum].weapon;
|
||||||
|
|
||||||
|
userCmd.angles[0] = ANGLE2SHORT((cl->gentity->client->ps.viewangles[0] - cl->gentity->client->ps.delta_angles[0]));
|
||||||
|
userCmd.angles[1] = ANGLE2SHORT((cl->gentity->client->ps.viewangles[1] - cl->gentity->client->ps.delta_angles[1]));
|
||||||
|
userCmd.angles[2] = ANGLE2SHORT((cl->gentity->client->ps.viewangles[2] - cl->gentity->client->ps.delta_angles[2]));
|
||||||
|
|
||||||
Game::SV_ClientThink(cl, &userCmd);
|
Game::SV_ClientThink(cl, &userCmd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -604,44 +604,7 @@ namespace Components
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void HTMLHandler(mg_connection* c, mg_http_message* hm)
|
static void EventHandler(mg_connection* c, const int ev, void* ev_data, [[maybe_unused]] void* fn_data)
|
||||||
{
|
|
||||||
auto url = "html" + std::string(hm->uri.ptr, hm->uri.len);
|
|
||||||
FileSystem::File file;
|
|
||||||
|
|
||||||
if (url.ends_with("/"))
|
|
||||||
{
|
|
||||||
url.append("index.html");
|
|
||||||
file = FileSystem::File(url);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
file = FileSystem::File(url);
|
|
||||||
if (!file.exists())
|
|
||||||
{
|
|
||||||
url.append("/index.html");
|
|
||||||
file = FileSystem::File(url);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const auto mimeType = Utils::GetMimeType(url);
|
|
||||||
|
|
||||||
if (file.exists())
|
|
||||||
{
|
|
||||||
mg_printf(c, "%s", "HTTP/1.1 200 OK\r\n");
|
|
||||||
mg_printf(c, "Content-Type: %s\r\n", mimeType.data());
|
|
||||||
mg_printf(c, "Content-Length: %d\r\n", static_cast<int>(file.getBuffer().size()));
|
|
||||||
mg_printf(c, "%s", "Connection: close\r\n");
|
|
||||||
mg_printf(c, "%s", "\r\n");
|
|
||||||
mg_send(c, file.getBuffer().data(), file.getBuffer().size());
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mg_http_reply(c, 404, "Content-Type: text/html\r\n", "404 - Not Found");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static void EventHandler(mg_connection* c, int ev, void* ev_data, [[maybe_unused]] void* fn_data)
|
|
||||||
{
|
{
|
||||||
if (ev != MG_EV_HTTP_MSG)
|
if (ev != MG_EV_HTTP_MSG)
|
||||||
{
|
{
|
||||||
@ -649,7 +612,7 @@ namespace Components
|
|||||||
}
|
}
|
||||||
|
|
||||||
auto* hm = static_cast<mg_http_message*>(ev_data);
|
auto* hm = static_cast<mg_http_message*>(ev_data);
|
||||||
std::string url(hm->uri.ptr, hm->uri.len);
|
const std::string url(hm->uri.ptr, hm->uri.len);
|
||||||
|
|
||||||
if (url.starts_with("/info"))
|
if (url.starts_with("/info"))
|
||||||
{
|
{
|
||||||
@ -672,8 +635,12 @@ namespace Components
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
HTMLHandler(c, hm);
|
mg_http_serve_opts opts = { .root_dir = "iw4x/html" }; // Serve local dir
|
||||||
|
mg_http_serve_dir(c, hm, &opts);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
c->is_resp = FALSE; // This is important, the lack of this line of code will make the server die (in-game)
|
||||||
|
c->is_draining = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
#pragma endregion
|
#pragma endregion
|
||||||
@ -694,6 +661,7 @@ namespace Components
|
|||||||
if (!nc)
|
if (!nc)
|
||||||
{
|
{
|
||||||
Logger::PrintError(Game::CON_CHANNEL_ERROR, "Failed to bind TCP socket, mod download won't work!\n");
|
Logger::PrintError(Game::CON_CHANNEL_ERROR, "Failed to bind TCP socket, mod download won't work!\n");
|
||||||
|
Terminate = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -705,7 +673,7 @@ namespace Components
|
|||||||
|
|
||||||
while (!Terminate)
|
while (!Terminate)
|
||||||
{
|
{
|
||||||
mg_mgr_poll(&Mgr, 100);
|
mg_mgr_poll(&Mgr, 1000);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user