예제 #1
0
bool SpecialFX::OnTrigger(HOBJECT hSender, const CParsedMsg &cMsg)
{
	static CParsedMsg::CToken s_cTok_Trigger(SFX_MSG_TRIGGER);
	static CParsedMsg::CToken s_cTok_On(SFX_MSG_ON);
	static CParsedMsg::CToken s_cTok_Off(SFX_MSG_OFF);

	if( cMsg.GetArg(0) == s_cTok_Trigger )
	{
		m_bIsOn ? TurnOFF() : TurnON() ;
	}
	else if( cMsg.GetArg(0) == s_cTok_On )
	{
		TurnON();
	}
	else if( cMsg.GetArg(0) == s_cTok_Off )
	{
		TurnOFF();
	}
	else
	{
		return GameBase::OnTrigger(hSender, cMsg);
	}

	return true;
}
예제 #2
0
bool Cpb1000::run() {

    if (off) {
        pCONNECTOR->Set_pin(12	,1);
    }
    lcd_on_timer_rate = pHD44352->on_timer_rate;
    CpcXXXX::run();
    if (off && KEY(K_POW_ON))
    {
        TurnON();
        pKEYB->LastKey = 0;
    }


#if 0
#define IA ((CHD61700*)pCPU)->m_reg8bit[4]

    quint16 ktab[4]= { 0x0000, 0x0080, 0x00C0, 0xF0FF };
    if (pKEYB->LastKey>0) {
//        if ((IA & 0x80) != 0)
        {
//            qWarning()<<"Key INTR";
//            if ((getKey()))// & ktab[(IA >> 4) & 0x3]) !=0)
            {
                ((CHD61700*)pCPU)->execute_set_input(HD61700_KEY_INT,1);
            }
        }
    }
#endif

    fillSoundBuffer(pdi & 0x80);

    return true;
}
예제 #3
0
bool	Clcdc_ce1560::init(void)
{
    Clcdc::init();
    TurnON();

    memset(pixels,-1,sizeof(pixels));

    return true;
}
예제 #4
0
uint32 SpecialFX::EngineMessageFn(uint32 messageID, void *pData, float fData)
{
	switch (messageID)
	{
		case MID_PRECREATE :
		{
			uint32 dwRet = GameBase::EngineMessageFn(messageID, pData, fData);

			ObjectCreateStruct *pOcs = (ObjectCreateStruct *)pData;

			if ((uint32)fData == PRECREATE_WORLDFILE || (uint32)fData == PRECREATE_STRINGPROP)
			{
				// Read in object properties

				ReadProps(pOcs);
			}
			
			return dwRet;
		}
		break;
		
		case MID_INITIALUPDATE :
		{
			m_bFromSavedGame = ((uint32)fData == INITIALUPDATE_SAVEGAME);
			if ( !m_bFromSavedGame )
			{
				SetNextUpdate(UPDATE_NEVER);
			}
		}
		break;

		case MID_ALLOBJECTSCREATED :
		{
			if( !m_bFromSavedGame )
			{

				// See if we have a Target object...

				if( m_hstrTargetName )
				{
					ObjArray<HOBJECT, 1> objArray;
					g_pLTServer->FindNamedObjects( g_pLTServer->GetStringData( m_hstrTargetName ), objArray );

					if( objArray.NumObjects() > 0 )
					{
						m_hTargetObj = objArray.GetObject( 0 );
					}

					FREE_HSTRING( m_hstrTargetName );
				}

				if (m_bStartOn)
				{
					TurnON();
				}
			}
		}
		break;

		case MID_SAVEOBJECT :
		{			
			// Handle saving

			GameBase::EngineMessageFn(messageID, pData, fData);	
			OnSave((ILTMessage_Write*)pData, (uint32)fData);
			return LT_OK;
		}
		break;

		case MID_LOADOBJECT :
		{
			// Handle loading
			
			GameBase::EngineMessageFn(messageID, pData, fData);
			OnLoad((ILTMessage_Read*)pData, (uint32)fData);
			return LT_OK;
		}
		break;
	}

	return GameBase::EngineMessageFn(messageID, pData, fData);
}