/* *************************************************************************
* File: quest.h Part of CircleMUD *
* Purpose: To provide special quest-related code. *
* *
* Morgaelin - quest.h *
* Copyright (C) 1997 MS *
************************************************************************* */
/* Aquest related defines **********************************************/
#define AQ_UNDEFINED -1 /* (R) Quest unavailable */
#define AQ_OBJECT 0 /* Player must retreive object */
#define AQ_ROOM 1 /* Player must reach room */
#define AQ_MOB_FIND 2 /* Player must find mob */
#define AQ_MOB_KILL 3 /* Player must kill mob */
#define AQ_MOB_SAVE 4 /* Player must save mob */
#define AQ_RETURN_OBJ 5 /* Player gives object to val0 */
#define NUM_AQ_TYPES 6
/* AQ Flags (much room for expansion) ********************************* */
#define AQ_REPEATABLE (1 << 0) /* Quest can be repeated =( */
#define NUM_AQ_FLAGS 1
/* Main quest struct */
struct aq_data {
int virtual; /* Virtual nr of the quest */
int mob_vnum; /* Vnum of the questmaster offering */
char *short_desc; /* For qlist and the sort */
char *desc; /* Description of the quest */
char *info; /* Long help for quest */
char *ending; /* Ending displayed */
long flags; /* Flags (repeatable, etc */
int type; /* Quest type */
int target; /* Target value */
int exp; /* Amount of experience for the quest */
int value[4]; /* Expansion values */
sh_int next_quest; /* Link to next quest, -1 is end */
};
void list_quests(struct char_data *ch, int questmaster);
void generic_complete_quest(struct char_data *ch);
void autoquest_trigger_check(struct char_data *ch, struct char_data *vict,
struct obj_data *object, int type);
int real_quest(int vnum);
void add_completed_quest_u(struct char_file_u *player, int num);
int is_complete(struct char_data *ch, int vnum);
int find_quest_by_qmnum(int qm, int num);
void add_completed_quest(struct char_data *player, int num);
SPECIAL(questmaster);