diff options
author | drumsetmonkey <abelleisle@roadrunner.com> | 2016-03-04 07:31:12 -0500 |
---|---|---|
committer | drumsetmonkey <abelleisle@roadrunner.com> | 2016-03-04 07:31:12 -0500 |
commit | 6af8dcbaa41a7db52ff8f6074d2b113ec7eaf12d (patch) | |
tree | 96be39f3670d5dd2d71b001340d7aff9b6164003 /src/Quest.cpp | |
parent | b61bbe703a03d58dc660d05b4bb32f69a4c70436 (diff) | |
parent | fe5ea7fe415857f49d6630f2b0f50e1246c38eee (diff) |
Merge branch 'master' of http://github.com/tcsullivan/gamedev
Diffstat (limited to 'src/Quest.cpp')
-rw-r--r-- | src/Quest.cpp | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/src/Quest.cpp b/src/Quest.cpp index 535afc5..e59d79f 100644 --- a/src/Quest.cpp +++ b/src/Quest.cpp @@ -33,39 +33,41 @@ int QuestHandler::assign(std::string title,std::string desc,std::string req){ return 0;
}
+#include <algorithm>
+
int QuestHandler::drop(std::string title){
- for(unsigned int i=0;i<current.size();i++){
- if(current[i].title == title){
- current.erase(current.begin()+i);
- return 0;
- }
- }
- return -1;
+ current.erase( std::remove_if( current.begin(),
+ current.end(),
+ [&](Quest q){ return q.title == title; }),
+ current.end() );
+
+ return 0;
}
int QuestHandler::finish(std::string t){
- for(unsigned int i=0;i<current.size();i++){
- if(current[i].title == t){
- for(auto &n : current[i].need){
- if(player->inv->hasItem(n.name) < n.n)
+ for ( auto c = current.begin(); c != current.end(); c++ ) {
+ if ( (*c).title == t ) {
+ for ( auto &n : (*c).need ) {
+ if ( player->inv->hasItem( n.name ) < n.n )
return 0;
}
- for(auto &n : current[i].need){
- player->inv->takeItem(n.name,n.n);
- }
+ for ( auto &n : (*c).need )
+ player->inv->takeItem( n.name, n.n );
- current.erase(current.begin()+i);
+ current.erase( c );
return 1;
}
}
+
return 0;
}
bool QuestHandler::hasQuest(std::string t){
- for(unsigned int i=0;i<current.size();i++){
- if(current[i].title == t)
+ for ( auto &c : current ) {
+ if ( c.title == t )
return true;
}
+
return false;
}
|