00001 /* SCCS Id: @(#)quest.h 3.4 1992/11/15 */ 00002 /* Copyright (c) Mike Stephenson 1991. */ 00003 /* NetHack may be freely redistributed. See license for details. */ 00004 00005 #ifndef QUEST_H 00006 #define QUEST_H 00007 00008 struct q_score { /* Quest "scorecard" */ 00009 Bitfield(first_start,1); /* only set the first time */ 00010 Bitfield(met_leader,1); /* has met the leader */ 00011 Bitfield(not_ready,3); /* rejected due to alignment, etc. */ 00012 Bitfield(pissed_off,1); /* got the leader angry */ 00013 Bitfield(got_quest,1); /* got the quest assignment */ 00014 00015 Bitfield(first_locate,1); /* only set the first time */ 00016 Bitfield(met_intermed,1); /* used if the locate is a person. */ 00017 Bitfield(got_final,1); /* got the final quest assignment */ 00018 00019 Bitfield(made_goal,3); /* # of times on goal level */ 00020 Bitfield(met_nemesis,1); /* has met the nemesis before */ 00021 Bitfield(killed_nemesis,1); /* set when the nemesis is killed */ 00022 Bitfield(in_battle,1); /* set when nemesis fighting you */ 00023 00024 Bitfield(cheater,1); /* set if cheating detected */ 00025 Bitfield(touched_artifact,1); /* for a special message */ 00026 Bitfield(offered_artifact,1); /* offered to leader */ 00027 Bitfield(got_thanks,1); /* final message from leader */ 00028 00029 /* keep track of leader presence/absence even if leader is 00030 polymorphed, raised from dead, etc */ 00031 Bitfield(leader_is_dead,1); 00032 unsigned leader_m_id; 00033 }; 00034 00035 #define MAX_QUEST_TRIES 7 /* exceed this and you "fail" */ 00036 #define MIN_QUEST_ALIGN 20 /* at least this align.record to start */ 00037 /* note: align 20 matches "pious" as reported by enlightenment (cmd.c) */ 00038 #define MIN_QUEST_LEVEL 10 /* at least this u.ulevel to start */ 00039 /* note: exp.lev. 14 is threshold level for 5th rank (class title, role.c) */ 00040 00041 #endif /* QUEST_H */