fix(console): correct CVar flag handling

This commit is contained in:
fallenoak 2025-10-20 21:10:51 -05:00
parent cb35132807
commit b04f55d859
No known key found for this signature in database
GPG Key ID: 7628F8E61AEA070D

View File

@ -39,7 +39,7 @@ CVar* CVar::LookupRegistered(const char* name) {
return nullptr; return nullptr;
} }
if (var->m_flags >= 0 && !(var->m_flags & 0x80)) { if (!(var->m_flags & 0x80000000) && !(var->m_flags & 0x80)) {
return nullptr; return nullptr;
} }
@ -53,6 +53,8 @@ CVar* CVar::Register(const char* name, const char* help, uint32_t flags, const c
bool setReset = var->m_resetValue.GetString() == nullptr; bool setReset = var->m_resetValue.GetString() == nullptr;
bool setDefault = var->m_defaultValue.GetString() == nullptr; bool setDefault = var->m_defaultValue.GetString() == nullptr;
var->m_flags = flags;
var->m_flags |= (var->m_flags & 0xFFFFFFCF); var->m_flags |= (var->m_flags & 0xFFFFFFCF);
var->m_callback = fcn; var->m_callback = fcn;
@ -69,7 +71,7 @@ CVar* CVar::Register(const char* name, const char* help, uint32_t flags, const c
var->m_flags |= 0x80000000; var->m_flags |= 0x80000000;
} }
if (a9 && var->m_flags) { if (a9 && !(var->m_flags & 0x80000000)) {
var->m_flags |= 0x80; var->m_flags |= 0x80;
} }
} else { } else {
@ -94,13 +96,15 @@ CVar* CVar::Register(const char* name, const char* help, uint32_t flags, const c
var->Set(value, true, false, true, false); var->Set(value, true, false, true, false);
} }
var->m_flags = flags | 0x1; var->m_flags = flags;
var->m_flags |= 0x1;
if (!a7) { if (!a7) {
var->m_flags |= 0x8000000; var->m_flags |= 0x80000000;
} }
if (a9 && var->m_flags) { if (a9 && !(var->m_flags & 0x80000000)) {
var->m_flags |= 0x80; var->m_flags |= 0x80;
} }