1
0
Fork 0
mirror of https://codeberg.org/noisytoot/notnotdnethack.git synced 2025-04-28 11:25:11 +01:00
notnotdnethack/include/quest.h
Ron Nazarov f71eded468
Merge remote-tracking branch 'notdnethack/master'
Compiles without warnings.  This includes the new Fire/Frost Brand
base type rules from ndnh, which differ from both the old ndnh rules,
the old and new dnh rules, and the old nndnh rules: crow quills are
banned, but diskoses and isamuseis are allowed.  I don't think this
makes sense and I'll probably change it later, but I'm not sure how
exactly yet.
2025-01-13 22:02:32 +00:00

70 lines
2.8 KiB
C

/* SCCS Id: @(#)quest.h 3.4 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 */
/*7*/
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 */
/*10*/
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 */
/*16*/
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 */
/*20*/
/* keep track of leader presence/absence even if leader is
polymorphed, raised from dead, etc */
Bitfield(leader_is_dead,1);
Bitfield(second_thoughts,1); /*turned stag AFTER completing version 1 of the quest*/
Bitfield(fakeleader_greet_1,1);
Bitfield(fakeleader_greet_2,1);
/*24*/
Bitfield(moon_close,1);
Bitfield(uh_shop_created,1);
/*26*/
int time_on_home;
#define MAX_HOME_TIMER 255
/* Note: should be > 1 (urrent 70->6 */
#define ANA_HOME_PROB (70 - (quest_status.time_on_home+1)/4)
#define ANA_SPAWN_TWO (quest_status.time_on_home > MAX_HOME_TIMER/4)
#define ANA_SPAWN_THREE (quest_status.time_on_home > MAX_HOME_TIMER/2)
#define ANA_SPAWN_FOUR (quest_status.time_on_home > MAX_HOME_TIMER*3/4)
/*30*/
long time_doing_quest;
unsigned leader_m_id;
};
//Random spawns invade city:
#define UH_QUEST_TIME_0 16000
//Citizens begin turning outside cathedral:
#define UH_QUEST_TIME_1 28000
//Citizens begin turning inside cathedral, stake fails:
#define UH_QUEST_TIME_2 32000
//Amalia first becomes vulnerable to turning:
#define UH_QUEST_TIME_3 38000
//Quest "failed", everyone turns instantly:
#define UH_QUEST_TIME_4 48000
#define MAX_QUEST_TRIES 7 /* exceed this and you "fail" */
#define MIN_QUEST_ALIGN ((Role_if(PM_CONVICT) || Role_if(PM_MADMAN)) ? 4 : 20) /* at least this align.record to start */
/* note: align 20 matches "pious" as reported by enlightenment (cmd.c) */
/* note: align 20 matches "stridently" as reported by enlightenment (cmd.c) */
#define MIN_QUEST_LEVEL 14 /* at least this u.ulevel to start */
#define GNOMISH_MIN_QUEST_LEVEL 6 /* at least this u.ulevel to start */
/* note: exp.lev. 14 is threshold level for 5th rank (class title, role.c) */
#endif /* QUEST_H */