diff options
author | Stijn Buys <ingar@osirion.org> | 2008-02-22 21:53:36 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2008-02-22 21:53:36 +0000 |
commit | 9b041ac2e075bfb3a30397a8acdc5432860d2c84 (patch) | |
tree | 2c89930bc7fe38a6d3c80440222dd005e21e1320 /src/core/commandbuffer.cc | |
parent | 71b6b902732bfc0c53033d58f91a6b1e70e8371f (diff) |
save and load configuration implemented
Diffstat (limited to 'src/core/commandbuffer.cc')
-rw-r--r-- | src/core/commandbuffer.cc | 38 |
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"); |