summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/SCsub2
-rw-r--r--core/make_binders.py29
-rw-r--r--core/object_type_db.cpp82
-rw-r--r--core/object_type_db.h17
4 files changed, 119 insertions, 11 deletions
diff --git a/core/SCsub b/core/SCsub
index 7eace22b73..2b195fa750 100644
--- a/core/SCsub
+++ b/core/SCsub
@@ -53,7 +53,7 @@ env.add_source_files(env.core_sources,"*.cpp")
Export('env')
import make_binders
-env.Command('method_bind.inc', 'make_binders.py', make_binders.run)
+env.Command(['method_bind.inc','method_bind_ext.inc'], 'make_binders.py', make_binders.run)
SConscript('os/SCsub');
SConscript('math/SCsub');
diff --git a/core/make_binders.py b/core/make_binders.py
index 5d35dd9337..ebd48777b6 100644
--- a/core/make_binders.py
+++ b/core/make_binders.py
@@ -214,25 +214,36 @@ def make_version(template,nargs,argmax,const,ret):
def run(target, source, env):
- versions=5
+ versions=10
+ versions_ext=6
text=""
+ text_ext=""
for i in range(0,versions+1):
- text+=make_version(template,i,5,False,False)
- text+=make_version(template_typed,i,5,False,False)
- text+=make_version(template,i,5,False,True)
- text+=make_version(template_typed,i,5,False,True)
- text+=make_version(template,i,5,True,False)
- text+=make_version(template_typed,i,5,True,False)
- text+=make_version(template,i,5,True,True)
- text+=make_version(template_typed,i,5,True,True)
+ t=""
+ t+=make_version(template,i,versions,False,False)
+ t+=make_version(template_typed,i,versions,False,False)
+ t+=make_version(template,i,versions,False,True)
+ t+=make_version(template_typed,i,versions,False,True)
+ t+=make_version(template,i,versions,True,False)
+ t+=make_version(template_typed,i,versions,True,False)
+ t+=make_version(template,i,versions,True,True)
+ t+=make_version(template_typed,i,versions,True,True)
+ if (i>=versions_ext):
+ text_ext+=t
+ else:
+ text+=t
f=open(target[0].path,"w")
f.write(text)
f.close()
+ f=open(target[1].path,"w")
+ f.write(text_ext)
+ f.close()
+
diff --git a/core/object_type_db.cpp b/core/object_type_db.cpp
index 18878007a6..61b46da9be 100644
--- a/core/object_type_db.cpp
+++ b/core/object_type_db.cpp
@@ -105,6 +105,88 @@ MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,co
return md;
}
+
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6) {
+
+ MethodDefinition md;
+ md.name=StaticCString::create(p_name);
+ md.args.resize(6);
+ md.args[0]=StaticCString::create(p_arg1);
+ md.args[1]=StaticCString::create(p_arg2);
+ md.args[2]=StaticCString::create(p_arg3);
+ md.args[3]=StaticCString::create(p_arg4);
+ md.args[4]=StaticCString::create(p_arg5);
+ md.args[5]=StaticCString::create(p_arg6);
+ return md;
+}
+
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7) {
+
+ MethodDefinition md;
+ md.name=StaticCString::create(p_name);
+ md.args.resize(6);
+ md.args[0]=StaticCString::create(p_arg1);
+ md.args[1]=StaticCString::create(p_arg2);
+ md.args[2]=StaticCString::create(p_arg3);
+ md.args[3]=StaticCString::create(p_arg4);
+ md.args[4]=StaticCString::create(p_arg5);
+ md.args[5]=StaticCString::create(p_arg6);
+ md.args[6]=StaticCString::create(p_arg7);
+ return md;
+}
+
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8) {
+
+ MethodDefinition md;
+ md.name=StaticCString::create(p_name);
+ md.args.resize(6);
+ md.args[0]=StaticCString::create(p_arg1);
+ md.args[1]=StaticCString::create(p_arg2);
+ md.args[2]=StaticCString::create(p_arg3);
+ md.args[3]=StaticCString::create(p_arg4);
+ md.args[4]=StaticCString::create(p_arg5);
+ md.args[5]=StaticCString::create(p_arg6);
+ md.args[6]=StaticCString::create(p_arg7);
+ md.args[7]=StaticCString::create(p_arg8);
+ return md;
+}
+
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9) {
+
+ MethodDefinition md;
+ md.name=StaticCString::create(p_name);
+ md.args.resize(6);
+ md.args[0]=StaticCString::create(p_arg1);
+ md.args[1]=StaticCString::create(p_arg2);
+ md.args[2]=StaticCString::create(p_arg3);
+ md.args[3]=StaticCString::create(p_arg4);
+ md.args[4]=StaticCString::create(p_arg5);
+ md.args[5]=StaticCString::create(p_arg6);
+ md.args[6]=StaticCString::create(p_arg7);
+ md.args[7]=StaticCString::create(p_arg8);
+ md.args[8]=StaticCString::create(p_arg9);
+ return md;
+}
+
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9,const char *p_arg10) {
+
+ MethodDefinition md;
+ md.name=StaticCString::create(p_name);
+ md.args.resize(6);
+ md.args[0]=StaticCString::create(p_arg1);
+ md.args[1]=StaticCString::create(p_arg2);
+ md.args[2]=StaticCString::create(p_arg3);
+ md.args[3]=StaticCString::create(p_arg4);
+ md.args[4]=StaticCString::create(p_arg5);
+ md.args[5]=StaticCString::create(p_arg6);
+ md.args[6]=StaticCString::create(p_arg7);
+ md.args[7]=StaticCString::create(p_arg8);
+ md.args[8]=StaticCString::create(p_arg9);
+ md.args[9]=StaticCString::create(p_arg10);
+ return md;
+}
+
+
#endif
HashMap<StringName,ObjectTypeDB::TypeInfo,StringNameHasher> ObjectTypeDB::types;
diff --git a/core/object_type_db.h b/core/object_type_db.h
index 9eaec6171e..ae0644f9b3 100644
--- a/core/object_type_db.h
+++ b/core/object_type_db.h
@@ -86,6 +86,11 @@ MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2);
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3);
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4);
MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5);
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6);
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7);
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8);
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9);
+MethodDefinition _MD(const char* p_name,const char *p_arg1,const char *p_arg2,const char *p_arg3,const char *p_arg4,const char *p_arg5,const char *p_arg6,const char *p_arg7,const char *p_arg8,const char *p_arg9,const char *p_arg10);
#else
@@ -369,7 +374,7 @@ public:
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,4);
}
- template<class N, class M>
+ template<class N, class M>
static MethodBind* bind_method(N p_method_name, M p_method,const Variant& p_def1,const Variant& p_def2,const Variant& p_def3,const Variant& p_def4,const Variant& p_def5) {
MethodBind *bind = create_method_bind(p_method);
@@ -377,6 +382,16 @@ public:
return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,5);
}
+
+ template<class N, class M>
+ static MethodBind* bind_method(N p_method_name, M p_method,const Variant& p_def1,const Variant& p_def2,const Variant& p_def3,const Variant& p_def4,const Variant& p_def5,const Variant& p_def6) {
+
+ MethodBind *bind = create_method_bind(p_method);
+ const Variant* ptr[6]={&p_def1,&p_def2,&p_def3,&p_def4,&p_def5,&p_def6};
+
+ return bind_methodfi(METHOD_FLAGS_DEFAULT,bind,p_method_name,ptr,6);
+ }
+
#if 0
template<class N, class M>
static MethodBind* bind_methodf(uint32_t p_flags, N p_method_name, M p_method,