From 60c7924097814686a2fb826b87fd7a3e1ff684de Mon Sep 17 00:00:00 2001 From: Clyne Sullivan Date: Tue, 8 Sep 2015 17:01:40 -0400 Subject: Added quests --- Makefile | 2 +- include/Quest.h | 30 +++++++++++++++++++++++++++ src/Quest.cpp | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 1 deletion(-) create mode 100644 include/Quest.h create mode 100644 src/Quest.cpp diff --git a/Makefile b/Makefile index d2fe513..13a7119 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,7 @@ FLAGS_WIN32 = -lopengl32 -lmingw32 #-lSDL2_Image FLAGS = -m32 -Iinclude -Wall -Werror -lSDL2main -lSDL2 all: - @g++ src/main.cpp src/UIClass.cpp -o main $(FLAGS_LINUX) $(FLAGS) + @g++ src/main.cpp src/UIClass.cpp src/Quest.cpp -o main $(FLAGS_LINUX) $(FLAGS) win32: @g++ -L lib/ src/main.cpp src/UIClass.cpp -o main.exe $(FLAGS_WIN32) $(FLAGS) diff --git a/include/Quest.h b/include/Quest.h new file mode 100644 index 0000000..169124e --- /dev/null +++ b/include/Quest.h @@ -0,0 +1,30 @@ +#ifndef QUEST_H +#define QUEST_H + +#include +#include + +#define QUEST_LIMIT 5 +#define TOTAL_QUESTS 1 + +class Quest { +public: + char *title,*desc; + unsigned int xp; + Quest(); + Quest(const char *t,const char *d,unsigned int x); + ~Quest(); +}; + +class QuestHandler { +private: + unsigned char ccnt; + Quest *current[QUEST_LIMIT]; +public: + QuestHandler(); + int assign(const char *t); + int drop(const char *t); + int finish(const char *t); +}; + +#endif // QUEST_H diff --git a/src/Quest.cpp b/src/Quest.cpp new file mode 100644 index 0000000..52ab3a8 --- /dev/null +++ b/src/Quest.cpp @@ -0,0 +1,64 @@ +#include + +Quest QuestList[TOTAL_QUESTS]={ + Quest("Test","A test quest",0) +}; + +Quest::Quest(){ +} +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(;ititle,t)){ + for(i++;ititle,t)){ + j=current[i]->xp; + for(i++;i