[Script]: Improvements to two GSC funcs (#836)
This commit is contained in:
parent
f803be18f6
commit
6bae9958e0
@ -15,7 +15,7 @@ namespace Components::GSC
|
|||||||
char out[1024]{}; // 1024 is the max for a string in this SL system
|
char out[1024]{}; // 1024 is the max for a string in this SL system
|
||||||
bool changed = false;
|
bool changed = false;
|
||||||
|
|
||||||
size_t i = 0;
|
std::size_t i = 0;
|
||||||
while (i < sizeof(out))
|
while (i < sizeof(out))
|
||||||
{
|
{
|
||||||
const auto value = *string;
|
const auto value = *string;
|
||||||
@ -23,10 +23,14 @@ namespace Components::GSC
|
|||||||
out[i] = result;
|
out[i] = result;
|
||||||
|
|
||||||
if (value != result)
|
if (value != result)
|
||||||
|
{
|
||||||
changed = true;
|
changed = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (result == '\0') // Finished converting string
|
if (result == '\0') // Finished converting string
|
||||||
|
{
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
++string;
|
++string;
|
||||||
++i;
|
++i;
|
||||||
@ -73,12 +77,10 @@ namespace Components::GSC
|
|||||||
// Func present on IW5
|
// Func present on IW5
|
||||||
Script::AddFunction("StrICmp", [] // gsc: StrICmp(<string>, <string>)
|
Script::AddFunction("StrICmp", [] // gsc: StrICmp(<string>, <string>)
|
||||||
{
|
{
|
||||||
const auto value1 = Game::Scr_GetConstString(0);
|
const auto* string1 = Game::SL_ConvertToString(Game::Scr_GetConstString(0));
|
||||||
const auto value2 = Game::Scr_GetConstString(1);
|
const auto* string2 = Game::SL_ConvertToString(Game::Scr_GetConstString(1));
|
||||||
|
|
||||||
const auto result = _stricmp(Game::SL_ConvertToString(value1), Game::SL_ConvertToString(value2));
|
Game::Scr_AddInt(_stricmp(string1, string2));
|
||||||
|
|
||||||
Game::Scr_AddInt(result);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// Func present on IW5
|
// Func present on IW5
|
||||||
@ -93,7 +95,16 @@ namespace Components::GSC
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Game::Scr_AddBool(Utils::String::EndsWith(str, suffix));
|
const auto str_len = std::strlen(str);
|
||||||
|
const auto suffix_len = std::strlen(suffix);
|
||||||
|
|
||||||
|
if (suffix_len > str_len)
|
||||||
|
{
|
||||||
|
Game::Scr_AddBool(0);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Game::Scr_AddBool(std::memcmp(str + str_len - suffix_len, suffix, suffix_len) == 0);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Func present on IW5
|
// Func present on IW5
|
||||||
|
Loading…
x
Reference in New Issue
Block a user