Exemplo n.º 1
1
*/	REBSER *List_Func_Types(REBVAL *func)
/*
**		Return a block of function arg types.
**		Note: skips 0th entry.
**
***********************************************************************/
{
	REBSER *block;
	REBSER *words = VAL_FUNC_WORDS(func);
	REBCNT n;
	REBVAL *value;
	REBVAL *word;

	block = Make_Block(SERIES_TAIL(words));
	word = BLK_SKIP(words, 1);

	for (n = 1; n < SERIES_TAIL(words); word++, n++) {
		value = Alloc_Tail_Blk(block);
		VAL_SET(value, VAL_TYPE(word));
		VAL_WORD_SYM(value) = VAL_BIND_SYM(word);
		UNBIND(value);
	}

	return block;
}
Exemplo n.º 2
0
void Battle::playActionOver(cocostudio::Armature *armature, cocostudio::MovementEventType type, const char *name) {
    if (armature == m_pReadygo) {
        if (type == COMPLETE) {
            removeChild(armature);
            m_pReadygo = NULL;
            unmask();
            BIND(BUND_ID_GLOBAL_TOUCH_MOVED, this, Battle::globalTouchMoved);
            g_pEventEngine->BundlerCall(BUND_ID_PLANE_FIRE, this, sizeof(this));
        }
    }
    
    if (armature == m_pBossIn) {
        if (type == COMPLETE) {
            removeChild(armature);
            m_pBossIn = NULL;
            unmask();
            const BossConfig * pconfig = g_pGameConfig->getBossConfig(m_pConfig->boss);
            m_pBoss = Boss::create(pconfig);
            addChild(m_pBoss, GRADE_ENEMY);
            if (m_pConfig->boss != "chisezhilang") {
                m_pBoss->setScale(g_pGameConfig->scaleEleMin);
            } else {
                m_pBoss->setScale(g_pGameConfig->scaleEleMin * 1.5);
            }
            m_pBoss->setPosition(Vec2(pconfig->pos.x * g_pGameConfig->scaleEleX, pconfig->pos.y * g_pGameConfig->scaleEleY));
            m_pBoss->setRotation(pconfig->rotate);
            ActionInterval * action = MoveBy::create(2, Vec2(0, -500 * g_pGameConfig->scaleEleY));
            m_pBoss->runAction(Sequence::create(action, CallFuncN::create(this, callfuncN_selector(Battle::playbossAi)), NULL));
        }
    }
    
    if (armature == m_pMissionVictory) {
        if (type == COMPLETE) {
            Node * icon = g_pGameConfig->getIcon(m_equip.model, m_equip.type);
            icon->setPosition(Vec2(-200, -275));
            icon->setScale(g_pGameConfig->scaleEleMin * 5);
            m_pMissionVictory->addChild(icon, GRADE_UI);
            icon->setOpacity(0);
            ActionInterval * scale = ScaleTo::create(.5f, g_pGameConfig->scaleEleMin * 1.5);
            ActionInterval * fadein = FadeIn::create(.5f);
            icon->runAction(Spawn::create(scale, fadein, NULL));
            
            UNBIND(BUND_ID_GLOBAL_TOUCH_MOVED, this, Battle::globalTouchMoved);
            
            scheduleOnce(schedule_selector(Battle::returnMission), 2.0f);
        }
    }
    
    if (armature == m_pMissionFaild) {
        if (type == COMPLETE) {
            UNBIND(BUND_ID_GLOBAL_TOUCH_MOVED, this, Battle::globalTouchMoved);
            
            scheduleOnce(schedule_selector(Battle::returnMission), 2.0f);
        }
    }
}
Exemplo n.º 3
0
void Battle::planedisappear(void *context, const s32 size) {
    CCASSERT(m_pPlane == context, "where r u from");
    UNBIND(BUND_ID_GLOBAL_TOUCH_BEGAN, this, Battle::globalTouchBegan);
    UNBIND(BUND_ID_GLOBAL_TOUCH_MOVED, this, Battle::globalTouchMoved);
    UNBIND(BUND_ID_PLANE_DISAPPEAR, this, Battle::planedisappear);
    m_pPlane = NULL;
    unschedule(schedule_selector(Battle::collidtion));
    scheduleOnce(schedule_selector(Battle::pve_failed), 2.0f);
    planeinjured(NULL, 0);
}
Exemplo n.º 4
0
void Battle::onExit() {
    PublicUI::onExit();
    s_mission_name = "";
    
    UNBIND(BUND_ID_BULLET_FIRED, this, Battle::bulletFired);
    UNBIND(BUND_ID_BULLET_DISAPPEARED, this, Battle::bulletDisappear);
    UNBIND(BUND_ID_BATTLE_EVENT, this, Battle::event_exec);
    UNBIND(BUND_ID_ENEMY_EVENT, this, Battle::enemy_event);
    UNBIND(BUND_ID_ENEMY_DISAPPEAR, this, Battle::enemydisappear);
    UNBIND(BUND_ID_PLANE_DISAPPEAR, this, Battle::planedisappear);
    UNBIND(BUND_ID_PLANE_INJURED, this, Battle::planeinjured);
    UNBIND(BUND_ID_BOSS_DISAPPEAR, this, Battle::bossdisappear);
}
Exemplo n.º 5
0
*/  void Unbind_Block(REBVAL *val, REBCNT deep)
/*
***********************************************************************/
{
	for (; NOT_END(val); val++) {
		if (ANY_WORD(val)) {
			UNBIND(val);
		}
		if (ANY_BLOCK(val) && deep) {
			Unbind_Block(VAL_BLK_DATA(val), TRUE);
		}
	}
}
Exemplo n.º 6
0
static void framesource_test(void *p1, void *p2)
{
	IMP_LOG_DBG(TAG, "IMP_Framesource_Init\n");

	int ret;
	ret = IMP_System_Init();
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_System_Init() failed:%d\n", ret);
		CU_FAIL();
		return;
	}

	IMP_LOG_DBG(TAG, "Create EmuFake groups\n");
	IMP_EmuFakedev_CreateGroup(0, 0, p1);
	IMP_EmuFakedev_CreateGroup(1, 0, p2);

	IMP_LOG_DBG(TAG, "Define DGCs...\n");
	IMPChannel framesource0 = { DEV_ID_FS, 0, 0 };
	IMPChannel framesource1 = { DEV_ID_FS, 0, 1 };
	IMPChannel dev0_chn0    = { DEV_ID_EMU_FAKE(0), 0, 0 };
	IMPChannel dev1_chn0    = { DEV_ID_EMU_FAKE(1), 0, 0 };

	/* Configure Dev attr */
	IMPFSDevAttr imp_dev_attr;
	imp_dev_attr.inFrmRate = FRAME_RATE_IN;
	imp_dev_attr.nrVBs = 4;
	ret = IMP_FrameSource_SetDevAttr(&imp_dev_attr);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_SetDevAttr() error: %d\n", ret);
		return ;
	}

	/* Check Dev attr */
	IMPFSDevAttr imp_dev_attr_check;
	ret =IMP_FrameSource_GetDevAttr(&imp_dev_attr_check);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_GetDevAttr() error: %d\n", ret);
		return ;
	}

	if(imp_dev_attr_check.inFrmRate != imp_dev_attr.inFrmRate)
		CU_FAIL("IMP_FrameSource_GetDevAttr");

	IMP_LOG_DBG(TAG, "Bind...\n");
