Ejemplo n.º 1
0
void TransitionArea::Save( ILTMessage_Write *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg ) return;

	SAVE_DWORD( m_dwFlags );
	SAVE_INT( m_nTransLevel );
	
	SAVE_ROTATION( m_tfWorld.m_rRot );
	SAVE_VECTOR( m_tfWorld.m_vPos );
}
Ejemplo n.º 2
0
void AI_Helicopter::Save(HMESSAGEWRITE hWrite, uint32 dwSaveFlags)
{
	CAIVehicle::Save(hWrite, dwSaveFlags);

	// Save state...

    uint32 dwState = (uint32)-1;
	if (m_pHelicopterState)
	{
        dwState = (uint32) m_pHelicopterState->GetType();
	}

	SAVE_DWORD(dwState);

	if (m_pHelicopterState)
	{
		m_pHelicopterState->Save(hWrite);
	}

	SAVE_FLOAT(m_fSpeed);
	SAVE_FLOAT(m_fFlySpeed);
	SAVE_ROTATION(m_rRotSearchlight);
	SAVE_VECTOR(m_vPosSearchlight);
	SAVE_INT(m_iObjectSearchLight);
	SAVE_ROTATION(m_rRotGunner);
	SAVE_VECTOR(m_vPosGunner);
	SAVE_INT(m_iObjectGunner);

	SAVE_BOOL(m_bWantsRightDoorOpened);
	SAVE_BOOL(m_bWantsRightDoorClosed);
	SAVE_BOOL(m_bRightDoorOpened);
	SAVE_BOOL(m_bWantsLeftDoorOpened);
	SAVE_BOOL(m_bWantsLeftDoorClosed);
	SAVE_BOOL(m_bLeftDoorOpened);

	SAVE_FLOAT(m_fDeathDelay);
	SAVE_HSTRING(m_hstrDeathMessage);
	SAVE_HSTRING(m_hstrDeath2_3rdMessage);
	SAVE_HSTRING(m_hstrDeath1_3rdMessage);
	SAVE_HSTRING(m_hstrDeath0_3rdMessage);
	SAVE_BOOL(m_bExploded);
}
Ejemplo n.º 3
0
void PlayerVehicle::Save(HMESSAGEWRITE hWrite)
{
    ILTServer* pServerDE = GetServerDE();
	if (!pServerDE || !hWrite) return;

	SAVE_VECTOR(m_vOriginalPos);
	SAVE_VECTOR(m_vOriginalDims);
	SAVE_ROTATION(m_rOriginalRot);
 	SAVE_FLOAT(m_fRespawnTime);
	SAVE_BYTE((uint8)m_ePPhysicsModel);

	m_RespawnTimer.Save(hWrite);
}
Ejemplo n.º 4
0
void PlayerVehicle::Save(ILTMessage_Write *pMsg)
{
	if (!pMsg) return;

	SAVE_VECTOR(m_vOriginalPos);
	SAVE_VECTOR(m_vOriginalDims);
	SAVE_ROTATION(m_rOriginalRot);
 	SAVE_FLOAT(m_fRespawnTime);
	SAVE_BYTE((uint8)m_ePPhysicsModel);
	SAVE_bool( m_bLocked );
	SAVE_bool( m_bRidden );
	SAVE_HSTRING( m_hstrLockedCommand );
	SAVE_DWORD(m_dwSavedFlags);
	SAVE_TIME( m_fLastRideTime );
	SAVE_bool( m_bVirgin );

	m_RespawnTimer.Save(pMsg);
}
Ejemplo n.º 5
0
void WorldModel::OnSave( ILTMessage_Write *pMsg, uint32 dwSaveFlags )
{
	ASSERT( pMsg != NULL );
	
	m_ActivateTypeHandler.Save( pMsg );

	SAVE_bool( m_bIsKeyframed );
	SAVE_bool( m_bStartHidden );
	SAVE_HSTRING( m_hstrAttachments );
	SAVE_BOOL( m_bRemoveAttachments );
	SAVE_VECTOR( m_vAttachDir );
	SAVE_HOBJECT( m_hAttachDirObj );
	SAVE_ROTATION( m_hackInitialRot );
	SAVE_FLOAT( m_fStimRadius );
	SAVE_HOBJECT( m_hActivateParent );
	SAVE_bool( m_bCanActivate );

	// Save the object lists last...
	ObjRefNotifierList::iterator iter;

	// First the Attachment List
	SAVE_BYTE( m_AttachmentList.size( ));
	for( iter = m_AttachmentList.begin( ); iter != m_AttachmentList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}
	
	SAVE_BYTE( m_AttachMsgObjList.size( ));
	for( iter = m_AttachMsgObjList.begin( ); iter != m_AttachMsgObjList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}

	// Then the Mark List
	SAVE_BYTE( m_MarkList.size( ));
	for( iter = m_MarkList.begin( ); iter != m_MarkList.end( ); iter++ )
	{
		SAVE_HOBJECT( *iter );
	}
}
Ejemplo n.º 6
0
void CTransitionAggregate::Save( ILTMessage_Write *pMsg, uint32 dwSaveFlags )
{
	if( !pMsg ) return;

	SAVE_HOBJECT( m_hObject );

	// The rest is dependent on the save type...
	
	if( dwSaveFlags != LOAD_TRANSITION ) return;

	HOBJECT hTransArea = g_pTransMgr->GetTransitionArea();
	if( !hTransArea ) return;

	TransitionArea *pTransArea = (TransitionArea*)g_pLTServer->HandleToObject( hTransArea );
	if( !pTransArea ) return;

	LTransform tfLocal;
	LTransform tfObjectWorld;
	LTransform const& tfTransAreaWorld = pTransArea->GetWorldTransform( );
	LTMatrix mInverseRot;
	tfTransAreaWorld.m_Rot.ConvertToMatrix( mInverseRot );
	mInverseRot.Inverse( );

	g_pLTServer->GetObjectPos( m_hObject, &tfObjectWorld.m_Pos );
	g_pLTServer->GetObjectRotation( m_hObject, &tfObjectWorld.m_Rot );
	LTVector vVel;
	g_pPhysicsLT->GetVelocity( m_hObject, &vVel );

	tfLocal.m_Pos = mInverseRot * ( tfObjectWorld.m_Pos - tfTransAreaWorld.m_Pos );
	tfLocal.m_Rot = tfObjectWorld.m_Rot * ~tfTransAreaWorld.m_Rot;
	LTVector vRelVel = mInverseRot * vVel;

	SAVE_VECTOR( tfLocal.m_Pos );
	SAVE_ROTATION( tfLocal.m_Rot );
	SAVE_VECTOR( vRelVel );
}