Merge branch 'master' into terencehill/slider_anim_improvements
[xonotic/xonotic-data.pk3dir.git] / qcsrc / menu / skin.qh
1 #ifndef SKIN_H
2 #define SKIN_H
3
4 #define SKINBEGIN
5 #define SKINVECTOR(name,def) vector SKIN##name = def
6 #define SKINFLOAT(name,def) float SKIN##name = def
7 //#define SKINSTRING(name,def) const string SKIN##name = def
8 #define SKINSTRING(name,def) string SKIN##name = def
9 #define SKINEND
10 #include "skin-customizables.inc"
11 #undef SKINEND
12 #undef SKINBEGIN
13 #undef SKINSTRING
14 #undef SKINFLOAT
15 #undef SKINVECTOR
16
17 #define SKINBEGIN void Skin_ApplySetting(string key, string _value) { switch(key) {
18 #define SKINVECTOR(name,def) case #name: SKIN##name = stov(_value); break
19 #define SKINFLOAT(name,def) case #name: SKIN##name = stof(_value); break
20 //#define SKINSTRING(name,def) case #name: break
21 #define SKINSTRING(name,def) case #name: SKIN##name = strzone(_value); break
22         // I know this leaks memory when skin is read multiple times. Screw it.
23 #define SKINEND case "": break; case "//": break; default: dprint("Invalid key in skin file: ", key, "\n"); } }
24 #include "skin-customizables.inc"
25 #undef SKINEND
26 #undef SKINSTRING
27 #undef SKINFLOAT
28 #undef SKINVECTOR
29 #undef SKINBEGIN
30 #endif