# HG changeset patch # User John Tsiombikas # Date 1412367103 -10800 # Node ID cb97ea43709b2bc2fdb60d22b78227ebe33e2fd2 # Parent 537db30791344d28c6b02d54691dc68507a427c8 fixed line endings diff -r 537db3079134 -r cb97ea43709b src/game_var.cc --- a/src/game_var.cc Fri Oct 03 23:11:23 2014 +0300 +++ b/src/game_var.cc Fri Oct 03 23:11:43 2014 +0300 @@ -1,143 +1,143 @@ -#include -#include -#include "game_var.h" - -static std::map gvars; - -GameVariable::GameVariable() -{ - num_val = 0.0f; - bool_val = false; -} - -std::string GameVariable::to_str() const -{ - char buf[128]; - - switch(type) { - case GameVariable::STR: - return val; - case GameVariable::BOOL: - return bool_val ? "true" : "false"; - case GameVariable::NUMBER: - sprintf(buf, "%g", num_val); - return buf; - } - return ""; -} - -void set_gvar(const GameVariable &var) -{ - gvars[var.name] = var; -} - -void set_gvar_str(const char *name, const char *val) -{ - GameVariable v; - v.name = name; - v.val = val; - v.type = GameVariable::STR; - set_gvar(v); -} - -void set_gvar_num(const char *name, float val) -{ - GameVariable v; - v.name = name; - v.num_val = val; - v.type = GameVariable::NUMBER; - set_gvar(v); -} - -void set_gvar_bool(const char *name, bool val) -{ - GameVariable v; - v.name = name; - v.bool_val = val; - v.type = GameVariable::BOOL; - set_gvar(v); -} - -static char *strip_whitespace(char *s) -{ - while(*s && isspace(*s)) ++s; - if(*s == 0) return s; - - char *endp = s + strlen(s) - 1; - while(endp > s && isspace(*endp)) { - *endp-- = 0; - } - return s; -} - -static int strccmp(const char *a, const char *b) -{ - while(*a && *b) { - int diff = tolower(*a) - tolower(*b); - if(diff != 0) return diff; - ++a; - ++b; - } - if(*a == 0 && *b == 0) return 0; - return *a == 0 ? -1 : 1; -} - -int set_gvar_parse(const char *name, const char *val) -{ - char *endp, *valstr = (char*)alloca(strlen(val) + 1); - strcpy(valstr, val); - valstr = strip_whitespace(valstr); - - float fval = strtod(valstr, &endp); - if(endp != valstr && *endp == 0) { - set_gvar_num(name, fval); - return GameVariable::NUMBER; - } - - if(strccmp(valstr, "true") == 0 || strccmp(valstr, "yes") == 0) { - set_gvar_bool(name, true); - return GameVariable::BOOL; - } - if(strccmp(valstr, "false") == 0 || strccmp(valstr, "no") == 0) { - set_gvar_bool(name, false); - return GameVariable::BOOL; - } - set_gvar_str(name, val); - return GameVariable::STR; -} - -GameVariable &get_gvar(const char *name) -{ - return gvars[name]; -} - -const char *get_gvar_str(const char *name) -{ - return gvars[name].val.c_str(); -} - -float get_gvar_num(const char *name) -{ - return gvars[name].num_val; -} - -bool get_gvar_bool(const char *name) -{ - return gvars[name].bool_val; -} - -bool have_gvar(const char *name) -{ - return gvars.find(std::string(name)) != gvars.end(); -} - -std::list get_gvar_list() -{ - std::list res; - - std::map::const_iterator it = gvars.begin(); - while(it != gvars.end()) { - res.push_back((it++)->first); - } - return res; -} +#include +#include +#include "game_var.h" + +static std::map gvars; + +GameVariable::GameVariable() +{ + num_val = 0.0f; + bool_val = false; +} + +std::string GameVariable::to_str() const +{ + char buf[128]; + + switch(type) { + case GameVariable::STR: + return val; + case GameVariable::BOOL: + return bool_val ? "true" : "false"; + case GameVariable::NUMBER: + sprintf(buf, "%g", num_val); + return buf; + } + return ""; +} + +void set_gvar(const GameVariable &var) +{ + gvars[var.name] = var; +} + +void set_gvar_str(const char *name, const char *val) +{ + GameVariable v; + v.name = name; + v.val = val; + v.type = GameVariable::STR; + set_gvar(v); +} + +void set_gvar_num(const char *name, float val) +{ + GameVariable v; + v.name = name; + v.num_val = val; + v.type = GameVariable::NUMBER; + set_gvar(v); +} + +void set_gvar_bool(const char *name, bool val) +{ + GameVariable v; + v.name = name; + v.bool_val = val; + v.type = GameVariable::BOOL; + set_gvar(v); +} + +static char *strip_whitespace(char *s) +{ + while(*s && isspace(*s)) ++s; + if(*s == 0) return s; + + char *endp = s + strlen(s) - 1; + while(endp > s && isspace(*endp)) { + *endp-- = 0; + } + return s; +} + +static int strccmp(const char *a, const char *b) +{ + while(*a && *b) { + int diff = tolower(*a) - tolower(*b); + if(diff != 0) return diff; + ++a; + ++b; + } + if(*a == 0 && *b == 0) return 0; + return *a == 0 ? -1 : 1; +} + +int set_gvar_parse(const char *name, const char *val) +{ + char *endp, *valstr = (char*)alloca(strlen(val) + 1); + strcpy(valstr, val); + valstr = strip_whitespace(valstr); + + float fval = strtod(valstr, &endp); + if(endp != valstr && *endp == 0) { + set_gvar_num(name, fval); + return GameVariable::NUMBER; + } + + if(strccmp(valstr, "true") == 0 || strccmp(valstr, "yes") == 0) { + set_gvar_bool(name, true); + return GameVariable::BOOL; + } + if(strccmp(valstr, "false") == 0 || strccmp(valstr, "no") == 0) { + set_gvar_bool(name, false); + return GameVariable::BOOL; + } + set_gvar_str(name, val); + return GameVariable::STR; +} + +GameVariable &get_gvar(const char *name) +{ + return gvars[name]; +} + +const char *get_gvar_str(const char *name) +{ + return gvars[name].val.c_str(); +} + +float get_gvar_num(const char *name) +{ + return gvars[name].num_val; +} + +bool get_gvar_bool(const char *name) +{ + return gvars[name].bool_val; +} + +bool have_gvar(const char *name) +{ + return gvars.find(std::string(name)) != gvars.end(); +} + +std::list get_gvar_list() +{ + std::list res; + + std::map::const_iterator it = gvars.begin(); + while(it != gvars.end()) { + res.push_back((it++)->first); + } + return res; +} diff -r 537db3079134 -r cb97ea43709b src/game_var.h --- a/src/game_var.h Fri Oct 03 23:11:23 2014 +0300 +++ b/src/game_var.h Fri Oct 03 23:11:43 2014 +0300 @@ -1,32 +1,32 @@ -#ifndef GAME_VAR_H_ -#define GAME_VAR_H_ - -#include -#include - -struct GameVariable { - enum { NUMBER, BOOL, STR } type; - std::string name, val; - float num_val; - bool bool_val; - - GameVariable(); - std::string to_str() const; -}; - -void set_gvar(const GameVariable &var); -void set_gvar_str(const char *name, const char *val); -void set_gvar_num(const char *name, float val); -void set_gvar_bool(const char *name, bool val); -int set_gvar_parse(const char *name, const char *val); - -GameVariable &get_gvar(const char *name); -const char *get_gvar_str(const char *name); -float get_gvar_num(const char *name); -bool get_gvar_bool(const char *name); - -bool have_gvar(const char *name); - -std::list get_gvar_list(); - -#endif // GAME_VAR_H_ +#ifndef GAME_VAR_H_ +#define GAME_VAR_H_ + +#include +#include + +struct GameVariable { + enum { NUMBER, BOOL, STR } type; + std::string name, val; + float num_val; + bool bool_val; + + GameVariable(); + std::string to_str() const; +}; + +void set_gvar(const GameVariable &var); +void set_gvar_str(const char *name, const char *val); +void set_gvar_num(const char *name, float val); +void set_gvar_bool(const char *name, bool val); +int set_gvar_parse(const char *name, const char *val); + +GameVariable &get_gvar(const char *name); +const char *get_gvar_str(const char *name); +float get_gvar_num(const char *name); +bool get_gvar_bool(const char *name); + +bool have_gvar(const char *name); + +std::list get_gvar_list(); + +#endif // GAME_VAR_H_