-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcvar.c
96 lines (73 loc) · 1.22 KB
/
cvar.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// cvar.c - handle variables with string names
#include <stdio.h>
#include <string.h>
#include "main.h"
#include "cvar.h"
#define MAX_CVARS 64
//
unsigned int num_cvars = 0;
cvar_t cvars[MAX_CVARS];
//
cvar_t *cvar_find(char *name)
{
unsigned int x;
for(x = 0; x < num_cvars; x++)
if(!strcmp(cvars[x].name, name))
return &cvars[x];
return 0;
}
//
//
void cvar_setvalue(char *name, char *value)
{
cvar_t *c;
if(!(c = cvar_find(name)))
return;
switch(c->type)
{
case VAR_STR:
sprintf(c->value.s, "%s", value);
break;
case VAR_INT:
sscanf(value, "%d", &c->value.i);
break;
case VAR_FLT:
sscanf(value, "%f", &c->value.f);
break;
}
}
//
//
cvar_t *cvar_add(char *name, int type)
{
cvar_t c;
sprintf(c.name, "%s", name);
c.type = type;
cvars[num_cvars] = c;
return &cvars[num_cvars++];
}
//
//
cvar_t *cvar_newstring(char *name, char *value)
{
cvar_t *c = cvar_add(name, VAR_STR);
sprintf(c->value.s, "%s", value);
return c;
}
//
//
cvar_t *cvar_newint(char *name, int value)
{
cvar_t *c = cvar_add(name, VAR_INT);
c->value.i = value;
return c;
}
//
//
cvar_t *cvar_newfloat(char *name, float value)
{
cvar_t *c = cvar_add(name, VAR_FLT);
c->value.f = value;
return c;
}
//