Changeset 2093 for code/trunk
- Timestamp:
- Nov 1, 2008, 9:03:51 PM (17 years ago)
- Location:
- code/trunk/src/orxonox/objects/quest
- Files:
-
- 27 edited
-
AddQuest.cc (modified) (1 diff)
-
AddQuest.h (modified) (1 diff)
-
AddQuestHint.cc (modified) (1 diff)
-
AddQuestHint.h (modified) (1 diff)
-
AddReward.cc (modified) (2 diffs)
-
AddReward.h (modified) (2 diffs)
-
ChangeQuestStatus.h (modified) (2 diffs)
-
CompleteQuest.cc (modified) (1 diff)
-
CompleteQuest.h (modified) (1 diff)
-
FailQuest.cc (modified) (1 diff)
-
FailQuest.h (modified) (1 diff)
-
GlobalQuest.cc (modified) (3 diffs)
-
GlobalQuest.h (modified) (1 diff)
-
LocalQuest.cc (modified) (2 diffs)
-
LocalQuest.h (modified) (2 diffs)
-
Quest.cc (modified) (5 diffs)
-
Quest.h (modified) (2 diffs)
-
QuestDescription.h (modified) (1 diff)
-
QuestEffect.cc (modified) (1 diff)
-
QuestEffect.h (modified) (1 diff)
-
QuestHint.cc (modified) (3 diffs)
-
QuestHint.h (modified) (1 diff)
-
QuestItem.cc (modified) (1 diff)
-
QuestItem.h (modified) (1 diff)
-
QuestManager.cc (modified) (5 diffs)
-
QuestManager.h (modified) (1 diff)
-
Rewardable.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/orxonox/objects/quest/AddQuest.cc
r2092 r2093 78 78 try 79 79 { 80 Quest* quest = QuestManager::findQuest(this->getQuestId());81 if(!quest->start(player))82 {83 return false;84 }85 }86 catch(const orxonox::Exception& ex)87 {80 Quest* quest = QuestManager::findQuest(this->getQuestId()); 81 if(!quest->start(player)) 82 { 83 return false; 84 } 85 } 86 catch(const orxonox::Exception& ex) 87 { 88 88 COUT(2) << ex.getFullDescription() << std::endl; 89 89 return false; 90 }90 } 91 91 92 return true;92 return true; 93 93 } 94 94 -
code/trunk/src/orxonox/objects/quest/AddQuest.h
r2092 r2093 47 47 class AddQuest : public ChangeQuestStatus 48 48 { 49 public:49 public: 50 50 AddQuest(BaseObject* creator); 51 virtual ~AddQuest();51 virtual ~AddQuest(); 52 52 53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 54 55 virtual bool invoke(Player* player); //!< Invokes the effect.55 virtual bool invoke(Player* player); //!< Invokes the effect. 56 56 57 57 }; -
code/trunk/src/orxonox/objects/quest/AddQuestHint.cc
r2092 r2093 88 88 { 89 89 QuestHint* hint = QuestManager::findHint(this->hintId_); 90 if(!hint->activate(player))91 {92 return false;93 }94 }95 catch(const Exception& e)96 {97 COUT(2) << e.getFullDescription() << std::endl;98 return false;99 }90 if(!hint->activate(player)) 91 { 92 return false; 93 } 94 } 95 catch(const Exception& e) 96 { 97 COUT(2) << e.getFullDescription() << std::endl; 98 return false; 99 } 100 100 101 return true;101 return true; 102 102 103 103 } -
code/trunk/src/orxonox/objects/quest/AddQuestHint.h
r2092 r2093 40 40 /** 41 41 @brief 42 Adds a QuestHint, resp. Activates the QuestHint.42 Adds a QuestHint, resp. Activates the QuestHint. 43 43 @author 44 Damian 'Mozork' Frick44 Damian 'Mozork' Frick 45 45 */ 46 46 class AddQuestHint : public QuestEffect 47 47 { 48 public:48 public: 49 49 AddQuestHint(BaseObject* creator); 50 virtual ~AddQuestHint();50 virtual ~AddQuestHint(); 51 51 52 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);52 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 53 53 54 virtual bool invoke(Player* player); //!< Invokes the effect.54 virtual bool invoke(Player* player); //!< Invokes the effect. 55 55 56 private:56 private: 57 57 std::string hintId_; 58 58 59 59 inline const std::string & getHintId(void) const 60 60 { return this->hintId_; } 61 void setHintId(const std::string & id);61 void setHintId(const std::string & id); 62 62 63 63 }; -
code/trunk/src/orxonox/objects/quest/AddReward.cc
r2092 r2093 71 71 int i = index; 72 72 for (std::list<Rewardable*>::const_iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward) 73 {74 if(i == 0)75 {76 return *reward;77 }78 i--;79 }73 { 74 if(i == 0) 75 { 76 return *reward; 77 } 78 i--; 79 } 80 80 return NULL; 81 81 } … … 91 91 bool AddReward::invoke(Player* player) 92 92 { 93 bool check = true;93 bool check = true; 94 94 for ( std::list<Rewardable*>::iterator reward = this->rewards_.begin(); reward != this->rewards_.end(); ++reward ) 95 {96 check = check && (*reward)->reward(player);97 }95 { 96 check = check && (*reward)->reward(player); 97 } 98 98 99 return check;99 return check; 100 100 } 101 101 -
code/trunk/src/orxonox/objects/quest/AddReward.h
r2092 r2093 42 42 /** 43 43 @brief 44 Adds a list of rewards to a player.44 Adds a list of rewards to a player. 45 45 @author 46 Damian 'Mozork' Frick46 Damian 'Mozork' Frick 47 47 */ 48 48 class AddReward : public QuestEffect 49 49 { 50 public:50 public: 51 51 AddReward(BaseObject* creator); 52 virtual ~AddReward();52 virtual ~AddReward(); 53 53 54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 55 56 virtual bool invoke(Player* player); //!< Invokes the effect.56 virtual bool invoke(Player* player); //!< Invokes the effect. 57 57 58 private:58 private: 59 59 std::list<Rewardable*> rewards_; 60 60 … … 63 63 inline void addRewardable(Rewardable* reward) 64 64 { this->rewards_.push_back(reward); } 65 const Rewardable* getRewardables(unsigned int index) const;65 const Rewardable* getRewardables(unsigned int index) const; 66 66 67 67 }; -
code/trunk/src/orxonox/objects/quest/ChangeQuestStatus.h
r2092 r2093 43 43 An effect which changes a quests status. 44 44 @author 45 Damian 'Mozork' Frick45 Damian 'Mozork' Frick 46 46 */ 47 47 class ChangeQuestStatus : public QuestEffect 48 48 { 49 public:49 public: 50 50 ChangeQuestStatus(BaseObject* creator); 51 virtual ~ChangeQuestStatus();51 virtual ~ChangeQuestStatus(); 52 52 53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 54 55 virtual bool invoke(Player* player) = 0; //!< Invokes the effect.55 virtual bool invoke(Player* player) = 0; //!< Invokes the effect. 56 56 57 protected:57 protected: 58 58 inline const std::string & getQuestId(void) const //!< Returns the quest id. 59 59 { return this->questId_; } … … 61 61 std::string questId_; //!< The id of the quest the status should be changed of. 62 62 63 private:64 void setQuestId(const std::string & id);63 private: 64 void setQuestId(const std::string & id); 65 65 66 66 }; -
code/trunk/src/orxonox/objects/quest/CompleteQuest.cc
r2092 r2093 74 74 try 75 75 { 76 Quest* quest = QuestManager::findQuest(this->getQuestId());77 if(!quest->complete(player))78 {79 return false;80 }81 }82 catch(const Exception& e)83 {76 Quest* quest = QuestManager::findQuest(this->getQuestId()); 77 if(!quest->complete(player)) 78 { 79 return false; 80 } 81 } 82 catch(const Exception& e) 83 { 84 84 COUT(2) << e.getFullDescription() << std::endl; 85 85 return false; 86 }86 } 87 87 88 return true;88 return true; 89 89 } 90 90 -
code/trunk/src/orxonox/objects/quest/CompleteQuest.h
r2092 r2093 47 47 class CompleteQuest : public ChangeQuestStatus 48 48 { 49 public:49 public: 50 50 CompleteQuest(BaseObject* creator); 51 virtual ~CompleteQuest();51 virtual ~CompleteQuest(); 52 52 53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 54 55 virtual bool invoke(Player* player); //!< Invokes the effect.55 virtual bool invoke(Player* player); //!< Invokes the effect. 56 56 57 57 }; -
code/trunk/src/orxonox/objects/quest/FailQuest.cc
r2092 r2093 74 74 try 75 75 { 76 Quest* quest = QuestManager::findQuest(this->getQuestId());77 if(!quest->fail(player))78 {79 return false;80 }81 }82 catch(const Exception& e)83 {76 Quest* quest = QuestManager::findQuest(this->getQuestId()); 77 if(!quest->fail(player)) 78 { 79 return false; 80 } 81 } 82 catch(const Exception& e) 83 { 84 84 COUT(2) << e.getFullDescription() << std::endl; 85 85 return false; 86 }86 } 87 87 88 return true;88 return true; 89 89 } 90 90 -
code/trunk/src/orxonox/objects/quest/FailQuest.h
r2092 r2093 43 43 Fails a quest. 44 44 @author 45 Damian 'Mozork' Frick45 Damian 'Mozork' Frick 46 46 */ 47 47 class FailQuest : public ChangeQuestStatus 48 48 { 49 public:49 public: 50 50 FailQuest(BaseObject* creator); 51 virtual ~FailQuest();51 virtual ~FailQuest(); 52 52 53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);53 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 54 54 55 virtual bool invoke(Player* player); //!< Invokes the effect.55 virtual bool invoke(Player* player); //!< Invokes the effect. 56 56 57 57 }; -
code/trunk/src/orxonox/objects/quest/GlobalQuest.cc
r2092 r2093 132 132 std::set<Player*>::const_iterator it = this->players_.find((Player*)(void*)player); 133 133 if (it != this->players_.end()) 134 {135 return this->status_;136 }137 else138 {139 return questStatus::inactive;140 }134 { 135 return this->status_; 136 } 137 else 138 { 139 return questStatus::inactive; 140 } 141 141 142 142 } … … 145 145 @brief 146 146 Sets the status for a specific player. 147 But be careful wit this one, the status will just be set without checking for its validity. You have to know what you're doing.147 But be careful wit this one, the status will just be set without checking for its validity. You have to know what you're doing. 148 148 @param player 149 149 The player. … … 158 158 { 159 159 return false; 160 }160 } 161 161 162 162 std::set<Player*>::const_iterator it = this->players_.find(player); 163 163 if (it == this->players_.end()) //!< Player is not yet in the list. 164 {165 this->players_.insert(player);166 }167 this->status_ = status;168 return true;164 { 165 this->players_.insert(player); 166 } 167 this->status_ = status; 168 return true; 169 169 } 170 170 -
code/trunk/src/orxonox/objects/quest/GlobalQuest.h
r2092 r2093 48 48 class GlobalQuest : public Quest 49 49 { 50 public:50 public: 51 51 GlobalQuest(BaseObject* creator); 52 virtual ~GlobalQuest();52 virtual ~GlobalQuest(); 53 53 54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 55 56 protected:56 protected: 57 57 virtual bool isStartable(const Player* player) const; //!< Checks whether the quest can be started. 58 58 virtual bool isFailable(const Player* player) const; //!< Checks whether the quest can be failed. 59 59 virtual bool isCompletable(const Player* player) const; //!< Checks whether the quest can be completed. 60 60 61 virtual questStatus::Enum getStatus(const Player* player) const; //!< Returns the status of the quest for a specific player.62 virtual bool setStatus(Player* player, const questStatus::Enum & status); //!< Sets the status for a specific player.61 virtual questStatus::Enum getStatus(const Player* player) const; //!< Returns the status of the quest for a specific player. 62 virtual bool setStatus(Player* player, const questStatus::Enum & status); //!< Sets the status for a specific player. 63 63 64 private:64 private: 65 65 std::set<Player*> players_; //!< The set of players which possess this quest. 66 66 questStatus::Enum status_; //!< The status of this quest. -
code/trunk/src/orxonox/objects/quest/LocalQuest.cc
r2092 r2093 127 127 128 128 std::map<Player*, questStatus::Enum>::const_iterator it = this->playerStatus_.find((Player*)(void*)player); //Thx. to x3n for the (Player*)(void*) 'hack'. 129 if (it != this->playerStatus_.end())130 {131 return it->second;132 }133 return questStatus::inactive;129 if (it != this->playerStatus_.end()) 130 { 131 return it->second; 132 } 133 return questStatus::inactive; 134 134 } 135 135 … … 150 150 { 151 151 return false; 152 }152 } 153 153 this->playerStatus_[player] = status; 154 154 return true; -
code/trunk/src/orxonox/objects/quest/LocalQuest.h
r2092 r2093 48 48 class LocalQuest : public Quest 49 49 { 50 public:50 public: 51 51 LocalQuest(BaseObject* creator); 52 virtual ~LocalQuest();52 virtual ~LocalQuest(); 53 53 54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);54 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 55 55 56 protected:56 protected: 57 57 virtual bool isStartable(const Player* player) const; //!< Checks whether the quest can be started. 58 58 virtual bool isFailable(const Player* player) const; //!< Checks whether the quest can be failed. … … 62 62 virtual bool setStatus(Player* player, const questStatus::Enum & status); //!< Sets the status for a specific player. 63 63 64 private:64 private: 65 65 std::map<Player*, questStatus::Enum> playerStatus_; //!< List of the status for each player, with the Player-pointer as key. 66 66 -
code/trunk/src/orxonox/objects/quest/Quest.cc
r2092 r2093 135 135 } 136 136 137 this->hints_.push_back(hint);138 hint->setQuest(this);139 140 COUT(3) << "QuestHint {" << hint->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl;141 return true;137 this->hints_.push_back(hint); 138 hint->setQuest(this); 139 140 COUT(3) << "QuestHint {" << hint->getId() << "} was added to Quest {" << this->getId() << "}." << std::endl; 141 return true; 142 142 } 143 143 … … 195 195 int i = index; 196 196 for (std::list<Quest*>::const_iterator subQuest = this->subQuests_.begin(); subQuest != this->subQuests_.end(); ++subQuest) 197 {198 if(i == 0)199 {200 return *subQuest;201 }202 i--;203 }197 { 198 if(i == 0) 199 { 200 return *subQuest; 201 } 202 i--; 203 } 204 204 return NULL; 205 205 } … … 213 213 int i = index; 214 214 for (std::list<QuestHint*>::const_iterator hint = this->hints_.begin(); hint != this->hints_.end(); ++hint) 215 {216 if(i == 0)217 {218 return *hint;219 }220 i--;221 }215 { 216 if(i == 0) 217 { 218 return *hint; 219 } 220 i--; 221 } 222 222 return NULL; 223 223 } … … 231 231 int i = index; 232 232 for (std::list<QuestEffect*>::const_iterator effect = this->failEffects_.begin(); effect != this->failEffects_.end(); ++effect) 233 {234 if(i == 0)235 {236 return *effect;237 }238 i--;239 }233 { 234 if(i == 0) 235 { 236 return *effect; 237 } 238 i--; 239 } 240 240 return NULL; 241 241 } … … 249 249 int i = index; 250 250 for (std::list<QuestEffect*>::const_iterator effect = this->completeEffects_.begin(); effect != this->completeEffects_.end(); ++effect) 251 {252 if(i == 0)253 {254 return *effect;255 }256 i--;257 }251 { 252 if(i == 0) 253 { 254 return *effect; 255 } 256 i--; 257 } 258 258 return NULL; 259 259 } -
code/trunk/src/orxonox/objects/quest/Quest.h
r2092 r2093 66 66 class Quest : public QuestItem 67 67 { 68 public:68 public: 69 69 Quest(BaseObject* creator); 70 virtual ~Quest();70 virtual ~Quest(); 71 71 72 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);72 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 73 73 74 74 inline Quest* getParentQuest(void) const //!< Returns the parent quest of the quest. 75 75 { return this->parentQuest_; } 76 inline const std::list<Quest*> & getSubQuestList(void) const //!< Returns the list of sub quests.76 inline const std::list<Quest*> & getSubQuestList(void) const //!< Returns the list of sub quests. 77 77 { return this->subQuests_; } 78 78 79 bool isInactive(const Player* player) const; //!< Returns true if the quest status for the specific player is 'inactive'.80 bool isActive(const Player* player) const; //!< Returns true if the quest status for the specific player is 'active'.81 bool isFailed(const Player* player) const; //!< Returns true if the quest status for the specific player is 'failed'.82 bool isCompleted(const Player* player) const; //!< Returns true if the quest status for the specific player is 'completed'.79 bool isInactive(const Player* player) const; //!< Returns true if the quest status for the specific player is 'inactive'. 80 bool isActive(const Player* player) const; //!< Returns true if the quest status for the specific player is 'active'. 81 bool isFailed(const Player* player) const; //!< Returns true if the quest status for the specific player is 'failed'. 82 bool isCompleted(const Player* player) const; //!< Returns true if the quest status for the specific player is 'completed'. 83 83 84 bool start(Player* player); //!< Sets a quest to active.85 bool fail(Player* player); //!< Fails the quest.86 bool complete(Player* player); //!< Completes the quest.84 bool start(Player* player); //!< Sets a quest to active. 85 bool fail(Player* player); //!< Fails the quest. 86 bool complete(Player* player); //!< Completes the quest. 87 87 88 88 protected: … … 94 94 95 95 bool setParentQuest(Quest* quest); //!< Sets the parent quest of the quest. 96 bool addSubQuest(Quest* quest); //!< Adds a sub quest to the quest.97 bool addHint(QuestHint* hint); //!< Add a hint to the list of hints.98 bool addFailEffect(QuestEffect* effect);99 bool addCompleteEffect(QuestEffect* effect);96 bool addSubQuest(Quest* quest); //!< Adds a sub quest to the quest. 97 bool addHint(QuestHint* hint); //!< Add a hint to the list of hints. 98 bool addFailEffect(QuestEffect* effect); 99 bool addCompleteEffect(QuestEffect* effect); 100 100 101 const Quest* getParentQuest(void);102 const Quest* getSubQuests(unsigned int index) const;103 const QuestHint* getHints(unsigned int index) const;104 const QuestEffect* getFailEffects(unsigned int index) const;105 const QuestEffect* getCompleteEffects(unsigned int index) const;101 const Quest* getParentQuest(void); 102 const Quest* getSubQuests(unsigned int index) const; 103 const QuestHint* getHints(unsigned int index) const; 104 const QuestEffect* getFailEffects(unsigned int index) const; 105 const QuestEffect* getCompleteEffects(unsigned int index) const; 106 106 107 107 virtual questStatus::Enum getStatus(const Player* player) const = 0; //!< Returns the status of the quest for a specific player. -
code/trunk/src/orxonox/objects/quest/QuestDescription.h
r2092 r2093 46 46 class QuestDescription : public BaseObject { 47 47 48 public:48 public: 49 49 QuestDescription(BaseObject* creator); 50 virtual ~QuestDescription();50 virtual ~QuestDescription(); 51 51 52 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);52 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 53 53 54 inline const std::string & getTitle(void) const //!< Returns the title.54 inline const std::string & getTitle(void) const //!< Returns the title. 55 55 { return this->title_; } 56 inline const std::string & getDescription(void) const //!< Returns the description text.56 inline const std::string & getDescription(void) const //!< Returns the description text. 57 57 { return this->description_; } 58 58 59 private:59 private: 60 60 void initialize(void); 61 61 62 62 inline void setTitle(const std::string & title) //!< Sets the title. 63 63 { this->title_ = title; } 64 inline void setDescription(const std::string & description) //!< Sets the description text.64 inline void setDescription(const std::string & description) //!< Sets the description text. 65 65 { this->description_ = description; } 66 66 -
code/trunk/src/orxonox/objects/quest/QuestEffect.cc
r2092 r2093 67 67 68 68 for (std::list<QuestEffect*>::iterator effect = effects.begin(); effect != effects.end(); effect++) 69 {70 check = check && (*effect)->invoke(player);71 }72 return check;69 { 70 check = check && (*effect)->invoke(player); 71 } 72 return check; 73 73 } 74 74 -
code/trunk/src/orxonox/objects/quest/QuestEffect.h
r2092 r2093 46 46 class QuestEffect : public BaseObject 47 47 { 48 public:48 public: 49 49 QuestEffect(BaseObject* creator); 50 virtual ~QuestEffect();50 virtual ~QuestEffect(); 51 51 52 virtual bool invoke(Player* player) = 0; //!< Invokes the effect.53 static bool invokeEffects(Player* player, std::list<QuestEffect*> & effects); //!< Invokes all effects in the list.52 virtual bool invoke(Player* player) = 0; //!< Invokes the effect. 53 static bool invokeEffects(Player* player, std::list<QuestEffect*> & effects); //!< Invokes all effects in the list. 54 54 55 55 -
code/trunk/src/orxonox/objects/quest/QuestHint.cc
r2092 r2093 64 64 void QuestHint::XMLPort(Element& xmlelement, XMLPort::Mode mode) 65 65 { 66 SUPER(QuestHint, XMLPort, xmlelement, mode);66 SUPER(QuestHint, XMLPort, xmlelement, mode); 67 67 68 COUT(3) << "New QuestHint {" << this->getId() << "} created." << std::endl;68 COUT(3) << "New QuestHint {" << this->getId() << "} created." << std::endl; 69 69 } 70 70 … … 89 89 90 90 std::map<Player*, questHintStatus::Enum>::iterator it = this->playerStatus_.find(player); 91 if (it != this->playerStatus_.end())92 {93 return it->second;94 }95 return questStatus::inactive;91 if (it != this->playerStatus_.end()) 92 { 93 return it->second; 94 } 95 return questStatus::inactive; 96 96 } 97 97 … … 108 108 if(this->quest_->isActive(player)) 109 109 { 110 if(!(this->isActive(player)))111 {112 this->playerStatus_[player] = questHintStatus::active;113 return true;114 }115 else116 {110 if(!(this->isActive(player))) 111 { 112 this->playerStatus_[player] = questHintStatus::active; 113 return true; 114 } 115 else 116 { 117 117 COUT(2) << "An already active questHint was trying to get activated." << std::endl; 118 118 return false; 119 }119 } 120 120 } 121 COUT(2) << "A hint of a non-active quest was trying to get activated." << std::endl;122 return false;121 COUT(2) << "A hint of a non-active quest was trying to get activated." << std::endl; 122 return false; 123 123 } 124 124 -
code/trunk/src/orxonox/objects/quest/QuestHint.h
r2092 r2093 65 65 { 66 66 67 public:67 public: 68 68 QuestHint(BaseObject* creator); 69 virtual ~QuestHint();69 virtual ~QuestHint(); 70 70 71 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);71 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 72 72 73 bool isActive(Player* player); //!< Returns true if the hint is active for the input player.73 bool isActive(Player* player); //!< Returns true if the hint is active for the input player. 74 74 75 bool activate(Player* player); //!< Activates the hint for the input player.75 bool activate(Player* player); //!< Activates the hint for the input player. 76 76 77 bool setQuest(Quest* quest); //!< Sets the quest the hint belongs to.77 bool setQuest(Quest* quest); //!< Sets the quest the hint belongs to. 78 78 79 inline Quest* getQuest(void)80 { return this->quest_; }79 inline Quest* getQuest(void) 80 { return this->quest_; } 81 81 82 82 private: -
code/trunk/src/orxonox/objects/quest/QuestItem.cc
r2092 r2093 94 94 Checks whether an input id is of the required form. 95 95 @param id 96 The id to be checked.96 The id to be checked. 97 97 @return 98 98 Returns true if the string is likely to be of the required form. -
code/trunk/src/orxonox/objects/quest/QuestItem.h
r2092 r2093 41 41 /** 42 42 @brief 43 Functions as a base class for Quest classes such as Quest or QuestHint.44 Has a unique identifier and a description.43 Functions as a base class for Quest classes such as Quest or QuestHint. 44 Has a unique identifier and a description. 45 45 @author 46 Damian 'Mozork' Frick46 Damian 'Mozork' Frick 47 47 */ 48 48 class QuestItem : public BaseObject 49 49 { 50 50 51 public:51 public: 52 52 QuestItem(BaseObject* creator); 53 virtual ~QuestItem();53 virtual ~QuestItem(); 54 54 55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode);55 virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); 56 56 57 inline const std::string & getId(void) const //!< Returns the id of this quest.57 inline const std::string & getId(void) const //!< Returns the id of this quest. 58 58 { return this->id_; } 59 inline const QuestDescription* getDescription(void) const //!< Returns the description of the QuestItem.59 inline const QuestDescription* getDescription(void) const //!< Returns the description of the QuestItem. 60 60 { return this->description_; } 61 //const QuestDescription* getDescription(unsigned int index) const; //!< Returns the description of the QuestItem.61 //const QuestDescription* getDescription(unsigned int index) const; //!< Returns the description of the QuestItem. 62 62 63 static bool isId(const std::string & id); //!< Checks whether a given id is valid.63 static bool isId(const std::string & id); //!< Checks whether a given id is valid. 64 64 65 protected:66 void setId(const std::string & id);67 inline void setDescription(QuestDescription* description)65 protected: 66 void setId(const std::string & id); 67 inline void setDescription(QuestDescription* description) 68 68 { this->description_ = description; } 69 69 70 private:71 std::string id_; //!< Identifier. Should be of GUID form: http://en.wikipedia.org/wiki/Globally_Unique_Identifier#Basic_structure72 QuestDescription* description_; //!< The description of the QuestItem.70 private: 71 std::string id_; //!< Identifier. Should be of GUID form: http://en.wikipedia.org/wiki/Globally_Unique_Identifier#Basic_structure 72 QuestDescription* description_; //!< The description of the QuestItem. 73 73 74 void initialize(void); //!< Initializes the object.74 void initialize(void); //!< Initializes the object. 75 75 76 76 }; -
code/trunk/src/orxonox/objects/quest/QuestManager.cc
r2092 r2093 62 62 COUT(2) << "Registration of Quest in QuestManager failed, because inserted Quest-pointer was NULL." << std::endl; 63 63 return false; 64 }64 } 65 65 66 66 std::pair<std::map<std::string, Quest*>::iterator,bool> ret; … … 71 71 COUT(3) << "Quest with questId {" << quest->getId() << "} successfully inserted." << std::endl; 72 72 return true; 73 }74 else75 {76 COUT(2) << "Quest with the same id was already present." << std::endl;77 return false;78 }73 } 74 else 75 { 76 COUT(2) << "Quest with the same id was already present." << std::endl; 77 return false; 78 } 79 79 } 80 80 … … 102 102 COUT(3) << "QuestHint with hintId {" << hint->getId() << "} successfully inserted." << std::endl; 103 103 return true; 104 }105 else106 {107 COUT(2) << "QuestHint with the same id was already present." << std::endl;108 return false;109 }104 } 105 else 106 { 107 COUT(2) << "QuestHint with the same id was already present." << std::endl; 108 return false; 109 } 110 110 } 111 111 … … 124 124 { 125 125 if(!QuestItem::isId(questId)) 126 {126 { 127 127 ThrowException(Argument, "Invalid questId."); 128 }128 } 129 129 130 130 Quest* quest; 131 131 std::map<std::string, Quest*>::iterator it = questMap_.find(questId); 132 if (it != questMap_.end())133 {134 quest = it->second;135 }136 else137 {138 quest = NULL;139 COUT(2) << "The quest with id {" << questId << "} is nowhere to be found." << std::endl;140 }132 if (it != questMap_.end()) 133 { 134 quest = it->second; 135 } 136 else 137 { 138 quest = NULL; 139 COUT(2) << "The quest with id {" << questId << "} is nowhere to be found." << std::endl; 140 } 141 141 142 return quest;142 return quest; 143 143 144 144 } … … 158 158 { 159 159 if(!QuestItem::isId(hintId)) 160 {160 { 161 161 ThrowException(Argument, "Invalid hintId."); 162 }162 } 163 163 164 164 QuestHint* hint; 165 165 std::map<std::string, QuestHint*>::iterator it = hintMap_.find(hintId); 166 if (it != hintMap_.end())167 {168 hint = it->second;169 }170 else171 {172 hint = NULL;173 COUT(2) << "The hint with id {" << hintId << "} is nowhere to be found." << std::endl;174 }166 if (it != hintMap_.end()) 167 { 168 hint = it->second; 169 } 170 else 171 { 172 hint = NULL; 173 COUT(2) << "The hint with id {" << hintId << "} is nowhere to be found." << std::endl; 174 } 175 175 176 return hint;176 return hint; 177 177 178 178 } -
code/trunk/src/orxonox/objects/quest/QuestManager.h
r2092 r2093 49 49 { 50 50 51 public:52 QuestManager(BaseObject* creator);53 virtual ~QuestManager();51 public: 52 QuestManager(BaseObject* creator); 53 virtual ~QuestManager(); 54 54 55 static bool registerQuest(Quest* quest); //!< Registers a quest in the QuestManager.56 static bool registerHint(QuestHint* quest); //!< Registers a QuestHint in the QuestManager.55 static bool registerQuest(Quest* quest); //!< Registers a quest in the QuestManager. 56 static bool registerHint(QuestHint* quest); //!< Registers a QuestHint in the QuestManager. 57 57 58 static Quest* findQuest(const std::string & questId); //!< Returns the quest with the input id.59 static QuestHint* findHint(const std::string & hintId); //!< Returns the QuestHint with the input id.58 static Quest* findQuest(const std::string & questId); //!< Returns the quest with the input id. 59 static QuestHint* findHint(const std::string & hintId); //!< Returns the QuestHint with the input id. 60 60 61 private:62 static std::map<std::string, Quest*> questMap_; //!< All quests registered by their id's.63 static std::map<std::string, QuestHint*> hintMap_; //!< All hints registered by their id's.61 private: 62 static std::map<std::string, Quest*> questMap_; //!< All quests registered by their id's. 63 static std::map<std::string, QuestHint*> hintMap_; //!< All hints registered by their id's. 64 64 65 65 }; -
code/trunk/src/orxonox/objects/quest/Rewardable.h
r2092 r2093 45 45 { 46 46 47 public:48 Rewardable(BaseObject* creator);49 virtual ~Rewardable();47 public: 48 Rewardable(BaseObject* creator); 49 virtual ~Rewardable(); 50 50 51 virtual bool reward(Player* player) = 0; //!<Method to transcribe a rewardable object to the player.51 virtual bool reward(Player* player) = 0; //!<Method to transcribe a rewardable object to the player. 52 52 53 53 };
Note: See TracChangeset
for help on using the changeset viewer.










