I'm trying to implement the angelscript engine but i ran into a problem when i try to include other files in my angelscript source files.
I'm building the scripts with the scriptbuilder addon.
When i try to build the module i get the following error.
(3, 1) : INFO : Compiling void main()
(7, 5) : ERR : No matching signatures to 'testinclude()'
I have implemented my own include callback and verified that all the scripts get loaded and the callback is triggered.
//include handler, this function is called once for loading test.asc
int includeScript(const char *include, const char *from, CScriptBuilder *builder, void *userParam)
{
const char *contents = MBEngine::ResourceManager::loadTextFileConst(include);
if ( NULL != contents )
{
int ret = builder->AddSectionFromMemory(contents);
assert(ret >= 0);
return 0;
}
return -1;
}
scriptEngine = asCreateScriptEngine(ANGELSCRIPT_VERSION);
int ret;
ret = scriptEngine->SetMessageCallback(asFUNCTION(MessageCallback), 0, asCALL_CDECL);
assert( ret >= 0 );
RegisterStdString(scriptEngine);
RegisterScriptArray(scriptEngine, true);
RegisterScriptMath(scriptEngine);
RegisterScriptDictionary(scriptEngine);
ret = scriptEngine->RegisterGlobalFunction("void print(const string &in)", asFUNCTION(print), asCALL_CDECL);
assert( ret >= 0 );
CScriptBuilder scriptBuilder;
//set the include loader
scriptBuilder.SetIncludeCallback( includeScript, NULL);
ret = scriptBuilder.StartNewModule(scriptEngine, "Main");
assert( ret >= 0 );
//load main script
const char *mainScript = ResourceManager::loadTextFileConst("main.asc");
ret = scriptBuilder.AddSectionFromMemory( mainScript );
assert( ret >= 0 );
//compile the script this where the compiler error is triggered
ret = scriptBuilder.BuildModule();
assert( ret >= 0 );
my 2 angelscript test files
main.asc
#include "test.asc"
void main()
{
print("I'm now in main()\n");
testinclude();
}
test.asc
void testinclude()
{
print("included function()\n");
}
I used the sample "include" as a reference
Who can help me, what i'm i missing here.