// quest.h // Houses Quest stuff #define LEVEL_NEWBIE 1 #define MAX_QUEST 40 #define GQUEST_TEXT_FILE "../data/quest/quest_text.txt" #define QUEST_FILE "../data/quest/quests.txt" typedef struct quest_type { struct quest_type * next; /* next: it's vital this is the first field! */ char * name; /* Name of the Quest (Internal Name */ char * long_name; /* Longname: What the player sees in Journal */ char * description; /* Quick Overview of the quest */ int min_level; /* Min Level for quest to be given */ int steps; /* Total steps involved with the quest */ int reward_qps; /* How many QPS to be rewarded on completion */ int reward_gold; /* How much Gold to give the player */ int reward_obj; /* If not -1, what object to give them */ int number; /* Number of quest */ } QUEST; extern const struct quest_type quest_table[]; void load_quest (void); void do_mpstartquest (CHAR_DATA * ch, char *argument); void do_mp_setquest (CHAR_DATA * ch, char *argument); void do_mp_queststep (CHAR_DATA * ch, char *argument); void do_mp_questreward (CHAR_DATA * ch, char *argument); bool check_queststep (CHAR_DATA * ch, CHAR_DATA * mob); QUEST *quest_lookup (char *keyword); /* * Gquest_text.c */ typedef struct gquest_text_data { struct gquest_text * next; /* next: it's vital this is the first field! */ char * questname;/*Internal name of the quest */ int step; /*Step this text is for */ char * text; /* The actual text to display on Gquest cmd */ } GQUEST_TEXT; /* * Gquest_edit.c */ void do_qedit (CHAR_DATA * ch, char *argument); /* Macros */ #define EDIT_QUEST(ch, quest) ( quest = (QUEST *) ch->desc->pEdit ) #define QEDIT( fun ) bool fun(CHAR_DATA *ch, char*argument)