<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=Source%3ANetHack_3.4.0%2Fdungeon.h</id>
	<title>Source:NetHack 3.4.0/dungeon.h - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://nethackwiki.com/index.php?action=history&amp;feed=atom&amp;title=Source%3ANetHack_3.4.0%2Fdungeon.h"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.4.0/dungeon.h&amp;action=history"/>
	<updated>2026-06-04T12:09:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.5</generator>
	<entry>
		<id>https://nethackwiki.com/index.php?title=Source:NetHack_3.4.0/dungeon.h&amp;diff=29251&amp;oldid=prev</id>
		<title>Kernigh bot: NetHack 3.4.0/dungeon.h moved to Source:NetHack 3.4.0/dungeon.h: Robot: moved page</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.4.0/dungeon.h&amp;diff=29251&amp;oldid=prev"/>
		<updated>2008-03-04T12:47:07Z</updated>

		<summary type="html">&lt;p&gt;&lt;a href=&quot;/wiki/NetHack_3.4.0/dungeon.h&quot; class=&quot;mw-redirect&quot; title=&quot;NetHack 3.4.0/dungeon.h&quot;&gt;NetHack 3.4.0/dungeon.h&lt;/a&gt; moved to &lt;a href=&quot;/wiki/Source:NetHack_3.4.0/dungeon.h&quot; title=&quot;Source:NetHack 3.4.0/dungeon.h&quot;&gt;Source:NetHack 3.4.0/dungeon.h&lt;/a&gt;: Robot: moved page&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:47, 4 March 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Kernigh bot</name></author>
		
	</entry>
	<entry>
		<id>https://nethackwiki.com/index.php?title=Source:NetHack_3.4.0/dungeon.h&amp;diff=12127&amp;oldid=prev</id>
		<title>Jaytbot: Automated source code upload</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.4.0/dungeon.h&amp;diff=12127&amp;oldid=prev"/>
		<updated>2006-09-25T20:20:13Z</updated>

		<summary type="html">&lt;p&gt;Automated source code upload&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Below is the full text to '''dungeon.h''' from the [[NetHack 3.4.0 source code|source code]] of [[NetHack 3.4.0]]. To link to a particular line, write [[NetHack 3.4.0/dungeon.h#line123|&amp;lt;nowiki&amp;gt;[[NetHack 3.4.0/dungeon.h#line123]]&amp;lt;/nowiki&amp;gt;]], for example.&lt;br /&gt;
&lt;br /&gt;
'''Warning!''' This is the source code from an old release. For the latest release, see [[Source code]]&lt;br /&gt;
&lt;br /&gt;
{{NGPL}}&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line1&amp;quot;&amp;gt;1.    /*	SCCS Id: @(#)dungeon.h	3.4	1999/07/02	*/&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line3&amp;quot;&amp;gt;3.    /* NetHack may be freely redistributed.  See license for details. */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line4&amp;quot;&amp;gt;4.    &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line5&amp;quot;&amp;gt;5.    #ifndef DUNGEON_H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6.    #define DUNGEON_H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line7&amp;quot;&amp;gt;7.    &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line8&amp;quot;&amp;gt;8.    typedef struct d_flags {	/* dungeon/level type flags */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9.    	Bitfield(town, 1);	/* is this a town? (levels only) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10.   	Bitfield(hellish, 1);	/* is this part of hell? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11.   	Bitfield(maze_like, 1); /* is this a maze? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line12&amp;quot;&amp;gt;12.   	Bitfield(rogue_like, 1); /* is this an old-fashioned presentation? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line13&amp;quot;&amp;gt;13.   	Bitfield(align, 3);	/* dungeon alignment. */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line14&amp;quot;&amp;gt;14.   	Bitfield(unused, 1);	/* etc... */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line15&amp;quot;&amp;gt;15.   } d_flags;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line16&amp;quot;&amp;gt;16.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line17&amp;quot;&amp;gt;17.   typedef struct d_level {	/* basic dungeon level element */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line18&amp;quot;&amp;gt;18.   	xchar	dnum;		/* dungeon number */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line19&amp;quot;&amp;gt;19.   	xchar	dlevel;		/* level number */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line20&amp;quot;&amp;gt;20.   } d_level;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line21&amp;quot;&amp;gt;21.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line22&amp;quot;&amp;gt;22.   typedef struct s_level {	/* special dungeon level element */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line23&amp;quot;&amp;gt;23.   	struct	s_level *next;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line24&amp;quot;&amp;gt;24.   	d_level dlevel;		/* dungeon &amp;amp; level numbers */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line25&amp;quot;&amp;gt;25.   	char	proto[15];	/* name of prototype file (eg. &amp;quot;tower&amp;quot;) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line26&amp;quot;&amp;gt;26.   	char	boneid;		/* character to id level in bones files */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line27&amp;quot;&amp;gt;27.   	uchar	rndlevs;	/* no. of randomly available similar levels */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line28&amp;quot;&amp;gt;28.   	d_flags flags;		/* type flags */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line29&amp;quot;&amp;gt;29.   } s_level;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line30&amp;quot;&amp;gt;30.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line31&amp;quot;&amp;gt;31.   typedef struct stairway {	/* basic stairway identifier */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line32&amp;quot;&amp;gt;32.   	xchar	sx, sy;		/* x / y location of the stair */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line33&amp;quot;&amp;gt;33.   	d_level tolev;		/* where does it go */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line34&amp;quot;&amp;gt;34.   	char	up;		/* what type of stairway (up/down) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line35&amp;quot;&amp;gt;35.   } stairway;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line36&amp;quot;&amp;gt;36.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line37&amp;quot;&amp;gt;37.   /* level region types */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line38&amp;quot;&amp;gt;38.   #define LR_DOWNSTAIR 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line39&amp;quot;&amp;gt;39.   #define LR_UPSTAIR 1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line40&amp;quot;&amp;gt;40.   #define LR_PORTAL 2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line41&amp;quot;&amp;gt;41.   #define LR_BRANCH 3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line42&amp;quot;&amp;gt;42.   #define LR_TELE 4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line43&amp;quot;&amp;gt;43.   #define LR_UPTELE 5&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line44&amp;quot;&amp;gt;44.   #define LR_DOWNTELE 6&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line45&amp;quot;&amp;gt;45.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line46&amp;quot;&amp;gt;46.   typedef struct dest_area {	/* non-stairway level change indentifier */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line47&amp;quot;&amp;gt;47.   	xchar	lx, ly;		/* &amp;quot;lower&amp;quot; left corner (near [0,0]) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line48&amp;quot;&amp;gt;48.   	xchar	hx, hy;		/* &amp;quot;upper&amp;quot; right corner (near [COLNO,ROWNO]) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line49&amp;quot;&amp;gt;49.   	xchar	nlx, nly;	/* outline of invalid area */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line50&amp;quot;&amp;gt;50.   	xchar	nhx, nhy;	/* opposite corner of invalid area */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line51&amp;quot;&amp;gt;51.   } dest_area;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line52&amp;quot;&amp;gt;52.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line53&amp;quot;&amp;gt;53.   typedef struct dungeon {	/* basic dungeon identifier */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line54&amp;quot;&amp;gt;54.   	char	dname[24];	/* name of the dungeon (eg. &amp;quot;Hell&amp;quot;) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line55&amp;quot;&amp;gt;55.   	char	proto[15];	/* name of prototype file (eg. &amp;quot;tower&amp;quot;) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line56&amp;quot;&amp;gt;56.   	char	boneid;		/* character to id dungeon in bones files */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line57&amp;quot;&amp;gt;57.   	d_flags flags;		/* dungeon flags */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line58&amp;quot;&amp;gt;58.   	xchar	entry_lev;	/* entry level */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line59&amp;quot;&amp;gt;59.   	xchar	num_dunlevs;	/* number of levels in this dungeon */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line60&amp;quot;&amp;gt;60.   	xchar	dunlev_ureached; /* how deep you have been in this dungeon */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line61&amp;quot;&amp;gt;61.   	int	ledger_start,	/* the starting depth in &amp;quot;real&amp;quot; terms */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line62&amp;quot;&amp;gt;62.   		depth_start;	/* the starting depth in &amp;quot;logical&amp;quot; terms */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line63&amp;quot;&amp;gt;63.   } dungeon;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line64&amp;quot;&amp;gt;64.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line65&amp;quot;&amp;gt;65.   /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line66&amp;quot;&amp;gt;66.    * A branch structure defines the connection between two dungeons.  They&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line67&amp;quot;&amp;gt;67.    * will be ordered by the dungeon number/level number of 'end1'.  Ties&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line68&amp;quot;&amp;gt;68.    * are resolved by 'end2'.  'Type' uses 'end1' arbitrarily as the primary&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line69&amp;quot;&amp;gt;69.    * point.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line70&amp;quot;&amp;gt;70.    */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line71&amp;quot;&amp;gt;71.   typedef struct branch {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line72&amp;quot;&amp;gt;72.       struct branch *next;	/* next in the branch chain */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line73&amp;quot;&amp;gt;73.       int		  id;		/* branch identifier */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line74&amp;quot;&amp;gt;74.       int		  type;		/* type of branch */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line75&amp;quot;&amp;gt;75.       d_level	  end1;		/* &amp;quot;primary&amp;quot; end point */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line76&amp;quot;&amp;gt;76.       d_level	  end2;		/* other end point */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line77&amp;quot;&amp;gt;77.       boolean	  end1_up;	/* does end1 go up? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line78&amp;quot;&amp;gt;78.   } branch;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line79&amp;quot;&amp;gt;79.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line80&amp;quot;&amp;gt;80.   /* branch types */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line81&amp;quot;&amp;gt;81.   #define BR_STAIR   0	/* &amp;quot;Regular&amp;quot; connection, 2 staircases. */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line82&amp;quot;&amp;gt;82.   #define BR_NO_END1 1	/* &amp;quot;Regular&amp;quot; connection.  However, no stair from  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line83&amp;quot;&amp;gt;83.   			/*	end1 to end2.  There is a stair from end2 */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line84&amp;quot;&amp;gt;84.   			/*	to end1.				  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line85&amp;quot;&amp;gt;85.   #define BR_NO_END2 2	/* &amp;quot;Regular&amp;quot; connection.  However, no stair from  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line86&amp;quot;&amp;gt;86.   			/*	end2 to end1.  There is a stair from end1 */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line87&amp;quot;&amp;gt;87.   			/*	to end2.				  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line88&amp;quot;&amp;gt;88.   #define BR_PORTAL  3	/* Connection by magic portals (traps) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line89&amp;quot;&amp;gt;89.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line90&amp;quot;&amp;gt;90.   &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line91&amp;quot;&amp;gt;91.   /* A particular dungeon contains num_dunlevs d_levels with dlevel 1..&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line92&amp;quot;&amp;gt;92.    * num_dunlevs.  Ledger_start and depth_start are bases that are added&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line93&amp;quot;&amp;gt;93.    * to the dlevel of a particular d_level to get the effective ledger_no&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line94&amp;quot;&amp;gt;94.    * and depth for that d_level.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line95&amp;quot;&amp;gt;95.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line96&amp;quot;&amp;gt;96.    * Ledger_no is a bookkeeping number that gives a unique identifier for a&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line97&amp;quot;&amp;gt;97.    * particular d_level (for level.?? files, e.g.).&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line98&amp;quot;&amp;gt;98.    *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line99&amp;quot;&amp;gt;99.    * Depth corresponds to the number of floors below the surface.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line100&amp;quot;&amp;gt;100.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line101&amp;quot;&amp;gt;101.  #define Is_astralevel(x)	(on_level(x, &amp;amp;astral_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line102&amp;quot;&amp;gt;102.  #define Is_earthlevel(x)	(on_level(x, &amp;amp;earth_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line103&amp;quot;&amp;gt;103.  #define Is_waterlevel(x)	(on_level(x, &amp;amp;water_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line104&amp;quot;&amp;gt;104.  #define Is_firelevel(x)		(on_level(x, &amp;amp;fire_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line105&amp;quot;&amp;gt;105.  #define Is_airlevel(x)		(on_level(x, &amp;amp;air_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line106&amp;quot;&amp;gt;106.  #define Is_medusa_level(x)	(on_level(x, &amp;amp;medusa_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line107&amp;quot;&amp;gt;107.  #define Is_oracle_level(x)	(on_level(x, &amp;amp;oracle_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line108&amp;quot;&amp;gt;108.  #define Is_valley(x)		(on_level(x, &amp;amp;valley_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line109&amp;quot;&amp;gt;109.  #define Is_asmo_level(x)	(on_level(x, &amp;amp;asmodeus_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line110&amp;quot;&amp;gt;110.  #define Is_baal_level(x)	(on_level(x, &amp;amp;baalzebub_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line111&amp;quot;&amp;gt;111.  #define Is_wiz1_level(x)	(on_level(x, &amp;amp;wiz1_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line112&amp;quot;&amp;gt;112.  #define Is_wiz2_level(x)	(on_level(x, &amp;amp;wiz2_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line113&amp;quot;&amp;gt;113.  #define Is_wiz3_level(x)	(on_level(x, &amp;amp;wiz3_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line114&amp;quot;&amp;gt;114.  #define Is_sanctum(x)		(on_level(x, &amp;amp;sanctum_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line115&amp;quot;&amp;gt;115.  #define Is_portal_level(x)	(on_level(x, &amp;amp;portal_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line116&amp;quot;&amp;gt;116.  #define Is_rogue_level(x)	(on_level(x, &amp;amp;rogue_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line117&amp;quot;&amp;gt;117.  #define Is_stronghold(x)	(on_level(x, &amp;amp;stronghold_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line118&amp;quot;&amp;gt;118.  #define Is_bigroom(x)		(on_level(x, &amp;amp;bigroom_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line119&amp;quot;&amp;gt;119.  #define Is_qstart(x)		(on_level(x, &amp;amp;qstart_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line120&amp;quot;&amp;gt;120.  #define Is_qlocate(x)		(on_level(x, &amp;amp;qlocate_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line121&amp;quot;&amp;gt;121.  #define Is_nemesis(x)		(on_level(x, &amp;amp;nemesis_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line122&amp;quot;&amp;gt;122.  #define Is_knox(x)		(on_level(x, &amp;amp;knox_level))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line123&amp;quot;&amp;gt;123.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line124&amp;quot;&amp;gt;124.  #define In_sokoban(x)		((x)-&amp;gt;dnum == sokoban_dnum)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line125&amp;quot;&amp;gt;125.  #define Inhell			In_hell(&amp;amp;u.uz)	/* now gehennom */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line126&amp;quot;&amp;gt;126.  #define In_endgame(x)		((x)-&amp;gt;dnum == astral_level.dnum)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line127&amp;quot;&amp;gt;127.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line128&amp;quot;&amp;gt;128.  #define within_bounded_area(X,Y,LX,LY,HX,HY) \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line129&amp;quot;&amp;gt;129.  		((X) &amp;gt;= (LX) &amp;amp;&amp;amp; (X) &amp;lt;= (HX) &amp;amp;&amp;amp; (Y) &amp;gt;= (LY) &amp;amp;&amp;amp; (Y) &amp;lt;= (HY))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line130&amp;quot;&amp;gt;130.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line131&amp;quot;&amp;gt;131.  /* monster and object migration codes */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line132&amp;quot;&amp;gt;132.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line133&amp;quot;&amp;gt;133.  #define MIGR_NOWHERE	      (-1)	/* failure flag for down_gate() */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line134&amp;quot;&amp;gt;134.  #define MIGR_RANDOM		0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line135&amp;quot;&amp;gt;135.  #define MIGR_APPROX_XY		1	/* approximate coordinates */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line136&amp;quot;&amp;gt;136.  #define MIGR_EXACT_XY		2	/* specific coordinates */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line137&amp;quot;&amp;gt;137.  #define MIGR_STAIRS_UP		3&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line138&amp;quot;&amp;gt;138.  #define MIGR_STAIRS_DOWN	4&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line139&amp;quot;&amp;gt;139.  #define MIGR_LADDER_UP		5&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line140&amp;quot;&amp;gt;140.  #define MIGR_LADDER_DOWN	6&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line141&amp;quot;&amp;gt;141.  #define MIGR_SSTAIRS		7	/* dungeon branch */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line142&amp;quot;&amp;gt;142.  #define MIGR_PORTAL		8	/* magic portal */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line143&amp;quot;&amp;gt;143.  #define MIGR_NEAR_PLAYER	9	/* mon: followers; obj: trap door */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line144&amp;quot;&amp;gt;144.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line145&amp;quot;&amp;gt;145.  /* level information (saved via ledger number) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line146&amp;quot;&amp;gt;146.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line147&amp;quot;&amp;gt;147.  struct linfo {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line148&amp;quot;&amp;gt;148.  	unsigned char	flags;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line149&amp;quot;&amp;gt;149.  #define VISITED		0x01	/* hero has visited this level */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line150&amp;quot;&amp;gt;150.  #define FORGOTTEN	0x02	/* hero will forget this level when reached */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line151&amp;quot;&amp;gt;151.  #define LFILE_EXISTS	0x04	/* a level file exists for this level */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line152&amp;quot;&amp;gt;152.  /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line153&amp;quot;&amp;gt;153.   * Note:  VISITED and LFILE_EXISTS are currently almost always set at the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line154&amp;quot;&amp;gt;154.   * same time.  However they _mean_ different things.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line155&amp;quot;&amp;gt;155.   */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line156&amp;quot;&amp;gt;156.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line157&amp;quot;&amp;gt;157.  #ifdef MFLOPPY&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line158&amp;quot;&amp;gt;158.  # define FROMPERM	 1	/* for ramdisk use */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line159&amp;quot;&amp;gt;159.  # define TOPERM		 2	/* for ramdisk use */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line160&amp;quot;&amp;gt;160.  # define ACTIVE		 1&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line161&amp;quot;&amp;gt;161.  # define SWAPPED	 2&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line162&amp;quot;&amp;gt;162.  	int	where;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line163&amp;quot;&amp;gt;163.  	long	time;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line164&amp;quot;&amp;gt;164.  	long	size;&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line165&amp;quot;&amp;gt;165.  #endif /* MFLOPPY */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line166&amp;quot;&amp;gt;166.  };&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line167&amp;quot;&amp;gt;167.  &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line168&amp;quot;&amp;gt;168.  #endif /* DUNGEON_H */&amp;lt;/span&amp;gt;&lt;br /&gt;
[[Category:NetHack 3.4.0 source code|dungeon.h]]&lt;/div&gt;</summary>
		<author><name>Jaytbot</name></author>
		
	</entry>
</feed>