Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Oct 21, 2009, 4:06:50 PM (15 years ago)
Author:
scheusso
Message:

fixed a logical error in OverlayGroup/OrxonoxOverlay (visibility of overlays in a overlaygroup could not be configured individually)
changed Scoreboard/CreateLines accordingly
set initial visibility of QuestGUI to false

Location:
code/trunk/src/orxonox/overlays
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • code/trunk/src/orxonox/overlays/OrxonoxOverlay.cc

    r5781 r5980  
    4848#include "core/ConsoleCommand.h"
    4949
     50#include "OverlayGroup.h"
     51
    5052namespace orxonox
    5153{
     
    165167    void OrxonoxOverlay::changedVisibility()
    166168    {
     169        SUPER( OrxonoxOverlay, changedVisibility );
     170       
    167171        if (!this->overlay_)
    168172            return;
    169173
    170         if (this->isVisible())
     174        // only set to visible if corresponding OverlayGroup is also visible
     175        if (this->isVisible() && (!this->getOverlayGroup() || this->getOverlayGroup()->isVisible()) )
    171176            this->overlay_->show();
    172177        else
  • code/trunk/src/orxonox/overlays/OrxonoxOverlay.h

    r5929 r5980  
    179179        inline OverlayGroup* getOverlayGroup() const
    180180            { return this->group_; }
    181         virtual void changedOverlayGroup() {}
     181        virtual void changedOverlayGroup()
     182            { this->changedVisibility(); }
    182183
    183184    protected:
  • code/trunk/src/orxonox/overlays/OverlayGroup.cc

    r5929 r5980  
    105105    {
    106106        hudElements_.insert(element);
    107         element->setVisible(this->isVisible());
     107        element->setOverlayGroup( this );
    108108        if (this->owner_)
    109109            element->setOwner(this->owner_);
     
    142142    void OverlayGroup::changedVisibility()
    143143    {
    144         for (std::set<OrxonoxOverlay*>::iterator it = hudElements_.begin(); it != hudElements_.end(); ++it)
    145             (*it)->setVisible(this->isVisible());
     144        SUPER( OverlayGroup, changedVisibility );
     145       
     146        for (std::set<OrxonoxOverlay*>::iterator it = hudElements_.begin(); it != hudElements_.end(); ++it)
     147            (*it)->changedVisibility(); //inform all Child Overlays that our visibility has changed
    146148    }
    147149
Note: See TracChangeset for help on using the changeset viewer.