Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2008-02-05 20:44:36 +0000
committerStijn Buys <ingar@osirion.org>2008-02-05 20:44:36 +0000
commita51deebd87036ceb87c77a20117977d077b771e3 (patch)
tree71217d051fe77b562cd92508fe9edb3da6b7cc7a /src/core/cvar.cc
parent8ee5d47d7e1336eb69064ca31e27bbfa7d86b51e (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.cc103
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;
}
}