Пример #1
0
void CClientMarker::CreateOfType ( int iType )
{
    SAFE_DELETE ( m_pCollision )

    CVector vecOrigin;
    GetPosition ( vecOrigin );    
    switch ( iType )
    {
        case MARKER_CHECKPOINT:
        {
            CClientCheckpoint* pCheckpoint = new CClientCheckpoint ( this );
            pCheckpoint->SetCheckpointType ( CClientCheckpoint::TYPE_NORMAL );
            m_pMarker = pCheckpoint;
            m_pCollision = new CClientColCircle ( g_pClientGame->GetManager(), NULL, vecOrigin, GetSize() );
            m_pCollision->m_pOwningMarker = this;
            m_pCollision->SetHitCallback ( this );
            break;
        }

        case MARKER_RING:
        {
            CClientCheckpoint* pCheckpoint = new CClientCheckpoint ( this );
            pCheckpoint->SetCheckpointType ( CClientCheckpoint::TYPE_RING );
            m_pMarker = pCheckpoint;
            m_pCollision = new CClientColSphere ( g_pClientGame->GetManager(), NULL, vecOrigin, GetSize() );
            m_pCollision->m_pOwningMarker = this;
            m_pCollision->SetHitCallback ( this );
            break;
        }

        case MARKER_CYLINDER:
        {
            CClient3DMarker* p3DMarker = new CClient3DMarker ( this );
            p3DMarker->Set3DMarkerType ( CClient3DMarker::TYPE_CYLINDER );
            m_pMarker = p3DMarker;
            m_pCollision = new CClientColCircle ( g_pClientGame->GetManager(), NULL, vecOrigin, GetSize() );
            m_pCollision->m_pOwningMarker = this;
            m_pCollision->SetHitCallback ( this );
            break;
        }

        case MARKER_ARROW:
        {
            CClient3DMarker* p3DMarker = new CClient3DMarker ( this );
            p3DMarker->Set3DMarkerType ( CClient3DMarker::TYPE_ARROW );
            m_pMarker = p3DMarker;
            m_pCollision = new CClientColSphere ( g_pClientGame->GetManager(), NULL, vecOrigin, GetSize() );
            m_pCollision->m_pOwningMarker = this;
            m_pCollision->SetHitCallback ( this );
            break;
        }

        case MARKER_CORONA:
        {
            m_pMarker = new CClientCorona ( this );
            m_pCollision = new CClientColSphere ( g_pClientGame->GetManager(), NULL, vecOrigin, GetSize() );
            m_pCollision->m_pOwningMarker = this;
            m_pCollision->SetHitCallback ( this );
            break;
        }
        
        default:
            break;
    }
}