mirror of
https://github.com/thunderbrewhq/thunderbrew
synced 2025-12-12 11:12:29 +00:00
fix(console): implement SetCommandHandler accurately
This commit is contained in:
parent
b3e38f70c5
commit
61af2eeaaf
1 changed files with 26 additions and 4 deletions
|
|
@ -380,11 +380,33 @@ int32_t SetCommandHandler(const char* command, const char* arguments) {
|
||||||
SStrTokenize(&str, cvarName, sizeof(cvarName), " ,;\t\"\r\n", nullptr);
|
SStrTokenize(&str, cvarName, sizeof(cvarName), " ,;\t\"\r\n", nullptr);
|
||||||
SStrTokenize(&str, cvarValue, sizeof(cvarValue), " ,;\t\"\r\n", nullptr);
|
SStrTokenize(&str, cvarValue, sizeof(cvarValue), " ,;\t\"\r\n", nullptr);
|
||||||
|
|
||||||
auto var = CVar::Lookup(cvarName);
|
auto cvar = CVar::s_registeredCVars.Ptr(cvarName);
|
||||||
if (var) {
|
|
||||||
var->Set(cvarValue, true, false, false, true);
|
if (!cvar) {
|
||||||
} else {
|
|
||||||
CVar::Register(cvarName, "", 0, cvarValue, nullptr, DEFAULT, true, nullptr, false);
|
CVar::Register(cvarName, "", 0, cvarValue, nullptr, DEFAULT, true, nullptr, false);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (cvar->m_callback) {
|
||||||
|
// FUN_0086b5a0(cv->m_callback);
|
||||||
|
if (!cvar->m_callback(cvar, cvar->GetString(), cvarValue, cvar->m_arg)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
cvar->m_modified++;
|
||||||
|
if (!(cvar->m_flags & 0x2)) {
|
||||||
|
cvar->m_latchedValue.Copy(cvarValue);
|
||||||
|
CVar::m_needsSave = true;
|
||||||
|
} else if (!(cvar->m_flags & 0x4)) {
|
||||||
|
if (cvar->GetString() && !SStrCmpI(cvarValue, cvar->GetString(), STORM_MAX_STR)) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
cvar->m_stringValue.Copy(cvarValue);
|
||||||
|
cvar->m_intValue = SStrToInt(cvarValue);
|
||||||
|
cvar->m_floatValue = SStrToFloat(cvarValue);
|
||||||
|
CVar::m_needsSave = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue