void CKLBGenericTask::die() { CKLBScriptEnv::getInstance().call_genTaskDie(m_luaFuncDie, this, m_ArrayIndex); KLBDELETEA(m_luaFuncExec); m_luaFuncExec = NULL; KLBDELETEA(m_luaFuncDie); m_luaFuncDie = NULL; KLBDELETEA(m_ArrayIndex); m_ArrayIndex = NULL; }
void CKLBUIControl::die() { CKLBFormGroup& fGrp = CKLBFormGroup::getInstance(); fGrp.delForm(&m_ctrlList); m_modalStack.remove(); KLBDELETEA(m_onPinch); KLBDELETEA(m_onLongTap); KLBDELETEA(m_onDblClick); KLBDELETEA(m_onClick); KLBDELETEA(m_onDrag); }
void CKLBSplineNode::cleanSplines() { KLBDELETEA(m_allKeys); m_allKeys = NULL; KLBDELETEA(m_target); m_target = NULL; KLBDELETEA(m_splines); m_splines = NULL; KLBDELETEA(m_splinesKeyCount); m_splinesKeyCount = NULL; // KLBDELETEA(m_splineLocalTime); // m_splineLocalTime = NULL; KLBDELETEA(m_splineLastKey); m_splineLastKey = NULL; }
int CKLBGenericTask::commandScript(CLuaState& lua) { int argc = lua.numArgs(); if(argc < 2) { lua.retBoolean(false); return 1; } int cmd = lua.getInt(2); int ret = 1; switch(cmd) { default: { lua.retBoolean(false); ret = 1; } break; case GENERIC_STOP_EXECUTE: { KLBDELETEA(m_luaFuncExec); m_luaFuncExec = NULL; lua.retBoolean(true); ret = 1; } break; } return ret; }
bool CKLBUITouchPad::init(CKLBTask* pTask, const char* funcname, bool modal) { if(funcname) setStrC(m_luaFunc, funcname); m_modal = modal; m_ctrlList.pGroup = NULL; m_ctrlList.pGrpPrev = NULL; m_ctrlList.pGrpNext = NULL; m_ctrlList.pBegin = NULL; m_ctrlList.next = NULL; m_ctrlList.bEnable = true; m_ctrlList.bExclusive = false; m_ctrlList.bWorking = false; m_ctrlList.pCallbackIF = NULL; m_ctrlList.nativeCallback = NULL; m_ctrlList.pID = NULL; if(m_modal) { m_modalStack.setModal(false); m_modalStack.push(); // modal stack に積む } bool result = regist(pTask, P_AFTER); if(!result) { KLBDELETEA(m_luaFunc); } m_execount = 0; return true; }
void CKLBLuaTask::performKillCallback() { if (m_cbFuncName) { CKLBScriptEnv::getInstance().call_onDie(m_cbFuncName, this); KLBDELETEA(m_cbFuncName); m_cbFuncName = NULL; } }
void CKLBLuaTask::setKillCallback(const char* cbFuncName) { KLBDELETEA(m_cbFuncName); if (cbFuncName) { m_cbFuncName = CKLBUtility::copyString(cbFuncName); } else { m_cbFuncName = NULL; } }
void CKLBUITouchPad::die() { CKLBFormGroup& fGrp = CKLBFormGroup::getInstance(); fGrp.delForm(&m_ctrlList); if(m_modal) { m_modalStack.remove(); } KLBDELETEA(m_luaFunc); }
void CKLBUIMultiImgItem::dieUI() { getNode()->setRender(NULL,0); CKLBRenderingManager& rdr = CKLBRenderingManager::getInstance(); for(u32 i = 0; i < m_cntImg; i++) { CKLBDataHandler::releaseHandle(m_items[i].handle); rdr.releaseCommand(m_items[i].sprite); } KLBDELETEA(m_items); }
// ベクトル配列にマトリクスをかける int CKLBLuaLibMatrix::luaMulMatVecArray(lua_State * L) { CLuaState lua(L); int nums; MATRIX * mat = getMatPointer(lua, 1); if(!mat) { lua.retNil(); return 1; } VECTOR * arrVec; VECTOR * retVec; // Luaのvector配列要素数を取得 lua.retValue(2); nums = getVectorNums(lua); // 取得した数だけの要素を持つvector配列を、 // 取得用と結果用の二つ作る。 arrVec = KLBNEWA(VECTOR, nums); retVec = KLBNEWA(VECTOR, nums); // 取得用の側に、vector配列の内容を取得する getVectorArray(lua, arrVec, nums); lua.pop(1); // 取得したvector群にマトリクスをかける mulMatVecArray(nums, retVec, arrVec, mat); // 計算結果のベクトル配列をLuaテーブルに変換し、Luaスタックに積む setVectorArray(lua, retVec, nums); // バッファはもう用済み KLBDELETEA(retVec); KLBDELETEA(arrVec); // 積んだベクトル配列を戻り値とする。 return 1; }
void JSonDB::clean() { RecordListHeader* pRecord = m_startRecord; while (pRecord) { RecordListHeader* pNextRecord = pRecord->pNextRecord; KLBDELETE(pRecord->fields); KLBDELETE(pRecord); pRecord = pNextRecord; } m_startRecord = NULL; KLBDELETEA(mStringRecordBuffer); mStringRecordBuffer = NULL; }
bool CKLBUIControl::init(CKLBTask* /*pTask*/, const char* onClick, const char* onDrag) { if(onClick) m_onClick = CKLBUtility::copyString(onClick); if(onDrag) m_onDrag = CKLBUtility::copyString(onDrag); if(!m_onClick || !m_onDrag) { KLBDELETEA(m_onClick); KLBDELETEA(m_onDrag); return false; } m_bClick = false; m_bControl = false; m_usePt = 0; m_ctrlList.pGroup = NULL; m_ctrlList.pGrpPrev = NULL; m_ctrlList.pGrpNext = NULL; m_ctrlList.pBegin = NULL; m_ctrlList.next = NULL; m_ctrlList.bEnable = true; m_ctrlList.bExclusive = false; m_ctrlList.bWorking = false; m_ctrlList.pCallbackIF = NULL; m_ctrlList.nativeCallback = NULL; m_ctrlList.pID = NULL; if(regist(0, P_AFTER)) { m_modalStack.setModal(false); m_modalStack.setEnable(true); m_modalStack.push(); m_bModalEnable = true; return true; } // regist に失敗した場合 return false; }
// TODO C# - check this method. bool CKLBUIMultiImgItem::changeAssets(const char** pArrayAsset, u32* pArrayIndexes, u32 assetCount) { getNode()->setRender(NULL,0); CKLBRenderingManager& rdr = CKLBRenderingManager::getInstance(); for(u32 i = 0; i < m_cntImg; i++) { CKLBDataHandler::releaseHandle(m_items[i].handle); rdr.releaseCommand(m_items[i].sprite); } KLBDELETEA(m_items); u32 max = 0; for(u32 idx = 0; idx < assetCount; idx++) { u32 idxImg = pArrayIndexes[idx]; if (max < idxImg) max = idxImg; } max++; IMGITEM* items = KLBNEWA(IMGITEM, max); if(!items) { return false; } // Reset all handle to 0 for(u32 idx = 0; idx < max; idx++) { items[idx].handle = 0; items[idx].sprite = NULL; } for(u32 i=0; i < assetCount; i++) { const char* name = pArrayAsset[i]; u32 idxImg = pArrayIndexes[i]; u32 handle; CKLBAsset * pAsset = CKLBUtility::loadAsset(name, &handle, NULL); if (pAsset->getAssetType() == ASSET_IMAGE) { CKLBSprite* pRender = rdr.allocateCommandSprite((CKLBImageAsset*)pAsset,m_order); items[idxImg].handle = handle; items[idxImg].sprite = pRender; } } m_cntImg = max; m_items = items; m_idxMax = m_cntImg - 1; // 最大index値を追加する REFRESH_A; REFRESH_B; return true; }
bool CKLBLuaTask::setStrC(const char*& dst, const char * val) { const char * str; if (val) { str = CKLBUtility::copyString(val); if (!str) { return false; } if (dst) { KLBDELETEA(dst); } } else { str = NULL; } dst = str; return true; }
void CKLBLuaLibMatrix::delMatrix(MATRIX * pMat) { if(!pMat) return; if(pMat->prev) { pMat->prev->next = pMat->next; } else { m_pBegin = pMat->next; } if(pMat->next) { pMat->next->prev = pMat->prev; } else { m_pEnd = pMat->prev; } KLBDELETEA(pMat->name); KLBDELETE(pMat); }
// matrix object に名前を与える int CKLBLuaLibMatrix::luaSetMatrixName(lua_State * L) { CLuaState lua(L); int argc = lua.numArgs(); if(argc != 2) { lua.retBool(false); return 1; } MATRIX * pMatrix = (MATRIX *)lua.getPointer(1); const char * name = (lua.isNil(2)) ? NULL : lua.getString(2); const char * newname = (name) ? CKLBUtility::copyString(name) : NULL; bool bResult = false; if(newname || (!newname && !name)) { if(pMatrix->name) KLBDELETEA(pMatrix->name); pMatrix->name = newname; bResult = true; } lua.retBool(bResult); return 1; }
void CKLBUpdate::die() { if (m_thread) { CPFInterface::getInstance().platform().deleteThread(m_thread); m_thread = NULL; } KLBDELETEA(m_zipURL); KLBDELETEA(m_tmpPath); KLBDELETEA(m_callbackZIP); KLBDELETEA(m_callbackDL); KLBDELETEA(m_callbackFinish); KLBDELETEA(m_callbackError); KLBDELETE(m_unzip); }
bool CKLBUIButton::init(CKLBTask* pTask, const char* funcname) { if(funcname) setStrC(m_luaFunc, funcname); m_ctrlList.pGroup = NULL; m_ctrlList.pGrpPrev = NULL; m_ctrlList.pGrpNext = NULL; m_ctrlList.pBegin = NULL; m_ctrlList.next = NULL; m_ctrlList.bEnable = true; m_ctrlList.bExclusive = false; m_ctrlList.bWorking = false; m_ctrlList.pCallbackIF = NULL; m_ctrlList.nativeCallback = NULL; m_ctrlList.pID = NULL; bool result = regist(pTask, P_AFTER); if(!result) { KLBDELETEA(m_luaFunc); } m_execount = 0; return true; }
bool CLuaState::call(int args, const char * func, int nresults) { // call stackを取れるようにtraceback函数をpushしpcallの第四引数を修正. int base = lua_gettop(m_L) - args; lua_pushcfunction(m_L, traceback); lua_insert(m_L, base); int result = lua_pcall(m_L, args, nresults, base); lua_remove(m_L, base); if(result) { const char * msg = NULL; switch(result) { default: msg = "unknown error: %s (%s)"; break; case LUA_ERRRUN: msg = "runtime error: %s (%s)"; break; case LUA_ERRMEM: msg = "memory allocation error: %s (%s)"; break; case LUA_ERRERR: msg = "error in error: %s (%s)"; break; } // 呼び出しエラー: 指定の関数呼び出しに失敗 const char * errmsg = getString(-1); int buff_len = strlen(msg) + strlen(errmsg) + strlen(func) + 1; char* buffer = KLBNEWA(char, buff_len); #if defined(_WIN32) sprintf_s(buffer, buff_len, msg, errmsg, func); #else snprintf(buffer, buff_len, msg, errmsg, func); #endif // #if defined(_WIN32) CKLBLuaEnv::getInstance().errMsg(buffer); klb_assertAlways("%s", buffer); KLBDELETEA(buffer); // assert発生するとここまで来ない予感はする. return false; } return true; }
bool CKLBGenericTask::init(CKLBTask* pTask, CKLBTask::TASK_PHASE phase, const char * name_exec, const char * name_die, const char * arr_index) { m_luaFuncExec = CKLBUtility::copyString(name_exec); m_luaFuncDie = CKLBUtility::copyString(name_die); m_ArrayIndex = CKLBUtility::copyString(arr_index); if(!m_luaFuncExec || !m_luaFuncDie || !m_ArrayIndex) { KLBDELETEA(m_luaFuncExec); KLBDELETEA(m_luaFuncDie); KLBDELETEA(m_ArrayIndex); return false; } bool result = regist(pTask, phase); if(!result) { KLBDELETEA(m_luaFuncExec); KLBDELETEA(m_luaFuncDie); KLBDELETEA(m_ArrayIndex); } return result; }
CKLBUIScore::~CKLBUIScore() { for (int n = 0; n<10; n++) { KLBDELETEA(m_asset[n]); } }
void CKLBPauseCtrl::die() { KLBDELETEA(m_callbackPause); KLBDELETEA(m_callbackResume); }
CKLBGenericTask::~CKLBGenericTask() { KLBDELETEA(m_luaFuncExec); KLBDELETEA(m_luaFuncDie); KLBDELETEA(m_ArrayIndex); }
void CKLBUIButton::die() { KLBDELETEA(m_luaFunc); }
CKLBUISimpleItem::~CKLBUISimpleItem() { KLBDELETEA(m_asset); }