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-22 21:53:36 +0000
committerStijn Buys <ingar@osirion.org>2008-02-22 21:53:36 +0000
commit9b041ac2e075bfb3a30397a8acdc5432860d2c84 (patch)
tree2c89930bc7fe38a6d3c80440222dd005e21e1320 /src/core/commandbuffer.cc
parent71b6b902732bfc0c53033d58f91a6b1e70e8371f (diff)
save and load configuration implemented
Diffstat (limited to 'src/core/commandbuffer.cc')
-rw-r--r--src/core/commandbuffer.cc38
1 files changed, 31 insertions, 7 deletions
diff --git a/src/core/commandbuffer.cc b/src/core/commandbuffer.cc
index 831489f..2cf8d26 100644
--- a/src/core/commandbuffer.cc
+++ b/src/core/commandbuffer.cc
@@ -18,36 +18,60 @@
namespace core
{
-void func_list_func(std::istringstream const &args)
+void func_list_func(std::string const &args)
{
Func::list();
}
-void func_list_var(std::istringstream const &args)
+void func_list_var(std::string const &args)
{
Cvar::list();
}
-void func_list_ent(std::istringstream const &args)
+void func_list_ent(std::string const &args)
{
Entity::list();
}
+void func_set(std::string const &args)
+{
+ std::istringstream argstream(args);
+ std::string varname;
+ if (!(argstream >> varname))
+ return;
+
+ // we're setting a new value
+ std::string value;
+ if (!(argstream >> value))
+ return;
+
+ char c;
+ while (argstream.get(c))
+ value += c;
+
+ Cvar *cvar = Cvar::set(varname.c_str(), value.c_str(), Cvar::Archive);
+
+ con_print << cvar->name() << " " << cvar->str() << "\n";
+ return;
+}
+
std::stringstream CommandBuffer::cmdbuf(std::stringstream::in | std::stringstream::out);
void CommandBuffer::init()
{
- con_debug << "Initializing command buffer...\n";
+ //con_debug << "Initializing command buffer...\n";
- Func::add("list_var", (FuncPtr)func_list_var);
- Func::add("list_func", (FuncPtr)func_list_func);
Func::add("list_ent", (FuncPtr)func_list_ent);
+ Func::add("list_func", (FuncPtr)func_list_func);
+ Func::add("list_var", (FuncPtr)func_list_var);
+ Func::add("set", (FuncPtr)func_set);
}
void CommandBuffer::shutdown()
{
- con_debug << "Shutting down command buffer...\n";
+ //con_debug << "Shutting down command buffer...\n";
+ Func::remove("set");
Func::remove("list_var");
Func::remove("list_func");
Func::remove("list_ent");