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 ); }
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); }
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); }
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); }
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 ); } }
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 ); }