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-17 18:59:52 +0000
committerStijn Buys <ingar@osirion.org>2008-02-17 18:59:52 +0000
commit982562fa19bb87a3dab352e562f386f61c171b7b (patch)
treeaeade8d5b7d3c68f5c222af1d8ecc6a734e1b43f /src/core/cvar.cc
parentd198b7b8d9ff713d891f35ab173d1f428f610e7d (diff)
major rewrite of Cvar, Func and Entity
Diffstat (limited to 'src/core/cvar.cc')
-rw-r--r--src/core/cvar.cc119
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