const CVector& CObject::GetPosition ( void ) { CVector vecOldPosition = m_vecPosition; // Are we attached to something? if ( m_pAttachedTo ) GetAttachedPosition ( m_vecPosition ); // Are we moving? else if ( IsMoving () ) { SPositionRotation positionRotation; bool bStillRunning = m_pMoveAnimation->GetValue ( positionRotation ); m_vecPosition = positionRotation.m_vecPosition; if ( !bStillRunning ) { StopMoving (); } } if ( vecOldPosition != m_vecPosition ) UpdateSpatialData (); // This is necessary because 'GetAttachedPosition ( m_vecPosition )' can change alter this objects position // Finally, return it return m_vecPosition; }
const CVector & CElement::GetPosition ( void ) { if ( m_pAttachedTo ) GetAttachedPosition ( m_vecPosition ); return m_vecPosition; }
const CVector & CVehicle::GetPosition ( void ) { // Are we attached to something? if ( m_pAttachedTo ) GetAttachedPosition ( m_vecPosition ); return m_vecPosition; }