More cleanup

This commit is contained in:
Diavolo 2022-02-01 21:51:17 +01:00
parent a7a69d291f
commit bf11b6bb9e
No known key found for this signature in database
GPG Key ID: FA77F074E98D98A5
3 changed files with 44 additions and 31 deletions

View File

@ -190,11 +190,11 @@ namespace Components
void Script::CompileError(unsigned int offset, const char* message, ...) void Script::CompileError(unsigned int offset, const char* message, ...)
{ {
char msgbuf[1024] = { 0 }; char msgbuf[1024] = {0};
va_list v; va_list va;
va_start(v, message); va_start(va, message);
_vsnprintf_s(msgbuf, sizeof(msgbuf), message, v); vsnprintf_s(msgbuf, sizeof(msgbuf), _TRUNCATE, message, va);
va_end(v); va_end(va);
Game::Scr_ShutdownAllocNode(); Game::Scr_ShutdownAllocNode();
@ -214,7 +214,7 @@ namespace Components
if (!Game::Scr_LoadScript(script.data())) if (!Game::Scr_LoadScript(script.data()))
{ {
Logger::Print("Script %s encountered an error while loading. (doesn't exist?)", script.data()); Logger::Print("Script %s encountered an error while loading. (doesn't exist?)", script.data());
Logger::Error(Game::ERR_DROP, reinterpret_cast<char*>(0x70B810), script.data()); Logger::Error(Game::ERR_DROP, reinterpret_cast<const char*>(0x70B810), script.data());
} }
else else
{ {
@ -339,9 +339,9 @@ namespace Components
int offset = -1; int offset = -1;
std::string file; std::string file;
for (auto kv : Script::ScriptBaseProgramNum) for (const auto& [key, value] : Script::ScriptBaseProgramNum)
{ {
int codePos = kv.first; int codePos = key;
if (codePos > scriptPos) if (codePos > scriptPos)
{ {
@ -356,7 +356,7 @@ namespace Components
bestCodePos = codePos; bestCodePos = codePos;
file = kv.second; file = value;
offset = scriptPos - bestCodePos; offset = scriptPos - bestCodePos;
} }
@ -589,7 +589,7 @@ namespace Components
if (str == nullptr) if (str == nullptr)
{ {
Game::Scr_ParamError(0, "^1Exec: Illegal parameters!\n"); Game::Scr_ParamError(0, "^1Exec: Illegal parameter!\n");
return; return;
} }
@ -605,7 +605,7 @@ namespace Components
if (str == nullptr) if (str == nullptr)
{ {
Game::Scr_ParamError(i, "^1PrintConsole: Illegal parameters!\n"); Game::Scr_ParamError(i, "^1PrintConsole: Illegal parameter!\n");
return; return;
} }
@ -616,19 +616,31 @@ namespace Components
// Script Storage Funcs // Script Storage Funcs
Script::AddFunction("StorageSet", [](Game::scr_entref_t) // gsc: StorageSet(<str key>, <str data>); Script::AddFunction("StorageSet", [](Game::scr_entref_t) // gsc: StorageSet(<str key>, <str data>);
{ {
std::string key = Game::Scr_GetString(0); const auto* key = Game::Scr_GetString(0);
std::string data = Game::Scr_GetString(1); const auto* value = Game::Scr_GetString(1);
Script::ScriptStorage.insert_or_assign(key, data); if (key == nullptr || value == nullptr)
{
Game::Scr_Error("^1StorageSet: Illegal parameters!\n");
return;
}
Script::ScriptStorage.insert_or_assign(key, value);
}); });
Script::AddFunction("StorageRemove", [](Game::scr_entref_t) // gsc: StorageRemove(<str key>); Script::AddFunction("StorageRemove", [](Game::scr_entref_t) // gsc: StorageRemove(<str key>);
{ {
std::string key = Game::Scr_GetString(0); const auto* key = Game::Scr_GetString(0);
if (key == nullptr)
{
Game::Scr_Error("^1StorageRemove: Illegal parameter!\n");
return;
}
if (!Script::ScriptStorage.count(key)) if (!Script::ScriptStorage.count(key))
{ {
Game::Scr_Error(Utils::String::VA("^1StorageRemove: Store does not have key '%s'!\n", key.data())); Game::Scr_Error(Utils::String::VA("^1StorageRemove: Store does not have key '%s'!\n", key));
return; return;
} }
@ -637,11 +649,17 @@ namespace Components
Script::AddFunction("StorageGet", [](Game::scr_entref_t) // gsc: StorageGet(<str key>); Script::AddFunction("StorageGet", [](Game::scr_entref_t) // gsc: StorageGet(<str key>);
{ {
std::string key = Game::Scr_GetString(0); const auto* key = Game::Scr_GetString(0);
if (key == nullptr)
{
Game::Scr_Error("^1StorageGet: Illegal parameter!\n");
return;
}
if (!Script::ScriptStorage.count(key)) if (!Script::ScriptStorage.count(key))
{ {
Game::Scr_Error(Utils::String::VA("^1StorageGet: Store does not have key '%s'!\n", key.data())); Game::Scr_Error(Utils::String::VA("^1StorageGet: Store does not have key '%s'!\n", key));
return; return;
} }
@ -651,7 +669,14 @@ namespace Components
Script::AddFunction("StorageHas", [](Game::scr_entref_t) // gsc: StorageHas(<str key>); Script::AddFunction("StorageHas", [](Game::scr_entref_t) // gsc: StorageHas(<str key>);
{ {
std::string key = Game::Scr_GetString(0); const auto* key = Game::Scr_GetString(0);
if (key == nullptr)
{
Game::Scr_Error("^1StorageHas: Illegal parameter!\n");
return;
}
Game::Scr_AddBool(Script::ScriptStorage.count(key)); Game::Scr_AddBool(Script::ScriptStorage.count(key));
}); });

View File

@ -699,16 +699,6 @@ namespace Game
SV_KickClient(client, reason.data()); SV_KickClient(client, reason.data());
} }
void Scr_iPrintLn(int clientNum, const std::string& message)
{
Game::SV_GameSendServerCommand(clientNum, 0, Utils::String::VA("%c \"%s\"", 0x66, message.data()));
}
void Scr_iPrintLnBold(int clientNum, const std::string& message)
{
Game::SV_GameSendServerCommand(clientNum, 0, Utils::String::VA("%c \"%s\"", 0x67, message.data()));
}
void IncInParam() void IncInParam()
{ {
Scr_ClearOutParams(); Scr_ClearOutParams();

View File

@ -1062,8 +1062,6 @@ namespace Game
void RuntimeErrorInternal(int channel, const char* codePos, unsigned int index, const char* msg); void RuntimeErrorInternal(int channel, const char* codePos, unsigned int index, const char* msg);
void IncInParam(); void IncInParam();
void Scr_iPrintLn(int clientNum, const std::string& message);
void Scr_iPrintLnBold(int clientNum, const std::string& message);
void Scr_NotifyId(unsigned int id, unsigned __int16 stringValue, unsigned int paramcount); void Scr_NotifyId(unsigned int id, unsigned __int16 stringValue, unsigned int paramcount);
void Scr_AddBool(int value); void Scr_AddBool(int value);