From 32413a37da8fdc79fc44c6c64766e4fcf5c6bf8c Mon Sep 17 00:00:00 2001 From: Tristan 'Natrist' Cormier Date: Wed, 1 Oct 2025 12:32:04 -0400 Subject: [PATCH] feat(console): add CVar::LookupRegistered (#97) --- src/console/CVar.cpp | 13 +++++++++++++ src/console/CVar.hpp | 1 + 2 files changed, 14 insertions(+) diff --git a/src/console/CVar.cpp b/src/console/CVar.cpp index 517c43b..2a44f93 100644 --- a/src/console/CVar.cpp +++ b/src/console/CVar.cpp @@ -33,6 +33,19 @@ CVar* CVar::Lookup(const char* name) { : nullptr; } +CVar* CVar::LookupRegistered(const char* name) { + auto var = CVar::Lookup(name); + if (!var) { + return nullptr; + } + + if (var->m_flags >= 0 && !(var->m_flags & 0x80)) { + return nullptr; + } + + return var; +} + CVar* CVar::Register(const char* name, const char* help, uint32_t flags, const char* value, bool (*fcn)(CVar*, const char*, const char*, void*), uint32_t category, bool a7, void* arg, bool a9) { CVar* var = CVar::s_registeredCVars.Ptr(name); diff --git a/src/console/CVar.hpp b/src/console/CVar.hpp index b71bf43..83f7284 100644 --- a/src/console/CVar.hpp +++ b/src/console/CVar.hpp @@ -16,6 +16,7 @@ class CVar : public TSHashObject { static void Initialize(); static int32_t Load(const char* filename); static CVar* Lookup(const char* name); + static CVar* LookupRegistered(const char* name); static CVar* Register(const char*, const char*, uint32_t, const char*, bool (*)(CVar*, const char*, const char*, void*), uint32_t, bool, void*, bool); // Member variables