[Orxonox-commit 7133] r11750 - code/branches/Presentation_HS17_merge/src/modules/dialog

landauf at orxonox.net landauf at orxonox.net
Thu Feb 15 23:18:38 CET 2018


Author: landauf
Date: 2018-02-15 23:18:38 +0100 (Thu, 15 Feb 2018)
New Revision: 11750

Modified:
   code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc
   code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h
   code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc
   code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc
   code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h
Log:
[Dialog_HS17] cleanup XMLPort collection getters

Modified: code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc	2018-02-15 21:42:30 UTC (rev 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.cc	2018-02-15 22:18:38 UTC (rev 11750)
@@ -88,9 +88,16 @@
 		this->questions_.insert(make_pair(question->getQuestionId(), question));
 	}
 
-	const Question* Dialog::getQuestion() const // returned nichts
+	Question* Dialog::getQuestion(unsigned int index) const
 	{
-		return nullptr;
+        unsigned int i = 0;
+        for (auto entry : this->questions_)
+        {
+            if (i == index)
+                return entry.second;
+            ++i;
+        }
+        return nullptr;
 	}
 
 	void Dialog::addAnswer(Answer* answer) //fuegt Answer der Map hinzu
@@ -98,18 +105,24 @@
 		this->answers_.insert(make_pair(answer->getAnswerId(), answer));
 	}
 
-	const Answer* Dialog::getAnswer(unsigned int index) const	//returned sting der Antwort zur Id.
+	Answer* Dialog::getAnswer(unsigned int index) const
 	{
-		return nullptr;
+        unsigned int i = 0;
+        for (auto entry : this->answers_)
+        {
+            if (i == index)
+                return entry.second;
+            ++i;
+        }
+        return nullptr;
 	}
 
 
-	const std::vector<std::string>* Dialog::getAnswerIds() // returned vector mit allen momentanen AntwortenIds
+	const std::vector<std::string>& Dialog::getAnswerIds() const // returned vector mit allen momentanen AntwortenIds
 	{
 		
 		Question* question = (this->questions_.find(this->currentQuestionId_))->second;
-		const std::vector<std::string>* answers = question->getAnswerIds();
-		return answers;
+		return question->getAnswerIds();
 		
 	} 
 	
@@ -144,7 +157,7 @@
 		return this->questions_.find(this->currentQuestionId_)->second->getQuestion();
 	}
 
-	const std::string& Dialog::getAnswerString(std::string answerId)
+	const std::string& Dialog::getAnswerString(const std::string& answerId)
 	{
 		return this->answers_.find(answerId)->second->getAnswer();
 	}

Modified: code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h	2018-02-15 21:42:30 UTC (rev 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Dialog.h	2018-02-15 22:18:38 UTC (rev 11750)
@@ -67,10 +67,10 @@
 			const std::string& getCurrentQuestionId() const;	//xmlPort-Funktion, returns id of current question
 
 			void addQuestion(Question* question); //xmlPort-Funktion, adds question to map
-			const Question* getQuestion() const; //xmlPort-Funktion, returns nullptr
+			Question* getQuestion(unsigned int index) const; //xmlPort-Funktion
 
 			void addAnswer(Answer* answer); //xmlPort-Funktion, adds answer to map
-			const Answer* getAnswer(unsigned int index) const; //xmlPort-Funktion, returns nullptr
+			Answer* getAnswer(unsigned int index) const; //xmlPort-Funktion
 
 			/**
 	        @brief
@@ -79,7 +79,7 @@
 	        @return
 	            pointer to answerId array of question
 	        */
-			const std::vector<std::string>* getAnswerIds(); 
+			const std::vector<std::string>& getAnswerIds() const;
 
 			/**
 	        @brief
@@ -132,7 +132,7 @@
 	        @return
 	           	sting with answer
 	        */
-			const std::string& getAnswerString(std::string answerId);
+			const std::string& getAnswerString(const std::string& answerId);
 
 		private: 
 			std::string name_;	//!< name of the npc talking

Modified: code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc	2018-02-15 21:42:30 UTC (rev 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/DialogManager.cc	2018-02-15 22:18:38 UTC (rev 11750)
@@ -44,7 +44,7 @@
 	void DialogManager::setDialog(Dialog* dialog)
 	{
 		this->currentTalk_ = dialog;
-		answerIds_ = currentTalk_->getAnswerIds();	
+		answerIds_ = &currentTalk_->getAnswerIds();
 	}
 
 	//from here onward funcionality for lua axports
@@ -85,6 +85,6 @@
     void DialogManager::update(int index)
     {
     	this->currentTalk_->update(answerIds_->at(index));
-    	answerIds_ = this->currentTalk_->getAnswerIds();
+    	answerIds_ = &this->currentTalk_->getAnswerIds();
     }
 }

Modified: code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc	2018-02-15 21:42:30 UTC (rev 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Question.cc	2018-02-15 22:18:38 UTC (rev 11750)
@@ -74,14 +74,14 @@
 		this->answerIds_.push_back(answerId->getId());
 	}
 
-	const AnswerId* Question::getAnswerId() const
+	AnswerId* Question::getAnswerId(unsigned int index) const
 	{
 		return nullptr;
 	}
 
-	const std::vector<std::string>* Question::getAnswerIds()
+	const std::vector<std::string>& Question::getAnswerIds() const
 	{
-		return &(this->answerIds_);
+		return this->answerIds_;
 	}
 	
 }

Modified: code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h	2018-02-15 21:42:30 UTC (rev 11749)
+++ code/branches/Presentation_HS17_merge/src/modules/dialog/Question.h	2018-02-15 22:18:38 UTC (rev 11750)
@@ -62,7 +62,7 @@
 			const std::string& getQuestion() const;	//xmlPort-Funktion, gibt Fragen string
 
 			void addAnswerId(AnswerId* answerId); 	//xmlPort-Funktion, nimmt AnswerIds von entsprechenden Objekten und fuegt sie in List ein.
-			const AnswerId* getAnswerId() const;	//xmlPort-Funktion, gibt nichts zuruek
+			AnswerId* getAnswerId(unsigned int index) const;	//xmlPort-Funktion, gibt nichts zuruek
 
 			/**
 	        @brief
@@ -71,7 +71,7 @@
 	        @return
 	           	returns pointer to the array with ids of possible pc textoptions
 	        */
-			const std::vector<std::string>* getAnswerIds(); //returnt Pointer auf Vektor mit allen Ids
+			const std::vector<std::string>& getAnswerIds() const; //returnt Pointer auf Vektor mit allen Ids
 
 
 



More information about the Orxonox-commit mailing list