Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/orxonox/objects/quest/QuestDescription.h @ 2911

Last change on this file since 2911 was 2911, checked in by landauf, 15 years ago

Merged r1-2096 of questsystem5 back to trunk

I hope there weren't more "hidden merge changes" in r2909 than the one in OverlayGroup (removeElement) (and related to this the adjustments in NotificationQueue).

The corresponding media commit seems not yet to be done, but it doesn't break the build.

File size: 5.6 KB
Line 
1/*
2 *   ORXONOX - the hottest 3D action shooter ever to exist
3 *                    > www.orxonox.net <
4 *
5 *
6 *   License notice:
7 *
8 *   This program is free software; you can redistribute it and/or
9 *   modify it under the terms of the GNU General Public License
10 *   as published by the Free Software Foundation; either version 2
11 *   of the License, or (at your option) any later version.
12 *
13 *   This program is distributed in the hope that it will be useful,
14 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
15 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 *   GNU General Public License for more details.
17 *
18 *   You should have received a copy of the GNU General Public License
19 *   along with this program; if not, write to the Free Software
20 *   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
21 *
22 *   Author:
23 *      Damian 'Mozork' Frick
24 *   Co-authors:
25 *      ...
26 *
27 */
28
29/**
30    @file QuestDescription.h
31    @brief Definition of the QuestDescription class.
32*/
33
34#ifndef _QuestDescription_H__
35#define _QuestDescription_H__
36
37#include "OrxonoxPrereqs.h"
38
39#include <string>
40
41#include "core/BaseObject.h"
42#include "core/XMLPort.h"
43
44namespace orxonox
45{
46    /**
47    @brief
48        This class is a description of a QuestItem.
49        It holds a title and a description.
50       
51        Creating a QuestDescription through XML goes as follows:
52       
53        <QuestDescription title="Title" description="Description Text" failMessage="You fail." completeMessage="You win!" />
54    @author
55        Damian 'Mozork' Frick
56    */
57    class _OrxonoxExport QuestDescription : public BaseObject
58    {
59        public:
60            QuestDescription(BaseObject* creator);
61            virtual ~QuestDescription();
62
63            virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating a QuestDescription object through XML.
64
65            /**
66            @brief Returns the title.
67            @return Returns a string containing the title of the QuestDescription.
68            */
69            inline const std::string & getTitle(void) const
70                { return this->title_; }
71       
72            /**
73            @brief Returns the description text.
74            @return Returns a string containing the description text of the QuestDescription.
75            */
76            inline const std::string & getDescription(void) const
77                { return this->description_; }
78       
79            /**
80            @brief Returns the fail message.
81            @return Returns a string containing the fail message of the QuestDescription.
82            */
83            inline const std::string & getFailMessage(void) const
84                { return this->failMessage_; }
85       
86            /**
87            @brief Returns the complete message.
88            @return Returns a string containing the complete message of the QuestDescription.
89            */
90            inline const std::string & getCompleteMessage(void) const
91                { return this->completeMessage_; }
92       
93            /**
94            @brief Sends a Notification displaying that a QuestHint was added.
95            @return Returns true if successful.
96            */
97            inline bool sendAddHintNotification(void) const
98                { return notificationHelper("hint", ""); }
99       
100            /**
101            @brief Sends a Notification displaying that a Quest was added.
102            @return Returns true if successful.
103            */
104            inline bool sendAddQuestNotification(void) const
105                { return notificationHelper("quest", "start"); }
106       
107            /**
108            @brief Sends a Notification displaying that a Quest was failed.
109            @return Returns true if successful.
110            */
111            inline bool sendFailQuestNotification(void) const
112                { return notificationHelper("quest", "fail"); }
113       
114            /**
115            @brief Sends a Notification displaying that a Quest was completed.
116            @return Returns true if successful.
117            */
118            inline bool sendCompleteQuestNotification(void) const
119                { return notificationHelper("quest", "complete"); }
120
121        private:
122            std::string title_; //!< The title.
123            std::string description_; //!< The description.
124            std::string failMessage_; //!< The message displayed when the Quest is failed.
125            std::string completeMessage_; //!< The message displayed when the Quest is completed.
126
127            bool notificationHelper(const std::string & item, const std::string & status) const; //!< Helper for sending QuestDescriptions as Notifications.
128
129            /**
130            @brief Sets the title.
131            @param title The title to be set.
132            */
133            inline void setTitle(const std::string & title)
134                { this->title_ = title; }
135               
136            /**
137            @brief Sets the description text.
138            @param description The description text to be set.
139            */
140            inline void setDescription(const std::string & description)
141                { this->description_ = description; }
142
143            /**
144            @brief Sets the fail message.
145            @param message The fail message to be set.
146            */
147            inline void setFailMessage(const std::string & message)
148                { this->failMessage_ = message; }
149               
150            /**
151            @brief Sets the complete message.
152            @param message The complete message to be set.
153            */
154            inline void setCompleteMessage(const std::string & message)
155                { this->completeMessage_ = message; }
156
157    };
158
159}
160
161#endif /* _QuestDescription_H__ */
Note: See TracBrowser for help on using the repository browser.