aboutsummaryrefslogtreecommitdiffstats
path: root/src/Quest.cpp
diff options
context:
space:
mode:
authordrumsetmonkey <abelleisle@roadrunner.com>2015-09-30 08:06:06 -0400
committerdrumsetmonkey <abelleisle@roadrunner.com>2015-09-30 08:06:06 -0400
commit3994d87991496a140edbb7d67ddbebb9f82f3061 (patch)
tree3c70949b941839dce37bbd6c4d1338218f911bf1 /src/Quest.cpp
parentb65f39e7f00624098e929da38bf6a87a20d073f1 (diff)
Added quest files and file for names
Diffstat (limited to 'src/Quest.cpp')
-rw-r--r--src/Quest.cpp62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/Quest.cpp b/src/Quest.cpp
new file mode 100644
index 0000000..a42e42c
--- /dev/null
+++ b/src/Quest.cpp
@@ -0,0 +1,62 @@
+#include <Quest.h>
+
+const Quest QuestList[TOTAL_QUESTS]={
+ Quest("Test","A test quest",0)
+};
+
+Quest::Quest(const char *t,const char *d,unsigned int x){
+ size_t len;
+ title=(char *)malloc((len=strlen(t)));
+ strncpy(title,t,len);
+ desc=(char *)malloc((len=strlen(d)));
+ strncpy(desc,d,len);
+ xp=x;
+}
+Quest::~Quest(){
+ free(title);
+ free(desc);
+ xp=0;
+}
+
+QuestHandler::QuestHandler(){
+ ccnt=0;
+}
+int QuestHandler::assign(const char *t){
+ unsigned int i=0;
+ if(ccnt==QUEST_LIMIT)
+ return -1;
+ for(;i<TOTAL_QUESTS;i++){
+ if(!strcmp(QuestList[i].title,t)){
+ current[ccnt++]=&QuestList[i];
+ return ccnt;
+ }
+ }
+ return -1;
+}
+int QuestHandler::drop(const char *t){
+ unsigned char i=0;
+ for(;i<ccnt;i++){
+ if(!strcmp(current[i]->title,t)){
+ for(i++;i<ccnt;i++){
+ current[i-1]=current[i];
+ }
+ return (--ccnt);
+ }
+ }
+ return -1;
+}
+int QuestHandler::finish(const char *t){
+ unsigned char i=0;
+ unsigned int j;
+ for(;i<ccnt;i++){
+ if(!strcmp(current[i]->title,t)){
+ j=current[i]->xp;
+ for(i++;i<ccnt;i++){
+ current[i-1]=current[i];
+ }
+ ccnt--;
+ return j;
+ }
+ }
+ return -1;
+}