Index: code/branches/Presentation_HS16/src/modules/notifications/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/CMakeLists.txt	(revision 11342)
+++ code/branches/Presentation_HS16/src/modules/notifications/CMakeLists.txt	(revision 11347)
@@ -17,4 +17,5 @@
     NotificationsPrecompiledHeaders.h
   LINK_LIBRARIES
+    overlays
     orxonox
   SOURCE_FILES ${NOTIFICATIONS_SRC_FILES}
Index: code/branches/Presentation_HS16/src/modules/notifications/NotificationDispatcher.h
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/NotificationDispatcher.h	(revision 11342)
+++ code/branches/Presentation_HS16/src/modules/notifications/NotificationDispatcher.h	(revision 11347)
@@ -126,4 +126,5 @@
             virtual const std::string& createNotificationMessage(void)
                 { return BLANKSTRING; }
+            
 
     };
Index: code/branches/Presentation_HS16/src/modules/notifications/NotificationManager.h
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/NotificationManager.h	(revision 11342)
+++ code/branches/Presentation_HS16/src/modules/notifications/NotificationManager.h	(revision 11347)
@@ -77,5 +77,4 @@
             inline const std::string & getMessage(void) const
                 { return this->message_; }
-
             /**
             @brief Get the sender of the Notification.
@@ -94,5 +93,5 @@
         private:
             std::string message_; //!< The Notification message.
-            std::string sender_; //!< The sender of the notification.
+            std::string sender_;//!< The sender of the notifications.
             NotificationMessageType type_; //!< The type of the notification.
 
Index: code/branches/Presentation_HS16/src/modules/notifications/dispatchers/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/dispatchers/CMakeLists.txt	(revision 11342)
+++ code/branches/Presentation_HS16/src/modules/notifications/dispatchers/CMakeLists.txt	(revision 11347)
@@ -2,3 +2,4 @@
   CommandNotification.cc
   SimpleNotification.cc
+  Dialogue.cc
 )
Index: code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.cc
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.cc	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.cc	(revision 11347)
@@ -0,0 +1,66 @@
+
+#include "Dialogue.h"
+#include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
+#include "core/XMLPort.h"
+
+#include "overlays/hud/HUDDialogue.h"
+
+#include "NotificationDispatcher.h"
+
+namespace orxonox{
+	
+	RegisterClass(Dialogue);
+
+    /**
+    @brief
+        Default Constructor. Registers the object and initializes variables.
+    */
+	Dialogue::Dialogue(Context* context):NotificationDispatcher(context){
+		RegisterObject(Dialogue);
+
+		this->setSender("dialogue");
+
+        this->setSyncMode(ObjectDirection::None);
+	}
+    /**
+    @brief
+        Destructor.
+    */
+	Dialogue::~Dialogue()
+    {
+
+    }
+    /**
+    @brief
+        Method for creating a Dialogue object through XML.
+    */
+    void Dialogue::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(Dialogue, XMLPort, xmlelement, mode);
+
+        XMLPortParam(Dialogue, "speaker", setSpeaker, getSpeaker, xmlelement, mode);
+        XMLPortParam(Dialogue, "message", setMessage, getMessage, xmlelement, mode);
+        XMLPortParam(Dialogue, "portrait", setPortrait, getPortrait, xmlelement, mode);
+        
+    }
+    /**
+    @brief
+        Passes the name of the picture over to the HUDDialogue class
+    */
+    void Dialogue::update()
+    {    
+       for(HUDDialogue* huddialogue : ObjectList<HUDDialogue>())
+                       huddialogue->updateTarget(portrait_);
+    }
+    /**
+        @brief Creates the notification message,Pconsisting of a speaker and a message, that should be sent upon the Dialgue triggering.
+        @return Returns the notification message.
+    */
+    const std::string& Dialogue::createNotificationMessage(void)
+                { 	
+                	dialogue_ = speaker_ + ": " + message_;
+                    this->update();
+                	return this->dialogue_ ;
+                }
+}
Index: code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.h
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.h	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/notifications/dispatchers/Dialogue.h	(revision 11347)
@@ -0,0 +1,96 @@
+
+#ifndef _Dialogue_H__
+#define _Dialogue_H__
+#include <string>	
+//#include "core/BaseObject.h"
+
+#include "notifications/NotificationsPrereqs.h"
+
+#include "notifications/NotificationDispatcher.h"
+
+namespace orxonox{
+
+	/**
+    @brief
+        The Dialogue class enables the sending of (in XML) predefined Notifications upon some kind of triggering event.
+
+        In use it would like this:
+        @code
+        <Dialogue message="some message..." speaker="speaker" portrait="Orxonox/some_file">
+            <events>
+                <trigger>
+                    <PlayerTrigger />
+                </trigger>
+            </events>
+        </Dialogue>
+        @endcode
+        For more information on what can be used for @code <PlayerTrigger /> @endcode see the @ref orxonox::NotificationDispatcher "NotificationDispatcher" documentation.
+		For more information about the Dialogue class take a look at the Notifications entry in the wiki.
+		*/
+
+class _NotificationsExport Dialogue: public NotificationDispatcher{
+
+	public:
+            Dialogue(Context* context); //!< Default Constructor.
+            virtual ~Dialogue(); //!< Destructor.
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a Dialogue object through XML.
+
+            /**
+            @brief Get the message, that is displayed.
+            @return Returns the message, that is displayed.
+            */
+            const std::string& getMessage(void)
+                	{ return this->message_; }
+            /**
+            @brief Get the name of the speaker.
+            @return Returns the name of the speaker.
+            */
+         	const std::string& getSpeaker(void)
+            		{return this->speaker_;}
+            /**
+            @brief Get the name of the file of the picture
+            @return Returns the name of the file.
+            */
+            const std::string& getPortrait(void)
+            		{ return this->portrait_;}
+
+    protected:
+    	/**
+            @brief Creates the notification message that should be sent upon the Dialgue triggering.
+            @return Returns the notification message.
+            */
+    	virtual const std::string& createNotificationMessage(void);
+    	/**
+    		@brief Updates the picture that is displayed by passing the name of the picture over to the HUDDialogue class.
+    		*/
+        virtual void update(void);
+       	
+    private:
+    		std::string message_; //!< The message.
+    		std::string speaker_; //!< The name of the speaker.
+    		std::string dialogue_; //!< The speaker and the message that is displayed.
+    		std::string portrait_; //!< The name of the file.
+
+    		/**
+    		@brief Sets the name of the speaker.
+    		@param speaker The name of the speaker.
+    		*/
+    		void setSpeaker(const std::string& speaker)
+            	{ this->speaker_ = speaker;}
+            /**
+            @brief Sets the message that is to be displayed.
+            @param message The message to be displayed.
+            */
+    		void setMessage(const std::string& message)
+                { this->message_ = message; }
+            /**
+            @brief Sets the name of the file of the picture.
+            @param portrait Name of the file which is used.
+            */
+            void setPortrait(const std::string& portrait)
+            	{ this->portrait_ = portrait;}
+        } ;       
+}
+
+#endif 
Index: code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.cc
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.cc	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.cc	(revision 11347)
@@ -0,0 +1,29 @@
+
+
+#include "DialogueManager.h"
+#include "core/CoreIncludes.h"
+#include "core/EventIncludes.h"
+#include "core/XMLPort.h"
+
+
+
+
+namespace orxonox{
+
+
+	RegisterClass(DialogueManager);
+
+	DialogueManager::DialogueManager(Context* context):NotificationDispatcher(context)
+	{
+		RegisterObject(DialogueManager);
+
+	}
+	DialogueManager::~DialogueManager()
+    {
+
+    }
+    void DialogueManager::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+    {
+        SUPER(DialogueManager, XMLPort, xmlelement, mode);
+    }
+}
Index: code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.h
===================================================================
--- code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.h	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/notifications/dispatchers/DialogueManager.h	(revision 11347)
@@ -0,0 +1,24 @@
+
+
+#ifndef _DialogueManager_H__
+#define _DialogueManager_H__
+
+#include "notifications/NotificationsPrereqs.h"
+
+#include "notifications/NotificationDispatcher.h"
+
+namespace orxonox{
+
+
+	class _NotificationsExport DialogueManager: public NotificationDispatcher{
+
+	public:
+            DialogueManager(Context* context); //!< Default Constructor.
+            virtual ~DialogueManager(); //!< Destructor.
+
+            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);
+
+        };
+}
+
+#endif 
Index: code/branches/Presentation_HS16/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS16/src/modules/overlays/hud/CMakeLists.txt	(revision 11342)
+++ code/branches/Presentation_HS16/src/modules/overlays/hud/CMakeLists.txt	(revision 11347)
@@ -27,3 +27,4 @@
   LastTeamStandingInfos.cc
   CountDown.cc
