Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 12, 2011, 7:50:43 PM (13 years ago)
Author:
jo
Message:

Ai and tutorial improvements merged back to the trunk. AI features: all weapons are used, the ai-firestrength is configurable, bots are able to collect pickups . I've set the tutorial level as default level.

Location:
code/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • code/trunk

  • code/trunk/src/modules/overlays/hud/HUDRadar.cc

    r8858 r8891  
    6464        this->shapeMaterials_[RadarViewable::Triangle] = "RadarTriangle.png";
    6565        this->shapeMaterials_[RadarViewable::Square]   = "RadarSquare.png";
    66 
     66        this->setDetectionLimit( 10000.0f );
    6767        this->owner_ = 0;
    6868    }
     
    9393    {
    9494        if (object == dynamic_cast<RadarViewable*>(this->owner_))
     95            return;
     96        if( showObject(object) == false ) //do not show objects that are "invisible" or "radar invisible"
    9597            return;
    9698
     
    123125
    124126    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);
    132130    }
    133131
     
    174172            coord *= math::pi / 3.5f; // small adjustment to make it fit the texture
    175173            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();
    177178
    178179            // if this object is in focus, then set the focus marker
     
    186187    }
    187188
     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
    188200    void HUDRadar::changedOwner()
    189201    {
Note: See TracChangeset for help on using the changeset viewer.