Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
May 19, 2016, 5:04:41 PM (8 years ago)
Author:
sagerj
Message:

done/fixed everything, weaponmode/discharger fully commented only hudchargebar left

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/sagerjFS16/src/modules/overlays/hud/HUDChargeBar.cc

    r11185 r11189  
    3131#include "util/Convert.h"
    3232#include "core/CoreIncludes.h"
    33 #include "core/XMLPort.h"
    3433#include "worldentities/pawns/Pawn.h"
    3534#include "overlays/OverlayGroup.h"
     
    4544
    4645        this->owner_ = nullptr;
    47         this->bUseBarColour_ = false;
    48         this->textOffset_ = Vector2(0.0f, 0.0f);
    49         this->textScale_ = 1.0f;
    50         this->correspondingMode_ = nullptr;
    51 
    52         this->setIconPosition(Vector2(0.05f,0.5f));
    53         this->setIconDimensions(Vector2(0.1f,0.5f));
    54 
    55         this->textoverlay_ = new OverlayText(this->getContext());
    56 
    57         assert(this->textoverlay_.get());
    58 
    59         this->textoverlay_->setCaption("");
    60         this->textoverlay_->setAspectCorrection(false);
    61 
    62         positionText();
     46        this->correspondingMode_ = nullptr;             // usually no chargeable weapon equipped
    6347    }
    6448
    65     HUDChargeBar::~HUDChargeBar()
    66     {
    67         if (this->isInitialized())
    68         {
    69             this->textoverlay_->destroy();
    70             this->textoverlay_ = nullptr;
    71         }
    72     }
    73 
    74     void HUDChargeBar::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    75     {
    76         SUPER(HUDChargeBar, XMLPort, xmlelement, mode);
    77 
    78         XMLPortParam(HUDChargeBar, "showtext",          setTextVisible,          getTextVisible,          xmlelement, mode).defaultValues(true);
    79         XMLPortParam(HUDChargeBar, "textfont",          setTextFont,             getTextFont,             xmlelement, mode).defaultValues("Monofur");
    80         XMLPortParam(HUDChargeBar, "textusebarcolour",  setTextUseBarColour,     getTextUseBarColour,     xmlelement, mode).defaultValues(false);
    81         XMLPortParam(HUDChargeBar, "textcolour",        setTextColour,           getTextColour,           xmlelement, mode).defaultValues(ColourValue(1.0, 1.0, 1.0, 1.0));
    82         XMLPortParam(HUDChargeBar, "textalign",         setTextAlignmentString,  getTextAlignmentString,  xmlelement, mode).defaultValues("left");
    83         XMLPortParam(HUDChargeBar, "textoffset",        setTextOffset,           getTextOffset,           xmlelement, mode).defaultValues(Vector2::ZERO);
    84         XMLPortParam(HUDChargeBar, "textscale",         setTextScale,            getTextScale,            xmlelement, mode).defaultValues(1.0f);
    85         XMLPortParam(HUDChargeBar, "textpickpoint",     setTextPickPoint,        getTextPickPoint,        xmlelement, mode).defaultValues(Vector2::ZERO);
    86         XMLPortParam(HUDChargeBar, "textrotation",      setTextRotation,         getTextRotation,         xmlelement, mode).defaultValues(0.0f);
    87         XMLPortParam(HUDChargeBar, "textspacewidth",    setTextSpaceWidth,       getTextSpaceWidth,       xmlelement, mode).defaultValues(true);
    88     }
     49    HUDChargeBar::~HUDChargeBar() { }
    8950
    9051    void HUDChargeBar::tick(float dt)
     
    9455        if (this->owner_)
    9556        {
    96             if(correspondingMode_ != nullptr){
    97                 this->setValue( correspondingMode_->getCharges() * 1.0f / correspondingMode_->getMaxCharges() );
    98                 this->textoverlay_->setCaption(multi_cast<std::string>(static_cast<int>(this->owner_->getHealth())));
     57            if(correspondingMode_ != nullptr)                                                                       // if there is a chargeable weapon equipped we want to show the charged amount with a HUDBar
     58            {
     59                this->setValue( correspondingMode_->getCharges() * 1.0f / correspondingMode_->getMaxCharges() );    // The Value of the HUDBar is the ratio of current Charges and the maximum Charges possible
     60               
     61                if(this->correspondingMode_->getCharges() > 0)                                                      // The HUDBar should only be visible when we are charging up
     62                    this->setVisible(true);
     63                }
     64                else
     65                {
     66                    this->setVisible(false);
     67                }
    9968            }
    100 
    101            
    10269        }
    10370        else
    10471        {
    10572            this->setValue(0);
    106             this->textoverlay_->setCaption("0");
    10773        }
    108 
    109         if (this->bUseBarColour_)
    110             this->textoverlay_->setColour(this->getCurrentBarColour());
    111 
    11274
    11375    }
     
    11678    {
    11779        SUPER(HUDChargeBar, changedOwner);
     80
     81        this->setVisible(false);
     82        this->correspondingMode_ = nullptr;
    11883
    11984        this->owner_ = orxonox_cast<Pawn*>(this->getOwner());
     
    141106        }
    142107    }
    143 
    144     void HUDChargeBar::changedOverlayGroup()
    145     {
    146         SUPER(HUDChargeBar, changedOverlayGroup);
    147 
    148         this->getOverlayGroup()->addElement(this->textoverlay_.get());
    149     }
    150 
    151     void HUDChargeBar::changedVisibility()
    152     {
    153         SUPER(HUDChargeBar, changedVisibility);
    154 
    155         this->textoverlay_->setVisible(this->isVisible());
    156     }
    157 
    158     void HUDChargeBar::changedName()
    159     {
    160         SUPER(HUDChargeBar, changedName);
    161 
    162         this->textoverlay_->setName(this->getName() + "text");
    163     }
    164 
    165     void HUDChargeBar::setTextColour(const ColourValue& colour)
    166     {
    167         this->textColour_ = colour;
    168         if (!this->bUseBarColour_)
    169             this->textoverlay_->setColour(colour);
    170     }
    171 
    172     void HUDChargeBar::setTextUseBarColour(bool bUseBarColour)
    173     {
    174         this->bUseBarColour_ = bUseBarColour;
    175         if (!bUseBarColour)
    176             this->textoverlay_->setColour(this->textColour_);
    177     }
    178 
    179     void HUDChargeBar::positionText()
    180     {
    181         this->textoverlay_->setPosition(this->getPosition() + this->textOffset_*this->getActualSize());
    182         this->textoverlay_->setTextSize(this->getActualSize().y*this->textScale_);
    183     }
    184 
    185     void HUDChargeBar::positionChanged()
    186     {
    187         HUDBar::positionChanged();
    188         positionText();
    189     }
    190 
    191     void HUDChargeBar::sizeChanged()
    192     {
    193         HUDBar::sizeChanged();
    194         positionText();
    195     }   
    196108}
Note: See TracChangeset for help on using the changeset viewer.