OSDN Git Service

fix #36952
[jnethack/source.git] / include / quest.h
1 /* NetHack 3.6  quest.h $NHDT-Date: 1432512779 2015/05/25 00:12:59 $  $NHDT-Branch: master $:$NHDT-Revision: 1.10 $ */
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
8 struct 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     /* used by questpgr code when messages want to use pronouns
30        (set up at game start instead of waiting until monster creation;
31        1 bit each would suffice--nobody involved is actually neuter) */
32     Bitfield(ldrgend, 2); /* leader's gender: 0=male, 1=female, 2=neuter */
33     Bitfield(nemgend, 2); /* nemesis's gender */
34     Bitfield(godgend, 2); /* deity's gender */
35
36     /* keep track of leader presence/absence even if leader is
37        polymorphed, raised from dead, etc */
38     Bitfield(leader_is_dead, 1);
39     unsigned leader_m_id;
40 };
41
42 #define MAX_QUEST_TRIES 7  /* exceed this and you "fail" */
43 #define MIN_QUEST_ALIGN 20 /* at least this align.record to start */
44 /* note: align 20 matches "pious" as reported by enlightenment (cmd.c) */
45 #define MIN_QUEST_LEVEL 14 /* at least this u.ulevel to start */
46 /* note: exp.lev. 14 is threshold level for 5th rank (class title, role.c) */
47
48 #endif /* QUEST_H */