Source:NetHack 3.3.0/flag.h

From NetHackWiki
Jump to navigation Jump to search

Below is the full text to flag.h from the source code of NetHack 3.3.0. To link to a particular line, write [[NetHack 3.3.0/flag.h#line123]], for example.

Warning! This is the source code from an old release. For the latest release, see Source code

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

1.    /*	SCCS Id: @(#)flag.h	3.3	1999/11/26	*/
2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3.    /* NetHack may be freely redistributed.  See license for details. */
4.    
5.    /* If you change the flag structure make sure you increment EDITLEVEL in   */
6.    /* patchlevel.h if needed.  Changing the instance_flags structure does	   */
7.    /* not require incrementing EDITLEVEL.					   */
8.    
9.    #ifndef FLAG_H
10.   #define FLAG_H
11.   
12.   /*
13.    * Persistent flags that are saved and restored with the game.
14.    *
15.    */
16.   
17.   struct flag {
18.   #ifdef AMIFLUSH
19.   	boolean  altmeta;	/* use ALT keys as META */
20.   	boolean  amiflush;	/* kill typeahead */
21.   #endif
22.   #ifdef	MFLOPPY
23.   	boolean  asksavedisk;
24.   #endif
25.   	boolean  autoquiver;	/* Automatically fill quiver */
26.   	boolean  beginner;
27.   #ifdef MAIL
28.   	boolean  biff;		/* enable checking for mail */
29.   #endif
30.   	boolean  botl;		/* partially redo status line */
31.   	boolean  botlx;		/* print an entirely new bottom line */
32.   	boolean  confirm;	/* confirm before hitting tame monsters */
33.   	boolean  debug;		/* in debugging mode */
34.   #define wizard	 flags.debug
35.   	boolean  end_own;	/* list all own scores */
36.   	boolean  explore;	/* in exploration mode */
37.   #ifdef OPT_DISPMAP
38.   	boolean  fast_map;	/* use optimized, less flexible map display */
39.   #endif
40.   #define discover flags.explore
41.   	boolean  female;
42.   	boolean  forcefight;
43.   	boolean  friday13;	/* it's Friday the 13th */
44.   	boolean  help;		/* look in data file for info about stuff */
45.   	boolean  ignintr;	/* ignore interrupts */
46.   #ifdef INSURANCE
47.   	boolean  ins_chkpt;	/* checkpoint as appropriate */
48.   #endif
49.   	boolean  invlet_constant; /* let objects keep their inventory symbol */
50.   	boolean  legacy;	/* print game entry "story" */
51.   	boolean  lit_corridor;	/* show a dark corr as lit if it is in sight */
52.   	boolean  made_amulet;
53.   	boolean  mon_moving;	/* monsters' turn to move */
54.   	boolean  move;
55.   	boolean  mv;
56.   	boolean  nap;		/* `timed_delay' option for display effects */
57.   	boolean  nopick;	/* do not pickup objects (as when running) */
58.   	boolean  null;		/* OK to send nulls to the terminal */
59.   #ifdef MAC
60.   	boolean  page_wait;	/* put up a --More-- after a page of messages */
61.   #endif
62.   	boolean  perm_invent;	/* keep full inventories up until dismissed */
63.   	boolean  pickup;	/* whether you pickup or move and look */
64.   
65.   	boolean  pushweapon;	/* When wielding, push old weapon into second slot */
66.   	boolean  rest_on_space; /* space means rest */
67.   	boolean  safe_dog;	/* give complete protection to the dog */
68.   #ifdef EXP_ON_BOTL
69.   	boolean  showexp;	/* show experience points */
70.   #endif
71.   #ifdef SCORE_ON_BOTL
72.   	boolean  showscore;	/* show score */
73.   #endif
74.   	boolean  silent;	/* whether the bell rings or not */
75.   	boolean  sortpack;	/* sorted inventory */
76.   	boolean  soundok;	/* ok to tell about sounds heard */
77.   	boolean  standout;	/* use standout for --More-- */
78.   	boolean  time;		/* display elapsed 'time' */
79.   	boolean  tombstone;	/* print tombstone */
80.   	boolean  toptenwin;	/* ending list in window instead of stdout */
81.   	boolean  verbose;	/* max battle info */
82.   	boolean  prayconfirm;	/* confirm before praying */
83.   	int	 end_top, end_around;	/* describe desired score list */
84.   	unsigned ident;		/* social security number for each monster */
85.   	unsigned moonphase;
86.   	unsigned long suppress_alert;
87.   #define NEW_MOON	0
88.   #define FULL_MOON	4
89.   	unsigned no_of_wizards; /* 0, 1 or 2 (wizard and his shadow) */
90.   	unsigned run;		/* 0: h (etc), 1: H (etc), 2: fh (etc) */
91.   				/* 3: FH, 4: ff+, 5: ff-, 6: FF+, 7: FF- */
92.   	int	 djinni_count, ghost_count;	/* potion effect tuning */
93.   	int	 pickup_burden;		/* maximum burden before prompt */
94.   	char	 inv_order[MAXOCLASSES];
95.   	char	 pickup_types[MAXOCLASSES];
96.   	char	 end_disclose[5];	/* disclose various info upon exit */
97.   	char	 menu_style;	/* User interface style setting */
98.   #ifdef AMII_GRAPHICS
99.   	int numcols;
100.  	unsigned short amii_dripens[ 20 ]; /* DrawInfo Pens currently there are 13 in v39 */
101.  	AMII_COLOR_TYPE amii_curmap[ AMII_MAXCOLORS ]; /* colormap */
102.  #endif
103.  
104.  	/* KMH, role patch -- Variables used during startup.
105.  	 *
106.  	 * If the user wishes to select a role, race, gender, and/or alignment
107.  	 * during startup, the choices should be recorded here.  This
108.  	 * might be specified through command-line options, environmental
109.  	 * variables, a popup dialog box, menus, etc.
110.  	 *
111.  	 * These values are each an index into an array.  They are not
112.  	 * characters or letters, because that limits us to 26 roles.
113.  	 * They are not booleans, because someday someone may need a neuter
114.  	 * gender.  Negative values are used to indicate that the user
115.  	 * hasn't yet specified that particular value.	If you determine
116.  	 * that the user wants a random choice, then you should set an
117.  	 * appropriate random value; if you just left the negative value,
118.  	 * the user would be asked again!
119.  	 *
120.  	 * These variables are stored here because the u structure is
121.  	 * cleared during character initialization, and because the
122.  	 * flags structure is restored for saved games.  Thus, we can
123.  	 * use the same parameters to build the role entry for both
124.  	 * new and restored games.
125.  	 *
126.  	 * These variables should not be referred to after the character
127.  	 * is initialized or restored (specifically, after role_init()
128.  	 * is called).
129.  	 */
130.  	int	 initrole;	/* starting role      (index into roles[])   */
131.  	int	 initrace;	/* starting race      (index into races[])   */
132.  	int	 initgend;	/* starting gender    (index into genders[]) */
133.  	int	 initalign;	/* starting alignment (index into aligns[])  */
134.  	int	 pantheon;	/* deity selection for priest character */
135.  };
136.  
137.  /*
138.   * Flags that are set each time the game is started.
139.   * These are not saved with the game.
140.   *
141.   */
142.  
143.  struct instance_flags {
144.  	boolean  cbreak;	/* in cbreak mode, rogue format */
145.  	boolean  DECgraphics;	/* use DEC VT-xxx extended character set */
146.  	boolean  echo;		/* 1 to echo characters */
147.  #ifdef TTY_GRAPHICS
148.  	boolean  extmenu;	/* extended commands use menu interface */
149.  #endif
150.  	boolean  IBMgraphics;	/* use IBM extended character set */
151.  	unsigned msg_history;	/* hint: # of top lines to save */
152.  	boolean  num_pad;	/* use numbers for movement commands */
153.  	boolean  news;		/* print news */
154.  	boolean  window_inited; /* true if init_nhwindows() completed */
155.  
156.  #ifdef WIZARD
157.  	boolean  sanity_check;	/* run sanity checks */
158.  #endif
159.  #ifdef TEXTCOLOR
160.  	boolean  hilite_pet;	/* hilight pets on monochome displays */
161.  	boolean  use_color;	/* use color graphics */
162.  #endif
163.  #ifdef MAC_GRAPHICS_ENV
164.  	boolean  large_font;	/* draw in larger fonts (say, 12pt instead
165.  				   of 9pt) */
166.  	boolean  MACgraphics;	/* use Macintosh extended character set, as
167.  				   as defined in the special font HackFont */
168.  	unsigned  use_stone;		/* use the stone ppats */
169.  #endif
170.  #ifdef MAC
171.  	boolean  popup_dialog;	/* put queries in pop up dialogs instead of
172.  				   in the message window */
173.  #endif
174.  #ifdef MICRO
175.  	boolean  BIOS;		/* use IBM or ST BIOS calls when appropriate */
176.  	boolean  rawio;		/* whether can use rawio (IOCTL call) */
177.  #endif
178.  #ifdef MSDOS
179.  	boolean hasvga;		/* has a vga adapter */
180.  	boolean usevga;		/* use the vga adapter */
181.  	boolean has8514;
182.  	boolean use8514;
183.  	boolean hasvesa;
184.  	boolean usevesa;
185.  	boolean grmode;		/* currently in graphics mode */
186.  #endif
187.  #if defined(MSDOS) || defined(WIN32)
188.  	boolean hassound;	/* has a sound card */
189.  	boolean usesound;	/* use the sound card */
190.  	boolean usepcspeaker;	/* use the pc speaker */
191.  	boolean preload_tiles;	/* preload the tiles into RAM */
192.  	boolean tile_view;
193.  	boolean over_view;
194.  	boolean traditional_view;
195.  #endif
196.  #ifdef LAN_FEATURES
197.  	boolean lan_mail;	/* mail is initialized */
198.  	boolean lan_mail_fetched; /* mail is awaiting display */
199.  #endif
200.  };
201.  
202.  extern NEARDATA struct flag flags;
203.  extern NEARDATA struct instance_flags iflags;
204.  
205.  #endif /* FLAG_H */