#define BIND(A, B)								\
	ret = IMP_System_Bind(&A, &B);						\
	if (ret < 0) {								\
		IMP_LOG_ERR(TAG, "Bind src(%d,%d,%d) dst(%d,%d,%d) error\n",	\
					A.devID, A.grpID, A.chnID,		\
					B.devID, B.grpID, B.chnID);		\
		goto out;							\
	}

	BIND(framesource0, dev0_chn0);
	BIND(framesource1, dev1_chn0);
#undef BIND

	IMP_LOG_DBG(TAG, "Dump...\n");
	ret = system_bind_dump();
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "Dump error\n");
		CU_FAIL();
		return;
	}

	/* Configure channel 0 attr */
	IMPFSChnAttr imp_chn_attr;
	imp_chn_attr.picWidth = FRAME_W_1;
	imp_chn_attr.picHeight = FRAME_H_1;
	imp_chn_attr.pixFmt = FRAME_FORMAT_1;
	imp_chn_attr.outFrmRate = FRAME_RATE_OUT_1;
	ret = IMP_FrameSource_SetChnAttr(0, &imp_chn_attr);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_SetChnAttr(0) error: %d\n", ret);
		return ;
	}

	/* Check channel 0 attr */
	IMPFSChnAttr imp_chn_attr_check;
	ret = IMP_FrameSource_GetChnAttr(0, &imp_chn_attr_check);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_GetChnAttr(1) error: %d\n", ret);
		return ;
	}
	IMP_LOG_DBG(TAG, "FS Chn0 ChnAttr.picWidth=%d\n", imp_chn_attr_check.picWidth);
	IMP_LOG_DBG(TAG, "FS Chn0 ChnAttr.picHeight=%d\n", imp_chn_attr_check.picHeight);
	IMP_LOG_DBG(TAG, "FS Chn0 ChnAttr.pixFmt=%d\n", imp_chn_attr_check.pixFmt);
	IMP_LOG_DBG(TAG, "FS Chn0 ChnAttr.outFrmRate=%d\n", imp_chn_attr_check.outFrmRate);

	/* Configure channel 1 attr */
	imp_chn_attr.picWidth = FRAME_W_2;
	imp_chn_attr.picHeight = FRAME_H_2;
	imp_chn_attr.pixFmt = FRAME_FORMAT_2;
	imp_chn_attr.outFrmRate = FRAME_RATE_OUT_2;
	ret = IMP_FrameSource_SetChnAttr(1, &imp_chn_attr);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_SetChnAttr(0) error: %d\n", ret);
		return ;
	}

	/* Check channel 0 attr */
	ret = IMP_FrameSource_GetChnAttr(1, &imp_chn_attr_check);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_GetChnAttr(1) error: %d\n", ret);
		return ;
	}
	IMP_LOG_DBG(TAG, "FS Chn1 ChnAttr.picWidth=%d\n", imp_chn_attr_check.picWidth);
	IMP_LOG_DBG(TAG, "FS Chn1 ChnAttr.picHeight=%d\n", imp_chn_attr_check.picHeight);
	IMP_LOG_DBG(TAG, "FS Chn1 ChnAttr.pixFmt=%d\n", imp_chn_attr_check.pixFmt);
	IMP_LOG_DBG(TAG, "FS Chn1 ChnAttr.outFrmRate=%d\n", imp_chn_attr_check.outFrmRate);

	/* Enable channels */
	ret = IMP_FrameSource_EnableChn(0);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_EnableChn(0) error: %d\n", ret);
		return ;
	}

	ret = IMP_FrameSource_EnableChn(1);
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_EnableChn(1) error: %d\n", ret);
		return ;
	}

	/* Enable Device */
	ret = IMP_FrameSource_EnableDev();
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_EmuFrameSource_EnableDev error: %d\n", ret);
		return ;
	}

	IMP_LOG_DBG(TAG, "%s(): OK.\n", __func__);

	IMP_FrameSource_StreamOn();

	struct timeval tv = {6, 0};
	select(0, NULL, NULL, NULL, &tv);

	IMP_FrameSource_StreamOff();

	IMP_FrameSource_DisableDev();

	IMP_FrameSource_DisableChn(1);
	IMP_FrameSource_DisableChn(0);

	IMP_LOG_DBG(TAG, "Unbind...\n");
