Asset prog

This commit is contained in:
2025-08-25 10:16:55 -05:00
parent 947f21cac7
commit 8af2f044ed
23 changed files with 290 additions and 31 deletions

View File

@@ -18,6 +18,6 @@ add_subdirectory(cmd)
if(DUSK_TARGET_SYSTEM STREQUAL "linux")
target_compile_definitions(${DUSK_TARGET_NAME}
PRIVATE
DUSK_CONSOLE_POSIX=1
CONSOLE_POSIX=1
)
endif()

View File

@@ -45,11 +45,32 @@ consolevar_t * consoleRegVar(
const char_t *value,
consolevarchanged_t event
) {
consolevar_t *var = &CONSOLE.variables[CONSOLE.variableCount++];
consolevar_t *var;
// Existing?
var = consoleVarGet(name);
if(var != NULL) return var;
assertTrue(
CONSOLE.variableCount < CONSOLE_VARIABLES_MAX,
"Too many console variables registered."
);
// Create
var = &CONSOLE.variables[CONSOLE.variableCount++];
consoleVarInitListener(var, name, value, event);
return var;
}
consolevar_t * consoleVarGet(const char_t *name) {
assertNotNull(name, "name must not be NULL");
for(uint32_t i = 0; i < CONSOLE.variableCount; i++) {
consolevar_t *var = &CONSOLE.variables[i];
if(stringCompare(var->name, name) == 0) return var;
}
return NULL;
}
void consolePrint(const char_t *message, ...) {
char_t buffer[CONSOLE_LINE_MAX];

View File

@@ -85,6 +85,14 @@ consolevar_t * consoleRegVar(
consolevarchanged_t event
);
/**
* Gets a console variable by name.
*
* @param name The name of the variable.
* @return The variable, or NULL if not found.
*/
consolevar_t * consoleVarGet(const char_t *name);
/**
* Sets the value of a console variable.
*