+  HUDDialogue.cc
 )
Index: code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.cc
===================================================================
--- code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.cc	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.cc	(revision 11347)
@@ -0,0 +1,60 @@
+
+
+#include "HUDDialogue.h"
+
+#include "core/XMLPort.h"
+
+#include <OgreCamera.h>
+#include <OgreFontManager.h>
+#include <OgreOverlayManager.h>
+#include <OgreTextAreaOverlayElement.h>
+#include <OgrePanelOverlayElement.h>
+#include "core/CoreIncludes.h"
+
+namespace orxonox
+{
+
+	RegisterClass (HUDDialogue);
+	/**
+    @brief
+        Default Constructor. Registers the object and initializes variables.
+    */
+	HUDDialogue::HUDDialogue(Context* context) :
+    OrxonoxOverlay(context)
+    {
+        RegisterObject(HUDDialogue);
+	}   
+	/**
+	@brief
+		Updates the picture to the picture which was declared in the Dialogue class and sets a timer to set the picture on invisible again.
+	*/  
+    void HUDDialogue::updateTarget(std::string portrait)
+    {
+    	overlayElementIcon_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "Dialogue" + getUniqueNumberString()));
+        overlayElementIcon_->setPosition(0.0f,0.0f);
+        overlayElementIcon_->setDimensions(1.0f,1.0f);
+        this->background_->addChild(overlayElementIcon_);     
+
+    	overlayElementIcon_->setMaterialName(portrait);
+    	this->setVisible(true);
+    	portraitTimer.setTimer(2.9f,false,createExecutor(createFunctor(&HUDDialogue::invisible, this)));
+    }
+    /**
+    @brief
+    	Sets the picture back to invisible again.
+    */
+    void HUDDialogue::invisible()
+    {
+    	this->setVisible(false);
+    	Ogre::OverlayManager::getSingleton().destroyOverlayElement(this->overlayElementIcon_);
+    }
+    /**
+    @brief
+    	Default Destructor.
+    */
+	HUDDialogue::~HUDDialogue()
+	{
+
+
+	}
+}
Index: code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.h
===================================================================
--- code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.h	(revision 11347)
+++ code/branches/Presentation_HS16/src/modules/overlays/hud/HUDDialogue.h	(revision 11347)
@@ -0,0 +1,38 @@
+
+
+#ifndef _HUDDialogue_H__
+#define _HUDDialogue_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include <map>
+#include <string>
+
+#include "util/OgreForwardRefs.h"
+#include "overlays/OrxonoxOverlay.h"
+#include "tools/Timer.h"
+
+namespace orxonox
+{
+	class _OverlaysExport HUDDialogue : public OrxonoxOverlay
+    {
+    	public:
+            HUDDialogue(Context* context); //!< Default Constructor.
+            virtual ~HUDDialogue(); //!< Destructor.
+
+            /**
+            @brief Sets the active picture.
+            */
+            virtual void updateTarget(std::string portrait);
+            /**
+            @brief Sets the picture to invivsible when Dialogue is over.
+            */
+            virtual void invisible();
+
+      private:
+      			Ogre::PanelOverlayElement* overlayElementIcon_;
+
+      			Timer portraitTimer; //!< The Timer which is used to set the picture back to invisible.
+    };
+}
+#endif