#define UNBIND(A, B)								\
	ret = IMP_System_UnBind(&A, &B);					\
	if (ret < 0) {								\
		IMP_LOG_ERR(TAG, "UnBind src(%d,%d,%d) dst(%d,%d,%d) error\n",	\
					A.devID, A.grpID, A.chnID,		\
					B.devID, B.grpID, B.chnID);		\
		goto out;							\
	}

	UNBIND(framesource0, dev0_chn0);
	UNBIND(framesource1, dev1_chn0);
#undef UNBIND

out:
	IMP_LOG_DBG(TAG, "IMP_System_Exit\n");
	ret = IMP_System_Exit();
	if (ret < 0) {
		IMP_LOG_ERR(TAG, "IMP_System_Exit() failed:%d\n", ret);
		CU_FAIL();
		return;
	}

	CU_PASS();
}
Exemplo n.º 7
0
Weapon::~Weapon() {
    UNBIND(BUND_ID_WEAPON_FIRE, this, Weapon::OnCmdFire);
    UNBIND(BUND_ID_BULLET_LEVEL_UP, this, Weapon::OnCmdBulletUp);
}
Exemplo n.º 8
0
CBox::~CBox() {
    UNBIND(BUND_ID_CBOX_UNSELECTED, this, CBox::OnCmdUnSelected);
}