uint32 LightGroup::EngineMessageFn(uint32 messageID, void *pData, LTFLOAT fData) { switch(messageID) { case MID_PRECREATE: { ObjectCreateStruct *pOCS = (ObjectCreateStruct*)pData; if (!pOCS) break; if( fData == PRECREATE_WORLDFILE ) { ReadProp(pOCS); } PostReadProp(pOCS); } break; case MID_INITIALUPDATE: { if( fData != INITIALUPDATE_SAVEGAME ) { InitialUpdate(); } } break; case MID_SAVEOBJECT: { Save((ILTMessage_Write*)pData, (uint32)fData); } break; case MID_LOADOBJECT: { Load((ILTMessage_Read*)pData, (uint32)fData); } break; case MID_UPDATE: { // Send a new update if we were waiting for the client to do something if (m_bClientNeedsUpdate) { UpdateClients(); // Turn back off SetNextUpdate(m_hObject, UPDATE_NEVER); } } break; default : break; } return Engine_LightGroup::EngineMessageFn(messageID, pData, fData); }
uint32 DynamicSectorVolume::EngineMessageFn( uint32 messageID, void *pData, float fData ) { switch( messageID ) { case MID_PRECREATE : { // Let the GameBase handle it first... uint32 dwRet = GameBase::EngineMessageFn( messageID, pData, fData ); ObjectCreateStruct *pOCS = (ObjectCreateStruct*)pData; if( pOCS ) { if( PRECREATE_WORLDFILE == fData ) { ReadProps( &pOCS->m_cProperties ); } PostReadProp( pOCS ); } return dwRet; } break; case MID_OBJECTCREATED : { if( OBJECTCREATED_SAVEGAME != fData ) { g_pCommonLT->SetObjectFlags( m_hObject, OFT_User, USRFLG_VISIBLE, USRFLG_VISIBLE ); UpdateFXMessage( false ); } SetNextUpdate( UPDATE_NEVER ); } break; case MID_SAVEOBJECT : { Save( (ILTMessage_Write*)pData, (uint32)fData ); } break; case MID_LOADOBJECT : { Load( (ILTMessage_Read*)pData, (uint32)fData ); } break; } return GameBase::EngineMessageFn( messageID, pData, fData ); }
//handles events sent from the engine. These are primarily messages //associated with saving and loading uint32 LightBase::EngineMessageFn(uint32 messageID, void *pData, float fData) { switch(messageID) { case MID_PRECREATE: { if (fData != PRECREATE_SAVEGAME) { PostReadProp((ObjectCreateStruct*)pData); } break; } case MID_INITIALUPDATE: { if (fData != INITIALUPDATE_SAVEGAME) { //let the child object handle loading in the necessary properties ReadLightProperties((const GenericPropList *)pData); SetupEngineLight(); } break; } case MID_LOADOBJECT: { Load((ILTMessage_Read*)pData, (uint32)fData); break; } case MID_SAVEOBJECT: { Save((ILTMessage_Write*)pData, (uint32)fData); break; } case MID_ALLOBJECTSCREATED: { // Don't eat ticks please... SetNextUpdate(UPDATE_NEVER); break; } default : break; } return GameBase::EngineMessageFn(messageID, pData, fData); }
uint32 SpecialMove::EngineMessageFn(uint32 messageID, void *pData, float fData) { switch (messageID) { case MID_PRECREATE: { uint32 nRes = GameBase::EngineMessageFn(messageID, pData, fData); ObjectCreateStruct *pOCS = (ObjectCreateStruct*)pData; ReadProp(&pOCS->m_cProperties); PostReadProp(pOCS); return nRes; } break; case MID_OBJECTCREATED: { if( OBJECTCREATED_SAVEGAME != fData ) { // Link up the activation handler m_ActivateTypeHandler.Init( m_hObject ); } uint32 nRes = GameBase::EngineMessageFn(messageID, pData, fData); int nInfo = (int)fData; if (nInfo != INITIALUPDATE_SAVEGAME) { InitialUpdate(); } return nRes; } break; case MID_SAVEOBJECT: { Save( ( ILTMessage_Write* )pData, ( uint32 )fData ); break; } case MID_LOADOBJECT: { Load( ( ILTMessage_Read* )pData, ( uint32 )fData ); break; } } return GameBase::EngineMessageFn(messageID, pData, fData); }
// ----------------------------------------------------------------------- // // // ROUTINE: TeamClientFX::EngineMessageFn // // PURPOSE: Handle messages from the engine... // // ----------------------------------------------------------------------- // uint32 TeamClientFX::EngineMessageFn( uint32 messageID, void *pData, float fData ) { switch(messageID) { case MID_PRECREATE: { uint32 dwRet = GameBase::EngineMessageFn( messageID, pData, fData ); ObjectCreateStruct* pStruct = (ObjectCreateStruct*)pData; if( fData == PRECREATE_WORLDFILE || fData == PRECREATE_STRINGPROP ) { if( !ReadProp( &pStruct->m_cProperties )) return 0; } if( !PostReadProp( pStruct )) return 0; return dwRet; } break; case MID_INITIALUPDATE: { uint32 dwRet = GameBase::EngineMessageFn( messageID, pData, fData ); if (fData != INITIALUPDATE_SAVEGAME) { InitialUpdate(); } return dwRet; } break; default : break; } return GameBase::EngineMessageFn( messageID, pData, fData ); }
uint32 Turret::EngineMessageFn( uint32 messageID, void *pData, float fData ) { switch(messageID) { case MID_PRECREATE: { if( fData == PRECREATE_WORLDFILE || fData == PRECREATE_STRINGPROP ) { ObjectCreateStruct* pStruct = (ObjectCreateStruct*)pData; if( !ReadProp( &pStruct->m_cProperties )) return 0; PostReadProp( pStruct ); } } break; case MID_OBJECTCREATED: { uint32 dwRet = GameBase::EngineMessageFn( messageID, pData, fData ); if (fData != OBJECTCREATED_SAVEGAME) { InitialUpdate(); } return dwRet; } break; case MID_SAVEOBJECT: { Save( (ILTMessage_Write*)pData, (uint32)fData ); } break; case MID_LOADOBJECT: { Load( (ILTMessage_Read*)pData, (uint32)fData ); } break; case MID_UPDATE: { Update( ); if( m_bPostLoadActivate ) { m_bPostLoadActivate = false; HOBJECT hOperatingObject = m_hOperatingObject; m_hOperatingObject = INVALID_HOBJECT; PostLoadActivate( hOperatingObject ); } } break; case MID_SAVESPECIALEFFECTMESSAGE: { SaveSFXMessage( static_cast<ILTMessage_Write*>( pData ), static_cast<uint32>( fData ) ); } break; case MID_LOADSPECIALEFFECTMESSAGE: { LoadSFXMessage( static_cast<ILTMessage_Read*>( pData ), static_cast<uint32>( fData ) ); } break; default : break; } return GameBase::EngineMessageFn( messageID, pData, fData ); }
uint32 WorldModel::EngineMessageFn( uint32 messageID, void *pData, LTFLOAT fData ) { switch( messageID ) { case MID_PRECREATE: { // Let the GameBase handle the message first uint32 dwRet = GameBase::EngineMessageFn( messageID, pData, fData ); ObjectCreateStruct *pOCS = (ObjectCreateStruct*)pData; if( pOCS ) { if( PRECREATE_WORLDFILE == fData ) { // tagRP: HACK - Save off the rotation then get rid of it to deal with the double rotation problem m_hackInitialRot = pOCS->m_Rotation; pOCS->m_Rotation.Identity(); // end HACK ReadProps( pOCS ); } if( PRECREATE_SAVEGAME != fData ) { // Init some data if it's not a saved game PostReadProp( pOCS ); } } // Important!! - We already sent the message to the GameBase so DONT do it again. return dwRet; } break; case MID_OBJECTCREATED: { if( OBJECTCREATED_SAVEGAME != fData ) { OnObjectCreated(); } } break; case MID_ALLOBJECTSCREATED: { OnEveryObjectCreated(); } break; case MID_UPDATE: { OnUpdate( g_pLTServer->GetTime() ); } break; case MID_SAVEOBJECT: { OnSave( (ILTMessage_Write*)pData, (uint32)fData ); } break; case MID_LOADOBJECT: { OnLoad( (ILTMessage_Read*)pData, (uint32)fData ); } break; } return GameBase::EngineMessageFn( messageID, pData, fData ); }