diff options
author | Clyne Sullivan <tullivan99@gmail.com> | 2016-02-09 08:44:41 -0500 |
---|---|---|
committer | Clyne Sullivan <tullivan99@gmail.com> | 2016-02-09 08:44:41 -0500 |
commit | 1382f79d57060dc38f6c45fd4fc865e0e565f90b (patch) | |
tree | 19d57dfa61ce77dc38caae73c0db559e01cb18b3 /src/Quest.cpp | |
parent | 36ef7e42fb1b151c64d69d96df7e33a9f4c47b83 (diff) |
quest completion
Diffstat (limited to 'src/Quest.cpp')
-rw-r--r-- | src/Quest.cpp | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/src/Quest.cpp b/src/Quest.cpp index 0151706..ac18021 100644 --- a/src/Quest.cpp +++ b/src/Quest.cpp @@ -1,5 +1,9 @@ #include <Quest.h>
+#include <entities.h>
+
+extern Player *player;
+
int QuestHandler::assign(const char *t){
return strcmp(t,"h");
}
@@ -8,16 +12,22 @@ int QuestHandler::drop(const char *t){ return strcmp(t,"h");
}
-int QuestHandler::finish(const char *t,void *completer){
- return strncmp(t,(char *)completer,1);
+int QuestHandler::finish(std::string t){
+ for(unsigned int i=0;i<current.size();i++){
+ if(current[i].title == t){
+ if(!player->inv->takeItem(current[i].need.back(),1)){
+ current.erase(current.begin()+i);
+ return 1;
+ }else return 0;
+ }
+ }
+ return 0;
}
-bool QuestHandler::hasQuest(const char *t){
- unsigned int i;
- for(i=0;i<current.size();i++){
- if(!strcmp(current[i].title.c_str(),t)){
+bool QuestHandler::hasQuest(std::string t){
+ for(unsigned int i=0;i<current.size();i++){
+ if(current[i].title == t)
return true;
- }
}
return false;
}
|