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;
}
Exemple #2
0
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;
}
Exemple #6
0
void 
CKLBLuaTask::performKillCallback() {
	if (m_cbFuncName) {
		CKLBScriptEnv::getInstance().call_onDie(m_cbFuncName, this);
		KLBDELETEA(m_cbFuncName);
		m_cbFuncName = NULL;
	}
}
Exemple #7
0
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);
}
Exemple #9
0
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;
}
Exemple #11
0
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;
}
Exemple #12
0
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;
}
Exemple #13
0
// 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;
}
Exemple #14
0
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;
}
Exemple #17
0
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);
}
Exemple #18
0
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;
}
Exemple #19
0
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;
}
Exemple #21
0
CKLBUIScore::~CKLBUIScore() {
	for (int n = 0; n<10; n++) {
		KLBDELETEA(m_asset[n]);
	}
}
Exemple #22
0
void
CKLBPauseCtrl::die()
{
	KLBDELETEA(m_callbackPause);
	KLBDELETEA(m_callbackResume);
}
CKLBGenericTask::~CKLBGenericTask()
{
    KLBDELETEA(m_luaFuncExec);
    KLBDELETEA(m_luaFuncDie);
    KLBDELETEA(m_ArrayIndex);
}
Exemple #24
0
void
CKLBUIButton::die()
{
	KLBDELETEA(m_luaFunc);
}
CKLBUISimpleItem::~CKLBUISimpleItem() 
{
	KLBDELETEA(m_asset);
}