这篇教程C++ sq_gettype函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中sq_gettype函数的典型用法代码示例。如果您正苦于以下问题:C++ sq_gettype函数的具体用法?C++ sq_gettype怎么用?C++ sq_gettype使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了sq_gettype函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: emoSetAudioChannelVolume/* * set audio volume with given channel * * @param audio channel index * @param audio volume (0 to 1) * @return EMO_NO_ERROR if succeeds */SQInteger emoSetAudioChannelVolume(HSQUIRRELVM v) { if (!engine->audio->isRunning()) { sq_pushinteger(v, ERR_AUDIO_ENGINE_CLOSED); return 1; } SQInteger channelIndex; float channelVolume; if (sq_gettype(v, 2) != OT_NULL && sq_gettype(v, 3) != OT_NULL) { sq_getinteger(v, 2, &channelIndex); sq_getfloat(v, 3, &channelVolume); } else { sq_pushinteger(v, ERR_INVALID_PARAM_TYPE); return 1; } if (channelIndex >= engine->audio->getChannelCount()) { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } SLint16 volume = (1 - channelVolume) * SL_MILLIBEL_MIN; if (!engine->audio->setChannelVolume(channelIndex, volume)) { sq_pushinteger(v, ERR_AUDIO_ENGINE_STATUS); return 1; } sq_pushinteger(v, EMO_NO_ERROR); return 1;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:40,
示例2: ViHwFindControl// 脚本调用原型:// VApiHandle VApiHwFindControl(HANDLE hWnd, string CtrlName);SQInteger ViHwFindControl(HSQUIRRELVM v){ VApiHandle hRet = 0; const SQChar* szCtrlName = NULL; SQInteger nargs = sq_gettop(v); SQInteger nWnd = 0; HANDLE hWnd = NULL; CScriptMgr* pMgr = NULL; CPaintManagerUI* pPM = NULL; if (!v || 2 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_STRING != sq_gettype(v, 3)) {goto _Exit_;} sq_getinteger(v, 2, &nWnd); sq_getstring(v, 3, &szCtrlName); if (-1 == nWnd) { pMgr = (CScriptMgr*)sq_getforeignptr(v); if (!pMgr) {goto _Exit_;} pPM = pMgr->GetManager(); } else { pPM = QiHwHandleToWin(nWnd)->pWinObj->GetPM(); } if (!pPM) {goto _Exit_;} // fixbug - 未验证pm合法性 hRet = QiHwCtrlToHandle(pPM->FindControl(szCtrlName));_Exit_: sq_pushinteger(v, hRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:36,
示例3: _file_constructorstatic SQInteger _file_constructor(HSQUIRRELVM v){ const SQChar *filename,*mode; bool owns = true; SQFile *f; SQFILE newf; if(sq_gettype(v,2) == OT_STRING && sq_gettype(v,3) == OT_STRING) { sq_getstring(v, 2, &filename); sq_getstring(v, 3, &mode); newf = sqstd_fopen(filename, mode); if(!newf) return sq_throwerror(v, _SC("cannot open file")); } else if(sq_gettype(v,2) == OT_USERPOINTER) { owns = !(sq_gettype(v,3) == OT_NULL); sq_getuserpointer(v,2,&newf); } else { return sq_throwerror(v,_SC("wrong parameter")); } f = new SQFile(newf,owns); if(SQ_FAILED(sq_setinstanceup(v,1,f))) { delete f; return sq_throwerror(v, _SC("cannot create blob with negative size")); } sq_setreleasehook(v,1,_file_releasehook); return 0;}
开发者ID:Hiroyuki-Nagata,项目名称:mona,代码行数:25,
示例4: emoDatabaseSetPreference/* * set preference value with given key * * @param preference key * @param preference value * @return EMO_NO_ERROR if succeeds */SQInteger emoDatabaseSetPreference(HSQUIRRELVM v) { const SQChar* key; SQInteger nargs = sq_gettop(v); if (nargs >= 2 && sq_gettype(v, 2) != OT_NULL) { sq_tostring(v, 2); sq_getstring(v, -1, &key); sq_poptop(v); } else { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } const SQChar* value; if (nargs >= 3 && sq_gettype(v, 3) != OT_NULL) { sq_tostring(v, 3); sq_getstring(v, -1, &value); sq_poptop(v); } else { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } if (!engine->database->setPreference(key, value)) { sq_pushinteger(v, ERR_DATABASE); return 1; } sq_pushinteger(v, EMO_NO_ERROR); return 1;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:37,
示例5: emoDatabaseOpenOrCreate/* * open database with given name * if database is not found, creates new database with given name * file mode is one of FILE_MODE_PRIVATE, FILE_MODE_WORLD_READABLE * or FILE_MODE_WORLD_WRITABLE * * @param database name * @param file mode * @return EMO_NO_ERROR if succeeds */SQInteger emoDatabaseOpenOrCreate(HSQUIRRELVM v) { const SQChar* name; SQInteger nargs = sq_gettop(v); if (nargs >= 2 && sq_gettype(v, 2) == OT_STRING) { sq_tostring(v, 2); sq_getstring(v, -1, &name); sq_poptop(v); } else { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } SQInteger mode = FILE_MODE_PRIVATE; if (nargs >= 3 && sq_gettype(v, 3) == OT_INTEGER) { sq_getinteger(v, 3, &mode); } if (!engine->database->openOrCreate(name, mode)) { sq_pushinteger(v, ERR_DATABASE_OPEN); return 1; } sq_pushinteger(v, EMO_NO_ERROR); return 1;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:35,
示例6: sq_gettopint AnimSquirrel::playAnim(SQVM* v){ int ID, stage, returnVal; returnVal = 0; const char* anim; float weight, duration, speed, timeoffset; SQInteger nargs = sq_gettop(v); if(nargs == 8) { if(sq_gettype(v,2) == OT_INTEGER && sq_gettype(v,3) == OT_STRING && sq_gettype(v,4) == OT_INTEGER) { sq_getinteger(v,2,&ID); sq_getinteger(v,4,&stage); sq_getstring(v,3,&anim); sq_getfloat(v,5,&weight); sq_getfloat(v,6,&duration); sq_getfloat(v,7,&speed); sq_getfloat(v,8,&timeoffset); returnVal = GameEngine::playAnim(ID,anim,stage,weight,duration,speed,timeoffset); } } sq_pushinteger(v,returnVal); return 1;}
开发者ID:dreamsxin,项目名称:nawia,代码行数:26,
示例7: sq_getstringSQInteger ScriptText::_set(HSQUIRRELVM vm){ int32 k; if (sq_gettype(vm, 2) == OT_STRING) { const SQChar *key; sq_getstring(vm, 2, &key); const char *key_string = SQ2OTTD(key); if (strncmp(key_string, "param_", 6) != 0 || strlen(key_string) > 8) return SQ_ERROR; k = atoi(key_string + 6); } else if (sq_gettype(vm, 2) == OT_INTEGER) { SQInteger key; sq_getinteger(vm, 2, &key); k = (int32)key; } else { return SQ_ERROR; } if (k > SCRIPT_TEXT_MAX_PARAMETERS) return SQ_ERROR; if (k < 1) return SQ_ERROR; k--; return this->_SetParam(k, vm);}
开发者ID:fonsinchen,项目名称:openttd-cargodist,代码行数:25,
示例8: ViCbAddCtrl// BOOL ViCbAddCtrl(HANDLE hCtrl, HANDLE hParent)SQInteger ViCbAddCtrl(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); SQInteger hCtrl = 0; SQInteger hParent = 0; CContainerUI* pParentCtrl = NULL; CScriptMgr* pMgr = NULL; CPaintManagerUI* pPM = NULL; CControlUI* pCtrl = NULL; SQBool bRet = FALSE; if (!v || 2 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} sq_getinteger(v, 2, &hCtrl); sq_getinteger(v, 3, &hParent); pCtrl = QiHwHandleToCtrl(hCtrl); pParentCtrl = (CContainerUI*)QiHwHandleToCtrl(hParent); if (!pCtrl) {goto _Exit_;} if (NULL == pParentCtrl) { pMgr = (CScriptMgr*)sq_getforeignptr(v); if (!pMgr) {goto _Exit_;} pPM = pMgr->GetManager(); if (!pPM) {goto _Exit_;} pParentCtrl = (CContainerUI*)pPM->GetRoot(); } if (!pParentCtrl || !pParentCtrl->IsContainer()) {goto _Exit_;} bRet = (SQBool)pParentCtrl->Add(pCtrl);_Exit_: sq_pushbool(v, bRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:36,
示例9: emoLoadAudio/* * SQInteger loadAudio(SQInteger audioIndex, SQChar* filename); * * @param audio channel index * @param file name to be loaded * @return EMO_NO_ERROR if succeeds */SQInteger emoLoadAudio(HSQUIRRELVM v) { if (!engine->audio->isRunning()) { sq_pushinteger(v, ERR_AUDIO_ENGINE_CLOSED); return 1; } SQInteger channelIndex; const SQChar* filename; if (sq_gettype(v, 2) != OT_NULL && sq_gettype(v, 3) == OT_STRING) { sq_getinteger(v, 2, &channelIndex); sq_tostring(v, 3); sq_getstring(v, -1, &filename); } else { sq_pushinteger(v, ERR_INVALID_PARAM_TYPE); return 1; } if (channelIndex >= engine->audio->getChannelCount()) { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } if (!engine->audio->createChannelFromAsset(filename, channelIndex)) { sq_pushinteger(v, engine->getLastError()); return 1; } sq_pushinteger(v, EMO_NO_ERROR); return 1;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:39,
示例10: whilevoidTimeScheduler::update(float time){ while(!schedule.empty() && schedule.front().wakeup_time < time) { HSQOBJECT thread_ref = schedule.front().thread_ref; sq_pushobject(global_vm, thread_ref); sq_getweakrefval(global_vm, -1); HSQUIRRELVM scheduled_vm; if(sq_gettype(global_vm, -1) == OT_THREAD && SQ_SUCCEEDED(sq_getthread(global_vm, -1, &scheduled_vm))) { if(SQ_FAILED(sq_wakeupvm(scheduled_vm, SQFalse, SQFalse, SQTrue, SQFalse))) { std::ostringstream msg; msg << "Error waking VM: "; sq_getlasterror(scheduled_vm); if(sq_gettype(scheduled_vm, -1) != OT_STRING) { msg << "(no info)"; } else { const char* lasterr; sq_getstring(scheduled_vm, -1, &lasterr); msg << lasterr; } log_warning << msg.str() << std::endl; sq_pop(scheduled_vm, 1); } } sq_release(global_vm, &thread_ref); sq_pop(global_vm, 2); std::pop_heap(schedule.begin(), schedule.end()); schedule.pop_back(); }}
开发者ID:maxteufel,项目名称:supertux,代码行数:35,
示例11: MultiScriptAssertint SquirrelScriptContext::SquirrelClassMethodCallback(HSQUIRRELVM vm){ // Get class info MultiScriptAssert( sq_gettype(vm, -1) == OT_USERPOINTER ); void* userPtr = NULL; sq_getuserpointer(vm, -1, &userPtr); sq_pop(vm, 1); SquirrelClassInfo* classInfo = (SquirrelClassInfo*) userPtr; // Get method index MultiScriptAssert( sq_gettype(vm, -1) == OT_INTEGER ); int methodIndex; sq_getinteger(vm, -1, &methodIndex); sq_pop(vm, 1); // Get the instance MultiScriptAssert( sq_gettype(vm, 1) == OT_INSTANCE ); sq_getinstanceup(vm, 1, &userPtr, 0); SquirrelScriptObject* scriptObject = (SquirrelScriptObject*) userPtr; MultiScriptAssert(scriptObject->m_objectPtr); SquirrelScriptStack stack(classInfo->m_context, false); const bool result = classInfo->m_desc->m_methods[methodIndex].m_method(scriptObject, &stack); MultiScriptAssert( result ); return stack.m_numPushed;}
开发者ID:joechenq,项目名称:multi-script,代码行数:29,
示例12: emoRuntimeLog/* * Runtime logging * * @param log level * @param log message */SQInteger emoRuntimeLog(HSQUIRRELVM v) { SQInteger nargs = sq_gettop(v); SQInteger level; const SQChar *message; if (nargs < 3) return 0; if (sq_gettype(v, 2) == OT_INTEGER && sq_gettype(v, 3) == OT_STRING) { sq_getinteger(v, 2, &level); sq_tostring(v, 3); sq_getstring(v, -1, &message); sq_poptop(v); switch (level) { case LOG_INFO: LOGI((char*) message); break; case LOG_ERROR: LOGE((char*) message); break; case LOG_WARN: LOGW((char*) message); break; } } return 0;}
开发者ID:dreadpiratepj,项目名称:emo-framework-experiment,代码行数:34,
示例13: ViIpSetImgByMem//////////////////////////////////////////////////////////////////////////// ViIp 接口表示CFastImagePanelUI类的成员函数// BOOL ViIpSetImgByMem(VApiHandle hImgPaneCtrl, VApiHandle hImg)SQInteger ViIpSetImgByMem(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); BOOL bRet = FALSE; SQInteger hImg = 0; CUIImage* pImg = NULL; CFastImagePanelUI* pImgPaneCtrl = NULL; SQInteger hImgPaneCtrl = NULL; if (!v || 2 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} sq_getinteger(v, 2, &hImgPaneCtrl); sq_getinteger(v, 3, &hImg); pImg = (CUIImage*)QiHwHandleToObj(hImg); pImgPaneCtrl = (CFastImagePanelUI*)QiHwHandleToObj(hImgPaneCtrl); if (!pImg || !pImgPaneCtrl) {goto _Exit_;} bRet = pImgPaneCtrl->SetImgByMem(pImg);_Exit_: sq_pushbool(v, bRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:29,
示例14: TwStepTween// BOOL TwStepTween(HANDLE hTween, long currentMillis)SQInteger TwStepTween(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); SQBool bRet = FALSE; SQInteger nTweener = NULL; SQInteger currentMillis = 0; Tweener* pTweener = NULL; if (!v || 2 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} sq_getinteger(v, 2, &nTweener); sq_getinteger(v, 3, ¤tMillis); pTweener = (Tweener*)QiHwHandleToObj(nTweener); if (!pTweener) {goto _Exit_;} pTweener->step(currentMillis); bRet = TRUE;_Exit_: sq_pushbool(v, bRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:26,
示例15: ViCbSetPos// BOOL ViCbSetPos(VApiHandle hWnd, int x0, int y0, int x1, int y1)SQInteger ViCbSetPos(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); SQInteger Handle = 0; CControlUI* pCtrl = NULL; int x0 = 0; int y0 = 0; int x1 = 0; int y1 = 0; RECT rc = {0}; if (!v || 5 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 4)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 5)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 6)) {goto _Exit_;} sq_getinteger(v, 2, &Handle); sq_getinteger(v, 3, &x0); sq_getinteger(v, 4, &y0); sq_getinteger(v, 5, &x1); sq_getinteger(v, 6, &y1); pCtrl = QiHwHandleToCtrl(Handle); if (!pCtrl) {goto _Exit_;} rc.left = x0; rc.top = y0; rc.right = x1; rc.bottom = y1; pCtrl->SetPos(rc); _Exit_: sq_pushbool(v, TRUE); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:36,
示例16: emoSeekAudioChannel/* * seek audio with given channel * * @param audio channel index * @param seek offset (milliseconds from the beginning of the audio) * @return EMO_NO_ERROR if succeeds */SQInteger emoSeekAudioChannel(HSQUIRRELVM v) { if (!engine->audio->isRunning()) { sq_pushinteger(v, ERR_AUDIO_ENGINE_CLOSED); return 1; } SQInteger channelIndex; SQInteger seekPosition; if (sq_gettype(v, 2) != OT_NULL && sq_gettype(v, 3) != OT_NULL) { sq_getinteger(v, 2, &channelIndex); sq_getinteger(v, 3, &seekPosition); } else { sq_pushinteger(v, ERR_INVALID_PARAM_TYPE); return 1; } if (channelIndex >= engine->audio->getChannelCount()) { sq_pushinteger(v, ERR_INVALID_PARAM); return 1; } if (!engine->audio->seekChannel(channelIndex, seekPosition, SL_SEEKMODE_ACCURATE)) { sq_pushinteger(v, ERR_AUDIO_ENGINE_STATUS); return 1; } sq_pushinteger(v, EMO_NO_ERROR); return 1;}
开发者ID:Arpanet81,项目名称:emo-framework,代码行数:38,
示例17: emoRuntimeCompile/* * compile script from path * * @param script file name */SQInteger emoRuntimeCompile(HSQUIRRELVM v) { if (sq_gettype(v, 2) == OT_STRING) { const SQChar *fname; sq_tostring(v, 2); sq_getstring(v, -1, &fname); sq_poptop(v); // check if the file type exists if (sq_gettype(v, 3) == OT_INTEGER) { SQInteger fileType = TYPE_ASSET; sq_getinteger(v, 3, &fileType); if (fileType == TYPE_ASSET) { // load script from resource loadScriptFromAsset((char*) fname); } else if (fileType == TYPE_DOCUMENT) { // load script from user document directory loadScriptFromUserDocument(fname); } else { // load script from path loadScript(fname); } } else { // load script from path loadScript(fname); } } return 0;}
开发者ID:dreadpiratepj,项目名称:emo-framework-experiment,代码行数:36,
示例18: TwAddProperty// BOOL TwAddProperty(HANDLE hTweenParam, float valor, float valorFinal)SQInteger TwAddProperty(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); SQBool bRet = FALSE; TweenerParam* pTweenParam = NULL; SQInteger nTweenParam = NULL; SQInteger fValor = 0; SQInteger fValorFinal = 0; TweenerParam* pParam = NULL; if (!v || 3 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 4)) {goto _Exit_;} sq_getinteger(v, 2, &nTweenParam); sq_getinteger(v, 3, &fValor); sq_getinteger(v, 4, &fValorFinal); pTweenParam = (TweenerParam*)QiHwHandleToObj(nTweenParam); if (!pTweenParam) {goto _Exit_;} pTweenParam->addProperty(fValor, fValorFinal); bRet = TRUE;_Exit_: sq_pushbool(v, bRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:30,
示例19: TwCreateTweenParam// HANDLE TwCreateTweenParam(float fTime, short nTransition = EXPO, short nEquation = EASE_OUT, float fDelay = 0)SQInteger TwCreateTweenParam(HSQUIRRELVM v){ SQInteger nargs = sq_gettop(v); SQInteger nRet = NULL; SQInteger fTime = 0; SQInteger nTransition = EXPO; SQInteger nEquation = EASE_OUT; SQInteger fDelay = 0; TweenerParam* pParam = NULL; if (!v || 4 + 1 != nargs) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 2)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 3)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 4)) {goto _Exit_;} if (OT_INTEGER != sq_gettype(v, 5)) {goto _Exit_;} sq_getinteger(v, 2, &fTime); sq_getinteger(v, 3, &nTransition); sq_getinteger(v, 4, &nEquation); sq_getinteger(v, 5, &fDelay); pParam = new TweenerParam(fTime, nTransition, nEquation, fDelay); if (!pParam) {goto _Exit_;} nRet = QiHwObjToHandle(pParam);_Exit_: sq_pushinteger(v, nRet); return 1;}
开发者ID:eriser,项目名称:kdguigl,代码行数:31,
示例20: sq_gettop/** * squirrel から吉里吉里オブジェクトを取得 */boolTJSObject::getVariant(HSQUIRRELVM v, SQInteger idx, tTJSVariant *variant){ if (sq_gettype(v, idx) == OT_CLASS) { if (idx < 0) { idx = sq_gettop(v) + 1 + idx; } bool ret = false; // クラス属性からオブジェクト情 C++ sq_newclosure函数代码示例 C++ sq_gettop函数代码示例
|