<?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%2Fvision.h</id>
	<title>Source:NetHack 3.6.1/include/vision.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%2Fvision.h"/>
	<link rel="alternate" type="text/html" href="https://nethackwiki.com/index.php?title=Source:NetHack_3.6.1/include/vision.h&amp;action=history"/>
	<updated>2026-06-04T03:37:18Z</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/vision.h&amp;diff=109637&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/vision.h&amp;diff=109637&amp;oldid=prev"/>
		<updated>2018-05-12T09:25:45Z</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 '''vision.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/vision.h#line123|&amp;lt;nowiki&amp;gt;[[Source:NetHack 3.6.1/include/vision.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	vision.h	$NHDT-Date: 1432512777 2015/05/25 00:12:57 $  $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line2&amp;quot;&amp;gt;2. /* Copyright (c) Dean Luick, with acknowledgements to Dave Cohrs, 1990. */&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 VISION_H&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line6&amp;quot;&amp;gt;6. #define VISION_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. #if 0 /* (moved to decl.h) */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line9&amp;quot;&amp;gt;9. extern boolean vision_full_recalc;	/* TRUE if need vision recalc */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line10&amp;quot;&amp;gt;10. extern char **viz_array;		/* could see/in sight row pointers */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line11&amp;quot;&amp;gt;11. extern char *viz_rmin;			/* min could see indices */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line12&amp;quot;&amp;gt;12. extern char *viz_rmax;			/* max could see indices */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line13&amp;quot;&amp;gt;13. #endif&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line14&amp;quot;&amp;gt;14. #define COULD_SEE 0x1 /* location could be seen, if it were lit */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line15&amp;quot;&amp;gt;15. #define IN_SIGHT 0x2  /* location can be seen */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line16&amp;quot;&amp;gt;16. #define TEMP_LIT 0x4  /* location is temporarily lit */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line17&amp;quot;&amp;gt;17. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line18&amp;quot;&amp;gt;18. /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line19&amp;quot;&amp;gt;19.  * Light source sources&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line20&amp;quot;&amp;gt;20.  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line21&amp;quot;&amp;gt;21. #define LS_OBJECT 0&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line22&amp;quot;&amp;gt;22. #define LS_MONSTER 1&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.  *  cansee()	- Returns true if the hero can see the location.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line26&amp;quot;&amp;gt;26.  *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line27&amp;quot;&amp;gt;27.  *  couldsee()	- Returns true if the hero has a clear line of sight to&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line28&amp;quot;&amp;gt;28.  *		  the location.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line29&amp;quot;&amp;gt;29.  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line30&amp;quot;&amp;gt;30. #define cansee(x, y) (viz_array[y][x] &amp;amp; IN_SIGHT)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line31&amp;quot;&amp;gt;31. #define couldsee(x, y) (viz_array[y][x] &amp;amp; COULD_SEE)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line32&amp;quot;&amp;gt;32. #define templit(x, y) (viz_array[y][x] &amp;amp; TEMP_LIT)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line33&amp;quot;&amp;gt;33. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line34&amp;quot;&amp;gt;34. /*&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line35&amp;quot;&amp;gt;35.  *  The following assume the monster is not blind.&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.  *  m_cansee()	- Returns true if the monster can see the given location.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line38&amp;quot;&amp;gt;38.  *&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line39&amp;quot;&amp;gt;39.  *  m_canseeu() - Returns true if the monster could see the hero.  Assumes&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line40&amp;quot;&amp;gt;40.  *		  that if the hero has a clear line of sight to the monster's&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line41&amp;quot;&amp;gt;41.  *		  location and the hero is visible, then monster can see the&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line42&amp;quot;&amp;gt;42.  *		  hero.&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line43&amp;quot;&amp;gt;43.  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line44&amp;quot;&amp;gt;44. #define m_cansee(mtmp, x2, y2) clear_path((mtmp)-&amp;gt;mx, (mtmp)-&amp;gt;my, (x2), (y2))&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. #define m_canseeu(m)                                       \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line47&amp;quot;&amp;gt;47.     ((!Invis || perceives((m)-&amp;gt;data))                      \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line48&amp;quot;&amp;gt;48.              &amp;amp;&amp;amp; !(Underwater || u.uburied || (m)-&amp;gt;mburied) \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line49&amp;quot;&amp;gt;49.          ? couldsee((m)-&amp;gt;mx, (m)-&amp;gt;my)                      \&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line50&amp;quot;&amp;gt;50.          : 0)&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line51&amp;quot;&amp;gt;51. &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.  *  Circle information&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line54&amp;quot;&amp;gt;54.  */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line55&amp;quot;&amp;gt;55. #define MAX_RADIUS 15 /* this is in points from the source */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line56&amp;quot;&amp;gt;56. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line57&amp;quot;&amp;gt;57. /* Use this macro to get a list of distances of the edges (see vision.c). */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line58&amp;quot;&amp;gt;58. #define circle_ptr(z) (&amp;amp;circle_data[(int) circle_start[z]])&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. /* howmonseen() bitmask values */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line61&amp;quot;&amp;gt;61. #define MONSEEN_NORMAL 0x0001   /* normal vision */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line62&amp;quot;&amp;gt;62. #define MONSEEN_SEEINVIS 0x0002 /* seeing invisible */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line63&amp;quot;&amp;gt;63. #define MONSEEN_INFRAVIS 0x0004 /* via infravision */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line64&amp;quot;&amp;gt;64. #define MONSEEN_TELEPAT 0x0008  /* via telepathy */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line65&amp;quot;&amp;gt;65. #define MONSEEN_XRAYVIS 0x0010  /* via Xray vision */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line66&amp;quot;&amp;gt;66. #define MONSEEN_DETECT 0x0020   /* via extended monster detection */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line67&amp;quot;&amp;gt;67. #define MONSEEN_WARNMON 0x0040  /* via type-specific warning */&amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line68&amp;quot;&amp;gt;68. &amp;lt;/span&amp;gt;&lt;br /&gt;
 &amp;lt;span id=&amp;quot;line69&amp;quot;&amp;gt;69. #endif /* VISION_H */&amp;lt;/span&amp;gt;&lt;br /&gt;
[[Category:NetHack 3.6.1 source code|include/vision.h]]&lt;/div&gt;</summary>
		<author><name>DizzyBot</name></author>
		
	</entry>
</feed>