/
area/city/
area/crypts/
area/guilds/
area/psuedowild/
area/religion/
data/documents/MPDocs/
data/html/
data/mobprogs/
data/quest/
data/world/
data/world/_utilities/
data/world/images/
design/html/
notes/
player/
// 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)