1/*	SCCS Id: @(#)quest.h	3.4	1992/11/15	*/
2/* Copyright (c) Mike Stephenson 1991.				  */
3/* NetHack may be freely redistributed.  See license for details. */
4
5#ifndef QUEST_H
6#define QUEST_H
7
8struct q_score {			/* Quest "scorecard" */
9	Bitfield(first_start,1);	/* only set the first time */
10	Bitfield(met_leader,1);		/* has met the leader */
11	Bitfield(not_ready,3);		/* rejected due to alignment, etc. */
12	Bitfield(pissed_off,1);		/* got the leader angry */
13	Bitfield(got_quest,1);		/* got the quest assignment */
14
15	Bitfield(first_locate,1);	/* only set the first time */
16	Bitfield(met_intermed,1);	/* used if the locate is a person. */
17	Bitfield(got_final,1);		/* got the final quest assignment */
18
19	Bitfield(made_goal,3);		/* # of times on goal level */
20	Bitfield(met_nemesis,1);	/* has met the nemesis before */
21	Bitfield(killed_nemesis,1);	/* set when the nemesis is killed */
22	Bitfield(in_battle,1);		/* set when nemesis fighting you */
23
24	Bitfield(cheater,1);		/* set if cheating detected */
25	Bitfield(touched_artifact,1);	/* for a special message */
26	Bitfield(offered_artifact,1);	/* offered to leader */
27	Bitfield(got_thanks,1);		/* final message from leader */
28
29	/* keep track of leader presence/absence even if leader is
30	   polymorphed, raised from dead, etc */
31	Bitfield(leader_is_dead,1);
32	unsigned leader_m_id;
33};
34
35#define MAX_QUEST_TRIES  7	/* exceed this and you "fail" */
36#define MIN_QUEST_ALIGN 20	/* at least this align.record to start */
37  /* note: align 20 matches "pious" as reported by enlightenment (cmd.c) */
38#define MIN_QUEST_LEVEL 14	/* at least this u.ulevel to start */
39  /* note: exp.lev. 14 is threshold level for 5th rank (class title, role.c) */
40
41#endif /* QUEST_H */
42