Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Dec 5, 2016, 3:59:27 PM (8 years ago)
Author:
dmoritz
Message:

Picture added

Location:
code/branches/Dialog_HS16/src/modules
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/Dialog_HS16/src/modules/notifications/CMakeLists.txt

    r8706 r11317  
    1717    NotificationsPrecompiledHeaders.h
    1818  LINK_LIBRARIES
     19    overlays
    1920    orxonox
    2021  SOURCE_FILES ${NOTIFICATIONS_SRC_FILES}
  • code/branches/Dialog_HS16/src/modules/notifications/dispatchers/CMakeLists.txt

    r11292 r11317  
    33  SimpleNotification.cc
    44  Dialogue.cc
    5   DialogueManager.cc
    65)
  • code/branches/Dialog_HS16/src/modules/notifications/dispatchers/Dialogue.cc

    r11270 r11317  
     1
    12
    23
     
    56#include "core/EventIncludes.h"
    67#include "core/XMLPort.h"
     8
     9#include "overlays/hud/HUDDialogue.h"
     10
     11#include "NotificationDispatcher.h"
    712
    813namespace orxonox{
     
    2833        XMLPortParam(Dialogue, "speaker", setSpeaker, getSpeaker, xmlelement, mode);
    2934        XMLPortParam(Dialogue, "message", setMessage, getMessage, xmlelement, mode);
     35        XMLPortParam(Dialogue, "portrait", setPortrait, getPortrait, xmlelement, mode);
    3036       
    3137    }
     38     void Dialogue::update()
     39   {   
     40       for(HUDDialogue* huddialogue : ObjectList<HUDDialogue>())
     41                       huddialogue->updateTarget(portrait_);
     42    }
     43   
    3244    const std::string& Dialogue::createNotificationMessage(void)
    3345                {       
    34                         dialogue_ = speaker_ + message_;
     46                        dialogue_ = speaker_ + ": " + message_;
     47                    this->update();
    3548                        return this->dialogue_ ;
    3649                }
  • code/branches/Dialog_HS16/src/modules/notifications/dispatchers/Dialogue.h

    r11292 r11317  
    2020
    2121            const std::string& getMessage(void)
    22                 { return this->message_; }
     22                        { return this->message_; }
    2323                const std::string& getSpeaker(void)
    2424                        {return this->speaker_;}
     25            const std::string& getPortrait(void)
     26                        { return this->portrait_;}
     27
    2528    protected:
    2629        virtual const std::string& createNotificationMessage(void);
    27                
     30        virtual void update(void);
    2831       
    2932    private:
     
    3134                std::string speaker_;
    3235                std::string dialogue_;
     36                std::string portrait_;
    3337
    3438                void setSpeaker(const std::string& speaker)
     
    3640                void setMessage(const std::string& message)
    3741                { this->message_ = message; }
     42            void setPortrait(const std::string& portrait)
     43                { this->portrait_ = portrait;}
    3844        } ;       
    39 
    4045}
    4146
  • code/branches/Dialog_HS16/src/modules/overlays/hud/HUDDialogue.cc

    r11292 r11317  
    1 
    2 
    3 
    41
    52
     
    1310#include <OgreTextAreaOverlayElement.h>
    1411#include <OgrePanelOverlayElement.h>
     12#include "core/CoreIncludes.h"
    1513
    1614namespace orxonox
     
    2321    {
    2422        RegisterObject(HUDDialogue);
    25 
    26         overlayElementIcon_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "Dialogue" + getUniqueNumberString()));
     23        }     
     24    void HUDDialogue::updateTarget(std::string portrait)
     25    {
     26        overlayElementIcon_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "Dialogue" + getUniqueNumberString()));
    2727        overlayElementIcon_->setPosition(0.0f,0.0f);
    2828        overlayElementIcon_->setDimensions(1.0f,1.0f);
    29         this->background_->addChild(overlayElementIcon_);
     29        this->background_->addChild(overlayElementIcon_);     
    3030
    31         overlayElementIcon_->setMaterialName("Orxonox/DialogueHUD_Person");
    32 
    33            }     
    34 
    35         void HUDDialogue::tick(float dt)
     31        overlayElementIcon_->setMaterialName(portrait);
     32        this->setVisible(true);
     33        portraitTimer.setTimer(2.9f,false,createExecutor(createFunctor(&HUDDialogue::invisible, this)));
     34    }
     35    void HUDDialogue::invisible()
    3636    {
    37         SUPER(HUDDialogue, tick, dt);
    38 
    39 
     37        this->setVisible(false);
     38        Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->overlayElementIcon_);
    4039    }
    41 
    4240         HUDDialogue::~HUDDialogue()
    4341         {
     
    4543
    4644         }
    47 
    48          void HUDDialogue::XMLPort(Element& xmlelement, XMLPort::Mode mode)
    49          {
    50                 SUPER(HUDDialogue, XMLPort, xmlelement, mode);
    51          }
    52 
    5345}
  • code/branches/Dialog_HS16/src/modules/overlays/hud/HUDDialogue.h

    r11292 r11317  
    1 
    2 
    3 
    41
    52
     
    1310
    1411#include "util/OgreForwardRefs.h"
    15 #include "tools/interfaces/Tickable.h"
    1612#include "overlays/OrxonoxOverlay.h"
     13#include "tools/Timer.h"
    1714
    1815namespace orxonox
    1916{
    20         class _OverlaysExport HUDDialogue : public OrxonoxOverlay, public Tickable
     17        class _OverlaysExport HUDDialogue : public OrxonoxOverlay
    2118    {
    2219        public:
     
    2421            virtual ~HUDDialogue();
    2522
    26             virtual void tick(float dt) override;
     23            virtual void updateTarget(std::string portrait);
    2724
    28             virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
    29 
    30 
     25            virtual void invisible();
    3126
    3227      private:
    3328                        Ogre::PanelOverlayElement* overlayElementIcon_;
     29
     30                        Timer portraitTimer;
    3431    };
    3532}
    36 
    3733#endif
Note: See TracChangeset for help on using the changeset viewer.