Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/branches/presentation3/src/modules/questsystem/QuestDescription.h @ 6952

Last change on this file since 6952 was 6945, checked in by dafrick, 15 years ago

A lot of cleanup, mostly increasing output levels, which means, that the console is no longer cluttered by lots and lots of Quest-stuff (the log file still is, but that should be ok…).
Also some possible bugs (or let's say pitfalls) removed, which have been around for a long time and didn't cause any problems so far. Now they never will.
Also, regarding my previous commit. Quests seem tu work just fine, even the second time the level is loaded, which is awesome.

Ergo: Questsystem/Notificationsystem segfault upon loading a level with Quests/Notifications in it twice is now officially resolved.

  • Property svn:eol-style set to native
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
31    @brief Definition of the QuestDescription class.
32*/
33
34#ifndef _QuestDescription_H__
35#define _QuestDescription_H__
36
37#include "questsystem/QuestsystemPrereqs.h"
38
39#include <string>
40#include "core/BaseObject.h"
41
42// tolua_begin
43namespace orxonox
44{
45    /**
46    @brief
47        This class is a description of a QuestItem.
48        It holds a title and a description.
49
50        Creating a QuestDescription through XML goes as follows:
51
52        <QuestDescription title="Title" description="Description Text" failMessage="You fail." completeMessage="You win!" />
53    @author
54        Damian 'Mozork' Frick
55    */
56    class _QuestsystemExport QuestDescription : public BaseObject
57    {
58// tolua_end
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// tolua_begin
66            /**
67            @brief Returns the title.
68            @return Returns a string containing the title of the QuestDescription.
69            */
70            inline const std::string & getTitle(void) const
71                { return this->title_; }
72
73            /**
74            @brief Returns the description text.
75            @return Returns a string containing the description text of the QuestDescription.
76            */
77            inline const std::string & getDescription(void) const
78                { return this->description_; }
79// tolua_end
80
81            /**
82            @brief Returns the fail message.
83            @return Returns a string containing the fail message of the QuestDescription.
84            */
85            inline const std::string & getFailMessage(void)
86                { return this->failMessage_; }
87
88            /**
89            @brief Returns the complete message.
90            @return Returns a string containing the complete message of the QuestDescription.
91            */
92            inline const std::string & getCompleteMessage(void)
93                { return this->completeMessage_; }
94
95            /**
96            @brief Sends a Notification displaying that a QuestHint was added.
97            @return Returns true if successful.
98            */
99            inline bool sendAddHintNotification(void)
100                { return notificationHelper("hint", ""); }
101
102            /**
103            @brief Sends a Notification displaying that a Quest was added.
104            @return Returns true if successful.
105            */
106            inline bool sendAddQuestNotification(void)
107                { return notificationHelper("quest", "start"); }
108
109            /**
110            @brief Sends a Notification displaying that a Quest was failed.
111            @return Returns true if successful.
112            */
113            inline bool sendFailQuestNotification(void)
114                { return notificationHelper("quest", "fail"); }
115
116            /**
117            @brief Sends a Notification displaying that a Quest was completed.
118            @return Returns true if successful.
119            */
120            inline bool sendCompleteQuestNotification(void)
121                { return notificationHelper("quest", "complete"); }
122
123        private:
124            std::string title_; //!< The title.
125            std::string description_; //!< The description.
126            std::string failMessage_; //!< The message displayed when the Quest is failed.
127            std::string completeMessage_; //!< The message displayed when the Quest is completed.
128
129            bool notificationHelper(const std::string & item, const std::string & status); //!< Helper for sending QuestDescriptions as Notifications.
130
131            /**
132            @brief Sets the title.
133            @param title The title to be set.
134            */
135            inline void setTitle(const std::string & title)
136                { this->title_ = title; }
137
138            /**
139            @brief Sets the description text.
140            @param description The description text to be set.
141            */
142            inline void setDescription(const std::string & description)
143                { this->description_ = description; }
144
145            /**
146            @brief Sets the fail message.
147            @param message The fail message to be set.
148            */
149            inline void setFailMessage(const std::string & message)
150                { this->failMessage_ = message; }
151
152            /**
153            @brief Sets the complete message.
154            @param message The complete message to be set.
155            */
156            inline void setCompleteMessage(const std::string & message)
157                { this->completeMessage_ = message; }
158
159    }; // tolua_export
160
161} // tolua_export
162
163#endif /* _QuestDescription_H__ */
Note: See TracBrowser for help on using the repository browser.