dbx/cnf/
dbx/lib/
dbx/lib/misc/
dbx/lib/text/help/
dbx/lib/world/
dbx/lib/world/qst/
dbx/src/
/* *************************************************************************
*    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);