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-16 12:22:33 +0000
committerStijn Buys <ingar@osirion.org>2008-02-16 12:22:33 +0000
commitd6ee7ec642cc6b3097c8d321a1a00630e24027d1 (patch)
tree35f56e5168cc3e12724898b9efb81b4b2938f575 /src/core/func.cc
parent715d0c3952a3a1d59b64074e472d0a9a3b414351 (diff)
initial client-to-server connection
Diffstat (limited to 'src/core/func.cc')
-rw-r--r--src/core/func.cc43
1 files changed, 23 insertions, 20 deletions
diff --git a/src/core/func.cc b/src/core/func.cc
index af811cd..06aa5b6 100644
--- a/src/core/func.cc
+++ b/src/core/func.cc
@@ -11,6 +11,16 @@
namespace core
{
+Func_t::Func_t(unsigned int funcflags)
+{
+ func_flags = funcflags;
+}
+
+unsigned int Func_t::flags()
+{
+ return func_flags;
+}
+
namespace func
{
@@ -19,35 +29,29 @@ std::map<std::string, Func> registry;
void add(const char * functionname, FuncPtr functionptr, unsigned int flags)
{
std::map<std::string, Func>::iterator it = registry.find(functionname);
- Func f;
if (it == registry.end()) {
// function does not yet exist in the registry
- f = new Func_t();
+ Func f = new Func_t(flags);
+ //f->name = functionname;
+ f->ptr = (void *)functionptr;
registry[std::string(functionname)] = f;
} else {
- f = (*it).second;
+ con_warn << "Function '" << functionname << "' already registered!" << std::endl;
}
-
- f->name = functionname;
- f->ptr = (void *)functionptr;
- f->flags = flags;
}
void add(const char * functionname, GameFuncPtr gamefunctionptr, unsigned int flags)
{
std::map<std::string, Func>::iterator it = registry.find(functionname);
- Func f;
if (it == registry.end()) {
// function does not yet exist in the registry
- f = new Func_t();
+ Func f = new Func_t(flags & func::Game);
+ //f->name = functionname;
+ f->ptr = (void *)gamefunctionptr;
registry[std::string(functionname)] = f;
} else {
- f = (*it).second;
+ con_warn << "Function '" << functionname << "' already registered!" << std::endl;
}
-
- f->name = functionname;
- f->ptr = (void *)gamefunctionptr;
- f->flags = flags & func::Game;
}
void remove(const char *functionname)
@@ -80,15 +84,14 @@ Func find(const std::string &functionname)
void list()
{
- char typeindicator;
-
std::map<std::string, Func>::iterator it;
for (it = registry.begin(); it != registry.end(); it++) {
- if ((*it).second->flags & func::Game)
- typeindicator = 'G';
+ std::string typeindicator;
+ if ((*it).second->flags() & func::Game)
+ typeindicator += 'G';
else
- typeindicator = ' ';
- con_print << " " << typeindicator << " " << (*it).first << std::endl;
+ typeindicator += ' ';
+ con_print << " " << typeindicator << " " << (*it).first << std::endl;
}
con_print << registry.size() << " registered functions" << std::endl;