Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Sep 4, 2011, 3:15:41 PM (13 years ago)
Author:
jo
Message:

Radar & Navigation tweaks: Radar is now hiding 'radar invisible' objects in the same way as the navigation markers are hidden. New 'feature': objects that are too far away are not displayed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/ai2/src/modules/overlays/hud/HUDNavigation.cc

    r8706 r8874  
    6363{
    6464  SetConfigValue(markerLimit_, 3);
     65
    6566}
    6667
     
    7778    setTextSize ( 0.05f );
    7879    setNavMarkerSize ( 0.05f );
     80    setDetectionLimit( 10000.0f );
    7981}
    8082
     
    9597    SUPER ( HUDNavigation, XMLPort, xmlelement, mode );
    9698
    97     XMLPortParam ( HUDNavigation, "font",          setFont,          getFont,          xmlelement, mode );
    98     XMLPortParam ( HUDNavigation, "textSize",      setTextSize,      getTextSize,      xmlelement, mode );
    99     XMLPortParam ( HUDNavigation, "navMarkerSize", setNavMarkerSize, getNavMarkerSize, xmlelement, mode );
     99    XMLPortParam ( HUDNavigation, "font",           setFont,           getFont,           xmlelement, mode );
     100    XMLPortParam ( HUDNavigation, "textSize",       setTextSize,       getTextSize,       xmlelement, mode );
     101    XMLPortParam ( HUDNavigation, "navMarkerSize",  setNavMarkerSize,  getNavMarkerSize,  xmlelement, mode );
     102    XMLPortParam ( HUDNavigation, "detectionLimit", setDetectionLimit, getDetectionLimit, xmlelement, mode );
    100103}
    101104
     
    161164
    162165    unsigned int markerCount_ = 0;
    163 
     166    bool closeEnough_ = false; //inly display objects that are close enough to be relevant for the player
    164167//         for (ObjectMap::iterator it = activeObjectList_.begin(); it != activeObjectList_.end(); ++it)
    165168    for ( sortedList::iterator listIt = sortedObjectList_.begin(); listIt != sortedObjectList_.end(); ++markerCount_, ++listIt )
    166169    {
    167170        ObjectMap::iterator it = activeObjectList_.find ( listIt->first );
    168 
    169         if ( markerCount_ < markerLimit_ )
     171        if( detectionLimit_ < 0 )
     172            closeEnough_ = true ;
     173        else
     174            closeEnough_ = listIt->second < detectionLimit_ ;
     175        if ( markerCount_ < markerLimit_ && closeEnough_ ) // display on HUD íf statement is true
    170176        {
    171177
     
    277283            it->second.text_->show();
    278284        }
    279         else
     285        else // do not display on HUD
    280286        {
    281287            it->second.panel_->hide();
     
    309315void HUDNavigation::addObject ( RadarViewable* object )
    310316{
    311     if( showObject(object)==false )
     317    if( showObject(object) == false )
    312318        return;
    313319
     
    396402        return false;
    397403    assert( rv->getWorldEntity() );
    398     if ( rv->getWorldEntity()->isVisible()==false || rv->getRadarVisibility()==false )
     404    if ( rv->getWorldEntity()->isVisible() == false || rv->getRadarVisibility() == false )
    399405        return false;
    400406    return true;
Note: See TracChangeset for help on using the changeset viewer.