Ejemplo n.º 1
0
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);
}
Ejemplo n.º 2
0
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 );
}
Ejemplo n.º 3
0
//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);
}
Ejemplo n.º 4
0
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);
}
Ejemplo n.º 5
0
// ----------------------------------------------------------------------- //
//
//	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 );
}
Ejemplo n.º 6
0
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 );
}
Ejemplo n.º 7
0
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 );
}