aboutsummaryrefslogtreecommitdiffstats
path: root/src/Quest.cpp
diff options
context:
space:
mode:
authorClyne Sullivan <tullivan99@gmail.com>2016-02-09 08:44:41 -0500
committerClyne Sullivan <tullivan99@gmail.com>2016-02-09 08:44:41 -0500
commit1382f79d57060dc38f6c45fd4fc865e0e565f90b (patch)
tree19d57dfa61ce77dc38caae73c0db559e01cb18b3 /src/Quest.cpp
parent36ef7e42fb1b151c64d69d96df7e33a9f4c47b83 (diff)
quest completion
Diffstat (limited to 'src/Quest.cpp')
-rw-r--r--src/Quest.cpp24
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;
}