feat(cvar): Unsigned integer type for cvars
Some checks failed
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Failing after 1m51s
Some checks failed
Ubuntu Cross to Win64 / Cross Compile with ming64 (1.4.0, ubuntu-latest) (push) Failing after 1m51s
This commit is contained in:
parent
beba96b915
commit
a79fd56051
@ -102,6 +102,9 @@ RT_DLLEXPORT void rtNotifyCVARChange(const rt_cvar *cvar) {
|
|||||||
case RT_CVAR_TYPE_SIZE:
|
case RT_CVAR_TYPE_SIZE:
|
||||||
rtLog("CVAR", "Changed %s to %zu.", cvar->name, cvar->sz);
|
rtLog("CVAR", "Changed %s to %zu.", cvar->name, cvar->sz);
|
||||||
break;
|
break;
|
||||||
|
case RT_CVAR_TYPE_UINT:
|
||||||
|
rtLog("CVAR", "Changed %s to %u.", cvar->name, cvar->ui);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rtLog("CVAR", "Changed %s, but the cvar has an invalid type.", cvar->name);
|
rtLog("CVAR", "Changed %s, but the cvar has an invalid type.", cvar->name);
|
||||||
break;
|
break;
|
||||||
@ -299,6 +302,9 @@ RT_DLLEXPORT rt_result rtSetCVARFromString(rt_cvar *cvar, const char *value_str)
|
|||||||
case RT_CVAR_TYPE_SIZE:
|
case RT_CVAR_TYPE_SIZE:
|
||||||
num_read = sscanf(value_str, "%zu", &cvar->sz);
|
num_read = sscanf(value_str, "%zu", &cvar->sz);
|
||||||
break;
|
break;
|
||||||
|
case RT_CVAR_TYPE_UINT:
|
||||||
|
num_read = sscanf(value_str, "%u", &cvar->ui);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
rtReportError("CVAR", "CVar %s has an invalid type.", cvar->name);
|
rtReportError("CVAR", "CVar %s has an invalid type.", cvar->name);
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -13,6 +13,7 @@ typedef enum {
|
|||||||
RT_CVAR_TYPE_FLOAT,
|
RT_CVAR_TYPE_FLOAT,
|
||||||
RT_CVAR_TYPE_STRING,
|
RT_CVAR_TYPE_STRING,
|
||||||
RT_CVAR_TYPE_SIZE,
|
RT_CVAR_TYPE_SIZE,
|
||||||
|
RT_CVAR_TYPE_UINT,
|
||||||
} rt_cvar_type;
|
} rt_cvar_type;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -23,6 +24,7 @@ typedef struct {
|
|||||||
float f;
|
float f;
|
||||||
const char *s;
|
const char *s;
|
||||||
size_t sz;
|
size_t sz;
|
||||||
|
unsigned int ui;
|
||||||
};
|
};
|
||||||
rt_cvar_type type;
|
rt_cvar_type type;
|
||||||
} rt_cvar;
|
} rt_cvar;
|
||||||
@ -38,6 +40,8 @@ typedef void(rt_cvar_change_event_handler_fn)(rt_cvar *cvar, void *userdata);
|
|||||||
rt_cvar n = {.name = #n, .description = d, .s = (v), .type = RT_CVAR_TYPE_STRING}
|
rt_cvar n = {.name = #n, .description = d, .s = (v), .type = RT_CVAR_TYPE_STRING}
|
||||||
#define RT_CVAR_SZ(n, d, v) \
|
#define RT_CVAR_SZ(n, d, v) \
|
||||||
rt_cvar n = {.name = #n, .description = d, .sz = (v), .type = RT_CVAR_TYPE_SIZE}
|
rt_cvar n = {.name = #n, .description = d, .sz = (v), .type = RT_CVAR_TYPE_SIZE}
|
||||||
|
#define RT_CVAR_UI(n, d, v) \
|
||||||
|
rt_cvar n = {.name = #n, .description = d, .ui = (v), .type = RT_CVAR_TYPE_UINT}
|
||||||
|
|
||||||
RT_DLLEXPORT void rtRegisterCVAR(rt_cvar *cvar);
|
RT_DLLEXPORT void rtRegisterCVAR(rt_cvar *cvar);
|
||||||
|
|
||||||
|
@ -75,6 +75,7 @@ enum {
|
|||||||
RT_SUCCESS = 0,
|
RT_SUCCESS = 0,
|
||||||
RT_OUT_OF_MEMORY = 1,
|
RT_OUT_OF_MEMORY = 1,
|
||||||
RT_INVALID_VALUE = 2,
|
RT_INVALID_VALUE = 2,
|
||||||
|
RT_NOT_SUPPORTED = 3,
|
||||||
|
|
||||||
RT_CUSTOM_ERROR_START,
|
RT_CUSTOM_ERROR_START,
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user