Changeset 7456 for code/trunk/src/modules/questsystem/QuestListener.cc
- Timestamp:
- Sep 15, 2010, 7:29:16 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/trunk/src/modules/questsystem/QuestListener.cc
r7163 r7456 28 28 29 29 /** 30 @file 30 @file QuestListener.cc 31 31 @brief Implementation of the QuestListener class. 32 32 */ … … 36 36 #include "core/CoreIncludes.h" 37 37 #include "core/XMLPort.h" 38 38 39 #include "Quest.h" 39 40 #include "QuestManager.h" … … 43 44 CreateFactory(QuestListener); 44 45 46 //! Initialization of the static variables for the modes as strings. 47 /*static*/ const std::string QuestListener::ALL = "all"; 48 /*static*/ const std::string QuestListener::START = "start"; 49 /*static*/ const std::string QuestListener::FAIL = "fail"; 50 /*static*/ const std::string QuestListener::COMPLETE = "complete"; 51 45 52 /** 46 53 @brief … … 75 82 76 83 if(this->quest_ != NULL) 77 this->quest_->addListener(this); // !<Adds the QuestListener to the Quests list of listeners.84 this->quest_->addListener(this); // Adds the QuestListener to the Quests list of listeners. 78 85 79 86 COUT(4) << "QuestListener created for quest: {" << this->quest_->getId() << "} with mode '" << this->getMode() << "'." << std::endl; … … 90 97 /* static */ void QuestListener::advertiseStatusChange(std::list<QuestListener*> & listeners, const std::string & status) 91 98 { 92 for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) // !<Iterate through all QuestListeners99 for (std::list<QuestListener*>::iterator it = listeners.begin(); it != listeners.end(); ++it) // Iterate through all QuestListeners 93 100 { 94 101 QuestListener* listener = *it; 95 if(listener->getMode() == status || listener->getMode() == "all") //!< Check whether the status change affects the give QuestListener. 96 { 102 if(listener->getMode() == status || listener->getMode() == QuestListener::ALL) // Check whether the status change affects the give QuestListener. 97 103 listener->execute(); 98 }99 104 } 100 105 } … … 110 115 bool QuestListener::setQuestId(const std::string & id) 111 116 { 112 this->quest_ = QuestManager::getInstance().findQuest(id); // !<Find the Quest corresponding to the given questId.113 114 if(this->quest_ == NULL) // !<If there is no such Quest.117 this->quest_ = QuestManager::getInstance().findQuest(id); // Find the Quest corresponding to the given questId. 118 119 if(this->quest_ == NULL) // If there is no such Quest. 115 120 { 116 121 ThrowException(Argument, "This is bad! The QuestListener has not found a Quest with a corresponding id.."); … … 131 136 bool QuestListener::setMode(const std::string & mode) 132 137 { 133 if(mode == "all") 134 { 138 if(mode == QuestListener::ALL) 135 139 this->mode_ = QuestListenerMode::All; 136 } 137 else if(mode == "start") 138 { 140 else if(mode == QuestListener::START) 139 141 this->mode_ = QuestListenerMode::Start; 140 } 141 else if(mode == "fail") 142 { 142 else if(mode == QuestListener::FAIL) 143 143 this->mode_ = QuestListenerMode::Fail; 144 } 145 else if(mode == "complete") 146 { 144 else if(mode == QuestListener::COMPLETE) 147 145 this->mode_ = QuestListenerMode::Complete; 148 }149 146 else 150 147 { 151 148 COUT(2) << "QuestListener with invalid mode '" << mode << "' created. Mode set to 'all'." << std::endl; 152 this->mode_ = QuestListenerMode::All;153 return false;149 this->mode_ = QuestListenerMode::All; 150 return false; 154 151 } 155 152 … … 161 158 Get the mode of the QuestListener. 162 159 @return 163 Return the mode of the QuestListener. Can be ei ghter 'all', 'start', 'fail' or 'complete'.160 Return the mode of the QuestListener. Can be either 'all', 'start', 'fail' or 'complete'. 164 161 */ 165 162 std::string QuestListener::getMode(void) 166 163 { 167 if(this->mode_ == QuestListenerMode::All) 168 { 169 return "all"; 170 } 171 else if(this->mode_ == QuestListenerMode::Start) 172 { 173 return "start"; 174 } 175 else if(this->mode_ == QuestListenerMode::Fail) 176 { 177 return "fail"; 178 } 179 else if(this->mode_ == QuestListenerMode::Complete) 180 { 181 return "complete"; 182 } 183 else 184 { 185 COUT(1) << "An unforseen, never to happen, Error has occurred. This is impossible!" << std::endl; 186 return ""; 164 switch(this->mode_) 165 { 166 case QuestListenerMode::All: 167 return QuestListener::ALL; 168 case QuestListenerMode::Start: 169 return QuestListener::START; 170 case QuestListenerMode::Fail: 171 return QuestListener::FAIL; 172 case QuestListenerMode::Complete: 173 return QuestListener::COMPLETE; 174 default: // This will never happen. 175 return QuestListener::ALL; 187 176 } 188 177 }
Note: See TracChangeset
for help on using the changeset viewer.