feat(console): implement ConsoleInitializeClientCVar

This commit is contained in:
fallenoak 2025-09-23 10:06:15 -07:00
parent f605bc0670
commit 08faeb135d
5 changed files with 68 additions and 1 deletions

View File

@ -1,9 +1,27 @@
#include "console/CVar.hpp" #include "console/CVar.hpp"
#include "console/Command.hpp"
#include "console/CVarHandlers.hpp"
#include <storm/String.hpp> #include <storm/String.hpp>
bool CVar::m_initialized;
bool CVar::m_needsSave; bool CVar::m_needsSave;
TSHashTable<CVar, HASHKEY_STRI> CVar::s_registeredCVars; TSHashTable<CVar, HASHKEY_STRI> CVar::s_registeredCVars;
void CVar::Initialize() {
CVar::m_initialized = true;
char basePath[STORM_MAX_PATH];
// TODO
// SFile::GetBasePath(basePath, 260);
// SStrPrintf(basePath, sizeof(basePath), "%s%s\\", basePath, "WTF");
// s_CreatePathDirectories(basePath);
ConsoleCommandRegister("set", CVarSetCommandHandler, DEFAULT, "Set the value of a CVar");
ConsoleCommandRegister("cvar_reset", CVarResetCommandHandler, DEFAULT, "Set the value of a CVar to it's startup value");
ConsoleCommandRegister("cvar_default", CVarDefaultCommandHandler, DEFAULT, "Set the value of a CVar to it's coded default value");
ConsoleCommandRegister("cvarlist", CVarListCommandHandler, DEFAULT, "List cvars");
}
CVar* CVar::Lookup(const char* name) { CVar* CVar::Lookup(const char* name) {
return name return name
? CVar::s_registeredCVars.Ptr(name) ? CVar::s_registeredCVars.Ptr(name)

View File

@ -8,10 +8,12 @@
class CVar : public TSHashObject<CVar, HASHKEY_STRI> { class CVar : public TSHashObject<CVar, HASHKEY_STRI> {
public: public:
// Static variables // Static variables
static bool m_initialized;
static TSHashTable<CVar, HASHKEY_STRI> s_registeredCVars; static TSHashTable<CVar, HASHKEY_STRI> s_registeredCVars;
static bool m_needsSave; static bool m_needsSave;
// Static functions // Static functions
static void Initialize();
static CVar* Lookup(const char* name); static CVar* Lookup(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); static CVar* Register(const char*, const char*, uint32_t, const char*, bool (*)(CVar*, const char*, const char*, void*), uint32_t, bool, void*, bool);

View File

@ -0,0 +1,25 @@
#include "console/CVarHandlers.hpp"
int32_t CVarDefaultCommandHandler(const char* command, const char* arguments) {
// TODO
return 0;
}
int32_t CVarListCommandHandler(const char* command, const char* arguments) {
// TODO
return 0;
}
int32_t CVarSetCommandHandler(const char* command, const char* arguments) {
// TODO
return 0;
}
int32_t CVarResetCommandHandler(const char* command, const char* arguments) {
// TODO
return 0;
}

View File

@ -0,0 +1,14 @@
#ifndef CONSOLE_C_VAR_HANDLERS_HPP
#define CONSOLE_C_VAR_HANDLERS_HPP
#include <cstdint>
int32_t CVarDefaultCommandHandler(const char* command, const char* arguments);
int32_t CVarListCommandHandler(const char* command, const char* arguments);
int32_t CVarSetCommandHandler(const char* command, const char* arguments);
int32_t CVarResetCommandHandler(const char* command, const char* arguments);
#endif

View File

@ -1,9 +1,17 @@
#include "console/Client.hpp" #include "console/Client.hpp"
#include "CVar.hpp"
static const char* s_filename;
void ConsoleInitializeClientCommand() { void ConsoleInitializeClientCommand() {
// TODO // TODO
} }
void ConsoleInitializeClientCVar(const char* a1) { void ConsoleInitializeClientCVar(const char* filename) {
s_filename = filename;
CVar::Initialize();
// TODO // TODO
// CVar::Load(s_filename);
} }