diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-05 20:44:36 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-05 20:44:36 +0000 |
commit | a51deebd87036ceb87c77a20117977d077b771e3 (patch) | |
tree | 71217d051fe77b562cd92508fe9edb3da6b7cc7a /src/core/cvar.cc | |
parent | 8ee5d47d7e1336eb69064ca31e27bbfa7d86b51e (diff) |
fixed cvar, added cvars r_width r_height r_fullscreen, added function r_restart
Diffstat (limited to 'src/core/cvar.cc')
-rw-r--r-- | src/core/cvar.cc | 103 |
1 files changed, 69 insertions, 34 deletions
diff --git a/src/core/cvar.cc b/src/core/cvar.cc index 21105b4..f49438c 100644 --- a/src/core/cvar.cc +++ b/src/core/cvar.cc @@ -21,96 +21,131 @@ Cvar_t::Cvar_t(unsigned int cvarflags) cvar_flags = cvarflags; } -Cvar_t & Cvar_t::operator=(const std::string &cvarvalue) +Cvar_t & Cvar_t::operator=(const std::string &other) { - cvar_value = cvarvalue; + cvar_text = other; + std::stringstream s(cvar_text); + if (!(s >> cvar_value)) + cvar_value = cvar_text.size(); return (*this); } -Cvar_t & Cvar_t::operator=(const char *cvarvalue) +Cvar_t & Cvar_t::operator=(const char *other) { - cvar_value.assign(cvarvalue); + return ((*this) = std::string(other)); +} + +Cvar_t & Cvar_t::operator=(int other) +{ + std::stringstream s; + s << other; + s >> cvar_text; + cvar_value = (float) other; return (*this); } -Cvar_t & Cvar_t::operator=(int cvarvalue) +Cvar_t & Cvar_t::operator=(float other) { std::stringstream s; - s << cvarvalue; - s >> cvar_value; + s << other; + s >> cvar_text; + cvar_value = other; return (*this); } -namespace cvar +namespace cvar { -std::map<std::string, Cvar> registry; +std::map<std::string, Cvar> cvarregistry; -Cvar set(const char *cvarname, const char *cvarvalue, int cvarflags) +Cvar get(const char *name, const char *value, int flags) { - Cvar c = registry[std::string(cvarname)]; + Cvar c = cvarregistry[std::string(name)]; if (c) { - con_debug << "cvar::set " << cvarname << " already exist with value " << cvarvalue << std::endl; + con_debug << "cvar::get " << name << " already exist with value " << value << std::endl; } else { - con_debug << "cvar::set " << cvarname << " with value " << cvarvalue << std::endl; - c = new Cvar_t(cvarflags); - registry[std::string(cvarname)] = c; - (*c) = cvarvalue; + con_debug << "cvar::get " << name << " " << value << std::endl; + c = new Cvar_t(flags); + cvarregistry[std::string(name)] = c; + (*c) = value; } return c; } -Cvar set(const char *cvarname, int cvarvalue, int cvarflags) +Cvar get(const char *name, int value, int flags) { - Cvar c = registry[std::string(cvarname)]; + Cvar c = cvarregistry[std::string(name)]; if (c) { - con_debug << "cvar::set " << cvarname << " already exist with value " << cvarvalue << std::endl; + con_debug << "cvar::get " << name << " already exist with value " << value << std::endl; } else { - con_debug << "cvar::set " << cvarname << " with value " << cvarvalue << std::endl; - c = new Cvar_t(cvarflags); - registry[std::string(cvarname)] = c; - (*c) = cvarvalue; + con_debug << "cvar::get " << name << " " << value << std::endl; + c = new Cvar_t(flags); + cvarregistry[std::string(name)] = c; + (*c) = value; + } + return c; +} + +Cvar set(const char *name, const char *value, int flags) +{ + Cvar c = cvarregistry[std::string(name)]; + if (!c) { + c = new Cvar_t(flags); + cvarregistry[std::string(name)] = c; + } + con_debug << "cvar::set " << name << " " << value << std::endl; + (*c) = value; + return c; +} + +Cvar set(const char *name, int value, int flags) +{ + Cvar c = cvarregistry[std::string(name)]; + if (!c) { + c = new Cvar_t(flags); + cvarregistry[std::string(name)] = c; } + con_debug << "cvar::set " << name << " " << value << std::endl; + (*c) = value; return c; } void unset(const char *cvarname) { - Cvar c = registry[std::string(cvarname)]; + Cvar c = cvarregistry[std::string(cvarname)]; if (c) { con_debug << "cvar::unset " << cvarname << std::endl; - registry.erase(std::string(cvarname)); + cvarregistry.erase(std::string(cvarname)); delete c; } } void unset(const std::string &cvarname) { - Cvar c = registry[cvarname]; + Cvar c = cvarregistry[cvarname]; if (c) { con_debug << "cvar::unset " << cvarname << std::endl; - registry.erase(cvarname); + cvarregistry.erase(cvarname); delete c; } } Cvar find(const std::string &cvarname) { - return registry[cvarname]; + return cvarregistry[cvarname]; } Cvar find(const char *cvarname) { - return registry[std::string(cvarname)]; + return cvarregistry[std::string(cvarname)]; } void list() { - std::map<std::string, Cvar>::iterator registryiterator; - for (registryiterator = registry.begin(); registryiterator != registry.end(); registryiterator++) { - con_print << std::setw(4) << (*registryiterator).second->flags() - << " " << (*registryiterator).first - << " " << (*registryiterator).second->value() << std::endl; + con_print << "-- listcvar -----------------" << std::endl; + std::map<std::string, Cvar>::iterator cvarregistryiterator; + for (cvarregistryiterator = cvarregistry.begin(); cvarregistryiterator != cvarregistry.end(); cvarregistryiterator++) { + con_print << " "<< (*cvarregistryiterator).first << " " << (*cvarregistryiterator).second->text() << std::endl; } } |