/*	SCCS Id: @(#)qtext.h	3.2	92/01/22	*/
/* Copyright (c) Mike Stephenson 1991.				  */
/* NetHack may be freely redistributed.  See license for details. */

#ifndef QTEXT_H
#define QTEXT_H

#define N_HDR	13		/* number of classes + 1 */
#define COMMON_ID	'-'	/* common message id value */

struct qtmsg {
	int	msgnum;
	char	delivery;
	long	offset,
		size;
};

#ifdef MAKEDEFS_C

#define N_MSG	100		/* arbitrary */

struct msghdr {
	int	n_msg;
	struct	qtmsg	qt_msg[N_MSG];
};

struct	qthdr {
	int	n_hdr;
	char	id[N_HDR];
	long	offset[N_HDR];
};

/* Error message macros */
#define CREC_IN_MSG	"Control record encountered during message - line %d\n"
#define DUP_MSG		"Duplicate message number at line %d\n"
#define END_NOT_IN_MSG	"End record encountered before message - line %d\n"
#define UNREC_CREC	"Unrecognized Control record at line %d\n"
#define OUT_OF_HEADERS	"Too many message types (line %d)\nAdjust N_HDR in qtext.h and recompile.\n"
#define OUT_OF_MESSAGES	"Too many messages in class (line %d)\nAdjust N_MSG in qtext.h and recompile.\n"

#else	/* !MAKEDEFS_C */

struct	qtlists {
	struct	qtmsg	*common,
			*chclass;
};


/*
 *	Quest message defines.  Used in quest.c to trigger off "realistic"
 *	dialogue to the player.
 */
#define QT_FIRSTTIME	 1
#define QT_NEXTTIME	 2
#define QT_OTHERTIME	 3

#define QT_GUARDTALK	 5	/* 5 random things for guards to say */

#define QT_FIRSTLEADER	10
#define QT_NEXTLEADER	11
#define QT_OTHERLEADER	12
#define QT_LASTLEADER	13
#define QT_BADLEVEL	14
#define QT_BADALIGN	15
#define QT_ASSIGNQUEST	16

#define QT_ENCOURAGE	20	/* 1-10 random encouragement messages */

#define QT_FIRSTLOCATE	30
#define QT_NEXTLOCATE	31

#define QT_FIRSTGOAL	40
#define QT_NEXTGOAL	41

#define QT_FIRSTNEMESIS	50
#define QT_NEXTNEMESIS	51
#define QT_OTHERNEMESIS	52
#define QT_NEMWANTSIT	53	/* you somehow got the artifact */

#define QT_DISCOURAGE	60	/* 1-10 random maledictive messages */

#define QT_GOTIT	70

#define QT_KILLEDNEM	80
#define QT_OFFEREDIT	81

#define QT_POSTHANKS	90
#define QT_HASAMULET	91

/*
 *	Message defines for common text used in maledictions.
 */
#define QT_ANGELIC	10
#define QTN_ANGELIC	10

#define QT_DEMONIC	30
#define QTN_DEMONIC	20

#endif	/* MAKEDEFS_C */

#endif /* QTEXT_H */
