您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ sq_gettop函数代码示例

51自学网 2021-06-03 08:11:53
  C++
这篇教程C++ sq_gettop函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中sq_gettop函数的典型用法代码示例。如果您正苦于以下问题:C++ sq_gettop函数的具体用法?C++ sq_gettop怎么用?C++ sq_gettop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了sq_gettop函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: sq_gettop

void CSquirrel::Call(SQObjectPtr pFunction, CSquirrelArguments * pArguments, CSquirrelArgument * pReturn){	// Get the stack top	int iTop = sq_gettop(m_pVM);	// Process the parameters if needed	int iParams = 1;	if(pArguments)	{		pArguments->push_to_vm(m_pVM);		iParams += pArguments->GetArguments()->size();	}	// Call the function	SQObjectPtr res;	if(m_pVM->Call(pFunction, iParams, m_pVM->_top-iParams, res, true))	{		// Set the return value if needed		if(pReturn)			*pReturn = res;	}	// Restore the stack top	sq_settop(m_pVM, iTop);}
开发者ID:B2O,项目名称:IV-Network,代码行数:27,


示例2: invokeImpactEvent

    /*     * invoke impact event     */    static SQBool invokeImpactEvent(HSQUIRRELVM v, ContactPoint cp) {        SQBool result = false;        SQInteger top = sq_gettop(v);        sq_pushroottable(v);        sq_pushstring(v, "emo", -1);        if (SQ_SUCCEEDED(sq_get(v, -2))) {            sq_pushstring(v, "_onImpact", -1);            if(SQ_SUCCEEDED(sq_get(v, -2))) {                sq_pushroottable(v);                sq_pushuserpointer(v, cp.fixtureA);                sq_pushuserpointer(v, cp.fixtureB);                sq_pushuserpointer(v, cp.fixtureA->GetBody());                sq_pushuserpointer(v, cp.fixtureB->GetBody());                pushVec2(v, cp.position);                pushVec2(v, cp.normal);                sq_pushfloat(v, cp.normalImpulse);                sq_pushfloat(v, cp.tangentImpulse);                result = SQ_SUCCEEDED(sq_call(v, 9, SQFalse, SQTrue));            }        }        sq_settop(v,top);        return result;    }
开发者ID:pandazheng,项目名称:emo-framework,代码行数:28,


示例3: SbuCreateClass

BOOL 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,


示例4: _stream_writestr

SQInteger _stream_writestr(HSQUIRRELVM v){	SETUP_STREAM(v);	const SQChar *str,*res;	SQInteger trgformat = 'a',len = 0;	sq_getstring(v,2,&str);	len = sq_getsize(v,2);	if(sq_gettop(v)>2)		sq_getinteger(v,3,&trgformat);	switch(trgformat)	{	case 'a':#ifdef _UNICODE		res = sq_getscratchpad(v,len*3);		len = (SQInteger) wcstombs((char *)res, (const wchar_t*)str, len);#else		res = str;#endif		self->Write((void *)res,len);		break;	case 'u':#ifdef _UNICODE		res = str;#else		res = sq_getscratchpad(v,len*sizeof(wchar_t));		len = (SQInteger) mbstowcs((wchar_t*)res, str, len);#endif		self->Write((void *)res,len*sizeof(wchar_t));		break;	default:		return sq_throwerror(v,_SC("wrong encoding"));	}		return 0;}
开发者ID:brettminnie,项目名称:BDBGame,代码行数:35,


示例5: sc_OnPlayerText

bool sc_OnPlayerText(HSQUIRRELVM v, const short index, const wchar_t *text){	int result = 1;	int top = sq_gettop(v);	sq_pushroottable(v);	sq_pushstring(v, _SC("OnPlayerText"), -1);	if(SQ_SUCCEEDED(sq_get(v, -2))) {		sq_pushroottable(v);		sq_pushinteger(v, index);		sq_pushstring(v, text, -1);		sq_call(v, 3, 1, 1);		sq_getinteger(v, sq_gettop(v), &result);	}	sq_settop(v, top);	return result != 0;}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:16,


示例6: sc_CallSomeCallback

bool sc_CallSomeCallback(HSQUIRRELVM v, const wchar_t *callback, const int param){	int top = sq_gettop(v);	int result = 0;	sq_pushroottable(v);	sq_pushstring(v, callback, -1);	if(SQ_SUCCEEDED(sq_get(v, -2))) {		sq_pushroottable(v);		sq_pushinteger(v, param);		sq_call(v, 2, 1, 1);		sq_getinteger(v, sq_gettop(v), &result);	}	sq_settop(v, top);	return result == 1;}
开发者ID:ThePirateOld,项目名称:four-mp,代码行数:16,


示例7: sq_gettop

void CSquirrel::Call(SQObjectPtr pFunction, CSquirrelArguments * pArguments, CSquirrelArgument * pReturn){	// Lock the squirrel call mutex	m_squirrelCallMutex.TryLock(10);	// Get the stack top	int iTop = sq_gettop(m_pVM);	// Process the parameters if needed	int iParams = 1;	if(pArguments)	{		pArguments->push_to_vm(m_pVM);		iParams += pArguments->size();	}	// Call the function	SQObjectPtr res;	if(m_pVM->Call(pFunction, iParams, m_pVM->_top-iParams, res, true))	{		// Set the return value if needed		if(pReturn)			pReturn->set(res);	}	// Restore the stack top	sq_settop(m_pVM, iTop);	// Unlock the squirrel call mutex	m_squirrelCallMutex.Unlock();}
开发者ID:JamesConway69,项目名称:ivmultiplayer,代码行数:33,


示例8: ZeroedMemoryAllocator

ScriptText::ScriptText(HSQUIRRELVM vm) :	ZeroedMemoryAllocator(){	int nparam = sq_gettop(vm) - 1;	if (nparam < 1) {		throw sq_throwerror(vm, _SC("You need to pass at least a StringID to the constructor"));	}	/* First resolve the StringID. */	SQInteger sqstring;	if (SQ_FAILED(sq_getinteger(vm, 2, &sqstring))) {		throw sq_throwerror(vm, _SC("First argument must be a valid StringID"));	}	this->string = sqstring;	/* The rest of the parameters must be arguments. */	for (int i = 0; i < nparam - 1; i++) {		/* Push the parameter to the top of the stack. */		sq_push(vm, i + 3);		if (SQ_FAILED(this->_SetParam(i, vm))) {			this->~ScriptText();			throw sq_throwerror(vm, _SC("Invalid parameter"));		}		/* Pop the parameter again. */		sq_pop(vm, 1);	}}
开发者ID:gfarfl,项目名称:openttd-cargodist,代码行数:29,


示例9: sq_slave_vm_call

static SQRESULT sq_slave_vm_call(HSQUIRRELVM v){    SQ_FUNC_VARS_NO_TOP(v);    GET_sq_slave_vm_INSTANCE(v, 1);    SQ_GET_BOOL(v, 2, has_ret_val);    SQ_GET_STRING(v, 3, func_name);    SQInteger top = sq_gettop(self);    SQRESULT result = SQ_ERROR;    sq_pushroottable(self);    sq_pushstring(self, func_name, func_name_size);    if(sq_get(self, -2) == SQ_OK)    {        switch(sq_gettype(self, -1))        {        case OT_CLOSURE:        case OT_NATIVECLOSURE:        case OT_CLASS:        {            sq_pushroottable(self);            int argc = sq_gettop(v) - 3;            if(argc && copy_values_between_vms(self, v, argc, 4) != SQ_OK)            {                sq_throwerror(v, sq_getlasterror_str(self));                goto cleanup;            }            if(sq_call(self, argc+1, has_ret_val, SQFalse) != SQ_OK)            {                sq_throwerror(v, sq_getlasterror_str(self));                goto cleanup;            }            if(has_ret_val)            {                if(copy_values_between_vms(v, self, 1, sq_gettop(self)) == SQ_OK) result = 1;            }            else result = SQ_OK;        }        }    }    else    {        sq_throwerror(v, sq_getlasterror_str(self));    }cleanup:    sq_settop(self, top);    return result;}
开发者ID:The-Mad-Pirate,项目名称:squilu,代码行数:46,


示例10: Object

// コンストラクタThread::Thread(HSQUIRRELVM v) : Object(v), _currentTick(0), _fileHandler(NULL), _waitTimeout(-1), _status(THREAD_NONE){	_waitList.initArray();	// 
C++ sq_gettype函数代码示例
C++ sq_getstring函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。