Add questpgr formatting codes to support pronouns for leader,
nemesis, deity, and artifact.
%lh -> "he" or "she" for leader; %nh for nemesis; %dh for hero's god;
%li -> "him" or "her"; likewise %ni, %di;
%lj -> "his" or "her"; and %nj, %dj;
H, I, and J modifiers yield capitalized form of same.
%oh -> "it" or "they" for artifact (Eyes of the Overworld is plural);
%oi -> "it" or "them";
%oj -> "its" or "their"; plus capitalization with uppercase modifiers.
Also, %O yields shortened artifact name ("the Foo" in place of "the Foo
of Bar"). These provide support for terser summary lines, but can also
be used in the regular quest text passages.
A couple of nemeses don't specify gender. The random choices need
to be made early so that the leaders' messages can get them right. This
chooses during role initialization and then uses that result once the
corresponding monster is eventually created. It does the same for leader
even though no current leader needs it, and for deity too.
49 lines
2.0 KiB
C
49 lines
2.0 KiB
C
/* SCCS Id: @(#)quest.h 3.5 1992/11/15 */
|
|
/* Copyright (c) Mike Stephenson 1991. */
|
|
/* NetHack may be freely redistributed. See license for details. */
|
|
|
|
#ifndef QUEST_H
|
|
#define QUEST_H
|
|
|
|
struct q_score { /* Quest "scorecard" */
|
|
Bitfield(first_start,1); /* only set the first time */
|
|
Bitfield(met_leader,1); /* has met the leader */
|
|
Bitfield(not_ready,3); /* rejected due to alignment, etc. */
|
|
Bitfield(pissed_off,1); /* got the leader angry */
|
|
Bitfield(got_quest,1); /* got the quest assignment */
|
|
|
|
Bitfield(first_locate,1); /* only set the first time */
|
|
Bitfield(met_intermed,1); /* used if the locate is a person. */
|
|
Bitfield(got_final,1); /* got the final quest assignment */
|
|
|
|
Bitfield(made_goal,3); /* # of times on goal level */
|
|
Bitfield(met_nemesis,1); /* has met the nemesis before */
|
|
Bitfield(killed_nemesis,1); /* set when the nemesis is killed */
|
|
Bitfield(in_battle,1); /* set when nemesis fighting you */
|
|
|
|
Bitfield(cheater,1); /* set if cheating detected */
|
|
Bitfield(touched_artifact,1); /* for a special message */
|
|
Bitfield(offered_artifact,1); /* offered to leader */
|
|
Bitfield(got_thanks,1); /* final message from leader */
|
|
|
|
/* used by questpgr code when messages want to use pronouns
|
|
(set up at game start instead of waiting until monster creation;
|
|
1 bit each would suffice--nobody involved is actually neuter) */
|
|
Bitfield(ldrgend,2); /* leader's gender: 0=male, 1=female, 2=neuter */
|
|
Bitfield(nemgend,2); /* nemesis's gender */
|
|
Bitfield(godgend,2); /* deity's gender */
|
|
|
|
/* keep track of leader presence/absence even if leader is
|
|
polymorphed, raised from dead, etc */
|
|
Bitfield(leader_is_dead,1);
|
|
unsigned leader_m_id;
|
|
};
|
|
|
|
#define MAX_QUEST_TRIES 7 /* exceed this and you "fail" */
|
|
#define MIN_QUEST_ALIGN 20 /* at least this align.record to start */
|
|
/* note: align 20 matches "pious" as reported by enlightenment (cmd.c) */
|
|
#define MIN_QUEST_LEVEL 14 /* at least this u.ulevel to start */
|
|
/* note: exp.lev. 14 is threshold level for 5th rank (class title, role.c) */
|
|
|
|
#endif /* QUEST_H */
|