这篇教程C++ sq_createslot函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sq_createslot函数的典型用法代码示例。如果您正苦于以下问题:C++ sq_createslot函数的具体用法?C++ sq_createslot怎么用?C++ sq_createslot使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sq_createslot函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: init_streamclassvoid init_streamclass(HSQUIRRELVM v){ sq_pushregistrytable(v); sq_pushstring(v,_SC("std_stream"),-1); if(SQ_FAILED(sq_get(v,-2))) { sq_pushstring(v,_SC("std_stream"),-1); sq_newclass(v,SQFalse); sq_settypetag(v,-1,(SQUserPointer)SQSTD_STREAM_TYPE_TAG); SQInteger i = 0; while(_stream_methods[i].name != 0) { SQRegFunction &f = _stream_methods[i]; sq_pushstring(v,f.name,-1); sq_newclosure(v,f.f,0); sq_setparamscheck(v,f.nparamscheck,f.typemask); sq_createslot(v,-3); i++; } sq_createslot(v,-3); sq_pushroottable(v); sq_pushstring(v,_SC("stream"),-1); sq_pushstring(v,_SC("std_stream"),-1); sq_get(v,-4); sq_createslot(v,-3); sq_pop(v,1); } else { sq_pop(v,1); //result } sq_pop(v,1);}
开发者ID:ShaunOfTheLive,项目名称:OpenCoasterTycoon,代码行数:30,
示例2: SbuCreateClassBOOL SbuCreateClass(HSQUIRRELVM v,SquirrelClassDecl *cd){ int n = 0; int oldtop = sq_gettop(v); sq_pushroottable(v); sq_pushstring(v,cd->name,-1); if(cd->base) { sq_pushstring(v,cd->base,-1); if(SQ_FAILED(sq_get(v,-3))) { sq_settop(v,oldtop); return FALSE; } } if(SQ_FAILED(sq_newclass(v,cd->base?1:0))) { sq_settop(v,oldtop); return FALSE; } sq_settypetag(v,-1,(SQUserPointer)cd); const ScriptClassMemberDecl *members = cd->members; const ScriptClassMemberDecl *m = NULL; while(members[n].name) { m = &members[n]; sq_pushstring(v,m->name,-1); sq_newclosure(v,m->func,0); sq_setparamscheck(v,m->params,m->typemask); sq_setnativeclosurename(v,-1,m->name); sq_createslot(v,-3); n++; } sq_createslot(v,-3); sq_pop(v,1); return TRUE;}
开发者ID:eriser,项目名称:kdguigl,代码行数:33,
示例3: sq_base_registervoid sq_base_register(HSQUIRRELVM v){ SQInteger i=0; sq_pushroottable(v); while(base_funcs[i].name!=0) { sq_pushstring(v,base_funcs[i].name,-1); sq_newclosure(v,base_funcs[i].f,0); sq_setnativeclosurename(v,-1,base_funcs[i].name); sq_setparamscheck(v,base_funcs[i].nparamscheck,base_funcs[i].typemask); sq_createslot(v,-3); i++; } sq_pushstring(v,_SC("_version_"),-1); sq_pushstring(v,SQUIRREL_VERSION,-1); sq_createslot(v,-3); sq_pushstring(v,_SC("_charsize_"),-1); sq_pushinteger(v,sizeof(SQChar)); sq_createslot(v,-3); sq_pushstring(v,_SC("_intsize_"),-1); sq_pushinteger(v,sizeof(SQInteger)); sq_createslot(v,-3); sq_pushstring(v,_SC("_floatsize_"),-1); sq_pushinteger(v,sizeof(SQFloat)); sq_createslot(v,-3); sq_pop(v,1);}
开发者ID:469306621,项目名称:Languages,代码行数:26,
示例4: timeSQInteger CSystemNatives::Date( SQVM * pVM ){ // Get the current time SQInteger iTime = SharedUtility::GetTime (); // Get the current time and date time_t t = time( NULL ); const struct tm * tm = localtime( &t ); // Create a new table sq_newtable( pVM ); sq_pushstring( pVM, "day", strlen("day") ); sq_pushinteger( pVM, tm->tm_mday ); sq_createslot( pVM, -3 ); sq_pushstring( pVM, "month", strlen("month") ); sq_pushinteger( pVM, (tm->tm_mon + 1) ); sq_createslot( pVM, -3 ); sq_pushstring( pVM, "year", strlen("year") ); sq_pushinteger( pVM, (tm->tm_year + 1900) ); sq_createslot( pVM, -3 ); sq_pushstring( pVM, "yearday", strlen("yearday") ); sq_pushinteger( pVM, tm->tm_yday ); sq_createslot( pVM, -3 ); return 1;}
开发者ID:DarkKlo,项目名称:maf2mp,代码行数:30,
示例5: sqstd_register_stringlibSQInteger sqstd_register_stringlib( HSQUIRRELVM v ) { sq_pushstring( v, _SC( "regexp" ), -1 ); sq_newclass( v, SQFalse ); SQInteger i = 0; while ( rexobj_funcs[i].name != 0 ) { SQRegFunction &f = rexobj_funcs[i]; sq_pushstring( v, f.name, -1 ); sq_newclosure( v, f.f, 0 ); sq_setparamscheck( v, f.nparamscheck, f.typemask ); sq_setnativeclosurename( v, -1, f.name ); sq_createslot( v, -3 ); i++; } sq_createslot( v, -3 ); i = 0; while ( stringlib_funcs[i].name != 0 ) { sq_pushstring( v, stringlib_funcs[i].name, -1 ); sq_newclosure( v, stringlib_funcs[i].f, 0 ); sq_setparamscheck( v, stringlib_funcs[i].nparamscheck, stringlib_funcs[i].typemask ); sq_setnativeclosurename( v, -1, stringlib_funcs[i].name ); sq_createslot( v, -3 ); i++; } return 1;}
开发者ID:q4a,项目名称:scourge,代码行数:26,
示例6: sq_getentity// getCheckpointTargetPosition(checkpointid)SQInteger CCheckpointNatives::GetTargetPosition(SQVM * pVM){ EntityId checkpointId; sq_getentity(pVM, -1, &checkpointId); CCheckpoint * pCheckpoint = g_pCheckpointManager->Get(checkpointId); if(pCheckpoint) { CVector3 vecTargetPosition; pCheckpoint->GetTargetPosition(vecTargetPosition); sq_newtable(pVM); sq_pushinteger(pVM, 0); sq_pushfloat(pVM, vecTargetPosition.fX); sq_createslot(pVM, -3); sq_pushinteger(pVM, 1); sq_pushfloat(pVM, vecTargetPosition.fY); sq_createslot(pVM, -3); sq_pushinteger(pVM, 2); sq_pushfloat(pVM, vecTargetPosition.fZ); sq_createslot(pVM, -3); return 1; } sq_pushbool(pVM, false); return 1;}
开发者ID:AgresivD,项目名称:ivmultiplayer,代码行数:27,
示例7: MultiScriptAssertbool SquirrelScriptContext::RegisterUserClass(ClassDesc* desc){ MultiScriptAssert(desc->m_constructor); MultiScriptAssert(desc->m_destructor); SquirrelClassInfo* classInfo = new SquirrelClassInfo(); classInfo->m_desc = desc; classInfo->m_context = this; // Create class sq_pushstring(m_vm, desc->m_name, -1); // TODO: Handle subclass via 2nd parameter sq_newclass(m_vm, SQFalse); // Add methods for (unsigned int i = 0; i < desc->m_methods.size(); ++i) { sq_pushstring(m_vm, desc->m_methods[i].m_name, -1); sq_pushuserpointer(m_vm, classInfo); sq_pushinteger(m_vm, i); sq_newclosure(m_vm, SquirrelClassMethodCallback, 2); sq_createslot(m_vm, -3); } // Add constructor sq_pushstring(m_vm, "constructor", -1); sq_pushuserpointer(m_vm, classInfo); sq_newclosure(m_vm, SquirrelClassConstructorCallback, 1); sq_createslot(m_vm, -3); // Add to-string method sq_pushstring(m_vm, "AsString", -1); sq_pushuserpointer(m_vm, classInfo); sq_newclosure(m_vm, SquirrelClassToStringMethodCallback, 1); sq_createslot(m_vm, -3); // Add optional destructor if (!desc->m_garbageCollect) { // Add destructor sq_pushstring(m_vm, "Destroy", -1); sq_pushuserpointer(m_vm, classInfo); sq_newclosure(m_vm, SquirrelClassDestructorCallback, 1); sq_createslot(m_vm, -3); } else { // TODO: Add garbage collection callback here } // Add class to root table sq_createslot(m_vm, -3); // Add class info m_classes.push_back(classInfo); return true;}
开发者ID:joechenq,项目名称:multi-script,代码行数:58,
示例8: sqstd_register_stringlibSQInteger sqstd_register_stringlib(HSQUIRRELVM v){ sq_pushstring(v,_SC("regexp"),-1); sq_newclass(v,SQFalse,"regexp"); SQInteger i = 0; while(rexobj_funcs[i].name != 0) { SQRegFunction &f = rexobj_funcs[i]; sq_pushstring(v,f.name,-1); sq_newclosure(v,f.f,0); sq_setparamscheck(v,f.nparamscheck,f.typemask); sq_setnativeclosureinfo(v,-1,f.name,f.file); if (f.help) { sq_pushstring(v,f.help,-1); sq_sethelp(v, -2); } sq_createslot(v,-3); i++; } sq_createslot(v,-3); i = 0; while(stringlib_funcs[i].name!=0) { sq_pushstring(v,stringlib_funcs[i].name,-1); sq_newclosure(v,stringlib_funcs[i].f,0); sq_setparamscheck(v,stringlib_funcs[i].nparamscheck,stringlib_funcs[i].typemask); sq_setnativeclosureinfo(v,-1,stringlib_funcs[i].name,stringlib_funcs[i].file); if (stringlib_funcs[i].help) { sq_pushstring(v,stringlib_funcs[i].help,-1); sq_sethelp(v, -2); } sq_createslot(v,-3); i++; } sq_getdefaultdelegate(v, OT_STRING); i = 0; while(stringextdeleg_funcs[i].name!=0) { sq_pushstring(v,stringextdeleg_funcs[i].name,-1); sq_newclosure(v,stringextdeleg_funcs[i].f,0); sq_setparamscheck(v,stringextdeleg_funcs[i].nparamscheck,stringextdeleg_funcs[i].typemask); sq_setnativeclosureinfo(v,-1,stringextdeleg_funcs[i].name,stringextdeleg_funcs[i].file); if (stringextdeleg_funcs[i].help) { sq_pushstring(v,stringextdeleg_funcs[i].help,-1); sq_sethelp(v,-2); } sq_createslot(v,-3); i++; } sq_pop(v, 1); return 1;}
开发者ID:noriter,项目名称:nit,代码行数:56,
示例9: declare_streamSQRESULT declare_stream(HSQUIRRELVM v,const SQChar* name,SQUserPointer typetag,const SQChar* reg_name,SQRegFunction *methods,SQRegFunction *globals){ if(sq_gettype(v,-1) != OT_TABLE) return sq_throwerror(v,_SC("table expected")); SQInteger top = sq_gettop(v); //create delegate init_streamclass(v); sq_pushregistrytable(v); sq_pushstring(v,reg_name,-1); sq_pushstring(v,_SC("std_stream"),-1); if(SQ_SUCCEEDED(sq_get(v,-3))) { sq_newclass(v,SQTrue); sq_settypetag(v,-1,typetag); SQInteger i = 0; while(methods[i].name != 0) { SQRegFunction &f = methods[i]; sq_pushstring(v,f.name,-1); sq_newclosure(v,f.f,0); sq_setparamscheck(v,f.nparamscheck,f.typemask); sq_setnativeclosurename(v,-1,f.name); sq_createslot(v,-3); i++; } sq_createslot(v,-3); sq_pop(v,1); i = 0; while(globals[i].name!=0) { SQRegFunction &f = globals[i]; sq_pushstring(v,f.name,-1); sq_newclosure(v,f.f,0); sq_setparamscheck(v,f.nparamscheck,f.typemask); sq_setnativeclosurename(v,-1,f.name); sq_createslot(v,-3); i++; } //register the class in the target table sq_pushstring(v,name,-1); sq_pushregistrytable(v); sq_pushstring(v,reg_name,-1); sq_get(v,-2); sq_remove(v,-2); sq_createslot(v,-3); sq_settop(v,top); return SQ_OK; } sq_settop(v,top); return SQ_ERROR;}
开发者ID:ShaunOfTheLive,项目名称:OpenCoasterTycoon,代码行数:51,
示例10: SbuCreateStaticNamespaceBOOL SbuCreateStaticNamespace(HSQUIRRELVM v,ScriptNamespaceDecl *sn){ int n = 0; sq_pushroottable(v); sq_pushstring(v,sn->name,-1); sq_newtable(v); const ScriptClassMemberDecl *members = sn->members; const ScriptClassMemberDecl *m = NULL; while(members[n].name) { m = &members[n]; sq_pushstring(v,m->name,-1); sq_newclosure(v,m->func,0); sq_setparamscheck(v,m->params,m->typemask); sq_setnativeclosurename(v,-1,m->name); sq_createslot(v,-3); n++; } const ScriptConstantDecl *consts = sn->constants; const ScriptConstantDecl *c = NULL; n = 0; while(consts[n].name) { c = &consts[n]; sq_pushstring(v,c->name,-1); switch(c->type) { case OT_STRING: sq_pushstring(v,c->val.s,-1);break; case OT_INTEGER: sq_pushinteger(v,c->val.i);break; case OT_FLOAT: sq_pushfloat(v,c->val.f);break; } sq_createslot(v,-3); n++; } if(sn->delegate) { const ScriptClassMemberDecl *members = sn->delegate; const ScriptClassMemberDecl *m = NULL; sq_newtable(v); while(members[n].name) { m = &members[n]; sq_pushstring(v,m->name,-1); sq_newclosure(v,m->func,0); sq_setparamscheck(v,m->params,m->typemask); sq_setnativeclosurename(v,-1,m->name); sq_createslot(v,-3); n++; } sq_setdelegate(v,-2); } sq_createslot(v,-3); sq_pop(v,1); return TRUE;}
开发者ID:eriser,项目名称:kdguigl,代码行数:51,
示例11: store_boolvoid store_bool(HSQUIRRELVM vm, const char* name, bool val){ sq_pushstring(vm, name, -1); sq_pushbool(vm, val ? SQTrue : SQFalse); if(SQ_FAILED(sq_createslot(vm, -3))) throw scripting::SquirrelError(vm, "Couldn't add float value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,
示例12: store_stringvoid store_string(HSQUIRRELVM vm, const char* name, const std::string& val){ sq_pushstring(vm, name, -1); sq_pushstring(vm, val.c_str(), val.length()); if(SQ_FAILED(sq_createslot(vm, -3))) throw scripting::SquirrelError(vm, "Couldn't add float value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,
示例13: store_intvoid store_int(HSQUIRRELVM vm, const char* name, int val){ sq_pushstring(vm, name, -1); sq_pushinteger(vm, val); if(SQ_FAILED(sq_createslot(vm, -3))) throw scripting::SquirrelError(vm, "Couldn't add int value to table");}
开发者ID:CRS-ECHO51,项目名称:supertux,代码行数:7,
示例14: sq_pushroottablevoid CSquirrel::RegisterFunction(const char * szFunctionName, SQFUNCTION pfnFunction, int iParameterCount, const char * szFunctionTemplate, bool bPushRootTable){ // Push the root table onto the stack if needed if(bPushRootTable) sq_pushroottable(m_pVM); // Push the function name onto the stack sq_pushstring(m_pVM, szFunctionName, -1); // Create a new function sq_newclosure(m_pVM, pfnFunction, 0); // Set the function parameter template and count if(iParameterCount != -1) { char szTemp[128]; if(szFunctionTemplate) sprintf(szTemp, ".%s", szFunctionTemplate); sq_setparamscheck(m_pVM, (iParameterCount + 1), (szFunctionTemplate) ? szTemp : NULL); } // Create a new slot sq_createslot(m_pVM, -3); // Pop the root table from the stack if needed if(bPushRootTable) sq_pop(m_pVM, 1);}
开发者ID:B2O,项目名称:IV-Network,代码行数:30,
示例15: sq_pushnullvoid SQDbgServer::SerializeState(){ sq_pushnull(_v); sq_setdebughook(_v); sq_pushnull(_v); sq_seterrorhandler(_v); const SQChar *sz; sq_pushobject(_v,_serializefunc); sq_pushobject(_v,_debugroot); sq_pushstring(_v,_SC("watches"),-1); sq_newtable(_v); for(WatchSetItor i=_watches.begin(); i!=_watches.end(); ++i) { sq_pushinteger(_v,i->_id); sq_pushstring(_v,i->_exp.c_str(),(int)i->_exp.length()); sq_createslot(_v,-3); } sq_rawset(_v,-3); if(SQ_SUCCEEDED(sq_call(_v,1,SQTrue,SQTrue))){ if(SQ_SUCCEEDED(sqstd_getblob(_v,-1,(SQUserPointer*)&sz))) SendChunk(sz); } sq_pop(_v,2); SetErrorHandlers();}
开发者ID:BackupTheBerlios,项目名称:supertux-svn,代码行数:26,
示例16: register_table/* * Register new table. * Must be called before loading script files */void register_table(HSQUIRRELVM v, const char *name) { sq_pushroottable(v); sq_pushstring(v, name, -1); sq_newtable(v); sq_createslot(v, -3); sq_pop(v, 1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,
示例17: register_global_func/* * Register global function. * Must be called before loading script files */void register_global_func(HSQUIRRELVM v, SQFUNCTION func, const char *fname) { sq_pushroottable(v); sq_pushstring(v, fname, -1); sq_newclosure(v, func, 0); sq_createslot(v, -3); sq_pop(v,1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,
示例18: register_class/* * Register new class. * Must be called before loading script files */void register_class(HSQUIRRELVM v, const char *cname) { sq_pushroottable(v); sq_pushstring(v, cname, -1); sq_newclass(v, false); sq_createslot(v, -3); sq_pop(v, 1);}
开发者ID:pandazheng,项目名称:emo-framework,代码行数:11,
示例19: RegisterFunctionvoid RegisterFunction(HSQUIRRELVM pVM, const char * szName, SQFUNCTION pfnFunction){ sq_pushroottable(pVM); sq_pushstring(pVM, szName, -1); sq_newclosure(pVM, pfnFunction, 0); sq_createslot(pVM, -3); sq_pop(pVM, 1);}
开发者ID:mabako,项目名称:iv-modlua,代码行数:8,
示例20: sq_createslotvoid CSquirrel::RegisterClassFinish(){ // Create a new slot sq_createslot(m_pVM, -3); // Pop the root table from the stack sq_pop(m_pVM, 1);}
开发者ID:B2O,项目名称:IV-Network,代码行数:8,
示例21: sqstd_seterrorhandlersvoid sqstd_seterrorhandlers(HSQUIRRELVM v){ sq_setcompilererrorhandler(v,_sqstd_compiler_error); sq_newclosure(v,_sqstd_aux_printerror,0); sq_seterrorhandler(v); // additional functions sq_pushroottable(v); sq_pushstring(v, _SC("printCallStack"), -1); sq_newclosure(v, printCallStack, 0); sq_createslot(v, -3); sq_pushstring(v, _SC("notifyAllExceptions"), -1); sq_newclosure(v, notifyAllExceptions, 0); sq_setparamscheck(v, 2, _SC(".n|b")); sq_createslot(v, -3); sq_pop(v,1);}
开发者ID:John-He-928,项目名称:krkrz,代码行数:17,
示例22: register_globalvoid register_global(HSQUIRRELVM v,SQFUNCTION f,const char *fname){ sq_pushroottable(v); sq_pushstring(v,fname,-1); sq_newclosure(v,f,0); //create a new function sq_createslot(v,-3); sq_pop(v,1); //pops the root table}
开发者ID:dreamsxin,项目名称:nawia,代码行数:8,
示例23: sqstd_register_mathlibSQRESULT sqstd_register_mathlib(HSQUIRRELVM v){ SQInteger i=0; while(mathlib_funcs[i].name!=0) { sq_pushstring(v,mathlib_funcs[i].name,-1); sq_newclosure(v,mathlib_funcs[i].f,0); sq_setparamscheck(v,mathlib_funcs[i].nparamscheck,mathlib_funcs[i].typemask); sq_setnativeclosurename(v,-1,mathlib_funcs[i].name); sq_createslot(v,-3); i++; } sq_pushstring(v,_SC("RAND_MAX"),-1); sq_pushinteger(v,RAND_MAX); sq_createslot(v,-3); sq_pushstring(v,_SC("PI"),-1); sq_pushfloat(v,(SQFloat)M_PI); sq_createslot(v,-3); return SQ_OK;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:19,
示例24: TJSRegisterNativeClass |