[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_ = ¤tTalk_->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