Changeset 8891 for code/trunk/src/modules/overlays/hud/HUDRadar.cc
- Timestamp:
- Oct 12, 2011, 7:50:43 PM (13 years ago)
- Location:
- code/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk
-
code/trunk/src/modules/overlays/hud/HUDRadar.cc
r8858 r8891 64 64 this->shapeMaterials_[RadarViewable::Triangle] = "RadarTriangle.png"; 65 65 this->shapeMaterials_[RadarViewable::Square] = "RadarSquare.png"; 66 66 this->setDetectionLimit( 10000.0f ); 67 67 this->owner_ = 0; 68 68 } … … 93 93 { 94 94 if (object == dynamic_cast<RadarViewable*>(this->owner_)) 95 return; 96 if( showObject(object) == false ) //do not show objects that are "invisible" or "radar invisible" 95 97 return; 96 98 … … 123 125 124 126 void HUDRadar::objectChanged( RadarViewable* rv ) 125 { 126 if (rv == dynamic_cast<RadarViewable*>(this->owner_)) 127 return; 128 assert( this->radarObjects_.find(rv) != this->radarObjects_.end() ); 129 Ogre::PanelOverlayElement* panel = this->radarObjects_[rv]; 130 panel->setMaterialName(TextureGenerator::getMaterialName( 131 shapeMaterials_[rv->getRadarObjectShape()], rv->getRadarObjectColour())); 127 {// The new implementation behaves more precisely, since inactive RadarViewables are not displayed anymore. 128 this->removeObject(rv); 129 this->addObject(rv); 132 130 } 133 131 … … 174 172 coord *= math::pi / 3.5f; // small adjustment to make it fit the texture 175 173 it->second->setPosition((1.0f + coord.x - size) * 0.5f, (1.0f - coord.y - size) * 0.5f); 176 it->second->show(); 174 if( distance < detectionLimit_ || detectionLimit_ < 0 ) 175 it->second->show(); 176 else 177 it->second->hide(); 177 178 178 179 // if this object is in focus, then set the focus marker … … 186 187 } 187 188 189 bool HUDRadar::showObject(RadarViewable* rv) 190 { 191 if ( rv == dynamic_cast<RadarViewable*> ( this->getOwner() ) ) 192 return false; 193 assert( rv->getWorldEntity() ); 194 if ( rv->getWorldEntity()->isVisible()==false || rv->getRadarVisibility()==false ) 195 return false; 196 return true; 197 } 198 199 188 200 void HUDRadar::changedOwner() 189 201 {
Note: See TracChangeset
for help on using the changeset viewer.