コード例 #1
0
int Input::updateGameInput() {

	int event = kEvNone;

	if (!isMouseEnabled() ||
		(_engineFlags & kEngineBlockInput) ||
		(_engineFlags & kEngineWalking) ||
		(_engineFlags & kEngineChangeLocation)) {

		debugC(3, kDebugInput, "updateGameInput: input flags (mouse: %i, block: %i, walking: %i, changeloc: %i)",
			isMouseEnabled(),
			(_engineFlags & kEngineBlockInput) == 0,
			(_engineFlags & kEngineWalking) == 0,
			(_engineFlags & kEngineChangeLocation) == 0
		);

		return event;
	}

	if (_gameType == GType_Nippon) {
		if (_hasKeyPressEvent && (_vm->getFeatures() & GF_DEMO) == 0) {
			if (_keyPressed.keycode == Common::KEYCODE_l) event = kEvLoadGame;
			if (_keyPressed.keycode == Common::KEYCODE_s) event = kEvSaveGame;
		}
	} else
	if (_gameType == GType_BRA) {
		if (_hasKeyPressEvent && (_vm->getFeatures() & GF_DEMO) == 0) {
			if (_keyPressed.keycode == Common::KEYCODE_F5) event = kEvIngameMenu;
		}
	} else {
		error("unsupported gametype in updateGameInput");
	}


	if (event == kEvNone) {
		translateGameInput();
	}

	return event;
}
コード例 #2
0
ファイル: wucAnimate.cpp プロジェクト: madsen-git/NTools
void animateFrameUC::Event(BSEventUC& event)
{
	if( !isMouseEnabled() && event.Type > BEUCEventMouseBegin && event.Type < BEUCEventMouseEnd ) {
		if( m_pParent != NULL ) m_pParent->Event(event);
		else controlUC::Event(event);
		return;
	}
	switch(event.Type)
	{
	case BEUCEventTimer:
		{
			if(event.wParam == DEFAULT_FRAME_TIMERID)
			{
				//SEND_LOG(L"BEUCEventTimer ......");
				invalidate();
				return;
			}
		}
		break;
	}
	__super::Event(event);
}
コード例 #3
0
ファイル: wucCombo.cpp プロジェクト: madsen-git/NTools
void comboUC::Event(BSEventUC &event)
{
	if( !isMouseEnabled() && event.Type > BEUCEventMouseBegin && event.Type < BEUCEventMouseEnd ) {
		if( m_pParent != NULL ) m_pParent->Event(event);
		else containerUC::Event(event);
		return;
	}

	if( event.Type == BEUCEventSetFocus ) 
	{
		invalidate();
	}
	if( event.Type == BEUCEventKillFocus ) 
	{
		invalidate();
	}
	if( event.Type == BEUCEventButtonDown )
	{
		if( isEnabled() ) {
			activate();
			m_uButtonState |= UCSTATE_PUSHED | UCSTATE_CAPTURED;
		}
		return;
	}
	if( event.Type == BEUCEventButtonUp )
	{
		if( (m_uButtonState & UCSTATE_CAPTURED) != 0 ) {
			m_uButtonState &= ~ UCSTATE_CAPTURED;
			invalidate();
		}
		return;
	}
	if( event.Type == BEUCEventMouseMove )
	{
		return;
	}
	if( event.Type == BEUCEventKeyDown )
	{
		switch( event.chKey ) {
		case VK_F4:
			activate();
			return;
		case VK_UP:
			selectItem(findSelectable(m_iCurSel - 1, false));
			return;
		case VK_DOWN:
			selectItem(findSelectable(m_iCurSel + 1, true));
			return;
		case VK_PRIOR:
			selectItem(findSelectable(m_iCurSel - 1, false));
			return;
		case VK_NEXT:
			selectItem(findSelectable(m_iCurSel + 1, true));
			return;
		case VK_HOME:
			selectItem(findSelectable(0, false));
			return;
		case VK_END:
			selectItem(findSelectable(getCount() - 1, true));
			return;
		}
	}
	if( event.Type == BEUCEventScrollWheel )
	{
		bool bDownward = LOWORD(event.wParam) == SB_LINEDOWN;
		selectItem(findSelectable(m_iCurSel + (bDownward ? 1 : -1), bDownward));
		return;
	}
	if( event.Type == BEUCEventContextMenu )
	{
		return;
	}
	if( event.Type == BEUCEventMouseEnter )
	{
		if( ::PtInRect(&m_rcItem, event.ptMouse ) ) {
			if( (m_uButtonState & UCSTATE_HOT) == 0  )
				m_uButtonState |= UCSTATE_HOT;
			invalidate();
		}
		return;
	}
	if( event.Type == BEUCEventMouseLeave )
	{
		if( (m_uButtonState & UCSTATE_HOT) != 0 ) {
			m_uButtonState &= ~UCSTATE_HOT;
			invalidate();
		}
		return;
	}
	controlUC::Event(event);
}