<?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.6.1%2Finclude%2Fregion.h</id>
	<title>Source:NetHack 3.6.1/include/region.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.6.1%2Finclude%2Fregion.h"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.1/include/region.h&amp;action=history"/>
	<updated>2026-06-04T06:13:47Z</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.6.1/include/region.h&amp;diff=109636&amp;oldid=prev</id>
		<title>DizzyBot: beep boop</title>
		<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.1/include/region.h&amp;diff=109636&amp;oldid=prev"/>
		<updated>2018-05-12T09:25:35Z</updated>

		<summary type="html">&lt;p&gt;beep boop&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__MIXEDSYNTAXHIGHLIGHT__&lt;br /&gt;
Below is the full text to '''region.h''' from the [[NetHack 3.6.1 source code|source code]] of [[NetHack 3.6.1]]. To link to a particular line, write [[Source:NetHack 3.6.1/include/region.h#line123|&amp;lt;nowiki&amp;gt;[[Source:NetHack 3.6.1/include/region.h#line123]]&amp;lt;/nowiki&amp;gt;]], for example.&lt;br /&gt;
&lt;br /&gt;
{{NGPL}}&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line1&amp;quot;&amp;gt;1. /* NetHack 3.6	region.h	$NHDT-Date: 1432512779 2015/05/25 00:12:59 $  $NHDT-Branch: master $:$NHDT-Revision: 1.13 $ */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2. /* Copyright (c) 1996 by Jean-Christophe Collet			  */&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 REGION_H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6. #define REGION_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. /* generic callback function */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10. typedef boolean FDECL((*callback_proc), (genericptr_t, genericptr_t));&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line12&amp;quot;&amp;gt;12. /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line13&amp;quot;&amp;gt;13.  * player_flags&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line14&amp;quot;&amp;gt;14.  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line15&amp;quot;&amp;gt;15. #define REG_HERO_INSIDE 0x01&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line16&amp;quot;&amp;gt;16. #define REG_NOT_HEROS 0x02&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line17&amp;quot;&amp;gt;17. #define hero_inside(r) ((r)-&amp;gt;player_flags &amp;amp; REG_HERO_INSIDE)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line18&amp;quot;&amp;gt;18. #define heros_fault(r) (!((r)-&amp;gt;player_flags &amp;amp; REG_NOT_HEROS))&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line19&amp;quot;&amp;gt;19. #define set_hero_inside(r) ((r)-&amp;gt;player_flags |= REG_HERO_INSIDE)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line20&amp;quot;&amp;gt;20. #define clear_hero_inside(r) ((r)-&amp;gt;player_flags &amp;amp;= ~REG_HERO_INSIDE)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line21&amp;quot;&amp;gt;21. #define set_heros_fault(r) ((r)-&amp;gt;player_flags &amp;amp;= ~REG_NOT_HEROS)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line22&amp;quot;&amp;gt;22. #define clear_heros_fault(r) ((r)-&amp;gt;player_flags |= REG_NOT_HEROS)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line23&amp;quot;&amp;gt;23. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line24&amp;quot;&amp;gt;24. /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line25&amp;quot;&amp;gt;25.  * Note: if you change the size/type of any of the fields below,&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line26&amp;quot;&amp;gt;26.  *       or add any/remove any fields, you must update the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line27&amp;quot;&amp;gt;27.  *       bwrite() calls in save_regions(), and the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line28&amp;quot;&amp;gt;28.  *       mread() calls in rest_regions() in src/region.c&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line29&amp;quot;&amp;gt;29.  *       to reflect the changes.&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. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line32&amp;quot;&amp;gt;32. typedef struct {&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line33&amp;quot;&amp;gt;33.     NhRect bounding_box;        /* Bounding box of the region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line34&amp;quot;&amp;gt;34.     NhRect *rects;              /* Rectangles composing the region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line35&amp;quot;&amp;gt;35.     short nrects;               /* Number of rectangles  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line36&amp;quot;&amp;gt;36.     boolean attach_2_u;         /* Region attached to player ? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line37&amp;quot;&amp;gt;37.     unsigned int attach_2_m;    /* Region attached to monster ? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line38&amp;quot;&amp;gt;38.     /*struct obj *attach_2_o;*/ /* Region attached to object ? UNUSED YET */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line39&amp;quot;&amp;gt;39.     const char *enter_msg;      /* Message when entering */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line40&amp;quot;&amp;gt;40.     const char *leave_msg;      /* Message when leaving */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line41&amp;quot;&amp;gt;41.     long ttl;                   /* Time to live. -1 is forever */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line42&amp;quot;&amp;gt;42.     short expire_f;            /* Function to call when region's ttl expire */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line43&amp;quot;&amp;gt;43.     short can_enter_f;         /* Function to call to check whether the player&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line44&amp;quot;&amp;gt;44.                                   can, or can not, enter the region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line45&amp;quot;&amp;gt;45.     short enter_f;             /* Function to call when the player enters*/&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line46&amp;quot;&amp;gt;46.     short can_leave_f;         /* Function to call to check whether the player&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line47&amp;quot;&amp;gt;47.                                   can, or can not, leave the region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line48&amp;quot;&amp;gt;48.     short leave_f;             /* Function to call when the player leaves */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line49&amp;quot;&amp;gt;49.     short inside_f;            /* Function to call every turn if player's&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line50&amp;quot;&amp;gt;50.                                   inside */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line51&amp;quot;&amp;gt;51.     unsigned int player_flags; /* (see above) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line52&amp;quot;&amp;gt;52.     unsigned int *monsters;    /* Monsters currently inside this region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line53&amp;quot;&amp;gt;53.     short n_monst;             /* Number of monsters inside this region */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line54&amp;quot;&amp;gt;54.     short max_monst;           /* Maximum number of monsters that can be&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line55&amp;quot;&amp;gt;55.                                   listed without having to grow the array */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line56&amp;quot;&amp;gt;56. #define MONST_INC 5&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line57&amp;quot;&amp;gt;57. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line58&amp;quot;&amp;gt;58.     /* Should probably do the same thing about objects */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line59&amp;quot;&amp;gt;59. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line60&amp;quot;&amp;gt;60.     boolean visible; /* Is the region visible ? */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line61&amp;quot;&amp;gt;61.     int glyph;       /* Which glyph to use if visible */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line62&amp;quot;&amp;gt;62.     anything arg;    /* Optional user argument (Ex: strength of&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line63&amp;quot;&amp;gt;63.                         force field, damage of a fire zone, ...*/&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line64&amp;quot;&amp;gt;64. } NhRegion;&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. #endif /* REGION_H */&amp;lt;/span&amp;gt;&lt;br /&gt;
[[Category:NetHack 3.6.1 source code|include/region.h]]&lt;/div&gt;</summary>
		<author><name>DizzyBot</name></author>
		
	</entry>
</feed>