diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-17 18:59:52 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-17 18:59:52 +0000 |
commit | 982562fa19bb87a3dab352e562f386f61c171b7b (patch) | |
tree | aeade8d5b7d3c68f5c222af1d8ecc6a734e1b43f /src/core/cvar.cc | |
parent | d198b7b8d9ff713d891f35ab173d1f428f610e7d (diff) |
major rewrite of Cvar, Func and Entity
Diffstat (limited to 'src/core/cvar.cc')
-rw-r--r-- | src/core/cvar.cc | 119 |
1 files changed, 57 insertions, 62 deletions
diff --git a/src/core/cvar.cc b/src/core/cvar.cc index 531e0ad..dbe1d30 100644 --- a/src/core/cvar.cc +++ b/src/core/cvar.cc @@ -17,159 +17,154 @@ namespace core { -Cvar_t::Cvar_t(unsigned int cvarflags) +Cvar *Cvar::sv_dedicated = 0; +Cvar *Cvar::sv_private = 0; +Cvar *Cvar::net_host = 0; +Cvar *Cvar::net_port = 0; + +std::map<std::string, Cvar*> Cvar::registry; + +Cvar::Cvar(const char *name, unsigned int flags) { - cvar_flags = cvarflags; + cvar_flags = flags; + if (name) + cvar_name.assign(name); } -Cvar_t & Cvar_t::operator=(const std::string &other) +Cvar & Cvar::operator=(const std::string &other) { - cvar_text = other; - std::stringstream s(cvar_text); + cvar_str = other; + std::stringstream s(cvar_str); if (!(s >> cvar_value)) - cvar_value = cvar_text.size(); + cvar_value = cvar_str.size(); return (*this); } -Cvar_t & Cvar_t::operator=(const char *other) +Cvar & Cvar::operator=(const char *other) { return ((*this) = std::string(other)); } -Cvar_t & Cvar_t::operator=(float other) +Cvar & Cvar::operator=(float other) { std::stringstream s; s << other; - s >> cvar_text; + s >> cvar_str; cvar_value = other; return (*this); } -unsigned int Cvar_t::flags() const -{ - return(cvar_flags); -} - -float Cvar_t::value() const +Cvar* Cvar::get(const char *name, const char *value, unsigned int flags) { - return(cvar_value); -} - -const std::string &Cvar_t::text() const -{ - return(cvar_text); -} - -namespace cvar -{ - -std::map<std::string, Cvar> registry; - -Cvar get(const char *name, const char *value, int flags) -{ - Cvar c = find(name); + Cvar *c = find(name); if (c) { - //con_debug << "cvar::get " << name << " already exist with value " << cvar->text() << std::endl; + //con_debug << "get " << name << " already exist with value " << cvar->str() << std::endl; } else { - //con_debug << "cvar::get " << name << " " << value << std::endl; - c = new Cvar_t(flags); + //con_debug << "get " << name << " " << value << std::endl; + c = new Cvar(name, flags); registry[std::string(name)] = c; (*c) = value; } + c->cvar_flags = flags; return c; } -Cvar get(const char *name, float value, int flags) +Cvar* Cvar::get(const char *name, float value, unsigned int flags) { - Cvar c = find(name); + Cvar *c = find(name); if (c) { - //con_debug << "cvar::get " << name << " already exist with value " << cvar->text() << std::endl; + //con_debug << "get " << name << " already exist with value " << cvar->str() << std::endl; } else { - //con_debug << "cvar::get " << name << " " << value << std::endl; - c = new Cvar_t(flags); + //con_debug << "get " << name << " " << value << std::endl; + c = new Cvar(name, flags); registry[std::string(name)] = c; (*c) = value; } + c->cvar_flags = flags; return c; } -Cvar set(const char *name, const char *value, int flags) +Cvar* Cvar::set(const char *name, const char *value, unsigned int flags) { - Cvar c = find(name); + Cvar *c = find(name); if (!c) { - c = new Cvar_t(flags); + c = new Cvar(name, flags); registry[std::string(name)] = c; } (*c) = value; - //con_debug << "cvar::set " << name << " " << cvar->text() << std::endl; + c->cvar_flags = flags; + + //con_debug << "set " << name << " " << cvar->str() << std::endl; return c; } -Cvar set(const char *name, float value, int flags) +Cvar* Cvar::set(const char *name, float value, unsigned int flags) { - Cvar c = find(name); + Cvar *c = find(name); if (!c) { - c = new Cvar_t(flags); + c = new Cvar(name, flags); registry[std::string(name)] = c; } (*c) = value; - //con_debug << "cvar::set " << name << " " << cvar->text() << std::endl; + c->cvar_flags = flags; + + //con_debug << "set " << name << " " << cvar->str() << std::endl; return c; } -void unset(const std::string &name) +void Cvar::unset(std::string const &name) { - Cvar c = find(name); + Cvar *c = find(name); if (c) { - con_debug << "cvar::unset " << name << std::endl; + con_debug << "unset " << name << std::endl; registry.erase(name); delete c; } } -void unset(const char *name) +void Cvar::unset(const char *name) { unset(std::string(name)); } -Cvar find(const std::string &name) +Cvar *Cvar::find(std::string const &name) { - std::map<std::string, Cvar>::iterator it = registry.find(name); + std::map<std::string, Cvar*>::iterator it = registry.find(name); if (it == registry.end()) return 0; else return (*it).second; } -Cvar find(const char *name) +Cvar *Cvar::find(const char *name) { return(find(std::string(name))); } -void list() +void Cvar::list() { - std::map<std::string, Cvar>::iterator it; + std::map<std::string, Cvar*>::iterator it; for (it = registry.begin(); it != registry.end(); it++) { std::string typeindicator; - if ((*it).second->flags() & cvar::Archive) + if (((*it).second->flags() & Archive) == Archive) typeindicator += 'A'; else typeindicator += ' '; - if ((*it).second->flags() & cvar::ReadOnly) + if (((*it).second->flags() & ReadOnly) == ReadOnly) typeindicator += 'R'; else typeindicator += ' '; - if ((*it).second->flags() & cvar::Game) + if (((*it).second->flags() & Game) == Game) typeindicator += 'G'; else typeindicator += ' '; - con_print << typeindicator << " " << (*it).first << " " << (*it).second->text() << std::endl; + con_print << std::setw(4) << (*it).second->flags() << " " << typeindicator << + " " << (*it).first << " " << (*it).second->str() << std::endl; } con_print << registry.size() << " registered variables" << std::endl; } -} // namespace cvar +} -} // namespace core |