<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<META NAME="GENERATOR" CONTENT="lxr-1998-06-10: http://lxr.linux.no">
<title>/cvs/gnome/nethack/src/read.c</title>
</head>

<BODY BGCOLOR="#EEEEE0" TEXT="#330000"
	LINK="#770000" VLINK="#600000">

<center>
<A HREF="http://www.gnome.org/"><IMG
 SRC="/pics/gnome-logo.gif" ALT=""
 BORDER=0></A>
</center>

<CENTER>
<TABLE WIDTH=95% CELLSPACING=1 CELLPADDING=0 BORDER=1>
<TR><TD BGCOLOR="#ccccc0" ALIGN=center>
    <BIG><B>
    GNOME Source Cross Reference
    </B></BIG>
</TD></TR>
<TR><TD BGCOLOR="#eeeee0">
<TABLE BORDER=0 CELLPADDING=12 CELLSPACING=0 WIDTH="100%">
 <TR>
  <TD ALIGN=LEFT VALIGN=CENTER>
   <NOBR><FONT SIZE="+2"><B>
    <A HREF="http://cvs.gnome.org/lxr/">Main Menu</A>
   </B></FONT></NOBR>
   <BR><B><a href="/lxr/source/">/cvs/gnome</a>/ <a href="/lxr/source/nethack/">nethack</a>/ <a href="/lxr/source/nethack/src/">src</a>/ <a href="/lxr/source/nethack/src/read.c">read.c</a> </B>
  </TD>

  <TD ALIGN=RIGHT VALIGN=TOP WIDTH="1%">
   <TABLE BORDER CELLPADDING=12 CELLSPACING=0>
    <TR>
     <TD NOWRAP BGCOLOR="#ccccc0">
      <BR>
      <A HREF="http://cvs.gnome.org/bonsai/cvslog.cgi?file=/nethack/src/read.c">Full Change Log</A>
      <BR><BR>
     </TD>
    </TR>
   </TABLE>
  </TD>

  <TD ALIGN=RIGHT VALIGN=TOP WIDTH="1%">
   <TABLE BORDER CELLPADDING=6 CELLSPACING=0>
    <TR>
     <TD BGCOLOR="#ccccc0">
      <TABLE BORDER=0 CELLPADDING=6 CELLSPACING=0>
       <TR>
        <TD NOWRAP ALIGN=LEFT>
         changes to<BR>this file in<BR>the last:
        </TD>
        <TD NOWRAP>
         <A HREF="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=HEAD&file=/nethack/src/read.c&date=day">day</A><BR>
         <A HREF="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=HEAD&file=/nethack/src/read.c&date=week">week</A><BR>
         <A HREF="http://cvs.gnome.org/bonsai/cvsquery.cgi?branch=HEAD&file=/nethack/src/read.c&date=month">month</A><BR>
        </TD>
       </TR>
      </TABLE>
     </TD>
    </TR>
   </TABLE>
</TD></TR>
</TABLE>
</TR></TD>
</TABLE>
</CENTER>







<pre>  <a name=1 href="/lxr/source/nethack/src/read.c#1">1</a> <b><i>/*      SCCS Id: @(#)read.c     3.2     96/05/26        */</i></b>
  <a name=2 href="/lxr/source/nethack/src/read.c#2">2</a> <b><i>/* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</i></b>
  <a name=3 href="/lxr/source/nethack/src/read.c#3">3</a> <b><i>/* NetHack may be freely redistributed.  See license for details. */</i></b>
  <a name=4 href="/lxr/source/nethack/src/read.c#4">4</a> 
  <a name=5 href="/lxr/source/nethack/src/read.c#5">5</a> #include "<a href="/lxr/source/nethack/src/hack.h">hack.h</a>"
  <a name=6 href="/lxr/source/nethack/src/read.c#6">6</a> 
  <a name=7 href="/lxr/source/nethack/src/read.c#7">7</a> #define <a href="/lxr/ident?i=Your_Own_Role">Your_Own_Role</a>(<a href="/lxr/ident?i=mndx">mndx</a>) (\
  <a name=8 href="/lxr/source/nethack/src/read.c#8">8</a>         <a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'C'</i>) ? (<a href="/lxr/ident?i=mndx">mndx</a> == PM_CAVEMAN || <a href="/lxr/ident?i=mndx">mndx</a> == PM_CAVEWOMAN) :   \
  <a name=9 href="/lxr/source/nethack/src/read.c#9">9</a>         <a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'P'</i>) ? (<a href="/lxr/ident?i=mndx">mndx</a> == PM_PRIEST  || <a href="/lxr/ident?i=mndx">mndx</a> == PM_PRIESTESS) :   \
 <a name=10 href="/lxr/source/nethack/src/read.c#10">10</a>         (<a href="/lxr/ident?i=mndx">mndx</a> == <a href="/lxr/ident?i=u">u</a>.umonster))
 <a name=11 href="/lxr/source/nethack/src/read.c#11">11</a> 
 <a name=12 href="/lxr/source/nethack/src/read.c#12">12</a> #ifdef <a href="/lxr/ident?i=OVLB">OVLB</a>
 <a name=13 href="/lxr/source/nethack/src/read.c#13">13</a> 
 <a name=14 href="/lxr/source/nethack/src/read.c#14">14</a> <b><i>/* elven armor vibrates warningly when enchanted beyond a limit */</i></b>
 <a name=15 href="/lxr/source/nethack/src/read.c#15">15</a> #define <a href="/lxr/ident?i=is_elven_armor">is_elven_armor</a>(optr)    ((optr)-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == ELVEN_LEATHER_HELM\
 <a name=16 href="/lxr/source/nethack/src/read.c#16">16</a>                                 || (optr)-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == ELVEN_MITHRIL_COAT\
 <a name=17 href="/lxr/source/nethack/src/read.c#17">17</a>                                 || (optr)-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == ELVEN_CLOAK\
 <a name=18 href="/lxr/source/nethack/src/read.c#18">18</a>                                 || (optr)-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == ELVEN_SHIELD\
 <a name=19 href="/lxr/source/nethack/src/read.c#19">19</a>                                 || (optr)-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == ELVEN_BOOTS)
 <a name=20 href="/lxr/source/nethack/src/read.c#20">20</a> 
 <a name=21 href="/lxr/source/nethack/src/read.c#21">21</a> <a href="/lxr/ident?i=boolean">boolean</a> <a href="/lxr/ident?i=known">known</a>;
 <a name=22 href="/lxr/source/nethack/src/read.c#22">22</a> 
 <a name=23 href="/lxr/source/nethack/src/read.c#23">23</a> static <a href="/lxr/ident?i=NEARDATA">NEARDATA</a> const char <a href="/lxr/ident?i=readable">readable</a>[] =
 <a name=24 href="/lxr/source/nethack/src/read.c#24">24</a>                    { <a href="/lxr/ident?i=ALL_CLASSES">ALL_CLASSES</a>, <a href="/lxr/ident?i=SCROLL_CLASS">SCROLL_CLASS</a>, <a href="/lxr/ident?i=SPBOOK_CLASS">SPBOOK_CLASS</a>, 0 };
 <a name=25 href="/lxr/source/nethack/src/read.c#25">25</a> static const char <a href="/lxr/ident?i=all_count">all_count</a>[] = { <a href="/lxr/ident?i=ALLOW_COUNT">ALLOW_COUNT</a>, <a href="/lxr/ident?i=ALL_CLASSES">ALL_CLASSES</a>, 0 };
 <a name=26 href="/lxr/source/nethack/src/read.c#26">26</a> 
 <a name=27 href="/lxr/source/nethack/src/read.c#27">27</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(wand_explode, (struct <a href="/lxr/ident?i=obj">obj</a> *));
 <a name=28 href="/lxr/source/nethack/src/read.c#28">28</a> static void <a href="/lxr/ident?i=NDECL">NDECL</a>(<a href="/lxr/ident?i=do_class_genocide">do_class_genocide</a>);
 <a name=29 href="/lxr/source/nethack/src/read.c#29">29</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(stripspe,(struct <a href="/lxr/ident?i=obj">obj</a> *));
 <a name=30 href="/lxr/source/nethack/src/read.c#30">30</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(p_glow1,(struct <a href="/lxr/ident?i=obj">obj</a> *));
 <a name=31 href="/lxr/source/nethack/src/read.c#31">31</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(p_glow2,(struct <a href="/lxr/ident?i=obj">obj</a> *,const char *));
 <a name=32 href="/lxr/source/nethack/src/read.c#32">32</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(<a href="/lxr/ident?i=randomize">randomize</a>,(int *, int));
 <a name=33 href="/lxr/source/nethack/src/read.c#33">33</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(forget_single_object, (int));
 <a name=34 href="/lxr/source/nethack/src/read.c#34">34</a> static void <a href="/lxr/ident?i=FDECL">FDECL</a>(forget, (int));
 <a name=35 href="/lxr/source/nethack/src/read.c#35">35</a> 
 <a name=36 href="/lxr/source/nethack/src/read.c#36">36</a> <a href="/lxr/ident?i=STATIC_PTR">STATIC_PTR</a> void <a href="/lxr/ident?i=FDECL">FDECL</a>(<a href="/lxr/ident?i=set_lit">set_lit</a>, (int,int,<a href="/lxr/ident?i=genericptr_t">genericptr_t</a>));
 <a name=37 href="/lxr/source/nethack/src/read.c#37">37</a> 
 <a name=38 href="/lxr/source/nethack/src/read.c#38">38</a> int
 <a name=39 href="/lxr/source/nethack/src/read.c#39">39</a> <a href="/lxr/ident?i=doread">doread</a>()
 <a name=40 href="/lxr/source/nethack/src/read.c#40">40</a> {
 <a name=41 href="/lxr/source/nethack/src/read.c#41">41</a>         register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=scroll">scroll</a>;
 <a name=42 href="/lxr/source/nethack/src/read.c#42">42</a>         register <a href="/lxr/ident?i=boolean">boolean</a> confused;
 <a name=43 href="/lxr/source/nethack/src/read.c#43">43</a> 
 <a name=44 href="/lxr/source/nethack/src/read.c#44">44</a>         <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=FALSE">FALSE</a>;
 <a name=45 href="/lxr/source/nethack/src/read.c#45">45</a>         if(check_capacity((char *)0)) return (0);
 <a name=46 href="/lxr/source/nethack/src/read.c#46">46</a>         <a href="/lxr/ident?i=scroll">scroll</a> = getobj(<a href="/lxr/ident?i=readable">readable</a>, <i>"read"</i>);
 <a name=47 href="/lxr/source/nethack/src/read.c#47">47</a>         if(!<a href="/lxr/ident?i=scroll">scroll</a>) return(0);
 <a name=48 href="/lxr/source/nethack/src/read.c#48">48</a> 
 <a name=49 href="/lxr/source/nethack/src/read.c#49">49</a>         <b><i>/* outrumor has its own blindness check */</i></b>
 <a name=50 href="/lxr/source/nethack/src/read.c#50">50</a>         if(<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == FORTUNE_COOKIE) {
 <a name=51 href="/lxr/source/nethack/src/read.c#51">51</a>             if(<a href="/lxr/ident?i=flags">flags</a>.<a href="/lxr/ident?i=verbose">verbose</a>)
 <a name=52 href="/lxr/source/nethack/src/read.c#52">52</a>                 You(<i>"break up the cookie and throw away the pieces."</i>);
 <a name=53 href="/lxr/source/nethack/src/read.c#53">53</a>             outrumor(bcsign(<a href="/lxr/ident?i=scroll">scroll</a>), <a href="/lxr/ident?i=TRUE">TRUE</a>);
 <a name=54 href="/lxr/source/nethack/src/read.c#54">54</a>             useup(<a href="/lxr/ident?i=scroll">scroll</a>);
 <a name=55 href="/lxr/source/nethack/src/read.c#55">55</a>             return(1);
 <a name=56 href="/lxr/source/nethack/src/read.c#56">56</a> #ifdef <a href="/lxr/ident?i=TOURIST">TOURIST</a>
 <a name=57 href="/lxr/source/nethack/src/read.c#57">57</a>         } else if (<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == T_SHIRT) {
 <a name=58 href="/lxr/source/nethack/src/read.c#58">58</a>             char <a href="/lxr/ident?i=buf">buf</a>[<a href="/lxr/ident?i=BUFSZ">BUFSZ</a>];
 <a name=59 href="/lxr/source/nethack/src/read.c#59">59</a> 
 <a name=60 href="/lxr/source/nethack/src/read.c#60">60</a>             if (<a href="/lxr/ident?i=Blind">Blind</a>) {
 <a name=61 href="/lxr/source/nethack/src/read.c#61">61</a>                 You_cant(<i>"feel any Braille writing."</i>);
 <a name=62 href="/lxr/source/nethack/src/read.c#62">62</a>                 return 0;
 <a name=63 href="/lxr/source/nethack/src/read.c#63">63</a>             }
 <a name=64 href="/lxr/source/nethack/src/read.c#64">64</a>             if(<a href="/lxr/ident?i=flags">flags</a>.<a href="/lxr/ident?i=verbose">verbose</a>)
 <a name=65 href="/lxr/source/nethack/src/read.c#65">65</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"It reads:"</i>);
 <a name=66 href="/lxr/source/nethack/src/read.c#66">66</a>             <a href="/lxr/ident?i=Sprintf">Sprintf</a>(<a href="/lxr/ident?i=buf">buf</a>,  <i>"I explored the Dungeons of Doom, %s."</i>,
 <a name=67 href="/lxr/source/nethack/src/read.c#67">67</a>                     <a href="/lxr/ident?i=Hallucination">Hallucination</a> ?
 <a name=68 href="/lxr/source/nethack/src/read.c#68">68</a>                         (<a href="/lxr/ident?i=scroll">scroll</a> == uarmu ?
 <a name=69 href="/lxr/source/nethack/src/read.c#69">69</a>                             <b><i>/* (force these two to have identical length) */</i></b>
 <a name=70 href="/lxr/source/nethack/src/read.c#70">70</a>                             <i>"and never did any laundry..."</i> :
 <a name=71 href="/lxr/source/nethack/src/read.c#71">71</a>                             <i>"and couldn't find my way out"</i>) :
 <a name=72 href="/lxr/source/nethack/src/read.c#72">72</a>                         <i>"but all I got was this lousy T-shirt"</i>);
 <a name=73 href="/lxr/source/nethack/src/read.c#73">73</a>             if (<a href="/lxr/ident?i=scroll">scroll</a>-&gt;oeroded)
 <a name=74 href="/lxr/source/nethack/src/read.c#74">74</a>                 wipeout_text(<a href="/lxr/ident?i=buf">buf</a>,
 <a name=75 href="/lxr/source/nethack/src/read.c#75">75</a>                         (int)(<a href="/lxr/ident?i=strlen">strlen</a>(<a href="/lxr/ident?i=buf">buf</a>) * <a href="/lxr/ident?i=scroll">scroll</a>-&gt;oeroded / (2*<a href="/lxr/ident?i=MAX_ERODE">MAX_ERODE</a>)),
 <a name=76 href="/lxr/source/nethack/src/read.c#76">76</a>                              <a href="/lxr/ident?i=scroll">scroll</a>-&gt;o_id ^ (unsigned)<a href="/lxr/ident?i=u">u</a>.ubirthday);
 <a name=77 href="/lxr/source/nethack/src/read.c#77">77</a>             <a href="/lxr/ident?i=pline">pline</a>(<i>"\"%s\""</i>, <a href="/lxr/ident?i=buf">buf</a>);
 <a name=78 href="/lxr/source/nethack/src/read.c#78">78</a>             return 1;
 <a name=79 href="/lxr/source/nethack/src/read.c#79">79</a> #endif  <b><i>/* TOURIST */</i></b>
 <a name=80 href="/lxr/source/nethack/src/read.c#80">80</a>         } else if (<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> != <a href="/lxr/ident?i=SCROLL_CLASS">SCROLL_CLASS</a>
 <a name=81 href="/lxr/source/nethack/src/read.c#81">81</a>                 &amp;&amp; <a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> != <a href="/lxr/ident?i=SPBOOK_CLASS">SPBOOK_CLASS</a>) {
 <a name=82 href="/lxr/source/nethack/src/read.c#82">82</a>             <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=silly_thing_to">silly_thing_to</a>, <i>"read"</i>);
 <a name=83 href="/lxr/source/nethack/src/read.c#83">83</a>             return(0);
 <a name=84 href="/lxr/source/nethack/src/read.c#84">84</a>         } else if (<a href="/lxr/ident?i=Blind">Blind</a>) {
 <a name=85 href="/lxr/source/nethack/src/read.c#85">85</a>             const char *<a href="/lxr/ident?i=what">what</a> = 0;
 <a name=86 href="/lxr/source/nethack/src/read.c#86">86</a>             if (<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=SPBOOK_CLASS">SPBOOK_CLASS</a>)
 <a name=87 href="/lxr/source/nethack/src/read.c#87">87</a>                 <a href="/lxr/ident?i=what">what</a> = <i>"mystic runes"</i>;
 <a name=88 href="/lxr/source/nethack/src/read.c#88">88</a>             else if (!<a href="/lxr/ident?i=scroll">scroll</a>-&gt;dknown)
 <a name=89 href="/lxr/source/nethack/src/read.c#89">89</a>                 <a href="/lxr/ident?i=what">what</a> = <i>"formula on the scroll"</i>;
 <a name=90 href="/lxr/source/nethack/src/read.c#90">90</a>             if (<a href="/lxr/ident?i=what">what</a>) {
 <a name=91 href="/lxr/source/nethack/src/read.c#91">91</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"Being blind, you cannot read the %s."</i>, <a href="/lxr/ident?i=what">what</a>);
 <a name=92 href="/lxr/source/nethack/src/read.c#92">92</a>                 return(0);
 <a name=93 href="/lxr/source/nethack/src/read.c#93">93</a>             }
 <a name=94 href="/lxr/source/nethack/src/read.c#94">94</a>         }
 <a name=95 href="/lxr/source/nethack/src/read.c#95">95</a> 
 <a name=96 href="/lxr/source/nethack/src/read.c#96">96</a>         confused = (<a href="/lxr/ident?i=Confusion">Confusion</a> != 0);
 <a name=97 href="/lxr/source/nethack/src/read.c#97">97</a> #ifdef <a href="/lxr/ident?i=MAIL">MAIL</a>
 <a name=98 href="/lxr/source/nethack/src/read.c#98">98</a>         if (<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == SCR_MAIL) confused = <a href="/lxr/ident?i=FALSE">FALSE</a>;
 <a name=99 href="/lxr/source/nethack/src/read.c#99">99</a> #endif
<a name=100 href="/lxr/source/nethack/src/read.c#100">100</a>         if(<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=SPBOOK_CLASS">SPBOOK_CLASS</a>) {
<a name=101 href="/lxr/source/nethack/src/read.c#101">101</a>             if(confused) {
<a name=102 href="/lxr/source/nethack/src/read.c#102">102</a>                 You(<i>"cannot grasp the meaning of this tome."</i>);
<a name=103 href="/lxr/source/nethack/src/read.c#103">103</a>                 return(0);
<a name=104 href="/lxr/source/nethack/src/read.c#104">104</a>             } else
<a name=105 href="/lxr/source/nethack/src/read.c#105">105</a>                 return(study_book(<a href="/lxr/ident?i=scroll">scroll</a>));
<a name=106 href="/lxr/source/nethack/src/read.c#106">106</a>         }
<a name=107 href="/lxr/source/nethack/src/read.c#107">107</a> #ifndef <a href="/lxr/ident?i=NO_SIGNAL">NO_SIGNAL</a>
<a name=108 href="/lxr/source/nethack/src/read.c#108">108</a>         <a href="/lxr/ident?i=scroll">scroll</a>-&gt;in_use = <a href="/lxr/ident?i=TRUE">TRUE</a>;  <b><i>/* scroll, not spellbook, now being read */</i></b>
<a name=109 href="/lxr/source/nethack/src/read.c#109">109</a> #endif
<a name=110 href="/lxr/source/nethack/src/read.c#110">110</a>         if(<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> != SCR_BLANK_PAPER) {
<a name=111 href="/lxr/source/nethack/src/read.c#111">111</a>           if(<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=112 href="/lxr/source/nethack/src/read.c#112">112</a>             <a href="/lxr/ident?i=pline">pline</a>(<i>"As you pronounce the formula on it, the scroll disappears."</i>);
<a name=113 href="/lxr/source/nethack/src/read.c#113">113</a>           else
<a name=114 href="/lxr/source/nethack/src/read.c#114">114</a>             <a href="/lxr/ident?i=pline">pline</a>(<i>"As you read the scroll, it disappears."</i>);
<a name=115 href="/lxr/source/nethack/src/read.c#115">115</a>           if(confused) {
<a name=116 href="/lxr/source/nethack/src/read.c#116">116</a>             if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>)
<a name=117 href="/lxr/source/nethack/src/read.c#117">117</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"Being so trippy, you screw up..."</i>);
<a name=118 href="/lxr/source/nethack/src/read.c#118">118</a>             else
<a name=119 href="/lxr/source/nethack/src/read.c#119">119</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"Being confused, you mispronounce the magic words..."</i>);
<a name=120 href="/lxr/source/nethack/src/read.c#120">120</a>           }
<a name=121 href="/lxr/source/nethack/src/read.c#121">121</a>         }
<a name=122 href="/lxr/source/nethack/src/read.c#122">122</a>         if(!seffects(<a href="/lxr/ident?i=scroll">scroll</a>))  {
<a name=123 href="/lxr/source/nethack/src/read.c#123">123</a>                 if(!<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_name_known) {
<a name=124 href="/lxr/source/nethack/src/read.c#124">124</a>                     if(<a href="/lxr/ident?i=known">known</a>) {
<a name=125 href="/lxr/source/nethack/src/read.c#125">125</a>                         <a href="/lxr/ident?i=makeknown">makeknown</a>(<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>);
<a name=126 href="/lxr/source/nethack/src/read.c#126">126</a>                         more_experienced(0,10);
<a name=127 href="/lxr/source/nethack/src/read.c#127">127</a>                     } else if(!<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_uname)
<a name=128 href="/lxr/source/nethack/src/read.c#128">128</a>                         docall(<a href="/lxr/ident?i=scroll">scroll</a>);
<a name=129 href="/lxr/source/nethack/src/read.c#129">129</a>                 }
<a name=130 href="/lxr/source/nethack/src/read.c#130">130</a>                 if(<a href="/lxr/ident?i=scroll">scroll</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> != SCR_BLANK_PAPER)
<a name=131 href="/lxr/source/nethack/src/read.c#131">131</a>                         useup(<a href="/lxr/ident?i=scroll">scroll</a>);
<a name=132 href="/lxr/source/nethack/src/read.c#132">132</a> #ifndef <a href="/lxr/ident?i=NO_SIGNAL">NO_SIGNAL</a>
<a name=133 href="/lxr/source/nethack/src/read.c#133">133</a>                 else <a href="/lxr/ident?i=scroll">scroll</a>-&gt;in_use = <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=134 href="/lxr/source/nethack/src/read.c#134">134</a> #endif
<a name=135 href="/lxr/source/nethack/src/read.c#135">135</a>         }
<a name=136 href="/lxr/source/nethack/src/read.c#136">136</a>         return(1);
<a name=137 href="/lxr/source/nethack/src/read.c#137">137</a> }
<a name=138 href="/lxr/source/nethack/src/read.c#138">138</a> 
<a name=139 href="/lxr/source/nethack/src/read.c#139">139</a> static void
<a name=140 href="/lxr/source/nethack/src/read.c#140">140</a> stripspe(<a href="/lxr/ident?i=obj">obj</a>)
<a name=141 href="/lxr/source/nethack/src/read.c#141">141</a> register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=142 href="/lxr/source/nethack/src/read.c#142">142</a> {
<a name=143 href="/lxr/source/nethack/src/read.c#143">143</a>         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;blessed) <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=144 href="/lxr/source/nethack/src/read.c#144">144</a>         else {
<a name=145 href="/lxr/source/nethack/src/read.c#145">145</a>                 if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &gt; 0) {
<a name=146 href="/lxr/source/nethack/src/read.c#146">146</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 0;
<a name=147 href="/lxr/source/nethack/src/read.c#147">147</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == OIL_LAMP || <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == BRASS_LANTERN)
<a name=148 href="/lxr/source/nethack/src/read.c#148">148</a>                         <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=age">age</a> = 0;
<a name=149 href="/lxr/source/nethack/src/read.c#149">149</a>                     Your(<i>"%s vibrates briefly."</i>,<a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=obj">obj</a>));
<a name=150 href="/lxr/source/nethack/src/read.c#150">150</a>                 } else <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=151 href="/lxr/source/nethack/src/read.c#151">151</a>         }
<a name=152 href="/lxr/source/nethack/src/read.c#152">152</a> }
<a name=153 href="/lxr/source/nethack/src/read.c#153">153</a> 
<a name=154 href="/lxr/source/nethack/src/read.c#154">154</a> static void
<a name=155 href="/lxr/source/nethack/src/read.c#155">155</a> p_glow1(<a href="/lxr/ident?i=otmp">otmp</a>)
<a name=156 href="/lxr/source/nethack/src/read.c#156">156</a> register struct <a href="/lxr/ident?i=obj">obj</a>     *<a href="/lxr/ident?i=otmp">otmp</a>;
<a name=157 href="/lxr/source/nethack/src/read.c#157">157</a> {
<a name=158 href="/lxr/source/nethack/src/read.c#158">158</a>         Your(<i>"%s %s briefly."</i>, <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=159 href="/lxr/source/nethack/src/read.c#159">159</a>                 <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"vibrates"</i> : <i>"glows"</i>);
<a name=160 href="/lxr/source/nethack/src/read.c#160">160</a> }
<a name=161 href="/lxr/source/nethack/src/read.c#161">161</a> 
<a name=162 href="/lxr/source/nethack/src/read.c#162">162</a> static void
<a name=163 href="/lxr/source/nethack/src/read.c#163">163</a> p_glow2(<a href="/lxr/ident?i=otmp">otmp</a>,<a href="/lxr/ident?i=color">color</a>)
<a name=164 href="/lxr/source/nethack/src/read.c#164">164</a> register struct <a href="/lxr/ident?i=obj">obj</a>     *<a href="/lxr/ident?i=otmp">otmp</a>;
<a name=165 href="/lxr/source/nethack/src/read.c#165">165</a> register const char *<a href="/lxr/ident?i=color">color</a>;
<a name=166 href="/lxr/source/nethack/src/read.c#166">166</a> {
<a name=167 href="/lxr/source/nethack/src/read.c#167">167</a>         Your(<i>"%s %s%s for a moment."</i>,
<a name=168 href="/lxr/source/nethack/src/read.c#168">168</a>                 <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=169 href="/lxr/source/nethack/src/read.c#169">169</a>                 <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"vibrates"</i> : <i>"glows "</i>,
<a name=170 href="/lxr/source/nethack/src/read.c#170">170</a>                 <a href="/lxr/ident?i=Blind">Blind</a> ? (const char *)<i>""</i> : hcolor(<a href="/lxr/ident?i=color">color</a>));
<a name=171 href="/lxr/source/nethack/src/read.c#171">171</a> }
<a name=172 href="/lxr/source/nethack/src/read.c#172">172</a> 
<a name=173 href="/lxr/source/nethack/src/read.c#173">173</a> <b><i>/* Is the object chargeable?  For purposes of inventory display; it is */</i></b>
<a name=174 href="/lxr/source/nethack/src/read.c#174">174</a> <b><i>/* possible to be able to charge things for which this returns FALSE. */</i></b>
<a name=175 href="/lxr/source/nethack/src/read.c#175">175</a> <a href="/lxr/ident?i=boolean">boolean</a>
<a name=176 href="/lxr/source/nethack/src/read.c#176">176</a> is_chargeable(<a href="/lxr/ident?i=obj">obj</a>)
<a name=177 href="/lxr/source/nethack/src/read.c#177">177</a> struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=178 href="/lxr/source/nethack/src/read.c#178">178</a> {
<a name=179 href="/lxr/source/nethack/src/read.c#179">179</a>         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=WAND_CLASS">WAND_CLASS</a>) return <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=180 href="/lxr/source/nethack/src/read.c#180">180</a>         <b><i>/* known &amp;&amp; !uname is possible after amnesia/mind flayer */</i></b>
<a name=181 href="/lxr/source/nethack/src/read.c#181">181</a>         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=RING_CLASS">RING_CLASS</a>)
<a name=182 href="/lxr/source/nethack/src/read.c#182">182</a>             return (<a href="/lxr/ident?i=boolean">boolean</a>)(<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_charged &amp;&amp;
<a name=183 href="/lxr/source/nethack/src/read.c#183">183</a>                         (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=known">known</a> || <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_uname));
<a name=184 href="/lxr/source/nethack/src/read.c#184">184</a>         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=TOOL_CLASS">TOOL_CLASS</a>)
<a name=185 href="/lxr/source/nethack/src/read.c#185">185</a>             return (<a href="/lxr/ident?i=boolean">boolean</a>)(<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_charged);
<a name=186 href="/lxr/source/nethack/src/read.c#186">186</a>         return <a href="/lxr/ident?i=FALSE">FALSE</a>; <b><i>/* why are weapons/armor considered charged anyway? */</i></b>
<a name=187 href="/lxr/source/nethack/src/read.c#187">187</a> }
<a name=188 href="/lxr/source/nethack/src/read.c#188">188</a> 
<a name=189 href="/lxr/source/nethack/src/read.c#189">189</a> <b><i>/*</i></b>
<a name=190 href="/lxr/source/nethack/src/read.c#190">190</a> <b><i> * recharge an object; curse_bless is -1 if the recharging implement</i></b>
<a name=191 href="/lxr/source/nethack/src/read.c#191">191</a> <b><i> * was cursed, +1 if blessed, 0 otherwise.</i></b>
<a name=192 href="/lxr/source/nethack/src/read.c#192">192</a> <b><i> */</i></b>
<a name=193 href="/lxr/source/nethack/src/read.c#193">193</a> void
<a name=194 href="/lxr/source/nethack/src/read.c#194">194</a> recharge(<a href="/lxr/ident?i=obj">obj</a>, <a href="/lxr/ident?i=curse_bless">curse_bless</a>)
<a name=195 href="/lxr/source/nethack/src/read.c#195">195</a> struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=196 href="/lxr/source/nethack/src/read.c#196">196</a> int <a href="/lxr/ident?i=curse_bless">curse_bless</a>;
<a name=197 href="/lxr/source/nethack/src/read.c#197">197</a> {
<a name=198 href="/lxr/source/nethack/src/read.c#198">198</a>         register int <a href="/lxr/ident?i=n">n</a>;
<a name=199 href="/lxr/source/nethack/src/read.c#199">199</a>         <a href="/lxr/ident?i=boolean">boolean</a> is_cursed, is_blessed;
<a name=200 href="/lxr/source/nethack/src/read.c#200">200</a> 
<a name=201 href="/lxr/source/nethack/src/read.c#201">201</a>         is_cursed = <a href="/lxr/ident?i=curse_bless">curse_bless</a> &lt; 0;
<a name=202 href="/lxr/source/nethack/src/read.c#202">202</a>         is_blessed = <a href="/lxr/ident?i=curse_bless">curse_bless</a> &gt; 0;
<a name=203 href="/lxr/source/nethack/src/read.c#203">203</a> 
<a name=204 href="/lxr/source/nethack/src/read.c#204">204</a>         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=WAND_CLASS">WAND_CLASS</a>) {
<a name=205 href="/lxr/source/nethack/src/read.c#205">205</a>             if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == WAN_WISHING) {
<a name=206 href="/lxr/source/nethack/src/read.c#206">206</a>                 if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=recharged">recharged</a>) {   <b><i>/* recharged once already? */</i></b>
<a name=207 href="/lxr/source/nethack/src/read.c#207">207</a>                     wand_explode(<a href="/lxr/ident?i=obj">obj</a>);
<a name=208 href="/lxr/source/nethack/src/read.c#208">208</a>                     return;
<a name=209 href="/lxr/source/nethack/src/read.c#209">209</a>                 }
<a name=210 href="/lxr/source/nethack/src/read.c#210">210</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=211 href="/lxr/source/nethack/src/read.c#211">211</a>                 else if (is_blessed) {
<a name=212 href="/lxr/source/nethack/src/read.c#212">212</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe != 3) {
<a name=213 href="/lxr/source/nethack/src/read.c#213">213</a>                         <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 3;
<a name=214 href="/lxr/source/nethack/src/read.c#214">214</a>                         p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=215 href="/lxr/source/nethack/src/read.c#215">215</a>                     } else {
<a name=216 href="/lxr/source/nethack/src/read.c#216">216</a>                         wand_explode(<a href="/lxr/ident?i=obj">obj</a>);
<a name=217 href="/lxr/source/nethack/src/read.c#217">217</a>                         return;
<a name=218 href="/lxr/source/nethack/src/read.c#218">218</a>                     }
<a name=219 href="/lxr/source/nethack/src/read.c#219">219</a>                 } else {
<a name=220 href="/lxr/source/nethack/src/read.c#220">220</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; 3) {
<a name=221 href="/lxr/source/nethack/src/read.c#221">221</a>                         <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=222 href="/lxr/source/nethack/src/read.c#222">222</a>                         p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=223 href="/lxr/source/nethack/src/read.c#223">223</a>                     } else <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=224 href="/lxr/source/nethack/src/read.c#224">224</a>                 }
<a name=225 href="/lxr/source/nethack/src/read.c#225">225</a>                 <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=recharged">recharged</a> = 1; <b><i>/* another recharging disallowed */</i></b>
<a name=226 href="/lxr/source/nethack/src/read.c#226">226</a>             } else {
<a name=227 href="/lxr/source/nethack/src/read.c#227">227</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=228 href="/lxr/source/nethack/src/read.c#228">228</a>                 else if (is_blessed) {
<a name=229 href="/lxr/source/nethack/src/read.c#229">229</a>                     if (<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_dir == <a href="/lxr/ident?i=NODIR">NODIR</a>) {
<a name=230 href="/lxr/source/nethack/src/read.c#230">230</a>                         <a href="/lxr/ident?i=n">n</a> = <a href="/lxr/ident?i=rn1">rn1</a>(5,11);
<a name=231 href="/lxr/source/nethack/src/read.c#231">231</a>                         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; <a href="/lxr/ident?i=n">n</a>) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = <a href="/lxr/ident?i=n">n</a>;
<a name=232 href="/lxr/source/nethack/src/read.c#232">232</a>                         else <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=233 href="/lxr/source/nethack/src/read.c#233">233</a>                     } else {
<a name=234 href="/lxr/source/nethack/src/read.c#234">234</a>                         <a href="/lxr/ident?i=n">n</a> = <a href="/lxr/ident?i=rn1">rn1</a>(5,4);
<a name=235 href="/lxr/source/nethack/src/read.c#235">235</a>                         if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; <a href="/lxr/ident?i=n">n</a>) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = <a href="/lxr/ident?i=n">n</a>;
<a name=236 href="/lxr/source/nethack/src/read.c#236">236</a>                         else <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=237 href="/lxr/source/nethack/src/read.c#237">237</a>                     }
<a name=238 href="/lxr/source/nethack/src/read.c#238">238</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=239 href="/lxr/source/nethack/src/read.c#239">239</a>                 } else {
<a name=240 href="/lxr/source/nethack/src/read.c#240">240</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=241 href="/lxr/source/nethack/src/read.c#241">241</a>                     p_glow1(<a href="/lxr/ident?i=obj">obj</a>);
<a name=242 href="/lxr/source/nethack/src/read.c#242">242</a>                 }
<a name=243 href="/lxr/source/nethack/src/read.c#243">243</a>             }
<a name=244 href="/lxr/source/nethack/src/read.c#244">244</a>         } else if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=RING_CLASS">RING_CLASS</a> &amp;&amp;
<a name=245 href="/lxr/source/nethack/src/read.c#245">245</a>                                         <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_charged) {
<a name=246 href="/lxr/source/nethack/src/read.c#246">246</a>             <b><i>/* charging does not affect ring's curse/bless status */</i></b>
<a name=247 href="/lxr/source/nethack/src/read.c#247">247</a>             int <a href="/lxr/ident?i=s">s</a> = is_blessed ? <a href="/lxr/ident?i=rnd">rnd</a>(3) : is_cursed ? -<a href="/lxr/ident?i=rnd">rnd</a>(2) : 1;
<a name=248 href="/lxr/source/nethack/src/read.c#248">248</a>             <a href="/lxr/ident?i=boolean">boolean</a> <a href="/lxr/ident?i=is_on">is_on</a> = (<a href="/lxr/ident?i=obj">obj</a> == uleft || <a href="/lxr/ident?i=obj">obj</a> == uright);
<a name=249 href="/lxr/source/nethack/src/read.c#249">249</a> 
<a name=250 href="/lxr/source/nethack/src/read.c#250">250</a>             <b><i>/* destruction depends on current state, not adjustment */</i></b>
<a name=251 href="/lxr/source/nethack/src/read.c#251">251</a>             if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &gt; rn2(7) || <a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt;= -5) {
<a name=252 href="/lxr/source/nethack/src/read.c#252">252</a>                 Your(<i>"%s pulsates momentarily, then explodes!"</i>,
<a name=253 href="/lxr/source/nethack/src/read.c#253">253</a>                      <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=obj">obj</a>));
<a name=254 href="/lxr/source/nethack/src/read.c#254">254</a>                 if (<a href="/lxr/ident?i=is_on">is_on</a>) Ring_gone(<a href="/lxr/ident?i=obj">obj</a>);
<a name=255 href="/lxr/source/nethack/src/read.c#255">255</a>                 <a href="/lxr/ident?i=s">s</a> = <a href="/lxr/ident?i=rnd">rnd</a>(3 * <a href="/lxr/ident?i=abs">abs</a>(<a href="/lxr/ident?i=obj">obj</a>-&gt;spe));     <b><i>/* amount of damage */</i></b>
<a name=256 href="/lxr/source/nethack/src/read.c#256">256</a>                 useup(<a href="/lxr/ident?i=obj">obj</a>);
<a name=257 href="/lxr/source/nethack/src/read.c#257">257</a>                 losehp(<a href="/lxr/ident?i=s">s</a>, <i>"exploding ring"</i>, <a href="/lxr/ident?i=KILLED_BY_AN">KILLED_BY_AN</a>);
<a name=258 href="/lxr/source/nethack/src/read.c#258">258</a>             } else {
<a name=259 href="/lxr/source/nethack/src/read.c#259">259</a>                 long <a href="/lxr/ident?i=mask">mask</a> = <a href="/lxr/ident?i=is_on">is_on</a> ? (<a href="/lxr/ident?i=obj">obj</a> == uleft ? <a href="/lxr/ident?i=LEFT_RING">LEFT_RING</a> :
<a name=260 href="/lxr/source/nethack/src/read.c#260">260</a>                                      <a href="/lxr/ident?i=RIGHT_RING">RIGHT_RING</a>) : 0L;
<a name=261 href="/lxr/source/nethack/src/read.c#261">261</a>                 Your(<i>"%s spins %sclockwise for a moment."</i>,
<a name=262 href="/lxr/source/nethack/src/read.c#262">262</a>                      <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=obj">obj</a>), <a href="/lxr/ident?i=s">s</a> &lt; 0 ? <i>"counter"</i> : <i>""</i>);
<a name=263 href="/lxr/source/nethack/src/read.c#263">263</a>                 <b><i>/* cause attributes and/or properties to be updated */</i></b>
<a name=264 href="/lxr/source/nethack/src/read.c#264">264</a>                 if (<a href="/lxr/ident?i=is_on">is_on</a>) Ring_off(<a href="/lxr/ident?i=obj">obj</a>);
<a name=265 href="/lxr/source/nethack/src/read.c#265">265</a>                 <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=s">s</a>;  <b><i>/* update the ring while it's off */</i></b>
<a name=266 href="/lxr/source/nethack/src/read.c#266">266</a>                 if (<a href="/lxr/ident?i=is_on">is_on</a>) setworn(<a href="/lxr/ident?i=obj">obj</a>, <a href="/lxr/ident?i=mask">mask</a>), Ring_on(<a href="/lxr/ident?i=obj">obj</a>);
<a name=267 href="/lxr/source/nethack/src/read.c#267">267</a>                 <b><i>/* oartifact: if a touch-sensitive artifact ring is</i></b>
<a name=268 href="/lxr/source/nethack/src/read.c#268">268</a> <b><i>                   ever created the above will need to be revised  */</i></b>
<a name=269 href="/lxr/source/nethack/src/read.c#269">269</a>             }
<a name=270 href="/lxr/source/nethack/src/read.c#270">270</a>         } else {
<a name=271 href="/lxr/source/nethack/src/read.c#271">271</a>             switch(<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>) {
<a name=272 href="/lxr/source/nethack/src/read.c#272">272</a>             case BELL_OF_OPENING:
<a name=273 href="/lxr/source/nethack/src/read.c#273">273</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=274 href="/lxr/source/nethack/src/read.c#274">274</a>                 else if (is_blessed) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=rnd">rnd</a>(3);
<a name=275 href="/lxr/source/nethack/src/read.c#275">275</a>                 else <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += 1;
<a name=276 href="/lxr/source/nethack/src/read.c#276">276</a>                 if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &gt; 5) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 5;
<a name=277 href="/lxr/source/nethack/src/read.c#277">277</a>                 break;
<a name=278 href="/lxr/source/nethack/src/read.c#278">278</a>             case MAGIC_MARKER:
<a name=279 href="/lxr/source/nethack/src/read.c#279">279</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=280 href="/lxr/source/nethack/src/read.c#280">280</a>                 else if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=recharged">recharged</a>) {
<a name=281 href="/lxr/source/nethack/src/read.c#281">281</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; 3)
<a name=282 href="/lxr/source/nethack/src/read.c#282">282</a>                         Your(<i>"marker seems permanently dried out."</i>);
<a name=283 href="/lxr/source/nethack/src/read.c#283">283</a>                     else
<a name=284 href="/lxr/source/nethack/src/read.c#284">284</a>                         <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=285 href="/lxr/source/nethack/src/read.c#285">285</a>                 } else if (is_blessed) {
<a name=286 href="/lxr/source/nethack/src/read.c#286">286</a>                     <a href="/lxr/ident?i=n">n</a> = <a href="/lxr/ident?i=obj">obj</a>-&gt;spe;
<a name=287 href="/lxr/source/nethack/src/read.c#287">287</a>                     if (<a href="/lxr/ident?i=n">n</a> &lt; 50) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 50;
<a name=288 href="/lxr/source/nethack/src/read.c#288">288</a>                     if (<a href="/lxr/ident?i=n">n</a> &gt;= 50 &amp;&amp; <a href="/lxr/ident?i=n">n</a> &lt; 75) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 75;
<a name=289 href="/lxr/source/nethack/src/read.c#289">289</a>                     if (<a href="/lxr/ident?i=n">n</a> &gt;= 75) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += 10;
<a name=290 href="/lxr/source/nethack/src/read.c#290">290</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=291 href="/lxr/source/nethack/src/read.c#291">291</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=recharged">recharged</a> = 1;
<a name=292 href="/lxr/source/nethack/src/read.c#292">292</a>                 } else {
<a name=293 href="/lxr/source/nethack/src/read.c#293">293</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; 50) <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 50;
<a name=294 href="/lxr/source/nethack/src/read.c#294">294</a>                     else <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=295 href="/lxr/source/nethack/src/read.c#295">295</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=White">White</a>);
<a name=296 href="/lxr/source/nethack/src/read.c#296">296</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=recharged">recharged</a> = 1;
<a name=297 href="/lxr/source/nethack/src/read.c#297">297</a>                 }
<a name=298 href="/lxr/source/nethack/src/read.c#298">298</a>                 break;
<a name=299 href="/lxr/source/nethack/src/read.c#299">299</a>             case OIL_LAMP:
<a name=300 href="/lxr/source/nethack/src/read.c#300">300</a>             case BRASS_LANTERN:
<a name=301 href="/lxr/source/nethack/src/read.c#301">301</a>                 if (is_cursed) {
<a name=302 href="/lxr/source/nethack/src/read.c#302">302</a>                     stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=303 href="/lxr/source/nethack/src/read.c#303">303</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;lamplit) {
<a name=304 href="/lxr/source/nethack/src/read.c#304">304</a>                         if (!<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=305 href="/lxr/source/nethack/src/read.c#305">305</a>                             <a href="/lxr/ident?i=pline">pline</a>(<i>"%s goes out!"</i>, <a href="/lxr/ident?i=The">The</a>(<a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=obj">obj</a>)));
<a name=306 href="/lxr/source/nethack/src/read.c#306">306</a>                         end_burn(<a href="/lxr/ident?i=obj">obj</a>, <a href="/lxr/ident?i=TRUE">TRUE</a>);
<a name=307 href="/lxr/source/nethack/src/read.c#307">307</a>                     }
<a name=308 href="/lxr/source/nethack/src/read.c#308">308</a>                 } else if (is_blessed) {
<a name=309 href="/lxr/source/nethack/src/read.c#309">309</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 1;
<a name=310 href="/lxr/source/nethack/src/read.c#310">310</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=age">age</a> = 1500;
<a name=311 href="/lxr/source/nethack/src/read.c#311">311</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=312 href="/lxr/source/nethack/src/read.c#312">312</a>                 } else {
<a name=313 href="/lxr/source/nethack/src/read.c#313">313</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 1;
<a name=314 href="/lxr/source/nethack/src/read.c#314">314</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=age">age</a> += 750;
<a name=315 href="/lxr/source/nethack/src/read.c#315">315</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=age">age</a> &gt; 1500) <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=age">age</a> = 1500;
<a name=316 href="/lxr/source/nethack/src/read.c#316">316</a>                     p_glow1(<a href="/lxr/ident?i=obj">obj</a>);
<a name=317 href="/lxr/source/nethack/src/read.c#317">317</a>                 }
<a name=318 href="/lxr/source/nethack/src/read.c#318">318</a>                 break;
<a name=319 href="/lxr/source/nethack/src/read.c#319">319</a>             case CRYSTAL_BALL:
<a name=320 href="/lxr/source/nethack/src/read.c#320">320</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=321 href="/lxr/source/nethack/src/read.c#321">321</a>                 else if (is_blessed) {
<a name=322 href="/lxr/source/nethack/src/read.c#322">322</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe = 6;
<a name=323 href="/lxr/source/nethack/src/read.c#323">323</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=324 href="/lxr/source/nethack/src/read.c#324">324</a>                 } else {
<a name=325 href="/lxr/source/nethack/src/read.c#325">325</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt; 5) {
<a name=326 href="/lxr/source/nethack/src/read.c#326">326</a>                         <a href="/lxr/ident?i=obj">obj</a>-&gt;spe++;
<a name=327 href="/lxr/source/nethack/src/read.c#327">327</a>                         p_glow1(<a href="/lxr/ident?i=obj">obj</a>);
<a name=328 href="/lxr/source/nethack/src/read.c#328">328</a>                     } else <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=329 href="/lxr/source/nethack/src/read.c#329">329</a>                 }
<a name=330 href="/lxr/source/nethack/src/read.c#330">330</a>                 break;
<a name=331 href="/lxr/source/nethack/src/read.c#331">331</a>             case HORN_OF_PLENTY:
<a name=332 href="/lxr/source/nethack/src/read.c#332">332</a>             case BAG_OF_TRICKS:
<a name=333 href="/lxr/source/nethack/src/read.c#333">333</a>             case CAN_OF_GREASE:
<a name=334 href="/lxr/source/nethack/src/read.c#334">334</a>                 if (is_cursed) stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=335 href="/lxr/source/nethack/src/read.c#335">335</a>                 else if (is_blessed) {
<a name=336 href="/lxr/source/nethack/src/read.c#336">336</a>                     if (<a href="/lxr/ident?i=obj">obj</a>-&gt;spe &lt;= 10)
<a name=337 href="/lxr/source/nethack/src/read.c#337">337</a>                         <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=rn1">rn1</a>(10, 6);
<a name=338 href="/lxr/source/nethack/src/read.c#338">338</a>                     else <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=rn1">rn1</a>(5, 6);
<a name=339 href="/lxr/source/nethack/src/read.c#339">339</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=340 href="/lxr/source/nethack/src/read.c#340">340</a>                 } else {
<a name=341 href="/lxr/source/nethack/src/read.c#341">341</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=rnd">rnd</a>(5);
<a name=342 href="/lxr/source/nethack/src/read.c#342">342</a>                     p_glow1(<a href="/lxr/ident?i=obj">obj</a>);
<a name=343 href="/lxr/source/nethack/src/read.c#343">343</a>                 }
<a name=344 href="/lxr/source/nethack/src/read.c#344">344</a>                 break;
<a name=345 href="/lxr/source/nethack/src/read.c#345">345</a>             case MAGIC_FLUTE:
<a name=346 href="/lxr/source/nethack/src/read.c#346">346</a>             case MAGIC_HARP:
<a name=347 href="/lxr/source/nethack/src/read.c#347">347</a>             case FROST_HORN:
<a name=348 href="/lxr/source/nethack/src/read.c#348">348</a>             case FIRE_HORN:
<a name=349 href="/lxr/source/nethack/src/read.c#349">349</a>             case DRUM_OF_EARTHQUAKE:
<a name=350 href="/lxr/source/nethack/src/read.c#350">350</a>                 if (is_cursed) {
<a name=351 href="/lxr/source/nethack/src/read.c#351">351</a>                     stripspe(<a href="/lxr/ident?i=obj">obj</a>);
<a name=352 href="/lxr/source/nethack/src/read.c#352">352</a>                 } else if (is_blessed) {
<a name=353 href="/lxr/source/nethack/src/read.c#353">353</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=d">d</a>(2,4);
<a name=354 href="/lxr/source/nethack/src/read.c#354">354</a>                     p_glow2(<a href="/lxr/ident?i=obj">obj</a>,<a href="/lxr/ident?i=blue">blue</a>);
<a name=355 href="/lxr/source/nethack/src/read.c#355">355</a>                 } else {
<a name=356 href="/lxr/source/nethack/src/read.c#356">356</a>                     <a href="/lxr/ident?i=obj">obj</a>-&gt;spe += <a href="/lxr/ident?i=rnd">rnd</a>(4);
<a name=357 href="/lxr/source/nethack/src/read.c#357">357</a>                     p_glow1(<a href="/lxr/ident?i=obj">obj</a>);
<a name=358 href="/lxr/source/nethack/src/read.c#358">358</a>                 }
<a name=359 href="/lxr/source/nethack/src/read.c#359">359</a>                 break;
<a name=360 href="/lxr/source/nethack/src/read.c#360">360</a>             default:
<a name=361 href="/lxr/source/nethack/src/read.c#361">361</a>                 You(<i>"have a feeling of loss."</i>);
<a name=362 href="/lxr/source/nethack/src/read.c#362">362</a>                 break;
<a name=363 href="/lxr/source/nethack/src/read.c#363">363</a>             } <b><i>/* switch */</i></b>
<a name=364 href="/lxr/source/nethack/src/read.c#364">364</a>         }
<a name=365 href="/lxr/source/nethack/src/read.c#365">365</a> }
<a name=366 href="/lxr/source/nethack/src/read.c#366">366</a> 
<a name=367 href="/lxr/source/nethack/src/read.c#367">367</a> 
<a name=368 href="/lxr/source/nethack/src/read.c#368">368</a> <b><i>/* Forget known information about this object class. */</i></b>
<a name=369 href="/lxr/source/nethack/src/read.c#369">369</a> static void
<a name=370 href="/lxr/source/nethack/src/read.c#370">370</a> forget_single_object(<a href="/lxr/ident?i=obj_id">obj_id</a>)
<a name=371 href="/lxr/source/nethack/src/read.c#371">371</a>         int <a href="/lxr/ident?i=obj_id">obj_id</a>;
<a name=372 href="/lxr/source/nethack/src/read.c#372">372</a> {
<a name=373 href="/lxr/source/nethack/src/read.c#373">373</a>         <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj_id">obj_id</a>].oc_name_known = 0;
<a name=374 href="/lxr/source/nethack/src/read.c#374">374</a>         <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj_id">obj_id</a>].oc_pre_discovered = 0;  <b><i>/* a discovery when relearned */</i></b>
<a name=375 href="/lxr/source/nethack/src/read.c#375">375</a>         if (<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj_id">obj_id</a>].oc_uname) {
<a name=376 href="/lxr/source/nethack/src/read.c#376">376</a>             <b><i>/* this only works if oc_name_known is false */</i></b>
<a name=377 href="/lxr/source/nethack/src/read.c#377">377</a>             undiscover_object(<a href="/lxr/ident?i=obj_id">obj_id</a>);
<a name=378 href="/lxr/source/nethack/src/read.c#378">378</a> 
<a name=379 href="/lxr/source/nethack/src/read.c#379">379</a>             <a href="/lxr/ident?i=free">free</a>((<a href="/lxr/ident?i=genericptr_t">genericptr_t</a>)<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj_id">obj_id</a>].oc_uname);
<a name=380 href="/lxr/source/nethack/src/read.c#380">380</a>             <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=obj_id">obj_id</a>].oc_uname = 0;
<a name=381 href="/lxr/source/nethack/src/read.c#381">381</a>         }
<a name=382 href="/lxr/source/nethack/src/read.c#382">382</a>         <b><i>/* clear &amp; free object names from matching inventory items too? */</i></b>
<a name=383 href="/lxr/source/nethack/src/read.c#383">383</a> }
<a name=384 href="/lxr/source/nethack/src/read.c#384">384</a> 
<a name=385 href="/lxr/source/nethack/src/read.c#385">385</a> 
<a name=386 href="/lxr/source/nethack/src/read.c#386">386</a> #if 0   <b><i>/* here if anyone wants it.... */</i></b>
<a name=387 href="/lxr/source/nethack/src/read.c#387">387</a> <b><i>/* Forget everything known about a particular object class. */</i></b>
<a name=388 href="/lxr/source/nethack/src/read.c#388">388</a> static void
<a name=389 href="/lxr/source/nethack/src/read.c#389">389</a> forget_objclass(<a href="/lxr/ident?i=oclass">oclass</a>)
<a name=390 href="/lxr/source/nethack/src/read.c#390">390</a>         int <a href="/lxr/ident?i=oclass">oclass</a>;
<a name=391 href="/lxr/source/nethack/src/read.c#391">391</a> {
<a name=392 href="/lxr/source/nethack/src/read.c#392">392</a>         int <a href="/lxr/ident?i=i">i</a>;
<a name=393 href="/lxr/source/nethack/src/read.c#393">393</a> 
<a name=394 href="/lxr/source/nethack/src/read.c#394">394</a>         for (<a href="/lxr/ident?i=i">i</a>=<a href="/lxr/ident?i=bases">bases</a>[<a href="/lxr/ident?i=oclass">oclass</a>];
<a name=395 href="/lxr/source/nethack/src/read.c#395">395</a>                 <a href="/lxr/ident?i=i">i</a> &lt; NUM_OBJECTS &amp;&amp; <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=i">i</a>].oc_class==<a href="/lxr/ident?i=oclass">oclass</a>; <a href="/lxr/ident?i=i">i</a>++)
<a name=396 href="/lxr/source/nethack/src/read.c#396">396</a>             forget_single_object(<a href="/lxr/ident?i=i">i</a>);
<a name=397 href="/lxr/source/nethack/src/read.c#397">397</a> }
<a name=398 href="/lxr/source/nethack/src/read.c#398">398</a> #endif
<a name=399 href="/lxr/source/nethack/src/read.c#399">399</a> 
<a name=400 href="/lxr/source/nethack/src/read.c#400">400</a> 
<a name=401 href="/lxr/source/nethack/src/read.c#401">401</a> <b><i>/* randomize the given list of numbers  0 &lt;= i &lt; count */</i></b>
<a name=402 href="/lxr/source/nethack/src/read.c#402">402</a> static void
<a name=403 href="/lxr/source/nethack/src/read.c#403">403</a> <a href="/lxr/ident?i=randomize">randomize</a>(<a href="/lxr/ident?i=indices">indices</a>, <a href="/lxr/ident?i=count">count</a>)
<a name=404 href="/lxr/source/nethack/src/read.c#404">404</a>         int *<a href="/lxr/ident?i=indices">indices</a>;
<a name=405 href="/lxr/source/nethack/src/read.c#405">405</a>         int <a href="/lxr/ident?i=count">count</a>;
<a name=406 href="/lxr/source/nethack/src/read.c#406">406</a> {
<a name=407 href="/lxr/source/nethack/src/read.c#407">407</a>         int <a href="/lxr/ident?i=i">i</a>, iswap, <a href="/lxr/ident?i=temp">temp</a>;
<a name=408 href="/lxr/source/nethack/src/read.c#408">408</a> 
<a name=409 href="/lxr/source/nethack/src/read.c#409">409</a>         for (<a href="/lxr/ident?i=i">i</a> = <a href="/lxr/ident?i=count">count</a> - 1; <a href="/lxr/ident?i=i">i</a> &gt; 0; <a href="/lxr/ident?i=i">i</a>--) {
<a name=410 href="/lxr/source/nethack/src/read.c#410">410</a>             if ((iswap = rn2(<a href="/lxr/ident?i=i">i</a> + 1)) == <a href="/lxr/ident?i=i">i</a>) continue;
<a name=411 href="/lxr/source/nethack/src/read.c#411">411</a>             <a href="/lxr/ident?i=temp">temp</a> = <a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=i">i</a>];
<a name=412 href="/lxr/source/nethack/src/read.c#412">412</a>             <a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=i">i</a>] = <a href="/lxr/ident?i=indices">indices</a>[iswap];
<a name=413 href="/lxr/source/nethack/src/read.c#413">413</a>             <a href="/lxr/ident?i=indices">indices</a>[iswap] = <a href="/lxr/ident?i=temp">temp</a>;
<a name=414 href="/lxr/source/nethack/src/read.c#414">414</a>         }
<a name=415 href="/lxr/source/nethack/src/read.c#415">415</a> }
<a name=416 href="/lxr/source/nethack/src/read.c#416">416</a> 
<a name=417 href="/lxr/source/nethack/src/read.c#417">417</a> 
<a name=418 href="/lxr/source/nethack/src/read.c#418">418</a> <b><i>/* Forget % of known objects. */</i></b>
<a name=419 href="/lxr/source/nethack/src/read.c#419">419</a> void
<a name=420 href="/lxr/source/nethack/src/read.c#420">420</a> forget_objects(<a href="/lxr/ident?i=percent">percent</a>)
<a name=421 href="/lxr/source/nethack/src/read.c#421">421</a>         int <a href="/lxr/ident?i=percent">percent</a>;
<a name=422 href="/lxr/source/nethack/src/read.c#422">422</a> {
<a name=423 href="/lxr/source/nethack/src/read.c#423">423</a>         int <a href="/lxr/ident?i=i">i</a>, <a href="/lxr/ident?i=count">count</a>;
<a name=424 href="/lxr/source/nethack/src/read.c#424">424</a>         int <a href="/lxr/ident?i=indices">indices</a>[NUM_OBJECTS];
<a name=425 href="/lxr/source/nethack/src/read.c#425">425</a> 
<a name=426 href="/lxr/source/nethack/src/read.c#426">426</a>         if (<a href="/lxr/ident?i=percent">percent</a> == 0) return;
<a name=427 href="/lxr/source/nethack/src/read.c#427">427</a>         if (<a href="/lxr/ident?i=percent">percent</a> &lt;= 0 || <a href="/lxr/ident?i=percent">percent</a> &gt; 100) {
<a name=428 href="/lxr/source/nethack/src/read.c#428">428</a>             impossible(<i>"forget_objects: bad percent %d"</i>, <a href="/lxr/ident?i=percent">percent</a>);
<a name=429 href="/lxr/source/nethack/src/read.c#429">429</a>             return;
<a name=430 href="/lxr/source/nethack/src/read.c#430">430</a>         }
<a name=431 href="/lxr/source/nethack/src/read.c#431">431</a> 
<a name=432 href="/lxr/source/nethack/src/read.c#432">432</a>         for (<a href="/lxr/ident?i=count">count</a> = 0, <a href="/lxr/ident?i=i">i</a> = 1; <a href="/lxr/ident?i=i">i</a> &lt; NUM_OBJECTS; <a href="/lxr/ident?i=i">i</a>++)
<a name=433 href="/lxr/source/nethack/src/read.c#433">433</a>             if (<a href="/lxr/ident?i=OBJ_DESCR">OBJ_DESCR</a>(<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=i">i</a>]) &amp;&amp;
<a name=434 href="/lxr/source/nethack/src/read.c#434">434</a>                     (<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=i">i</a>].oc_name_known || <a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=i">i</a>].oc_uname))
<a name=435 href="/lxr/source/nethack/src/read.c#435">435</a>                 <a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=count">count</a>++] = <a href="/lxr/ident?i=i">i</a>;
<a name=436 href="/lxr/source/nethack/src/read.c#436">436</a> 
<a name=437 href="/lxr/source/nethack/src/read.c#437">437</a>         <a href="/lxr/ident?i=randomize">randomize</a>(<a href="/lxr/ident?i=indices">indices</a>, <a href="/lxr/ident?i=count">count</a>);
<a name=438 href="/lxr/source/nethack/src/read.c#438">438</a> 
<a name=439 href="/lxr/source/nethack/src/read.c#439">439</a>         <b><i>/* forget first % of randomized indices */</i></b>
<a name=440 href="/lxr/source/nethack/src/read.c#440">440</a>         <a href="/lxr/ident?i=count">count</a> = ((<a href="/lxr/ident?i=count">count</a> * <a href="/lxr/ident?i=percent">percent</a>) + 50) / 100;
<a name=441 href="/lxr/source/nethack/src/read.c#441">441</a>         for (<a href="/lxr/ident?i=i">i</a> = 0; <a href="/lxr/ident?i=i">i</a> &lt; <a href="/lxr/ident?i=count">count</a>; <a href="/lxr/ident?i=i">i</a>++)
<a name=442 href="/lxr/source/nethack/src/read.c#442">442</a>             forget_single_object(<a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=i">i</a>]);
<a name=443 href="/lxr/source/nethack/src/read.c#443">443</a> }
<a name=444 href="/lxr/source/nethack/src/read.c#444">444</a> 
<a name=445 href="/lxr/source/nethack/src/read.c#445">445</a> 
<a name=446 href="/lxr/source/nethack/src/read.c#446">446</a> <b><i>/* Forget some or all of map (depends on parameters). */</i></b>
<a name=447 href="/lxr/source/nethack/src/read.c#447">447</a> void
<a name=448 href="/lxr/source/nethack/src/read.c#448">448</a> forget_map(<a href="/lxr/ident?i=howmuch">howmuch</a>)
<a name=449 href="/lxr/source/nethack/src/read.c#449">449</a>         int <a href="/lxr/ident?i=howmuch">howmuch</a>;
<a name=450 href="/lxr/source/nethack/src/read.c#450">450</a> {
<a name=451 href="/lxr/source/nethack/src/read.c#451">451</a>         register int <a href="/lxr/ident?i=zx">zx</a>, <a href="/lxr/ident?i=zy">zy</a>;
<a name=452 href="/lxr/source/nethack/src/read.c#452">452</a> 
<a name=453 href="/lxr/source/nethack/src/read.c#453">453</a>         <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=454 href="/lxr/source/nethack/src/read.c#454">454</a>         for(<a href="/lxr/ident?i=zx">zx</a> = 0; <a href="/lxr/ident?i=zx">zx</a> &lt; <a href="/lxr/ident?i=COLNO">COLNO</a>; <a href="/lxr/ident?i=zx">zx</a>++) for(<a href="/lxr/ident?i=zy">zy</a> = 0; <a href="/lxr/ident?i=zy">zy</a> &lt; <a href="/lxr/ident?i=ROWNO">ROWNO</a>; <a href="/lxr/ident?i=zy">zy</a>++)
<a name=455 href="/lxr/source/nethack/src/read.c#455">455</a>             if (<a href="/lxr/ident?i=howmuch">howmuch</a> &amp; <a href="/lxr/ident?i=ALL_MAP">ALL_MAP</a> || rn2(7)) {
<a name=456 href="/lxr/source/nethack/src/read.c#456">456</a>                 <b><i>/* Zonk all memory of this location. */</i></b>
<a name=457 href="/lxr/source/nethack/src/read.c#457">457</a>                 <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=zx">zx</a>][<a href="/lxr/ident?i=zy">zy</a>].seenv = 0;
<a name=458 href="/lxr/source/nethack/src/read.c#458">458</a>                 <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=zx">zx</a>][<a href="/lxr/ident?i=zy">zy</a>].<a href="/lxr/ident?i=waslit">waslit</a> = 0;
<a name=459 href="/lxr/source/nethack/src/read.c#459">459</a>                 <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=zx">zx</a>][<a href="/lxr/ident?i=zy">zy</a>].<a href="/lxr/ident?i=glyph">glyph</a> = <a href="/lxr/ident?i=cmap_to_glyph">cmap_to_glyph</a>(<a href="/lxr/ident?i=S_stone">S_stone</a>);
<a name=460 href="/lxr/source/nethack/src/read.c#460">460</a>             }
<a name=461 href="/lxr/source/nethack/src/read.c#461">461</a> }
<a name=462 href="/lxr/source/nethack/src/read.c#462">462</a> 
<a name=463 href="/lxr/source/nethack/src/read.c#463">463</a> <b><i>/* Forget all traps on the level. */</i></b>
<a name=464 href="/lxr/source/nethack/src/read.c#464">464</a> void
<a name=465 href="/lxr/source/nethack/src/read.c#465">465</a> <a href="/lxr/ident?i=forget_traps">forget_traps</a>()
<a name=466 href="/lxr/source/nethack/src/read.c#466">466</a> {
<a name=467 href="/lxr/source/nethack/src/read.c#467">467</a>         register struct <a href="/lxr/ident?i=trap">trap</a> *<a href="/lxr/ident?i=trap">trap</a>;
<a name=468 href="/lxr/source/nethack/src/read.c#468">468</a> 
<a name=469 href="/lxr/source/nethack/src/read.c#469">469</a>         <b><i>/* forget all traps (except the one the hero is in :-) */</i></b>
<a name=470 href="/lxr/source/nethack/src/read.c#470">470</a>         for (<a href="/lxr/ident?i=trap">trap</a> = <a href="/lxr/ident?i=ftrap">ftrap</a>; <a href="/lxr/ident?i=trap">trap</a>; <a href="/lxr/ident?i=trap">trap</a> = <a href="/lxr/ident?i=trap">trap</a>-&gt;<a href="/lxr/ident?i=ntrap">ntrap</a>)
<a name=471 href="/lxr/source/nethack/src/read.c#471">471</a>             if ((<a href="/lxr/ident?i=trap">trap</a>-&gt;<a href="/lxr/ident?i=tx">tx</a> != <a href="/lxr/ident?i=u">u</a>.ux || <a href="/lxr/ident?i=trap">trap</a>-&gt;<a href="/lxr/ident?i=ty">ty</a> != <a href="/lxr/ident?i=u">u</a>.uy) &amp;&amp; (<a href="/lxr/ident?i=trap">trap</a>-&gt;<a href="/lxr/ident?i=ttyp">ttyp</a> != <a href="/lxr/ident?i=HOLE">HOLE</a>))
<a name=472 href="/lxr/source/nethack/src/read.c#472">472</a>                 <a href="/lxr/ident?i=trap">trap</a>-&gt;tseen = 0;
<a name=473 href="/lxr/source/nethack/src/read.c#473">473</a> }
<a name=474 href="/lxr/source/nethack/src/read.c#474">474</a> 
<a name=475 href="/lxr/source/nethack/src/read.c#475">475</a> <b><i>/*</i></b>
<a name=476 href="/lxr/source/nethack/src/read.c#476">476</a> <b><i> * Forget given % of all levels that the hero has visited and not forgotten,</i></b>
<a name=477 href="/lxr/source/nethack/src/read.c#477">477</a> <b><i> * except this one.</i></b>
<a name=478 href="/lxr/source/nethack/src/read.c#478">478</a> <b><i> */</i></b>
<a name=479 href="/lxr/source/nethack/src/read.c#479">479</a> void
<a name=480 href="/lxr/source/nethack/src/read.c#480">480</a> forget_levels(<a href="/lxr/ident?i=percent">percent</a>)
<a name=481 href="/lxr/source/nethack/src/read.c#481">481</a>         int <a href="/lxr/ident?i=percent">percent</a>;
<a name=482 href="/lxr/source/nethack/src/read.c#482">482</a> {
<a name=483 href="/lxr/source/nethack/src/read.c#483">483</a>         int <a href="/lxr/ident?i=i">i</a>, <a href="/lxr/ident?i=count">count</a>;
<a name=484 href="/lxr/source/nethack/src/read.c#484">484</a>         <a href="/lxr/ident?i=xchar">xchar</a>  maxl, this_lev;
<a name=485 href="/lxr/source/nethack/src/read.c#485">485</a>         int <a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=MAXLINFO">MAXLINFO</a>];
<a name=486 href="/lxr/source/nethack/src/read.c#486">486</a> 
<a name=487 href="/lxr/source/nethack/src/read.c#487">487</a>         if (<a href="/lxr/ident?i=percent">percent</a> == 0) return;
<a name=488 href="/lxr/source/nethack/src/read.c#488">488</a> 
<a name=489 href="/lxr/source/nethack/src/read.c#489">489</a>         if (<a href="/lxr/ident?i=percent">percent</a> &lt;= 0 || <a href="/lxr/ident?i=percent">percent</a> &gt; 100) {
<a name=490 href="/lxr/source/nethack/src/read.c#490">490</a>             impossible(<i>"forget_levels: bad percent %d"</i>, <a href="/lxr/ident?i=percent">percent</a>);
<a name=491 href="/lxr/source/nethack/src/read.c#491">491</a>             return;
<a name=492 href="/lxr/source/nethack/src/read.c#492">492</a>         }
<a name=493 href="/lxr/source/nethack/src/read.c#493">493</a> 
<a name=494 href="/lxr/source/nethack/src/read.c#494">494</a>         this_lev = ledger_no(&amp;<a href="/lxr/ident?i=u">u</a>.uz);
<a name=495 href="/lxr/source/nethack/src/read.c#495">495</a>         maxl = <a href="/lxr/ident?i=maxledgerno">maxledgerno</a>();
<a name=496 href="/lxr/source/nethack/src/read.c#496">496</a> 
<a name=497 href="/lxr/source/nethack/src/read.c#497">497</a>         <b><i>/* count &amp; save indices of non-forgotten visited levels */</i></b>
<a name=498 href="/lxr/source/nethack/src/read.c#498">498</a>         for (<a href="/lxr/ident?i=count">count</a> = 0, <a href="/lxr/ident?i=i">i</a> = 0; <a href="/lxr/ident?i=i">i</a> &lt;= maxl; <a href="/lxr/ident?i=i">i</a>++)
<a name=499 href="/lxr/source/nethack/src/read.c#499">499</a>             if ((<a href="/lxr/ident?i=level_info">level_info</a>[<a href="/lxr/ident?i=i">i</a>].<a href="/lxr/ident?i=flags">flags</a> &amp; <a href="/lxr/ident?i=VISITED">VISITED</a>) &amp;&amp;
<a name=500 href="/lxr/source/nethack/src/read.c#500">500</a>                         !(<a href="/lxr/ident?i=level_info">level_info</a>[<a href="/lxr/ident?i=i">i</a>].<a href="/lxr/ident?i=flags">flags</a> &amp; <a href="/lxr/ident?i=FORGOTTEN">FORGOTTEN</a>) &amp;&amp; <a href="/lxr/ident?i=i">i</a> != this_lev)
<a name=501 href="/lxr/source/nethack/src/read.c#501">501</a>                 <a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=count">count</a>++] = <a href="/lxr/ident?i=i">i</a>;
<a name=502 href="/lxr/source/nethack/src/read.c#502">502</a> 
<a name=503 href="/lxr/source/nethack/src/read.c#503">503</a>         <a href="/lxr/ident?i=randomize">randomize</a>(<a href="/lxr/ident?i=indices">indices</a>, <a href="/lxr/ident?i=count">count</a>);
<a name=504 href="/lxr/source/nethack/src/read.c#504">504</a> 
<a name=505 href="/lxr/source/nethack/src/read.c#505">505</a>         <b><i>/* forget first % of randomized indices */</i></b>
<a name=506 href="/lxr/source/nethack/src/read.c#506">506</a>         <a href="/lxr/ident?i=count">count</a> = ((<a href="/lxr/ident?i=count">count</a> * <a href="/lxr/ident?i=percent">percent</a>) + 50) / 100;
<a name=507 href="/lxr/source/nethack/src/read.c#507">507</a>         for (<a href="/lxr/ident?i=i">i</a> = 0; <a href="/lxr/ident?i=i">i</a> &lt; <a href="/lxr/ident?i=count">count</a>; <a href="/lxr/ident?i=i">i</a>++) {
<a name=508 href="/lxr/source/nethack/src/read.c#508">508</a>             <a href="/lxr/ident?i=level_info">level_info</a>[<a href="/lxr/ident?i=indices">indices</a>[<a href="/lxr/ident?i=i">i</a>]].<a href="/lxr/ident?i=flags">flags</a> |= <a href="/lxr/ident?i=FORGOTTEN">FORGOTTEN</a>;
<a name=509 href="/lxr/source/nethack/src/read.c#509">509</a>         }
<a name=510 href="/lxr/source/nethack/src/read.c#510">510</a> }
<a name=511 href="/lxr/source/nethack/src/read.c#511">511</a> 
<a name=512 href="/lxr/source/nethack/src/read.c#512">512</a> <b><i>/*</i></b>
<a name=513 href="/lxr/source/nethack/src/read.c#513">513</a> <b><i> * Forget some things (e.g. after reading a scroll of amnesia).  When called,</i></b>
<a name=514 href="/lxr/source/nethack/src/read.c#514">514</a> <b><i> * the following are always forgotten:</i></b>
<a name=515 href="/lxr/source/nethack/src/read.c#515">515</a> <b><i> *</i></b>
<a name=516 href="/lxr/source/nethack/src/read.c#516">516</a> <b><i> *      - felt ball &amp; chain</i></b>
<a name=517 href="/lxr/source/nethack/src/read.c#517">517</a> <b><i> *      - traps</i></b>
<a name=518 href="/lxr/source/nethack/src/read.c#518">518</a> <b><i> *      - part (6 out of 7) of the map</i></b>
<a name=519 href="/lxr/source/nethack/src/read.c#519">519</a> <b><i> *</i></b>
<a name=520 href="/lxr/source/nethack/src/read.c#520">520</a> <b><i> * Other things are subject to flags:</i></b>
<a name=521 href="/lxr/source/nethack/src/read.c#521">521</a> <b><i> *</i></b>
<a name=522 href="/lxr/source/nethack/src/read.c#522">522</a> <b><i> *      howmuch &amp; ALL_MAP       = forget whole map</i></b>
<a name=523 href="/lxr/source/nethack/src/read.c#523">523</a> <b><i> *      howmuch &amp; ALL_SPELLS    = forget all spells</i></b>
<a name=524 href="/lxr/source/nethack/src/read.c#524">524</a> <b><i> */</i></b>
<a name=525 href="/lxr/source/nethack/src/read.c#525">525</a> static void
<a name=526 href="/lxr/source/nethack/src/read.c#526">526</a> forget(<a href="/lxr/ident?i=howmuch">howmuch</a>)
<a name=527 href="/lxr/source/nethack/src/read.c#527">527</a> int <a href="/lxr/ident?i=howmuch">howmuch</a>;
<a name=528 href="/lxr/source/nethack/src/read.c#528">528</a> {
<a name=529 href="/lxr/source/nethack/src/read.c#529">529</a> 
<a name=530 href="/lxr/source/nethack/src/read.c#530">530</a>         if (<a href="/lxr/ident?i=Punished">Punished</a>) <a href="/lxr/ident?i=u">u</a>.bc_felt = 0;    <b><i>/* forget felt ball&amp;chain */</i></b>
<a name=531 href="/lxr/source/nethack/src/read.c#531">531</a> 
<a name=532 href="/lxr/source/nethack/src/read.c#532">532</a>         forget_map(<a href="/lxr/ident?i=howmuch">howmuch</a>);
<a name=533 href="/lxr/source/nethack/src/read.c#533">533</a>         <a href="/lxr/ident?i=forget_traps">forget_traps</a>();
<a name=534 href="/lxr/source/nethack/src/read.c#534">534</a> 
<a name=535 href="/lxr/source/nethack/src/read.c#535">535</a>         <b><i>/* 1 in 3 chance of forgetting some levels */</i></b>
<a name=536 href="/lxr/source/nethack/src/read.c#536">536</a>         if (!rn2(3)) forget_levels(rn2(25));
<a name=537 href="/lxr/source/nethack/src/read.c#537">537</a> 
<a name=538 href="/lxr/source/nethack/src/read.c#538">538</a>         <b><i>/* 1 in 3 chance of forgeting some objects */</i></b>
<a name=539 href="/lxr/source/nethack/src/read.c#539">539</a>         if (!rn2(3)) forget_objects(rn2(25));
<a name=540 href="/lxr/source/nethack/src/read.c#540">540</a> 
<a name=541 href="/lxr/source/nethack/src/read.c#541">541</a>         if (<a href="/lxr/ident?i=howmuch">howmuch</a> &amp; <a href="/lxr/ident?i=ALL_SPELLS">ALL_SPELLS</a>) <a href="/lxr/ident?i=losespells">losespells</a>();
<a name=542 href="/lxr/source/nethack/src/read.c#542">542</a>         <b><i>/*</i></b>
<a name=543 href="/lxr/source/nethack/src/read.c#543">543</a> <b><i>         * Make sure that what was seen is restored correctly.  To do this,</i></b>
<a name=544 href="/lxr/source/nethack/src/read.c#544">544</a> <b><i>         * we need to go blind for an instant --- turn off the display,</i></b>
<a name=545 href="/lxr/source/nethack/src/read.c#545">545</a> <b><i>         * then restart it.  All this work is needed to correctly handle</i></b>
<a name=546 href="/lxr/source/nethack/src/read.c#546">546</a> <b><i>         * walls which are stone on one side and wall on the other.  Turning</i></b>
<a name=547 href="/lxr/source/nethack/src/read.c#547">547</a> <b><i>         * off the seen bits above will make the wall revert to stone,  but</i></b>
<a name=548 href="/lxr/source/nethack/src/read.c#548">548</a> <b><i>         * there are cases where we don't want this to happen.  The easiest</i></b>
<a name=549 href="/lxr/source/nethack/src/read.c#549">549</a> <b><i>         * thing to do is to run it through the vision system again, which</i></b>
<a name=550 href="/lxr/source/nethack/src/read.c#550">550</a> <b><i>         * is always correct.</i></b>
<a name=551 href="/lxr/source/nethack/src/read.c#551">551</a> <b><i>         */</i></b>
<a name=552 href="/lxr/source/nethack/src/read.c#552">552</a>         <a href="/lxr/ident?i=docrt">docrt</a>();                <b><i>/* this correctly will reset vision */</i></b>
<a name=553 href="/lxr/source/nethack/src/read.c#553">553</a> }
<a name=554 href="/lxr/source/nethack/src/read.c#554">554</a> 
<a name=555 href="/lxr/source/nethack/src/read.c#555">555</a> int
<a name=556 href="/lxr/source/nethack/src/read.c#556">556</a> seffects(<a href="/lxr/ident?i=sobj">sobj</a>)
<a name=557 href="/lxr/source/nethack/src/read.c#557">557</a> register struct <a href="/lxr/ident?i=obj">obj</a>     *<a href="/lxr/ident?i=sobj">sobj</a>;
<a name=558 href="/lxr/source/nethack/src/read.c#558">558</a> {
<a name=559 href="/lxr/source/nethack/src/read.c#559">559</a>         register int cval;
<a name=560 href="/lxr/source/nethack/src/read.c#560">560</a>         register <a href="/lxr/ident?i=boolean">boolean</a> confused = (<a href="/lxr/ident?i=Confusion">Confusion</a> != 0);
<a name=561 href="/lxr/source/nethack/src/read.c#561">561</a>         register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=otmp">otmp</a>;
<a name=562 href="/lxr/source/nethack/src/read.c#562">562</a> 
<a name=563 href="/lxr/source/nethack/src/read.c#563">563</a>         if (<a href="/lxr/ident?i=objects">objects</a>[<a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>].oc_magic)
<a name=564 href="/lxr/source/nethack/src/read.c#564">564</a>                 exercise(<a href="/lxr/ident?i=A_WIS">A_WIS</a>, <a href="/lxr/ident?i=TRUE">TRUE</a>);          <b><i>/* just for trying */</i></b>
<a name=565 href="/lxr/source/nethack/src/read.c#565">565</a>         switch(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>) {
<a name=566 href="/lxr/source/nethack/src/read.c#566">566</a> #ifdef <a href="/lxr/ident?i=MAIL">MAIL</a>
<a name=567 href="/lxr/source/nethack/src/read.c#567">567</a>         case SCR_MAIL:
<a name=568 href="/lxr/source/nethack/src/read.c#568">568</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=569 href="/lxr/source/nethack/src/read.c#569">569</a>                 if (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;spe)
<a name=570 href="/lxr/source/nethack/src/read.c#570">570</a>                     <a href="/lxr/ident?i=pline">pline</a>(<i>"This seems to be junk mail addressed to the finder of the Eye of Larn."</i>);
<a name=571 href="/lxr/source/nethack/src/read.c#571">571</a>                 <b><i>/* note to the puzzled: the game Larn actually sends you junk</i></b>
<a name=572 href="/lxr/source/nethack/src/read.c#572">572</a> <b><i>                 * mail if you win!</i></b>
<a name=573 href="/lxr/source/nethack/src/read.c#573">573</a> <b><i>                 */</i></b>
<a name=574 href="/lxr/source/nethack/src/read.c#574">574</a>                 else readmail(<a href="/lxr/ident?i=sobj">sobj</a>);
<a name=575 href="/lxr/source/nethack/src/read.c#575">575</a>                 break;
<a name=576 href="/lxr/source/nethack/src/read.c#576">576</a> #endif
<a name=577 href="/lxr/source/nethack/src/read.c#577">577</a>         case SCR_ENCHANT_ARMOR:
<a name=578 href="/lxr/source/nethack/src/read.c#578">578</a>             {
<a name=579 href="/lxr/source/nethack/src/read.c#579">579</a>                 register <a href="/lxr/ident?i=schar">schar</a> <a href="/lxr/ident?i=s">s</a>;
<a name=580 href="/lxr/source/nethack/src/read.c#580">580</a>                 <a href="/lxr/ident?i=boolean">boolean</a> special_armor;
<a name=581 href="/lxr/source/nethack/src/read.c#581">581</a> 
<a name=582 href="/lxr/source/nethack/src/read.c#582">582</a>                 <a href="/lxr/ident?i=otmp">otmp</a> = <a href="/lxr/ident?i=some_armor">some_armor</a>();
<a name=583 href="/lxr/source/nethack/src/read.c#583">583</a>                 if(!<a href="/lxr/ident?i=otmp">otmp</a>) {
<a name=584 href="/lxr/source/nethack/src/read.c#584">584</a>                         strange_feeling(<a href="/lxr/ident?i=sobj">sobj</a>,
<a name=585 href="/lxr/source/nethack/src/read.c#585">585</a>                                         !<a href="/lxr/ident?i=Blind">Blind</a> ? <i>"Your skin glows then fades."</i> :
<a name=586 href="/lxr/source/nethack/src/read.c#586">586</a>                                         <i>"Your skin feels warm for a moment."</i>);
<a name=587 href="/lxr/source/nethack/src/read.c#587">587</a>                         exercise(<a href="/lxr/ident?i=A_CON">A_CON</a>, !<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed);
<a name=588 href="/lxr/source/nethack/src/read.c#588">588</a>                         exercise(<a href="/lxr/ident?i=A_STR">A_STR</a>, !<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed);
<a name=589 href="/lxr/source/nethack/src/read.c#589">589</a>                         return(1);
<a name=590 href="/lxr/source/nethack/src/read.c#590">590</a>                 }
<a name=591 href="/lxr/source/nethack/src/read.c#591">591</a>                 if(confused) {
<a name=592 href="/lxr/source/nethack/src/read.c#592">592</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;oerodeproof = !(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed);
<a name=593 href="/lxr/source/nethack/src/read.c#593">593</a>                         if(<a href="/lxr/ident?i=Blind">Blind</a>) {
<a name=594 href="/lxr/source/nethack/src/read.c#594">594</a>                             <a href="/lxr/ident?i=otmp">otmp</a>-&gt;rknown = <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=595 href="/lxr/source/nethack/src/read.c#595">595</a>                             Your(<i>"%s feels warm for a moment."</i>,
<a name=596 href="/lxr/source/nethack/src/read.c#596">596</a>                                 <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>));
<a name=597 href="/lxr/source/nethack/src/read.c#597">597</a>                         } else {
<a name=598 href="/lxr/source/nethack/src/read.c#598">598</a>                             <a href="/lxr/ident?i=otmp">otmp</a>-&gt;rknown = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=599 href="/lxr/source/nethack/src/read.c#599">599</a>                             Your(<i>"%s is covered by a %s %s %s!"</i>,
<a name=600 href="/lxr/source/nethack/src/read.c#600">600</a>                                 <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=601 href="/lxr/source/nethack/src/read.c#601">601</a>                                 <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <i>"mottled"</i> : <i>"shimmering"</i>,
<a name=602 href="/lxr/source/nethack/src/read.c#602">602</a>                                 hcolor(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <a href="/lxr/ident?i=Black">Black</a> : <a href="/lxr/ident?i=golden">golden</a>),
<a name=603 href="/lxr/source/nethack/src/read.c#603">603</a>                                 <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <i>"glow"</i> :
<a name=604 href="/lxr/source/nethack/src/read.c#604">604</a>                                   (<a href="/lxr/ident?i=is_shield">is_shield</a>(<a href="/lxr/ident?i=otmp">otmp</a>) ? <i>"layer"</i> : <i>"shield"</i>));
<a name=605 href="/lxr/source/nethack/src/read.c#605">605</a>                         }
<a name=606 href="/lxr/source/nethack/src/read.c#606">606</a>                         if (<a href="/lxr/ident?i=otmp">otmp</a>-&gt;oerodeproof &amp;&amp; <a href="/lxr/ident?i=otmp">otmp</a>-&gt;oeroded) {
<a name=607 href="/lxr/source/nethack/src/read.c#607">607</a>                             <a href="/lxr/ident?i=otmp">otmp</a>-&gt;oeroded = 0;
<a name=608 href="/lxr/source/nethack/src/read.c#608">608</a>                             Your(<i>"%s %ss good as new!"</i>,
<a name=609 href="/lxr/source/nethack/src/read.c#609">609</a>                                  <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>), <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"feel"</i> : <i>"look"</i>);
<a name=610 href="/lxr/source/nethack/src/read.c#610">610</a>                         }
<a name=611 href="/lxr/source/nethack/src/read.c#611">611</a>                         break;
<a name=612 href="/lxr/source/nethack/src/read.c#612">612</a>                 }
<a name=613 href="/lxr/source/nethack/src/read.c#613">613</a>                 special_armor = <a href="/lxr/ident?i=is_elven_armor">is_elven_armor</a>(<a href="/lxr/ident?i=otmp">otmp</a>) ||
<a name=614 href="/lxr/source/nethack/src/read.c#614">614</a>                                 (<a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'W'</i>) &amp;&amp; <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == CORNUTHAUM);
<a name=615 href="/lxr/source/nethack/src/read.c#615">615</a>                 if ((<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe &gt; (special_armor ? 5 : 3)) &amp;&amp;
<a name=616 href="/lxr/source/nethack/src/read.c#616">616</a>                     rn2(<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe) &amp;&amp; !<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) {
<a name=617 href="/lxr/source/nethack/src/read.c#617">617</a>                 Your(<i>"%s violently %s%s for a while, then evaporates."</i>,
<a name=618 href="/lxr/source/nethack/src/read.c#618">618</a>                             <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=619 href="/lxr/source/nethack/src/read.c#619">619</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"vibrates"</i> : <i>"glows "</i>,
<a name=620 href="/lxr/source/nethack/src/read.c#620">620</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <a href="/lxr/ident?i=nul">nul</a> : hcolor(<a href="/lxr/ident?i=silver">silver</a>));
<a name=621 href="/lxr/source/nethack/src/read.c#621">621</a>                         if(<a href="/lxr/ident?i=is_cloak">is_cloak</a>(<a href="/lxr/ident?i=otmp">otmp</a>)) (void) Cloak_off();
<a name=622 href="/lxr/source/nethack/src/read.c#622">622</a>                         if(<a href="/lxr/ident?i=is_boots">is_boots</a>(<a href="/lxr/ident?i=otmp">otmp</a>)) (void) <a href="/lxr/ident?i=Boots_off">Boots_off</a>();
<a name=623 href="/lxr/source/nethack/src/read.c#623">623</a>                         if(<a href="/lxr/ident?i=is_helmet">is_helmet</a>(<a href="/lxr/ident?i=otmp">otmp</a>)) (void) <a href="/lxr/ident?i=Helmet_off">Helmet_off</a>();
<a name=624 href="/lxr/source/nethack/src/read.c#624">624</a>                         if(<a href="/lxr/ident?i=is_gloves">is_gloves</a>(<a href="/lxr/ident?i=otmp">otmp</a>)) (void) <a href="/lxr/ident?i=Gloves_off">Gloves_off</a>();
<a name=625 href="/lxr/source/nethack/src/read.c#625">625</a>                         if(<a href="/lxr/ident?i=is_shield">is_shield</a>(<a href="/lxr/ident?i=otmp">otmp</a>)) (void) Shield_off();
<a name=626 href="/lxr/source/nethack/src/read.c#626">626</a>                         if(<a href="/lxr/ident?i=otmp">otmp</a> == uarm) (void) Armor_gone();
<a name=627 href="/lxr/source/nethack/src/read.c#627">627</a>                         useup(<a href="/lxr/ident?i=otmp">otmp</a>);
<a name=628 href="/lxr/source/nethack/src/read.c#628">628</a>                         break;
<a name=629 href="/lxr/source/nethack/src/read.c#629">629</a>                 }
<a name=630 href="/lxr/source/nethack/src/read.c#630">630</a>                 <a href="/lxr/ident?i=s">s</a> = <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? -1 :
<a name=631 href="/lxr/source/nethack/src/read.c#631">631</a>                     <a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe &gt;= 9 ? (rn2(<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe) == 0) :
<a name=632 href="/lxr/source/nethack/src/read.c#632">632</a>                     <a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed ? <a href="/lxr/ident?i=rnd">rnd</a>(3-<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe/3) : 1;
<a name=633 href="/lxr/source/nethack/src/read.c#633">633</a>                 if (<a href="/lxr/ident?i=s">s</a> &gt;= 0 &amp;&amp; <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> &gt;= GRAY_DRAGON_SCALES &amp;&amp;
<a name=634 href="/lxr/source/nethack/src/read.c#634">634</a>                                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> &lt;= YELLOW_DRAGON_SCALES) {
<a name=635 href="/lxr/source/nethack/src/read.c#635">635</a>                         <b><i>/* dragon scales get turned into dragon scale mail */</i></b>
<a name=636 href="/lxr/source/nethack/src/read.c#636">636</a>                         Your(<i>"%s merges and hardens!"</i>, <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>));
<a name=637 href="/lxr/source/nethack/src/read.c#637">637</a>                         setworn((struct <a href="/lxr/ident?i=obj">obj</a> *)0, <a href="/lxr/ident?i=W_ARM">W_ARM</a>);
<a name=638 href="/lxr/source/nethack/src/read.c#638">638</a>                         <b><i>/* assumes same order */</i></b>
<a name=639 href="/lxr/source/nethack/src/read.c#639">639</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> = GRAY_DRAGON_SCALE_MAIL +
<a name=640 href="/lxr/source/nethack/src/read.c#640">640</a>                                                 <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> - GRAY_DRAGON_SCALES;
<a name=641 href="/lxr/source/nethack/src/read.c#641">641</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;cursed = 0;
<a name=642 href="/lxr/source/nethack/src/read.c#642">642</a>                         if (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed) {
<a name=643 href="/lxr/source/nethack/src/read.c#643">643</a>                                 <a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe++;
<a name=644 href="/lxr/source/nethack/src/read.c#644">644</a>                                 <a href="/lxr/ident?i=otmp">otmp</a>-&gt;blessed = 1;
<a name=645 href="/lxr/source/nethack/src/read.c#645">645</a>                         }
<a name=646 href="/lxr/source/nethack/src/read.c#646">646</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=known">known</a> = 1;
<a name=647 href="/lxr/source/nethack/src/read.c#647">647</a>                         setworn(<a href="/lxr/ident?i=otmp">otmp</a>, <a href="/lxr/ident?i=W_ARM">W_ARM</a>);
<a name=648 href="/lxr/source/nethack/src/read.c#648">648</a>                         break;
<a name=649 href="/lxr/source/nethack/src/read.c#649">649</a>                 }
<a name=650 href="/lxr/source/nethack/src/read.c#650">650</a>                 Your(<i>"%s %s%s%s for a %s."</i>,
<a name=651 href="/lxr/source/nethack/src/read.c#651">651</a>                         <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=652 href="/lxr/source/nethack/src/read.c#652">652</a>                         <a href="/lxr/ident?i=s">s</a> == 0 ? <i>"violently "</i> : <a href="/lxr/ident?i=nul">nul</a>,
<a name=653 href="/lxr/source/nethack/src/read.c#653">653</a>                         <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"vibrates"</i> : <i>"glows "</i>,
<a name=654 href="/lxr/source/nethack/src/read.c#654">654</a>                         <a href="/lxr/ident?i=Blind">Blind</a> ? <a href="/lxr/ident?i=nul">nul</a> : hcolor(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <a href="/lxr/ident?i=Black">Black</a> : <a href="/lxr/ident?i=silver">silver</a>),
<a name=655 href="/lxr/source/nethack/src/read.c#655">655</a>                           (<a href="/lxr/ident?i=s">s</a>*<a href="/lxr/ident?i=s">s</a>&gt;1) ? <i>"while"</i> : <i>"moment"</i>);
<a name=656 href="/lxr/source/nethack/src/read.c#656">656</a>                 <a href="/lxr/ident?i=otmp">otmp</a>-&gt;cursed = <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed;
<a name=657 href="/lxr/source/nethack/src/read.c#657">657</a>                 if (!<a href="/lxr/ident?i=otmp">otmp</a>-&gt;blessed || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed)
<a name=658 href="/lxr/source/nethack/src/read.c#658">658</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;blessed = <a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed;
<a name=659 href="/lxr/source/nethack/src/read.c#659">659</a>                 if (<a href="/lxr/ident?i=s">s</a>) {
<a name=660 href="/lxr/source/nethack/src/read.c#660">660</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe += <a href="/lxr/ident?i=s">s</a>;
<a name=661 href="/lxr/source/nethack/src/read.c#661">661</a>                         adj_abon(<a href="/lxr/ident?i=otmp">otmp</a>, <a href="/lxr/ident?i=s">s</a>);
<a name=662 href="/lxr/source/nethack/src/read.c#662">662</a>                         <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=known">known</a>;
<a name=663 href="/lxr/source/nethack/src/read.c#663">663</a>                 }
<a name=664 href="/lxr/source/nethack/src/read.c#664">664</a> 
<a name=665 href="/lxr/source/nethack/src/read.c#665">665</a>                 if ((<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe &gt; (special_armor ? 5 : 3)) &amp;&amp;
<a name=666 href="/lxr/source/nethack/src/read.c#666">666</a>                     (special_armor || !rn2(7)))
<a name=667 href="/lxr/source/nethack/src/read.c#667">667</a>                         Your(<i>"%s suddenly vibrates %s."</i>,
<a name=668 href="/lxr/source/nethack/src/read.c#668">668</a>                                 <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>),
<a name=669 href="/lxr/source/nethack/src/read.c#669">669</a>                                 <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"again"</i> : <i>"unexpectedly"</i>);
<a name=670 href="/lxr/source/nethack/src/read.c#670">670</a>                 break;
<a name=671 href="/lxr/source/nethack/src/read.c#671">671</a>             }
<a name=672 href="/lxr/source/nethack/src/read.c#672">672</a>         case SCR_DESTROY_ARMOR:
<a name=673 href="/lxr/source/nethack/src/read.c#673">673</a>             {
<a name=674 href="/lxr/source/nethack/src/read.c#674">674</a>                 <a href="/lxr/ident?i=otmp">otmp</a> = <a href="/lxr/ident?i=some_armor">some_armor</a>();
<a name=675 href="/lxr/source/nethack/src/read.c#675">675</a>                 if(confused) {
<a name=676 href="/lxr/source/nethack/src/read.c#676">676</a>                         if(!<a href="/lxr/ident?i=otmp">otmp</a>) {
<a name=677 href="/lxr/source/nethack/src/read.c#677">677</a>                                 strange_feeling(<a href="/lxr/ident?i=sobj">sobj</a>,<i>"Your bones itch."</i>);
<a name=678 href="/lxr/source/nethack/src/read.c#678">678</a>                                 exercise(<a href="/lxr/ident?i=A_STR">A_STR</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=679 href="/lxr/source/nethack/src/read.c#679">679</a>                                 exercise(<a href="/lxr/ident?i=A_CON">A_CON</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=680 href="/lxr/source/nethack/src/read.c#680">680</a>                                 return(1);
<a name=681 href="/lxr/source/nethack/src/read.c#681">681</a>                         }
<a name=682 href="/lxr/source/nethack/src/read.c#682">682</a>                         <a href="/lxr/ident?i=otmp">otmp</a>-&gt;oerodeproof = <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed;
<a name=683 href="/lxr/source/nethack/src/read.c#683">683</a>                         p_glow2(<a href="/lxr/ident?i=otmp">otmp</a>,<a href="/lxr/ident?i=purple">purple</a>);
<a name=684 href="/lxr/source/nethack/src/read.c#684">684</a>                         break;
<a name=685 href="/lxr/source/nethack/src/read.c#685">685</a>                 }
<a name=686 href="/lxr/source/nethack/src/read.c#686">686</a>                 if(!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed || !<a href="/lxr/ident?i=otmp">otmp</a> || !<a href="/lxr/ident?i=otmp">otmp</a>-&gt;cursed) {
<a name=687 href="/lxr/source/nethack/src/read.c#687">687</a>                     if(!destroy_arm(<a href="/lxr/ident?i=otmp">otmp</a>)) {
<a name=688 href="/lxr/source/nethack/src/read.c#688">688</a>                         strange_feeling(<a href="/lxr/ident?i=sobj">sobj</a>,<i>"Your skin itches."</i>);
<a name=689 href="/lxr/source/nethack/src/read.c#689">689</a>                         exercise(<a href="/lxr/ident?i=A_STR">A_STR</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=690 href="/lxr/source/nethack/src/read.c#690">690</a>                         exercise(<a href="/lxr/ident?i=A_CON">A_CON</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=691 href="/lxr/source/nethack/src/read.c#691">691</a>                         return(1);
<a name=692 href="/lxr/source/nethack/src/read.c#692">692</a>                     } else
<a name=693 href="/lxr/source/nethack/src/read.c#693">693</a>                         <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=694 href="/lxr/source/nethack/src/read.c#694">694</a>                 } else {        <b><i>/* armor and scroll both cursed */</i></b>
<a name=695 href="/lxr/source/nethack/src/read.c#695">695</a>                     Your(<i>"%s vibrates."</i>, <a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=otmp">otmp</a>));
<a name=696 href="/lxr/source/nethack/src/read.c#696">696</a>                     if (<a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe &gt;= -6) <a href="/lxr/ident?i=otmp">otmp</a>-&gt;spe--;
<a name=697 href="/lxr/source/nethack/src/read.c#697">697</a>                     make_stunned(<a href="/lxr/ident?i=HStun">HStun</a> + <a href="/lxr/ident?i=rn1">rn1</a>(10, 10), <a href="/lxr/ident?i=TRUE">TRUE</a>);
<a name=698 href="/lxr/source/nethack/src/read.c#698">698</a>                 }
<a name=699 href="/lxr/source/nethack/src/read.c#699">699</a>             }
<a name=700 href="/lxr/source/nethack/src/read.c#700">700</a>             break;
<a name=701 href="/lxr/source/nethack/src/read.c#701">701</a>         case SCR_CONFUSE_MONSTER:
<a name=702 href="/lxr/source/nethack/src/read.c#702">702</a>         case SPE_CONFUSE_MONSTER:
<a name=703 href="/lxr/source/nethack/src/read.c#703">703</a>                 if(<a href="/lxr/ident?i=u">u</a>.usym != <a href="/lxr/ident?i=S_HUMAN">S_HUMAN</a> || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) {
<a name=704 href="/lxr/source/nethack/src/read.c#704">704</a>                         if(!<a href="/lxr/ident?i=HConfusion">HConfusion</a>) You_feel(<i>"confused."</i>);
<a name=705 href="/lxr/source/nethack/src/read.c#705">705</a>                         make_confused(<a href="/lxr/ident?i=HConfusion">HConfusion</a> + <a href="/lxr/ident?i=rnd">rnd</a>(100),<a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=706 href="/lxr/source/nethack/src/read.c#706">706</a>                 } else  if(confused) {
<a name=707 href="/lxr/source/nethack/src/read.c#707">707</a>                     if(!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed) {
<a name=708 href="/lxr/source/nethack/src/read.c#708">708</a>                         Your(<i>"%s begin to %s%s."</i>,
<a name=709 href="/lxr/source/nethack/src/read.c#709">709</a>                             makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)),
<a name=710 href="/lxr/source/nethack/src/read.c#710">710</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"tingle"</i> : <i>"glow "</i>,
<a name=711 href="/lxr/source/nethack/src/read.c#711">711</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <a href="/lxr/ident?i=nul">nul</a> : hcolor(<a href="/lxr/ident?i=purple">purple</a>));
<a name=712 href="/lxr/source/nethack/src/read.c#712">712</a>                         make_confused(<a href="/lxr/ident?i=HConfusion">HConfusion</a> + <a href="/lxr/ident?i=rnd">rnd</a>(100),<a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=713 href="/lxr/source/nethack/src/read.c#713">713</a>                     } else {
<a name=714 href="/lxr/source/nethack/src/read.c#714">714</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"A %s%s surrounds your %s."</i>,
<a name=715 href="/lxr/source/nethack/src/read.c#715">715</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <a href="/lxr/ident?i=nul">nul</a> : hcolor(<a href="/lxr/ident?i=red">red</a>),
<a name=716 href="/lxr/source/nethack/src/read.c#716">716</a>                             <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"faint buzz"</i> : <i>" glow"</i>,
<a name=717 href="/lxr/source/nethack/src/read.c#717">717</a>                             body_part(<a href="/lxr/ident?i=HEAD">HEAD</a>));
<a name=718 href="/lxr/source/nethack/src/read.c#718">718</a>                         make_confused(0L,<a href="/lxr/ident?i=TRUE">TRUE</a>);
<a name=719 href="/lxr/source/nethack/src/read.c#719">719</a>                     }
<a name=720 href="/lxr/source/nethack/src/read.c#720">720</a>                 } else {
<a name=721 href="/lxr/source/nethack/src/read.c#721">721</a>                     if (!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed) {
<a name=722 href="/lxr/source/nethack/src/read.c#722">722</a>                         Your(<i>"%s%s %s%s."</i>,
<a name=723 href="/lxr/source/nethack/src/read.c#723">723</a>                         makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)),
<a name=724 href="/lxr/source/nethack/src/read.c#724">724</a>                         <a href="/lxr/ident?i=Blind">Blind</a> ? <i>""</i> : <i>" begin to glow"</i>,
<a name=725 href="/lxr/source/nethack/src/read.c#725">725</a>                         <a href="/lxr/ident?i=Blind">Blind</a> ? (const char *)<i>"tingle"</i> : hcolor(<a href="/lxr/ident?i=red">red</a>),
<a name=726 href="/lxr/source/nethack/src/read.c#726">726</a>                         <a href="/lxr/ident?i=u">u</a>.umconf ? <i>" even more"</i> : <i>""</i>);
<a name=727 href="/lxr/source/nethack/src/read.c#727">727</a>                         <a href="/lxr/ident?i=u">u</a>.umconf++;
<a name=728 href="/lxr/source/nethack/src/read.c#728">728</a>                     } else {
<a name=729 href="/lxr/source/nethack/src/read.c#729">729</a>                         if (<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=730 href="/lxr/source/nethack/src/read.c#730">730</a>                             Your(<i>"%s tingle %s sharply."</i>,
<a name=731 href="/lxr/source/nethack/src/read.c#731">731</a>                                 makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)),
<a name=732 href="/lxr/source/nethack/src/read.c#732">732</a>                                 <a href="/lxr/ident?i=u">u</a>.umconf ? <i>"even more"</i> : <i>"very"</i>);
<a name=733 href="/lxr/source/nethack/src/read.c#733">733</a>                         else
<a name=734 href="/lxr/source/nethack/src/read.c#734">734</a>                             Your(<i>"%s glow a%s brilliant %s."</i>,
<a name=735 href="/lxr/source/nethack/src/read.c#735">735</a>                                 makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)),
<a name=736 href="/lxr/source/nethack/src/read.c#736">736</a>                                 <a href="/lxr/ident?i=u">u</a>.umconf ? <i>"n even more"</i> : <i>""</i>,
<a name=737 href="/lxr/source/nethack/src/read.c#737">737</a>                                 hcolor(<a href="/lxr/ident?i=red">red</a>));
<a name=738 href="/lxr/source/nethack/src/read.c#738">738</a>                         <a href="/lxr/ident?i=u">u</a>.umconf += <a href="/lxr/ident?i=rn1">rn1</a>(8, 2);
<a name=739 href="/lxr/source/nethack/src/read.c#739">739</a>                     }
<a name=740 href="/lxr/source/nethack/src/read.c#740">740</a>                 }
<a name=741 href="/lxr/source/nethack/src/read.c#741">741</a>                 break;
<a name=742 href="/lxr/source/nethack/src/read.c#742">742</a>         case SCR_SCARE_MONSTER:
<a name=743 href="/lxr/source/nethack/src/read.c#743">743</a>         case SPE_CAUSE_FEAR:
<a name=744 href="/lxr/source/nethack/src/read.c#744">744</a>             {   register int <a href="/lxr/ident?i=ct">ct</a> = 0;
<a name=745 href="/lxr/source/nethack/src/read.c#745">745</a>                 register struct <a href="/lxr/ident?i=monst">monst</a> *<a href="/lxr/ident?i=mtmp">mtmp</a>;
<a name=746 href="/lxr/source/nethack/src/read.c#746">746</a> 
<a name=747 href="/lxr/source/nethack/src/read.c#747">747</a>                 for(<a href="/lxr/ident?i=mtmp">mtmp</a> = <a href="/lxr/ident?i=fmon">fmon</a>; <a href="/lxr/ident?i=mtmp">mtmp</a>; <a href="/lxr/ident?i=mtmp">mtmp</a> = <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;nmon)
<a name=748 href="/lxr/source/nethack/src/read.c#748">748</a>                     if(<a href="/lxr/ident?i=cansee">cansee</a>(<a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;<a href="/lxr/ident?i=mx">mx</a>,<a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;<a href="/lxr/ident?i=my">my</a>)) {
<a name=749 href="/lxr/source/nethack/src/read.c#749">749</a>                         if(confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) {
<a name=750 href="/lxr/source/nethack/src/read.c#750">750</a>                             <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;mflee = <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;mfrozen = <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;<a href="/lxr/ident?i=msleep">msleep</a> = 0;
<a name=751 href="/lxr/source/nethack/src/read.c#751">751</a>                             <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;mcanmove = 1;
<a name=752 href="/lxr/source/nethack/src/read.c#752">752</a>                         } else
<a name=753 href="/lxr/source/nethack/src/read.c#753">753</a>                             if (! resist(<a href="/lxr/ident?i=mtmp">mtmp</a>, <a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a>, 0, <a href="/lxr/ident?i=NOTELL">NOTELL</a>))
<a name=754 href="/lxr/source/nethack/src/read.c#754">754</a>                                 <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;mflee = 1;
<a name=755 href="/lxr/source/nethack/src/read.c#755">755</a>                         if(!<a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;mtame) <a href="/lxr/ident?i=ct">ct</a>++;  <b><i>/* pets don't laugh at you */</i></b>
<a name=756 href="/lxr/source/nethack/src/read.c#756">756</a>                     }
<a name=757 href="/lxr/source/nethack/src/read.c#757">757</a>                 if(!<a href="/lxr/ident?i=ct">ct</a>)
<a name=758 href="/lxr/source/nethack/src/read.c#758">758</a>                       You_hear(<i>"%s in the distance."</i>,
<a name=759 href="/lxr/source/nethack/src/read.c#759">759</a>                                (confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) ? <i>"sad wailing"</i> :
<a name=760 href="/lxr/source/nethack/src/read.c#760">760</a>                                                         <i>"maniacal laughter"</i>);
<a name=761 href="/lxr/source/nethack/src/read.c#761">761</a>                 else if(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == SCR_SCARE_MONSTER)
<a name=762 href="/lxr/source/nethack/src/read.c#762">762</a>                         You_hear(<i>"%s close by."</i>,
<a name=763 href="/lxr/source/nethack/src/read.c#763">763</a>                                   (confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) ? <i>"sad wailing"</i> :
<a name=764 href="/lxr/source/nethack/src/read.c#764">764</a>                                                  <i>"maniacal laughter"</i>);
<a name=765 href="/lxr/source/nethack/src/read.c#765">765</a>                 break;
<a name=766 href="/lxr/source/nethack/src/read.c#766">766</a>             }
<a name=767 href="/lxr/source/nethack/src/read.c#767">767</a>         case SCR_BLANK_PAPER:
<a name=768 href="/lxr/source/nethack/src/read.c#768">768</a>             if (<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=769 href="/lxr/source/nethack/src/read.c#769">769</a>                 You(<i>"don't remember there being any magic words on this scroll."</i>);
<a name=770 href="/lxr/source/nethack/src/read.c#770">770</a>             else
<a name=771 href="/lxr/source/nethack/src/read.c#771">771</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"This scroll seems to be blank."</i>);
<a name=772 href="/lxr/source/nethack/src/read.c#772">772</a>             <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=773 href="/lxr/source/nethack/src/read.c#773">773</a>             break;
<a name=774 href="/lxr/source/nethack/src/read.c#774">774</a>         case SCR_REMOVE_CURSE:
<a name=775 href="/lxr/source/nethack/src/read.c#775">775</a>         case SPE_REMOVE_CURSE:
<a name=776 href="/lxr/source/nethack/src/read.c#776">776</a>             {   register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=777 href="/lxr/source/nethack/src/read.c#777">777</a>                 if(confused) {
<a name=778 href="/lxr/source/nethack/src/read.c#778">778</a>                     if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>)
<a name=779 href="/lxr/source/nethack/src/read.c#779">779</a>                         You_feel(<i>"the power of the Force against you!"</i>);
<a name=780 href="/lxr/source/nethack/src/read.c#780">780</a>                     else
<a name=781 href="/lxr/source/nethack/src/read.c#781">781</a>                         You_feel(<i>"like you need some help."</i>);
<a name=782 href="/lxr/source/nethack/src/read.c#782">782</a>                 }
<a name=783 href="/lxr/source/nethack/src/read.c#783">783</a>                 else
<a name=784 href="/lxr/source/nethack/src/read.c#784">784</a>                     if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>)
<a name=785 href="/lxr/source/nethack/src/read.c#785">785</a>                         You_feel(<i>"in touch with the Universal Oneness."</i>);
<a name=786 href="/lxr/source/nethack/src/read.c#786">786</a>                     else
<a name=787 href="/lxr/source/nethack/src/read.c#787">787</a>                         You_feel(<i>"like someone is helping you."</i>);
<a name=788 href="/lxr/source/nethack/src/read.c#788">788</a> 
<a name=789 href="/lxr/source/nethack/src/read.c#789">789</a>                 if(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) pline_The(<i>"scroll disintegrates."</i>);
<a name=790 href="/lxr/source/nethack/src/read.c#790">790</a>                 else {
<a name=791 href="/lxr/source/nethack/src/read.c#791">791</a>                     for(<a href="/lxr/ident?i=obj">obj</a> = <a href="/lxr/ident?i=invent">invent</a>; <a href="/lxr/ident?i=obj">obj</a> ; <a href="/lxr/ident?i=obj">obj</a> = <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=nobj">nobj</a>)
<a name=792 href="/lxr/source/nethack/src/read.c#792">792</a>                         if(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed || <a href="/lxr/ident?i=obj">obj</a>-&gt;owornmask ||
<a name=793 href="/lxr/source/nethack/src/read.c#793">793</a>                            (<a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a> == LOADSTONE)) {
<a name=794 href="/lxr/source/nethack/src/read.c#794">794</a>                             if(confused) blessorcurse(<a href="/lxr/ident?i=obj">obj</a>, 2);
<a name=795 href="/lxr/source/nethack/src/read.c#795">795</a>                             else uncurse(<a href="/lxr/ident?i=obj">obj</a>);
<a name=796 href="/lxr/source/nethack/src/read.c#796">796</a>                         }
<a name=797 href="/lxr/source/nethack/src/read.c#797">797</a>                 }
<a name=798 href="/lxr/source/nethack/src/read.c#798">798</a>                 if(<a href="/lxr/ident?i=Punished">Punished</a> &amp;&amp; !confused) <a href="/lxr/ident?i=unpunish">unpunish</a>();
<a name=799 href="/lxr/source/nethack/src/read.c#799">799</a>                 break;
<a name=800 href="/lxr/source/nethack/src/read.c#800">800</a>             }
<a name=801 href="/lxr/source/nethack/src/read.c#801">801</a>         case SCR_CREATE_MONSTER:
<a name=802 href="/lxr/source/nethack/src/read.c#802">802</a>         case SPE_CREATE_MONSTER:
<a name=803 href="/lxr/source/nethack/src/read.c#803">803</a>             if (create_critters(1 + ((confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) ? 12 : 0) +
<a name=804 href="/lxr/source/nethack/src/read.c#804">804</a>                                 ((<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed || rn2(73)) ? 0 : <a href="/lxr/ident?i=rnd">rnd</a>(4)),
<a name=805 href="/lxr/source/nethack/src/read.c#805">805</a>                         confused ? &amp;<a href="/lxr/ident?i=mons">mons</a>[PM_ACID_BLOB] : (struct <a href="/lxr/ident?i=permonst">permonst</a> *)0))
<a name=806 href="/lxr/source/nethack/src/read.c#806">806</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=807 href="/lxr/source/nethack/src/read.c#807">807</a>             <b><i>/* no need to flush monsters; we ask for identification only if the</i></b>
<a name=808 href="/lxr/source/nethack/src/read.c#808">808</a> <b><i>             * monsters are not visible</i></b>
<a name=809 href="/lxr/source/nethack/src/read.c#809">809</a> <b><i>             */</i></b>
<a name=810 href="/lxr/source/nethack/src/read.c#810">810</a>             break;
<a name=811 href="/lxr/source/nethack/src/read.c#811">811</a>         case SCR_ENCHANT_WEAPON:
<a name=812 href="/lxr/source/nethack/src/read.c#812">812</a>                 if(uwep &amp;&amp; (uwep-&gt;<a href="/lxr/ident?i=oclass">oclass</a> == <a href="/lxr/ident?i=WEAPON_CLASS">WEAPON_CLASS</a> || <a href="/lxr/ident?i=is_weptool">is_weptool</a>(uwep))
<a name=813 href="/lxr/source/nethack/src/read.c#813">813</a>                         &amp;&amp; confused) {
<a name=814 href="/lxr/source/nethack/src/read.c#814">814</a>                 <b><i>/* oclass check added 10/25/86 GAN */</i></b>
<a name=815 href="/lxr/source/nethack/src/read.c#815">815</a>                         uwep-&gt;oerodeproof = !(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed);
<a name=816 href="/lxr/source/nethack/src/read.c#816">816</a>                         if (<a href="/lxr/ident?i=Blind">Blind</a>) {
<a name=817 href="/lxr/source/nethack/src/read.c#817">817</a>                             uwep-&gt;rknown = <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=818 href="/lxr/source/nethack/src/read.c#818">818</a>                             Your(<i>"weapon feels warm for a moment."</i>);
<a name=819 href="/lxr/source/nethack/src/read.c#819">819</a>                         } else {
<a name=820 href="/lxr/source/nethack/src/read.c#820">820</a>                             uwep-&gt;rknown = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=821 href="/lxr/source/nethack/src/read.c#821">821</a>                             Your(<i>"%s covered by a %s %s %s!"</i>,
<a name=822 href="/lxr/source/nethack/src/read.c#822">822</a>                                 aobjnam(uwep, <i>"are"</i>),
<a name=823 href="/lxr/source/nethack/src/read.c#823">823</a>                                 <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <i>"mottled"</i> : <i>"shimmering"</i>,
<a name=824 href="/lxr/source/nethack/src/read.c#824">824</a>                                 hcolor(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <a href="/lxr/ident?i=purple">purple</a> : <a href="/lxr/ident?i=golden">golden</a>),
<a name=825 href="/lxr/source/nethack/src/read.c#825">825</a>                                 <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <i>"glow"</i> : <i>"shield"</i>);
<a name=826 href="/lxr/source/nethack/src/read.c#826">826</a>                         }
<a name=827 href="/lxr/source/nethack/src/read.c#827">827</a>                         if (uwep-&gt;oerodeproof &amp;&amp; uwep-&gt;oeroded) {
<a name=828 href="/lxr/source/nethack/src/read.c#828">828</a>                             uwep-&gt;oeroded = 0;
<a name=829 href="/lxr/source/nethack/src/read.c#829">829</a>                             Your(<i>"%s good as new!"</i>,
<a name=830 href="/lxr/source/nethack/src/read.c#830">830</a>                                  aobjnam(uwep, <a href="/lxr/ident?i=Blind">Blind</a> ? <i>"feel"</i> : <i>"look"</i>));
<a name=831 href="/lxr/source/nethack/src/read.c#831">831</a>                         }
<a name=832 href="/lxr/source/nethack/src/read.c#832">832</a>                 } else return !chwepon(<a href="/lxr/ident?i=sobj">sobj</a>,
<a name=833 href="/lxr/source/nethack/src/read.c#833">833</a>                                        <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? -1 :
<a name=834 href="/lxr/source/nethack/src/read.c#834">834</a>                                        !uwep ? 1 :
<a name=835 href="/lxr/source/nethack/src/read.c#835">835</a>                                        uwep-&gt;spe &gt;= 9 ? (rn2(uwep-&gt;spe) == 0) :
<a name=836 href="/lxr/source/nethack/src/read.c#836">836</a>                                        <a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed ? <a href="/lxr/ident?i=rnd">rnd</a>(3-uwep-&gt;spe/3) : 1);
<a name=837 href="/lxr/source/nethack/src/read.c#837">837</a>                 break;
<a name=838 href="/lxr/source/nethack/src/read.c#838">838</a>         case SCR_TAMING:
<a name=839 href="/lxr/source/nethack/src/read.c#839">839</a>         case SPE_CHARM_MONSTER:
<a name=840 href="/lxr/source/nethack/src/read.c#840">840</a>             {   register int <a href="/lxr/ident?i=i">i</a>,<a href="/lxr/ident?i=j">j</a>;
<a name=841 href="/lxr/source/nethack/src/read.c#841">841</a>                 register int <a href="/lxr/ident?i=bd">bd</a> = confused ? 5 : 1;
<a name=842 href="/lxr/source/nethack/src/read.c#842">842</a>                 register struct <a href="/lxr/ident?i=monst">monst</a> *<a href="/lxr/ident?i=mtmp">mtmp</a>;
<a name=843 href="/lxr/source/nethack/src/read.c#843">843</a> 
<a name=844 href="/lxr/source/nethack/src/read.c#844">844</a>                 for(<a href="/lxr/ident?i=i">i</a> = -<a href="/lxr/ident?i=bd">bd</a>; <a href="/lxr/ident?i=i">i</a> &lt;= <a href="/lxr/ident?i=bd">bd</a>; <a href="/lxr/ident?i=i">i</a>++) for(<a href="/lxr/ident?i=j">j</a> = -<a href="/lxr/ident?i=bd">bd</a>; <a href="/lxr/ident?i=j">j</a> &lt;= <a href="/lxr/ident?i=bd">bd</a>; <a href="/lxr/ident?i=j">j</a>++)
<a name=845 href="/lxr/source/nethack/src/read.c#845">845</a>                 if(isok(<a href="/lxr/ident?i=u">u</a>.ux+<a href="/lxr/ident?i=i">i</a>, <a href="/lxr/ident?i=u">u</a>.uy+<a href="/lxr/ident?i=j">j</a>) &amp;&amp; (<a href="/lxr/ident?i=mtmp">mtmp</a> = <a href="/lxr/ident?i=m_at">m_at</a>(<a href="/lxr/ident?i=u">u</a>.ux+<a href="/lxr/ident?i=i">i</a>, <a href="/lxr/ident?i=u">u</a>.uy+<a href="/lxr/ident?i=j">j</a>))) {
<a name=846 href="/lxr/source/nethack/src/read.c#846">846</a>                     if(<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) {
<a name=847 href="/lxr/source/nethack/src/read.c#847">847</a>                         setmangry(<a href="/lxr/ident?i=mtmp">mtmp</a>);
<a name=848 href="/lxr/source/nethack/src/read.c#848">848</a>                     } else {
<a name=849 href="/lxr/source/nethack/src/read.c#849">849</a>                         if (<a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;isshk)
<a name=850 href="/lxr/source/nethack/src/read.c#850">850</a>                             make_happy_shk(<a href="/lxr/ident?i=mtmp">mtmp</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=851 href="/lxr/source/nethack/src/read.c#851">851</a>                         else if (!resist(<a href="/lxr/ident?i=mtmp">mtmp</a>, <a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a>, 0, <a href="/lxr/ident?i=NOTELL">NOTELL</a>))
<a name=852 href="/lxr/source/nethack/src/read.c#852">852</a>                             (void) tamedog(<a href="/lxr/ident?i=mtmp">mtmp</a>, (struct <a href="/lxr/ident?i=obj">obj</a> *) 0);
<a name=853 href="/lxr/source/nethack/src/read.c#853">853</a>                     }
<a name=854 href="/lxr/source/nethack/src/read.c#854">854</a>                 }
<a name=855 href="/lxr/source/nethack/src/read.c#855">855</a>                 break;
<a name=856 href="/lxr/source/nethack/src/read.c#856">856</a>             }
<a name=857 href="/lxr/source/nethack/src/read.c#857">857</a>         case SCR_GENOCIDE:
<a name=858 href="/lxr/source/nethack/src/read.c#858">858</a>                 You(<i>"have found a scroll of genocide!"</i>);
<a name=859 href="/lxr/source/nethack/src/read.c#859">859</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=860 href="/lxr/source/nethack/src/read.c#860">860</a>                 if (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed) <a href="/lxr/ident?i=do_class_genocide">do_class_genocide</a>();
<a name=861 href="/lxr/source/nethack/src/read.c#861">861</a>                 else do_genocide(!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed | (2 * !!<a href="/lxr/ident?i=Confusion">Confusion</a>));
<a name=862 href="/lxr/source/nethack/src/read.c#862">862</a>                 break;
<a name=863 href="/lxr/source/nethack/src/read.c#863">863</a>         case SCR_LIGHT:
<a name=864 href="/lxr/source/nethack/src/read.c#864">864</a>                 if(!<a href="/lxr/ident?i=Blind">Blind</a>) <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=865 href="/lxr/source/nethack/src/read.c#865">865</a>                 litroom(!confused &amp;&amp; !<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed, <a href="/lxr/ident?i=sobj">sobj</a>);
<a name=866 href="/lxr/source/nethack/src/read.c#866">866</a>                 break;
<a name=867 href="/lxr/source/nethack/src/read.c#867">867</a>         case SCR_TELEPORTATION:
<a name=868 href="/lxr/source/nethack/src/read.c#868">868</a>                 if(confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) <a href="/lxr/ident?i=level_tele">level_tele</a>();
<a name=869 href="/lxr/source/nethack/src/read.c#869">869</a>                 else {
<a name=870 href="/lxr/source/nethack/src/read.c#870">870</a>                         if (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed &amp;&amp; !<a href="/lxr/ident?i=Teleport_control">Teleport_control</a>) {
<a name=871 href="/lxr/source/nethack/src/read.c#871">871</a>                                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=872 href="/lxr/source/nethack/src/read.c#872">872</a>                                 if (<a href="/lxr/ident?i=yn">yn</a>(<i>"Do you wish to teleport?"</i>)==<i>'n'</i>)
<a name=873 href="/lxr/source/nethack/src/read.c#873">873</a>                                         break;
<a name=874 href="/lxr/source/nethack/src/read.c#874">874</a>                         }
<a name=875 href="/lxr/source/nethack/src/read.c#875">875</a>                         <a href="/lxr/ident?i=tele">tele</a>();
<a name=876 href="/lxr/source/nethack/src/read.c#876">876</a>                         if(<a href="/lxr/ident?i=Teleport_control">Teleport_control</a> || !<a href="/lxr/ident?i=couldsee">couldsee</a>(<a href="/lxr/ident?i=u">u</a>.ux0, <a href="/lxr/ident?i=u">u</a>.uy0) ||
<a name=877 href="/lxr/source/nethack/src/read.c#877">877</a>                            (<a href="/lxr/ident?i=distu">distu</a>(<a href="/lxr/ident?i=u">u</a>.ux0, <a href="/lxr/ident?i=u">u</a>.uy0) &gt;= 16))
<a name=878 href="/lxr/source/nethack/src/read.c#878">878</a>                                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=879 href="/lxr/source/nethack/src/read.c#879">879</a>                 }
<a name=880 href="/lxr/source/nethack/src/read.c#880">880</a>                 break;
<a name=881 href="/lxr/source/nethack/src/read.c#881">881</a>         case SCR_GOLD_DETECTION:
<a name=882 href="/lxr/source/nethack/src/read.c#882">882</a>                 if (confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed) return(trap_detect(<a href="/lxr/ident?i=sobj">sobj</a>));
<a name=883 href="/lxr/source/nethack/src/read.c#883">883</a>                 else return(gold_detect(<a href="/lxr/ident?i=sobj">sobj</a>));
<a name=884 href="/lxr/source/nethack/src/read.c#884">884</a>         case SCR_FOOD_DETECTION:
<a name=885 href="/lxr/source/nethack/src/read.c#885">885</a>         case SPE_DETECT_FOOD:
<a name=886 href="/lxr/source/nethack/src/read.c#886">886</a>                 if (food_detect(<a href="/lxr/ident?i=sobj">sobj</a>))
<a name=887 href="/lxr/source/nethack/src/read.c#887">887</a>                         return(1);      <b><i>/* nothing detected */</i></b>
<a name=888 href="/lxr/source/nethack/src/read.c#888">888</a>                 break;
<a name=889 href="/lxr/source/nethack/src/read.c#889">889</a>         case SPE_IDENTIFY:
<a name=890 href="/lxr/source/nethack/src/read.c#890">890</a>                 cval = rn2(5);
<a name=891 href="/lxr/source/nethack/src/read.c#891">891</a>                 goto <a href="/lxr/ident?i=id">id</a>;
<a name=892 href="/lxr/source/nethack/src/read.c#892">892</a>         case SCR_IDENTIFY:
<a name=893 href="/lxr/source/nethack/src/read.c#893">893</a>                 <b><i>/* known = TRUE; */</i></b>
<a name=894 href="/lxr/source/nethack/src/read.c#894">894</a>                 if(confused)
<a name=895 href="/lxr/source/nethack/src/read.c#895">895</a>                         You(<i>"identify this as an identify scroll."</i>);
<a name=896 href="/lxr/source/nethack/src/read.c#896">896</a>                 else
<a name=897 href="/lxr/source/nethack/src/read.c#897">897</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"This is an identify scroll."</i>);
<a name=898 href="/lxr/source/nethack/src/read.c#898">898</a>                 if (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed || (!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed &amp;&amp; !rn2(5))) {
<a name=899 href="/lxr/source/nethack/src/read.c#899">899</a>                         cval = rn2(5);
<a name=900 href="/lxr/source/nethack/src/read.c#900">900</a>                         <b><i>/* Note: if rn2(5)==0, identify all items */</i></b>
<a name=901 href="/lxr/source/nethack/src/read.c#901">901</a>                         if (cval == 1 &amp;&amp; <a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed &amp;&amp; <a href="/lxr/ident?i=Luck">Luck</a> &gt; 0) ++cval;
<a name=902 href="/lxr/source/nethack/src/read.c#902">902</a>                 } else  cval = 1;
<a name=903 href="/lxr/source/nethack/src/read.c#903">903</a>                 useup(<a href="/lxr/ident?i=sobj">sobj</a>);
<a name=904 href="/lxr/source/nethack/src/read.c#904">904</a>                 <a href="/lxr/ident?i=makeknown">makeknown</a>(SCR_IDENTIFY);
<a name=905 href="/lxr/source/nethack/src/read.c#905">905</a>         <a href="/lxr/ident?i=id">id</a>:
<a name=906 href="/lxr/source/nethack/src/read.c#906">906</a>                 if(<a href="/lxr/ident?i=invent">invent</a> &amp;&amp; !confused) {
<a name=907 href="/lxr/source/nethack/src/read.c#907">907</a>                     identify_pack(cval);
<a name=908 href="/lxr/source/nethack/src/read.c#908">908</a>                 }
<a name=909 href="/lxr/source/nethack/src/read.c#909">909</a>                 return(1);
<a name=910 href="/lxr/source/nethack/src/read.c#910">910</a>         case SCR_CHARGING:
<a name=911 href="/lxr/source/nethack/src/read.c#911">911</a>                 if (confused) {
<a name=912 href="/lxr/source/nethack/src/read.c#912">912</a>                     You_feel(<i>"charged up!"</i>);
<a name=913 href="/lxr/source/nethack/src/read.c#913">913</a>                     if (<a href="/lxr/ident?i=u">u</a>.uen &lt; <a href="/lxr/ident?i=u">u</a>.uenmax)
<a name=914 href="/lxr/source/nethack/src/read.c#914">914</a>                         <a href="/lxr/ident?i=u">u</a>.uen = <a href="/lxr/ident?i=u">u</a>.uenmax;
<a name=915 href="/lxr/source/nethack/src/read.c#915">915</a>                     else
<a name=916 href="/lxr/source/nethack/src/read.c#916">916</a>                         <a href="/lxr/ident?i=u">u</a>.uen = (<a href="/lxr/ident?i=u">u</a>.uenmax += <a href="/lxr/ident?i=d">d</a>(5,4));
<a name=917 href="/lxr/source/nethack/src/read.c#917">917</a>                     <a href="/lxr/ident?i=flags">flags</a>.botl = 1;
<a name=918 href="/lxr/source/nethack/src/read.c#918">918</a>                     break;
<a name=919 href="/lxr/source/nethack/src/read.c#919">919</a>                 }
<a name=920 href="/lxr/source/nethack/src/read.c#920">920</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=921 href="/lxr/source/nethack/src/read.c#921">921</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"This is a charging scroll."</i>);
<a name=922 href="/lxr/source/nethack/src/read.c#922">922</a>                 <a href="/lxr/ident?i=otmp">otmp</a> = getobj(<a href="/lxr/ident?i=all_count">all_count</a>, <i>"charge"</i>);
<a name=923 href="/lxr/source/nethack/src/read.c#923">923</a>                 if (!<a href="/lxr/ident?i=otmp">otmp</a>) break;
<a name=924 href="/lxr/source/nethack/src/read.c#924">924</a>                 recharge(<a href="/lxr/ident?i=otmp">otmp</a>, <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? -1 : (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed ? 1 : 0));
<a name=925 href="/lxr/source/nethack/src/read.c#925">925</a>                 break;
<a name=926 href="/lxr/source/nethack/src/read.c#926">926</a>         case SCR_MAGIC_MAPPING:
<a name=927 href="/lxr/source/nethack/src/read.c#927">927</a>                 if (<a href="/lxr/ident?i=level">level</a>.<a href="/lxr/ident?i=flags">flags</a>.nommap) {
<a name=928 href="/lxr/source/nethack/src/read.c#928">928</a>                     Your(<i>"mind is filled with crazy lines!"</i>);
<a name=929 href="/lxr/source/nethack/src/read.c#929">929</a>                     if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>)
<a name=930 href="/lxr/source/nethack/src/read.c#930">930</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"Wow!  Modern art."</i>);
<a name=931 href="/lxr/source/nethack/src/read.c#931">931</a>                     else
<a name=932 href="/lxr/source/nethack/src/read.c#932">932</a>                         Your(<i>"head spins in bewilderment."</i>);
<a name=933 href="/lxr/source/nethack/src/read.c#933">933</a>                     make_confused(<a href="/lxr/ident?i=HConfusion">HConfusion</a> + <a href="/lxr/ident?i=rnd">rnd</a>(30), <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=934 href="/lxr/source/nethack/src/read.c#934">934</a>                     break;
<a name=935 href="/lxr/source/nethack/src/read.c#935">935</a>                 }
<a name=936 href="/lxr/source/nethack/src/read.c#936">936</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=937 href="/lxr/source/nethack/src/read.c#937">937</a>         case SPE_MAGIC_MAPPING:
<a name=938 href="/lxr/source/nethack/src/read.c#938">938</a>                 if (<a href="/lxr/ident?i=level">level</a>.<a href="/lxr/ident?i=flags">flags</a>.nommap) {
<a name=939 href="/lxr/source/nethack/src/read.c#939">939</a>                     Your(<i>"head spins as something blocks the spell!"</i>);
<a name=940 href="/lxr/source/nethack/src/read.c#940">940</a>                     make_confused(<a href="/lxr/ident?i=HConfusion">HConfusion</a> + <a href="/lxr/ident?i=rnd">rnd</a>(30), <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=941 href="/lxr/source/nethack/src/read.c#941">941</a>                     break;
<a name=942 href="/lxr/source/nethack/src/read.c#942">942</a>                 }
<a name=943 href="/lxr/source/nethack/src/read.c#943">943</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"A map coalesces in your mind!"</i>);
<a name=944 href="/lxr/source/nethack/src/read.c#944">944</a>                 cval = (<a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed &amp;&amp; !confused);
<a name=945 href="/lxr/source/nethack/src/read.c#945">945</a>                 if(cval) <a href="/lxr/ident?i=HConfusion">HConfusion</a> = 1;        <b><i>/* to screw up map */</i></b>
<a name=946 href="/lxr/source/nethack/src/read.c#946">946</a>                 <a href="/lxr/ident?i=do_mapping">do_mapping</a>();
<a name=947 href="/lxr/source/nethack/src/read.c#947">947</a>                 if(cval) {
<a name=948 href="/lxr/source/nethack/src/read.c#948">948</a>                     <a href="/lxr/ident?i=HConfusion">HConfusion</a> = 0;             <b><i>/* restore */</i></b>
<a name=949 href="/lxr/source/nethack/src/read.c#949">949</a>                     <a href="/lxr/ident?i=pline">pline</a>(<i>"Unfortunately, you can't grasp the details."</i>);
<a name=950 href="/lxr/source/nethack/src/read.c#950">950</a>                 }
<a name=951 href="/lxr/source/nethack/src/read.c#951">951</a>                 break;
<a name=952 href="/lxr/source/nethack/src/read.c#952">952</a>         case SCR_AMNESIA:
<a name=953 href="/lxr/source/nethack/src/read.c#953">953</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=954 href="/lxr/source/nethack/src/read.c#954">954</a>                 forget( (!<a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed ? <a href="/lxr/ident?i=ALL_SPELLS">ALL_SPELLS</a> : 0) |
<a name=955 href="/lxr/source/nethack/src/read.c#955">955</a>                         (!confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed ? <a href="/lxr/ident?i=ALL_MAP">ALL_MAP</a> : 0) );
<a name=956 href="/lxr/source/nethack/src/read.c#956">956</a>                 if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>) <b><i>/* Ommmmmm! */</i></b>
<a name=957 href="/lxr/source/nethack/src/read.c#957">957</a>                         Your(<i>"mind releases itself from mundane concerns."</i>);
<a name=958 href="/lxr/source/nethack/src/read.c#958">958</a>                 else if (!<a href="/lxr/ident?i=strncmpi">strncmpi</a>(<a href="/lxr/ident?i=plname">plname</a>, <i>"Maud"</i>, 4))
<a name=959 href="/lxr/source/nethack/src/read.c#959">959</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"As your mind turns inward on itself, you forget everything else."</i>);
<a name=960 href="/lxr/source/nethack/src/read.c#960">960</a>                 else if (rn2(2))
<a name=961 href="/lxr/source/nethack/src/read.c#961">961</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"Who was that Maud person anyway?"</i>);
<a name=962 href="/lxr/source/nethack/src/read.c#962">962</a>                 else
<a name=963 href="/lxr/source/nethack/src/read.c#963">963</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"Thinking of Maud you forget everything else."</i>);
<a name=964 href="/lxr/source/nethack/src/read.c#964">964</a>                 exercise(<a href="/lxr/ident?i=A_WIS">A_WIS</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=965 href="/lxr/source/nethack/src/read.c#965">965</a>                 break;
<a name=966 href="/lxr/source/nethack/src/read.c#966">966</a>         case SCR_FIRE:
<a name=967 href="/lxr/source/nethack/src/read.c#967">967</a>                 <b><i>/*</i></b>
<a name=968 href="/lxr/source/nethack/src/read.c#968">968</a> <b><i>                 * Note: Modifications have been made as of 3.0 to allow for</i></b>
<a name=969 href="/lxr/source/nethack/src/read.c#969">969</a> <b><i>                 * some damage under all potential cases.</i></b>
<a name=970 href="/lxr/source/nethack/src/read.c#970">970</a> <b><i>                 */</i></b>
<a name=971 href="/lxr/source/nethack/src/read.c#971">971</a>                 cval = bcsign(<a href="/lxr/ident?i=sobj">sobj</a>);
<a name=972 href="/lxr/source/nethack/src/read.c#972">972</a>                 useup(<a href="/lxr/ident?i=sobj">sobj</a>);
<a name=973 href="/lxr/source/nethack/src/read.c#973">973</a>                 <a href="/lxr/ident?i=makeknown">makeknown</a>(SCR_FIRE);
<a name=974 href="/lxr/source/nethack/src/read.c#974">974</a>                 if(confused) {
<a name=975 href="/lxr/source/nethack/src/read.c#975">975</a>                     if(<a href="/lxr/ident?i=Fire_resistance">Fire_resistance</a>) {
<a name=976 href="/lxr/source/nethack/src/read.c#976">976</a>                         shieldeff(<a href="/lxr/ident?i=u">u</a>.ux, <a href="/lxr/ident?i=u">u</a>.uy);
<a name=977 href="/lxr/source/nethack/src/read.c#977">977</a>                         if(!<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=978 href="/lxr/source/nethack/src/read.c#978">978</a>                             <a href="/lxr/ident?i=pline">pline</a>(<i>"Oh, look, what a pretty fire in your %s."</i>,
<a name=979 href="/lxr/source/nethack/src/read.c#979">979</a>                                 makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)));
<a name=980 href="/lxr/source/nethack/src/read.c#980">980</a>                         else You_feel(<i>"a pleasant warmth in your %s."</i>,
<a name=981 href="/lxr/source/nethack/src/read.c#981">981</a>                                 makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)));
<a name=982 href="/lxr/source/nethack/src/read.c#982">982</a>                     } else {
<a name=983 href="/lxr/source/nethack/src/read.c#983">983</a>                         pline_The(<i>"scroll catches fire and you burn your %s."</i>,
<a name=984 href="/lxr/source/nethack/src/read.c#984">984</a>                                 makeplural(body_part(<a href="/lxr/ident?i=HAND">HAND</a>)));
<a name=985 href="/lxr/source/nethack/src/read.c#985">985</a>                         losehp(1, <i>"scroll of fire"</i>, <a href="/lxr/ident?i=KILLED_BY_AN">KILLED_BY_AN</a>);
<a name=986 href="/lxr/source/nethack/src/read.c#986">986</a>                     }
<a name=987 href="/lxr/source/nethack/src/read.c#987">987</a>                     return(1);
<a name=988 href="/lxr/source/nethack/src/read.c#988">988</a>                 }
<a name=989 href="/lxr/source/nethack/src/read.c#989">989</a>                 if (<a href="/lxr/ident?i=Underwater">Underwater</a>)
<a name=990 href="/lxr/source/nethack/src/read.c#990">990</a>                         pline_The(<i>"water around you vaporizes violently!"</i>);
<a name=991 href="/lxr/source/nethack/src/read.c#991">991</a>                 else
<a name=992 href="/lxr/source/nethack/src/read.c#992">992</a>                         pline_The(<i>"scroll erupts in a tower of flame!"</i>);
<a name=993 href="/lxr/source/nethack/src/read.c#993">993</a>                 <a href="/lxr/ident?i=explode">explode</a>(<a href="/lxr/ident?i=u">u</a>.ux, <a href="/lxr/ident?i=u">u</a>.uy, 11, (2*(<a href="/lxr/ident?i=rn1">rn1</a>(3, 3) + 2 * cval) + 1)/3,
<a name=994 href="/lxr/source/nethack/src/read.c#994">994</a>                                                         <a href="/lxr/ident?i=SCROLL_CLASS">SCROLL_CLASS</a>);
<a name=995 href="/lxr/source/nethack/src/read.c#995">995</a>                 return(1);
<a name=996 href="/lxr/source/nethack/src/read.c#996">996</a>         case SCR_PUNISHMENT:
<a name=997 href="/lxr/source/nethack/src/read.c#997">997</a>                 <a href="/lxr/ident?i=known">known</a> = <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=998 href="/lxr/source/nethack/src/read.c#998">998</a>                 if(confused || <a href="/lxr/ident?i=sobj">sobj</a>-&gt;blessed) {
<a name=999 href="/lxr/source/nethack/src/read.c#999">999</a>                         You_feel(<i>"guilty."</i>);
<a name=1000 href="/lxr/source/nethack/src/read.c#1000">1000</a>                         break;
<a name=1001 href="/lxr/source/nethack/src/read.c#1001">1001</a>                 }
<a name=1002 href="/lxr/source/nethack/src/read.c#1002">1002</a>                 punish(<a href="/lxr/ident?i=sobj">sobj</a>);
<a name=1003 href="/lxr/source/nethack/src/read.c#1003">1003</a>                 break;
<a name=1004 href="/lxr/source/nethack/src/read.c#1004">1004</a>         default:
<a name=1005 href="/lxr/source/nethack/src/read.c#1005">1005</a>                 impossible(<i>"What weird effect is this? (%u)"</i>, <a href="/lxr/ident?i=sobj">sobj</a>-&gt;<a href="/lxr/ident?i=otyp">otyp</a>);
<a name=1006 href="/lxr/source/nethack/src/read.c#1006">1006</a>         }
<a name=1007 href="/lxr/source/nethack/src/read.c#1007">1007</a>         return(0);
<a name=1008 href="/lxr/source/nethack/src/read.c#1008">1008</a> }
<a name=1009 href="/lxr/source/nethack/src/read.c#1009">1009</a> 
<a name=1010 href="/lxr/source/nethack/src/read.c#1010">1010</a> static void
<a name=1011 href="/lxr/source/nethack/src/read.c#1011">1011</a> wand_explode(<a href="/lxr/ident?i=obj">obj</a>)
<a name=1012 href="/lxr/source/nethack/src/read.c#1012">1012</a> register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=1013 href="/lxr/source/nethack/src/read.c#1013">1013</a> {
<a name=1014 href="/lxr/source/nethack/src/read.c#1014">1014</a>     Your(<i>"%s vibrates violently, and explodes!"</i>,<a href="/lxr/ident?i=xname">xname</a>(<a href="/lxr/ident?i=obj">obj</a>));
<a name=1015 href="/lxr/source/nethack/src/read.c#1015">1015</a>     <a href="/lxr/ident?i=nhbell">nhbell</a>();
<a name=1016 href="/lxr/source/nethack/src/read.c#1016">1016</a>     losehp(<a href="/lxr/ident?i=rnd">rnd</a>(2*(<a href="/lxr/ident?i=u">u</a>.uhpmax+1)/3), <i>"exploding wand"</i>, <a href="/lxr/ident?i=KILLED_BY_AN">KILLED_BY_AN</a>);
<a name=1017 href="/lxr/source/nethack/src/read.c#1017">1017</a>     useup(<a href="/lxr/ident?i=obj">obj</a>);
<a name=1018 href="/lxr/source/nethack/src/read.c#1018">1018</a>     exercise(<a href="/lxr/ident?i=A_STR">A_STR</a>, <a href="/lxr/ident?i=FALSE">FALSE</a>);
<a name=1019 href="/lxr/source/nethack/src/read.c#1019">1019</a> }
<a name=1020 href="/lxr/source/nethack/src/read.c#1020">1020</a> 
<a name=1021 href="/lxr/source/nethack/src/read.c#1021">1021</a> <b><i>/*</i></b>
<a name=1022 href="/lxr/source/nethack/src/read.c#1022">1022</a> <b><i> * Low-level lit-field update routine.</i></b>
<a name=1023 href="/lxr/source/nethack/src/read.c#1023">1023</a> <b><i> */</i></b>
<a name=1024 href="/lxr/source/nethack/src/read.c#1024">1024</a> <a href="/lxr/ident?i=STATIC_PTR">STATIC_PTR</a> void
<a name=1025 href="/lxr/source/nethack/src/read.c#1025">1025</a> <a href="/lxr/ident?i=set_lit">set_lit</a>(<a href="/lxr/ident?i=x">x</a>,<a href="/lxr/ident?i=y">y</a>,<a href="/lxr/ident?i=val">val</a>)
<a name=1026 href="/lxr/source/nethack/src/read.c#1026">1026</a> int <a href="/lxr/ident?i=x">x</a>, <a href="/lxr/ident?i=y">y</a>;
<a name=1027 href="/lxr/source/nethack/src/read.c#1027">1027</a> <a href="/lxr/ident?i=genericptr_t">genericptr_t</a> <a href="/lxr/ident?i=val">val</a>;
<a name=1028 href="/lxr/source/nethack/src/read.c#1028">1028</a> {
<a name=1029 href="/lxr/source/nethack/src/read.c#1029">1029</a>         if (<a href="/lxr/ident?i=val">val</a>)
<a name=1030 href="/lxr/source/nethack/src/read.c#1030">1030</a>             <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=x">x</a>][<a href="/lxr/ident?i=y">y</a>].<a href="/lxr/ident?i=lit">lit</a> = 1;
<a name=1031 href="/lxr/source/nethack/src/read.c#1031">1031</a>         else {
<a name=1032 href="/lxr/source/nethack/src/read.c#1032">1032</a>             <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=x">x</a>][<a href="/lxr/ident?i=y">y</a>].<a href="/lxr/ident?i=lit">lit</a> = 0;
<a name=1033 href="/lxr/source/nethack/src/read.c#1033">1033</a>             snuff_light_source(<a href="/lxr/ident?i=x">x</a>, <a href="/lxr/ident?i=y">y</a>);
<a name=1034 href="/lxr/source/nethack/src/read.c#1034">1034</a>         }
<a name=1035 href="/lxr/source/nethack/src/read.c#1035">1035</a> }
<a name=1036 href="/lxr/source/nethack/src/read.c#1036">1036</a> 
<a name=1037 href="/lxr/source/nethack/src/read.c#1037">1037</a> void
<a name=1038 href="/lxr/source/nethack/src/read.c#1038">1038</a> litroom(<a href="/lxr/ident?i=on">on</a>,<a href="/lxr/ident?i=obj">obj</a>)
<a name=1039 href="/lxr/source/nethack/src/read.c#1039">1039</a> register <a href="/lxr/ident?i=boolean">boolean</a> <a href="/lxr/ident?i=on">on</a>;
<a name=1040 href="/lxr/source/nethack/src/read.c#1040">1040</a> struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=obj">obj</a>;
<a name=1041 href="/lxr/source/nethack/src/read.c#1041">1041</a> {
<a name=1042 href="/lxr/source/nethack/src/read.c#1042">1042</a>         char is_lit;    <b><i>/* value is irrelevant; we use its address</i></b>
<a name=1043 href="/lxr/source/nethack/src/read.c#1043">1043</a> <b><i>                           as a `not null' flag for set_lit() */</i></b>
<a name=1044 href="/lxr/source/nethack/src/read.c#1044">1044</a> 
<a name=1045 href="/lxr/source/nethack/src/read.c#1045">1045</a>         <b><i>/* first produce the text (provided you're not blind) */</i></b>
<a name=1046 href="/lxr/source/nethack/src/read.c#1046">1046</a>         if(!<a href="/lxr/ident?i=on">on</a>) {
<a name=1047 href="/lxr/source/nethack/src/read.c#1047">1047</a>                 register struct <a href="/lxr/ident?i=obj">obj</a> *<a href="/lxr/ident?i=otmp">otmp</a>;
<a name=1048 href="/lxr/source/nethack/src/read.c#1048">1048</a> 
<a name=1049 href="/lxr/source/nethack/src/read.c#1049">1049</a>                 if (!<a href="/lxr/ident?i=Blind">Blind</a>) {
<a name=1050 href="/lxr/source/nethack/src/read.c#1050">1050</a>                     if(<a href="/lxr/ident?i=u">u</a>.uswallow) {
<a name=1051 href="/lxr/source/nethack/src/read.c#1051">1051</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"It seems even darker in here than before."</i>);
<a name=1052 href="/lxr/source/nethack/src/read.c#1052">1052</a>                         return;
<a name=1053 href="/lxr/source/nethack/src/read.c#1053">1053</a>                     }
<a name=1054 href="/lxr/source/nethack/src/read.c#1054">1054</a>                     You(<i>"are surrounded by darkness!"</i>);
<a name=1055 href="/lxr/source/nethack/src/read.c#1055">1055</a>                 }
<a name=1056 href="/lxr/source/nethack/src/read.c#1056">1056</a> 
<a name=1057 href="/lxr/source/nethack/src/read.c#1057">1057</a>                 <b><i>/* the magic douses lamps, et al, too */</i></b>
<a name=1058 href="/lxr/source/nethack/src/read.c#1058">1058</a>                 for(<a href="/lxr/ident?i=otmp">otmp</a> = <a href="/lxr/ident?i=invent">invent</a>; <a href="/lxr/ident?i=otmp">otmp</a>; <a href="/lxr/ident?i=otmp">otmp</a> = <a href="/lxr/ident?i=otmp">otmp</a>-&gt;<a href="/lxr/ident?i=nobj">nobj</a>)
<a name=1059 href="/lxr/source/nethack/src/read.c#1059">1059</a>                     if (<a href="/lxr/ident?i=otmp">otmp</a>-&gt;lamplit)
<a name=1060 href="/lxr/source/nethack/src/read.c#1060">1060</a>                         (void) snuff_lit(<a href="/lxr/ident?i=otmp">otmp</a>);
<a name=1061 href="/lxr/source/nethack/src/read.c#1061">1061</a>                 if (<a href="/lxr/ident?i=Blind">Blind</a>) goto do_it;
<a name=1062 href="/lxr/source/nethack/src/read.c#1062">1062</a>         } else {
<a name=1063 href="/lxr/source/nethack/src/read.c#1063">1063</a>                 if (<a href="/lxr/ident?i=Blind">Blind</a>) goto do_it;
<a name=1064 href="/lxr/source/nethack/src/read.c#1064">1064</a>                 if(<a href="/lxr/ident?i=u">u</a>.uswallow){
<a name=1065 href="/lxr/source/nethack/src/read.c#1065">1065</a>                         if (<a href="/lxr/ident?i=is_animal">is_animal</a>(<a href="/lxr/ident?i=u">u</a>.ustuck-&gt;<a href="/lxr/ident?i=data">data</a>))
<a name=1066 href="/lxr/source/nethack/src/read.c#1066">1066</a>                                 <a href="/lxr/ident?i=pline">pline</a>(<i>"%s stomach is lit."</i>,
<a name=1067 href="/lxr/source/nethack/src/read.c#1067">1067</a>                                          s_suffix(Monnam(<a href="/lxr/ident?i=u">u</a>.ustuck)));
<a name=1068 href="/lxr/source/nethack/src/read.c#1068">1068</a>                         else
<a name=1069 href="/lxr/source/nethack/src/read.c#1069">1069</a>                                 if (<a href="/lxr/ident?i=is_whirly">is_whirly</a>(<a href="/lxr/ident?i=u">u</a>.ustuck-&gt;<a href="/lxr/ident?i=data">data</a>))
<a name=1070 href="/lxr/source/nethack/src/read.c#1070">1070</a>                                         <a href="/lxr/ident?i=pline">pline</a>(<i>"%s shines briefly."</i>,
<a name=1071 href="/lxr/source/nethack/src/read.c#1071">1071</a>                                               Monnam(<a href="/lxr/ident?i=u">u</a>.ustuck));
<a name=1072 href="/lxr/source/nethack/src/read.c#1072">1072</a>                                 else
<a name=1073 href="/lxr/source/nethack/src/read.c#1073">1073</a>                                         <a href="/lxr/ident?i=pline">pline</a>(<i>"%s glistens."</i>, Monnam(<a href="/lxr/ident?i=u">u</a>.ustuck));
<a name=1074 href="/lxr/source/nethack/src/read.c#1074">1074</a>                         return;
<a name=1075 href="/lxr/source/nethack/src/read.c#1075">1075</a>                 }
<a name=1076 href="/lxr/source/nethack/src/read.c#1076">1076</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"A lit field surrounds you!"</i>);
<a name=1077 href="/lxr/source/nethack/src/read.c#1077">1077</a>         }
<a name=1078 href="/lxr/source/nethack/src/read.c#1078">1078</a> 
<a name=1079 href="/lxr/source/nethack/src/read.c#1079">1079</a> do_it:
<a name=1080 href="/lxr/source/nethack/src/read.c#1080">1080</a>         <b><i>/* No-op in water - can only see the adjacent squares and that's it! */</i></b>
<a name=1081 href="/lxr/source/nethack/src/read.c#1081">1081</a>         if (<a href="/lxr/ident?i=Underwater">Underwater</a> || <a href="/lxr/ident?i=Is_waterlevel">Is_waterlevel</a>(&amp;<a href="/lxr/ident?i=u">u</a>.uz)) return;
<a name=1082 href="/lxr/source/nethack/src/read.c#1082">1082</a>         <b><i>/*</i></b>
<a name=1083 href="/lxr/source/nethack/src/read.c#1083">1083</a> <b><i>         *  If we are darkening the room and the hero is punished but not</i></b>
<a name=1084 href="/lxr/source/nethack/src/read.c#1084">1084</a> <b><i>         *  blind, then we have to pick up and replace the ball and chain so</i></b>
<a name=1085 href="/lxr/source/nethack/src/read.c#1085">1085</a> <b><i>         *  that we don't remember them if they are out of sight.</i></b>
<a name=1086 href="/lxr/source/nethack/src/read.c#1086">1086</a> <b><i>         */</i></b>
<a name=1087 href="/lxr/source/nethack/src/read.c#1087">1087</a>         if (<a href="/lxr/ident?i=Punished">Punished</a> &amp;&amp; !<a href="/lxr/ident?i=on">on</a> &amp;&amp; !<a href="/lxr/ident?i=Blind">Blind</a>)
<a name=1088 href="/lxr/source/nethack/src/read.c#1088">1088</a>             move_bc(1, 0, uball-&gt;<a href="/lxr/ident?i=ox">ox</a>, uball-&gt;<a href="/lxr/ident?i=oy">oy</a>, uchain-&gt;<a href="/lxr/ident?i=ox">ox</a>, uchain-&gt;<a href="/lxr/ident?i=oy">oy</a>);
<a name=1089 href="/lxr/source/nethack/src/read.c#1089">1089</a> 
<a name=1090 href="/lxr/source/nethack/src/read.c#1090">1090</a> #ifdef <a href="/lxr/ident?i=REINCARNATION">REINCARNATION</a>
<a name=1091 href="/lxr/source/nethack/src/read.c#1091">1091</a>         if (<a href="/lxr/ident?i=Is_rogue_level">Is_rogue_level</a>(&amp;<a href="/lxr/ident?i=u">u</a>.uz)) {
<a name=1092 href="/lxr/source/nethack/src/read.c#1092">1092</a>             <b><i>/* Can't use do_clear_area because MAX_RADIUS is too small */</i></b>
<a name=1093 href="/lxr/source/nethack/src/read.c#1093">1093</a>             <b><i>/* rogue lighting must light the entire room */</i></b>
<a name=1094 href="/lxr/source/nethack/src/read.c#1094">1094</a>             int <a href="/lxr/ident?i=rnum">rnum</a> = <a href="/lxr/ident?i=levl">levl</a>[<a href="/lxr/ident?i=u">u</a>.ux][<a href="/lxr/ident?i=u">u</a>.uy].<a href="/lxr/ident?i=roomno">roomno</a> - <a href="/lxr/ident?i=ROOMOFFSET">ROOMOFFSET</a>;
<a name=1095 href="/lxr/source/nethack/src/read.c#1095">1095</a>             int <a href="/lxr/ident?i=rx">rx</a>, <a href="/lxr/ident?i=ry">ry</a>;
<a name=1096 href="/lxr/source/nethack/src/read.c#1096">1096</a>             if(<a href="/lxr/ident?i=rnum">rnum</a> &gt;= 0) {
<a name=1097 href="/lxr/source/nethack/src/read.c#1097">1097</a>                 for(<a href="/lxr/ident?i=rx">rx</a> = <a href="/lxr/ident?i=rooms">rooms</a>[<a href="/lxr/ident?i=rnum">rnum</a>].<a href="/lxr/ident?i=lx">lx</a>-1; <a href="/lxr/ident?i=rx">rx</a> &lt;= <a href="/lxr/ident?i=rooms">rooms</a>[<a href="/lxr/ident?i=rnum">rnum</a>].<a href="/lxr/ident?i=hx">hx</a>+1; <a href="/lxr/ident?i=rx">rx</a>++)
<a name=1098 href="/lxr/source/nethack/src/read.c#1098">1098</a>                     for(<a href="/lxr/ident?i=ry">ry</a> = <a href="/lxr/ident?i=rooms">rooms</a>[<a href="/lxr/ident?i=rnum">rnum</a>].<a href="/lxr/ident?i=ly">ly</a>-1; <a href="/lxr/ident?i=ry">ry</a> &lt;= <a href="/lxr/ident?i=rooms">rooms</a>[<a href="/lxr/ident?i=rnum">rnum</a>].<a href="/lxr/ident?i=hy">hy</a>+1; <a href="/lxr/ident?i=ry">ry</a>++)
<a name=1099 href="/lxr/source/nethack/src/read.c#1099">1099</a>                         <a href="/lxr/ident?i=set_lit">set_lit</a>(<a href="/lxr/ident?i=rx">rx</a>, <a href="/lxr/ident?i=ry">ry</a>,
<a name=1100 href="/lxr/source/nethack/src/read.c#1100">1100</a>                                 (<a href="/lxr/ident?i=genericptr_t">genericptr_t</a>)(<a href="/lxr/ident?i=on">on</a> ? &amp;is_lit : (char *)0));
<a name=1101 href="/lxr/source/nethack/src/read.c#1101">1101</a>                 <a href="/lxr/ident?i=rooms">rooms</a>[<a href="/lxr/ident?i=rnum">rnum</a>].<a href="/lxr/ident?i=rlit">rlit</a> = <a href="/lxr/ident?i=on">on</a>;
<a name=1102 href="/lxr/source/nethack/src/read.c#1102">1102</a>             }
<a name=1103 href="/lxr/source/nethack/src/read.c#1103">1103</a>             <b><i>/* hallways remain dark on the rogue level */</i></b>
<a name=1104 href="/lxr/source/nethack/src/read.c#1104">1104</a>         } else
<a name=1105 href="/lxr/source/nethack/src/read.c#1105">1105</a> #endif
<a name=1106 href="/lxr/source/nethack/src/read.c#1106">1106</a>             do_clear_area(<a href="/lxr/ident?i=u">u</a>.ux,<a href="/lxr/ident?i=u">u</a>.uy,
<a name=1107 href="/lxr/source/nethack/src/read.c#1107">1107</a>                 (<a href="/lxr/ident?i=obj">obj</a> &amp;&amp; <a href="/lxr/ident?i=obj">obj</a>-&gt;<a href="/lxr/ident?i=oclass">oclass</a>==<a href="/lxr/ident?i=SCROLL_CLASS">SCROLL_CLASS</a> &amp;&amp; <a href="/lxr/ident?i=obj">obj</a>-&gt;blessed) ? 9 : 5,
<a name=1108 href="/lxr/source/nethack/src/read.c#1108">1108</a>                 <a href="/lxr/ident?i=set_lit">set_lit</a>, (<a href="/lxr/ident?i=genericptr_t">genericptr_t</a>)(<a href="/lxr/ident?i=on">on</a> ? &amp;is_lit : (char *)0));
<a name=1109 href="/lxr/source/nethack/src/read.c#1109">1109</a> 
<a name=1110 href="/lxr/source/nethack/src/read.c#1110">1110</a>         <b><i>/*</i></b>
<a name=1111 href="/lxr/source/nethack/src/read.c#1111">1111</a> <b><i>         *  If we are not blind, then force a redraw on all positions in sight</i></b>
<a name=1112 href="/lxr/source/nethack/src/read.c#1112">1112</a> <b><i>         *  by temporarily blinding the hero.  The vision recalculation will</i></b>
<a name=1113 href="/lxr/source/nethack/src/read.c#1113">1113</a> <b><i>         *  correctly update all previously seen positions *and* correctly</i></b>
<a name=1114 href="/lxr/source/nethack/src/read.c#1114">1114</a> <b><i>         *  set the waslit bit [could be messed up from above].</i></b>
<a name=1115 href="/lxr/source/nethack/src/read.c#1115">1115</a> <b><i>         */</i></b>
<a name=1116 href="/lxr/source/nethack/src/read.c#1116">1116</a>         if (!<a href="/lxr/ident?i=Blind">Blind</a>) {
<a name=1117 href="/lxr/source/nethack/src/read.c#1117">1117</a>             vision_recalc(2);
<a name=1118 href="/lxr/source/nethack/src/read.c#1118">1118</a> 
<a name=1119 href="/lxr/source/nethack/src/read.c#1119">1119</a>             <b><i>/* replace ball&amp;chain */</i></b>
<a name=1120 href="/lxr/source/nethack/src/read.c#1120">1120</a>             if (<a href="/lxr/ident?i=Punished">Punished</a> &amp;&amp; !<a href="/lxr/ident?i=on">on</a>)
<a name=1121 href="/lxr/source/nethack/src/read.c#1121">1121</a>                 move_bc(0, 0, uball-&gt;<a href="/lxr/ident?i=ox">ox</a>, uball-&gt;<a href="/lxr/ident?i=oy">oy</a>, uchain-&gt;<a href="/lxr/ident?i=ox">ox</a>, uchain-&gt;<a href="/lxr/ident?i=oy">oy</a>);
<a name=1122 href="/lxr/source/nethack/src/read.c#1122">1122</a>         }
<a name=1123 href="/lxr/source/nethack/src/read.c#1123">1123</a> 
<a name=1124 href="/lxr/source/nethack/src/read.c#1124">1124</a>         <a href="/lxr/ident?i=vision_full_recalc">vision_full_recalc</a> = 1; <b><i>/* delayed vision recalculation */</i></b>
<a name=1125 href="/lxr/source/nethack/src/read.c#1125">1125</a> }
<a name=1126 href="/lxr/source/nethack/src/read.c#1126">1126</a> 
<a name=1127 href="/lxr/source/nethack/src/read.c#1127">1127</a> static void
<a name=1128 href="/lxr/source/nethack/src/read.c#1128">1128</a> <a href="/lxr/ident?i=do_class_genocide">do_class_genocide</a>()
<a name=1129 href="/lxr/source/nethack/src/read.c#1129">1129</a> {
<a name=1130 href="/lxr/source/nethack/src/read.c#1130">1130</a>         register int <a href="/lxr/ident?i=i">i</a>, <a href="/lxr/ident?i=j">j</a>, immunecnt, gonecnt, goodcnt, class;
<a name=1131 href="/lxr/source/nethack/src/read.c#1131">1131</a>         char <a href="/lxr/ident?i=buf">buf</a>[<a href="/lxr/ident?i=BUFSZ">BUFSZ</a>];
<a name=1132 href="/lxr/source/nethack/src/read.c#1132">1132</a> 
<a name=1133 href="/lxr/source/nethack/src/read.c#1133">1133</a>         for(<a href="/lxr/ident?i=j">j</a>=0; ; <a href="/lxr/ident?i=j">j</a>++) {
<a name=1134 href="/lxr/source/nethack/src/read.c#1134">1134</a>                 if (<a href="/lxr/ident?i=j">j</a> &gt;= 5) {
<a name=1135 href="/lxr/source/nethack/src/read.c#1135">1135</a>                         <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=thats_enough_tries">thats_enough_tries</a>);
<a name=1136 href="/lxr/source/nethack/src/read.c#1136">1136</a>                         return;
<a name=1137 href="/lxr/source/nethack/src/read.c#1137">1137</a>                 }
<a name=1138 href="/lxr/source/nethack/src/read.c#1138">1138</a>                 do {
<a name=1139 href="/lxr/source/nethack/src/read.c#1139">1139</a>                     <a href="/lxr/ident?i=getlin">getlin</a>(<i>"What class of monsters do you wish to genocide?"</i>,
<a name=1140 href="/lxr/source/nethack/src/read.c#1140">1140</a>                         <a href="/lxr/ident?i=buf">buf</a>);
<a name=1141 href="/lxr/source/nethack/src/read.c#1141">1141</a>                 } while (<a href="/lxr/ident?i=buf">buf</a>[0]==<i>'\033'</i> || !<a href="/lxr/ident?i=buf">buf</a>[0]);
<a name=1142 href="/lxr/source/nethack/src/read.c#1142">1142</a>                 if (<a href="/lxr/ident?i=strlen">strlen</a>(<a href="/lxr/ident?i=buf">buf</a>) == 1)
<a name=1143 href="/lxr/source/nethack/src/read.c#1143">1143</a>                     class = def_char_to_monclass(<a href="/lxr/ident?i=buf">buf</a>[0]);
<a name=1144 href="/lxr/source/nethack/src/read.c#1144">1144</a>                 else
<a name=1145 href="/lxr/source/nethack/src/read.c#1145">1145</a>                     class = 0;
<a name=1146 href="/lxr/source/nethack/src/read.c#1146">1146</a>                 immunecnt = gonecnt = goodcnt = 0;
<a name=1147 href="/lxr/source/nethack/src/read.c#1147">1147</a>                 for (<a href="/lxr/ident?i=i">i</a> = <a href="/lxr/ident?i=LOW_PM">LOW_PM</a>; <a href="/lxr/ident?i=i">i</a> &lt; NUMMONS; <a href="/lxr/ident?i=i">i</a>++) {
<a name=1148 href="/lxr/source/nethack/src/read.c#1148">1148</a>                     if (class ? <a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].mlet == class :
<a name=1149 href="/lxr/source/nethack/src/read.c#1149">1149</a>                             strstri(<a href="/lxr/ident?i=monexplain">monexplain</a>[(int)<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].mlet],
<a name=1150 href="/lxr/source/nethack/src/read.c#1150">1150</a>                                     makesingular(<a href="/lxr/ident?i=buf">buf</a>)) != 0) {
<a name=1151 href="/lxr/source/nethack/src/read.c#1151">1151</a>                         class = <a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].mlet;
<a name=1152 href="/lxr/source/nethack/src/read.c#1152">1152</a>                         if (!(<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].geno &amp; <a href="/lxr/ident?i=G_GENO">G_GENO</a>)) immunecnt++;
<a name=1153 href="/lxr/source/nethack/src/read.c#1153">1153</a>                         else if(<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=i">i</a>].mvflags &amp; <a href="/lxr/ident?i=G_GENOD">G_GENOD</a>) gonecnt++;
<a name=1154 href="/lxr/source/nethack/src/read.c#1154">1154</a>                         else goodcnt++;
<a name=1155 href="/lxr/source/nethack/src/read.c#1155">1155</a>                     }
<a name=1156 href="/lxr/source/nethack/src/read.c#1156">1156</a>                 }
<a name=1157 href="/lxr/source/nethack/src/read.c#1157">1157</a>                 if (!goodcnt &amp;&amp; class != <a href="/lxr/ident?i=S_HUMAN">S_HUMAN</a>) {
<a name=1158 href="/lxr/source/nethack/src/read.c#1158">1158</a>                         if (gonecnt)
<a name=1159 href="/lxr/source/nethack/src/read.c#1159">1159</a>         <a href="/lxr/ident?i=pline">pline</a>(<i>"All such monsters are already nonexistent."</i>);
<a name=1160 href="/lxr/source/nethack/src/read.c#1160">1160</a>                         else if (immunecnt)
<a name=1161 href="/lxr/source/nethack/src/read.c#1161">1161</a>         You(<i>"aren't permitted to genocide such monsters."</i>);
<a name=1162 href="/lxr/source/nethack/src/read.c#1162">1162</a>                         else
<a name=1163 href="/lxr/source/nethack/src/read.c#1163">1163</a> #ifdef <a href="/lxr/ident?i=WIZARD">WIZARD</a>   <b><i>/* to aid in topology testing; remove pesky monsters */</i></b>
<a name=1164 href="/lxr/source/nethack/src/read.c#1164">1164</a>                           if (<a href="/lxr/ident?i=wizard">wizard</a> &amp;&amp; <a href="/lxr/ident?i=buf">buf</a>[0] == <i>'*'</i>) {
<a name=1165 href="/lxr/source/nethack/src/read.c#1165">1165</a>                             register struct <a href="/lxr/ident?i=monst">monst</a> *<a href="/lxr/ident?i=mtmp">mtmp</a>, *<a href="/lxr/ident?i=mtmp2">mtmp2</a>;
<a name=1166 href="/lxr/source/nethack/src/read.c#1166">1166</a> 
<a name=1167 href="/lxr/source/nethack/src/read.c#1167">1167</a>                             gonecnt = 0;
<a name=1168 href="/lxr/source/nethack/src/read.c#1168">1168</a>                             for (<a href="/lxr/ident?i=mtmp">mtmp</a> = <a href="/lxr/ident?i=fmon">fmon</a>; <a href="/lxr/ident?i=mtmp">mtmp</a>; <a href="/lxr/ident?i=mtmp">mtmp</a> = <a href="/lxr/ident?i=mtmp2">mtmp2</a>) {
<a name=1169 href="/lxr/source/nethack/src/read.c#1169">1169</a>                                 <a href="/lxr/ident?i=mtmp2">mtmp2</a> = <a href="/lxr/ident?i=mtmp">mtmp</a>-&gt;nmon;
<a name=1170 href="/lxr/source/nethack/src/read.c#1170">1170</a>                                 mongone(<a href="/lxr/ident?i=mtmp">mtmp</a>);
<a name=1171 href="/lxr/source/nethack/src/read.c#1171">1171</a>                                 gonecnt++;
<a name=1172 href="/lxr/source/nethack/src/read.c#1172">1172</a>                             }
<a name=1173 href="/lxr/source/nethack/src/read.c#1173">1173</a>         <a href="/lxr/ident?i=pline">pline</a>(<i>"Eliminated %d monster%s."</i>, gonecnt, <a href="/lxr/ident?i=plur">plur</a>(gonecnt));
<a name=1174 href="/lxr/source/nethack/src/read.c#1174">1174</a>                             return;
<a name=1175 href="/lxr/source/nethack/src/read.c#1175">1175</a>                         } else
<a name=1176 href="/lxr/source/nethack/src/read.c#1176">1176</a> #endif
<a name=1177 href="/lxr/source/nethack/src/read.c#1177">1177</a>         <a href="/lxr/ident?i=pline">pline</a>(<i>"That symbol does not represent any monster."</i>);
<a name=1178 href="/lxr/source/nethack/src/read.c#1178">1178</a>                         continue;
<a name=1179 href="/lxr/source/nethack/src/read.c#1179">1179</a>                 }
<a name=1180 href="/lxr/source/nethack/src/read.c#1180">1180</a>                 for (<a href="/lxr/ident?i=i">i</a> = <a href="/lxr/ident?i=LOW_PM">LOW_PM</a>; <a href="/lxr/ident?i=i">i</a> &lt; NUMMONS; <a href="/lxr/ident?i=i">i</a>++) {
<a name=1181 href="/lxr/source/nethack/src/read.c#1181">1181</a>                     if(<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].mlet == class) {
<a name=1182 href="/lxr/source/nethack/src/read.c#1182">1182</a>                         const char *<a href="/lxr/ident?i=n">n</a> = makeplural(<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].<a href="/lxr/ident?i=mname">mname</a>);
<a name=1183 href="/lxr/source/nethack/src/read.c#1183">1183</a> 
<a name=1184 href="/lxr/source/nethack/src/read.c#1184">1184</a>                         if (<a href="/lxr/ident?i=Your_Own_Role">Your_Own_Role</a>(<a href="/lxr/ident?i=i">i</a>) || ((<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].geno &amp; <a href="/lxr/ident?i=G_GENO">G_GENO</a>)
<a name=1185 href="/lxr/source/nethack/src/read.c#1185">1185</a>                                 &amp;&amp; !(<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=i">i</a>].mvflags &amp; <a href="/lxr/ident?i=G_GENOD">G_GENOD</a>))) {
<a name=1186 href="/lxr/source/nethack/src/read.c#1186">1186</a>                         <b><i>/* This check must be first since player monsters might</i></b>
<a name=1187 href="/lxr/source/nethack/src/read.c#1187">1187</a> <b><i>                         * have G_GENOD or !G_GENO.</i></b>
<a name=1188 href="/lxr/source/nethack/src/read.c#1188">1188</a> <b><i>                         */</i></b>
<a name=1189 href="/lxr/source/nethack/src/read.c#1189">1189</a>                             <a href="/lxr/ident?i=pline">pline</a>(<i>"Wiped out all %s."</i>, <a href="/lxr/ident?i=n">n</a>);
<a name=1190 href="/lxr/source/nethack/src/read.c#1190">1190</a>                             if (&amp;<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>] == <a href="/lxr/ident?i=player_mon">player_mon</a>()) {
<a name=1191 href="/lxr/source/nethack/src/read.c#1191">1191</a>                                 <a href="/lxr/ident?i=u">u</a>.uhp = -1;
<a name=1192 href="/lxr/source/nethack/src/read.c#1192">1192</a>                                 <a href="/lxr/ident?i=killer_format">killer_format</a> = <a href="/lxr/ident?i=KILLED_BY_AN">KILLED_BY_AN</a>;
<a name=1193 href="/lxr/source/nethack/src/read.c#1193">1193</a>                                 <a href="/lxr/ident?i=killer">killer</a> = <i>"scroll of genocide"</i>;
<a name=1194 href="/lxr/source/nethack/src/read.c#1194">1194</a>                                 if (<a href="/lxr/ident?i=u">u</a>.umonnum &gt;= <a href="/lxr/ident?i=LOW_PM">LOW_PM</a>)
<a name=1195 href="/lxr/source/nethack/src/read.c#1195">1195</a>                                     You_feel(<i>"dead inside."</i>);
<a name=1196 href="/lxr/source/nethack/src/read.c#1196">1196</a>                                 else
<a name=1197 href="/lxr/source/nethack/src/read.c#1197">1197</a>                                     <a href="/lxr/ident?i=done">done</a>(<a href="/lxr/ident?i=GENOCIDED">GENOCIDED</a>);
<a name=1198 href="/lxr/source/nethack/src/read.c#1198">1198</a>                             }
<a name=1199 href="/lxr/source/nethack/src/read.c#1199">1199</a>                             <b><i>/* for simplicity (and fairness) let's avoid</i></b>
<a name=1200 href="/lxr/source/nethack/src/read.c#1200">1200</a> <b><i>                             * alignment changes here...</i></b>
<a name=1201 href="/lxr/source/nethack/src/read.c#1201">1201</a> <b><i>                             */</i></b>
<a name=1202 href="/lxr/source/nethack/src/read.c#1202">1202</a>                             if (<a href="/lxr/ident?i=i">i</a>==<a href="/lxr/ident?i=u">u</a>.umonnum) <a href="/lxr/ident?i=rehumanize">rehumanize</a>();
<a name=1203 href="/lxr/source/nethack/src/read.c#1203">1203</a>                             <a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=i">i</a>].mvflags |= (<a href="/lxr/ident?i=G_GENOD">G_GENOD</a>|<a href="/lxr/ident?i=G_NOCORPSE">G_NOCORPSE</a>);
<a name=1204 href="/lxr/source/nethack/src/read.c#1204">1204</a>                             reset_rndmonst(<a href="/lxr/ident?i=i">i</a>);
<a name=1205 href="/lxr/source/nethack/src/read.c#1205">1205</a>                             <a href="/lxr/ident?i=kill_genocided_monsters">kill_genocided_monsters</a>();
<a name=1206 href="/lxr/source/nethack/src/read.c#1206">1206</a>                             <a href="/lxr/ident?i=update_inventory">update_inventory</a>();         <b><i>/* eggs &amp; tins */</i></b>
<a name=1207 href="/lxr/source/nethack/src/read.c#1207">1207</a>                         } else if (<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=i">i</a>].mvflags &amp; <a href="/lxr/ident?i=G_GENOD">G_GENOD</a>) {
<a name=1208 href="/lxr/source/nethack/src/read.c#1208">1208</a>                             <a href="/lxr/ident?i=pline">pline</a>(<i>"All %s are already nonexistent."</i>, <a href="/lxr/ident?i=n">n</a>);
<a name=1209 href="/lxr/source/nethack/src/read.c#1209">1209</a>                         } else {
<a name=1210 href="/lxr/source/nethack/src/read.c#1210">1210</a>                           <b><i>/* suppress feedback about quest beings except</i></b>
<a name=1211 href="/lxr/source/nethack/src/read.c#1211">1211</a> <b><i>                             for those applicable to our own role */</i></b>
<a name=1212 href="/lxr/source/nethack/src/read.c#1212">1212</a>                           if ((<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].msound != <a href="/lxr/ident?i=MS_LEADER">MS_LEADER</a> ||
<a name=1213 href="/lxr/source/nethack/src/read.c#1213">1213</a>                                quest_info(<a href="/lxr/ident?i=MS_LEADER">MS_LEADER</a>) == <a href="/lxr/ident?i=i">i</a>)
<a name=1214 href="/lxr/source/nethack/src/read.c#1214">1214</a>                            &amp;&amp; (<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].msound != <a href="/lxr/ident?i=MS_NEMESIS">MS_NEMESIS</a> ||
<a name=1215 href="/lxr/source/nethack/src/read.c#1215">1215</a>                                quest_info(<a href="/lxr/ident?i=MS_NEMESIS">MS_NEMESIS</a>) == <a href="/lxr/ident?i=i">i</a>)
<a name=1216 href="/lxr/source/nethack/src/read.c#1216">1216</a>                            &amp;&amp; (<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].msound != <a href="/lxr/ident?i=MS_GUARDIAN">MS_GUARDIAN</a> ||
<a name=1217 href="/lxr/source/nethack/src/read.c#1217">1217</a>                                quest_info(<a href="/lxr/ident?i=MS_GUARDIAN">MS_GUARDIAN</a>) == <a href="/lxr/ident?i=i">i</a>)
<a name=1218 href="/lxr/source/nethack/src/read.c#1218">1218</a>                         <b><i>/* non-leader/nemesis/guardian role-specific monster */</i></b>
<a name=1219 href="/lxr/source/nethack/src/read.c#1219">1219</a>                            &amp;&amp; (<a href="/lxr/ident?i=i">i</a> != PM_NINJA ||         <b><i>/* nuisance */</i></b>
<a name=1220 href="/lxr/source/nethack/src/read.c#1220">1220</a>                                <a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'S'</i>))) {
<a name=1221 href="/lxr/source/nethack/src/read.c#1221">1221</a>                                 <a href="/lxr/ident?i=boolean">boolean</a> named, uniq;
<a name=1222 href="/lxr/source/nethack/src/read.c#1222">1222</a> 
<a name=1223 href="/lxr/source/nethack/src/read.c#1223">1223</a>                                 named = <a href="/lxr/ident?i=type_is_pname">type_is_pname</a>(&amp;<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>]) ? <a href="/lxr/ident?i=TRUE">TRUE</a> : <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1224 href="/lxr/source/nethack/src/read.c#1224">1224</a>                                 uniq = (<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].geno &amp; <a href="/lxr/ident?i=G_UNIQ">G_UNIQ</a>) ? <a href="/lxr/ident?i=TRUE">TRUE</a> : <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1225 href="/lxr/source/nethack/src/read.c#1225">1225</a>                                 <b><i>/* one special case */</i></b>
<a name=1226 href="/lxr/source/nethack/src/read.c#1226">1226</a>                                 if (<a href="/lxr/ident?i=i">i</a> == PM_HIGH_PRIEST) uniq = <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1227 href="/lxr/source/nethack/src/read.c#1227">1227</a> 
<a name=1228 href="/lxr/source/nethack/src/read.c#1228">1228</a>                                 You(<i>"aren't permitted to genocide %s%s."</i>,
<a name=1229 href="/lxr/source/nethack/src/read.c#1229">1229</a>                                     (uniq &amp;&amp; !named) ? <i>"the "</i> : <i>""</i>,
<a name=1230 href="/lxr/source/nethack/src/read.c#1230">1230</a>                                     (uniq || named) ? <a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=i">i</a>].<a href="/lxr/ident?i=mname">mname</a> : <a href="/lxr/ident?i=n">n</a>);
<a name=1231 href="/lxr/source/nethack/src/read.c#1231">1231</a>                             }
<a name=1232 href="/lxr/source/nethack/src/read.c#1232">1232</a>                         }
<a name=1233 href="/lxr/source/nethack/src/read.c#1233">1233</a>                     }
<a name=1234 href="/lxr/source/nethack/src/read.c#1234">1234</a>                 }
<a name=1235 href="/lxr/source/nethack/src/read.c#1235">1235</a>                 return;
<a name=1236 href="/lxr/source/nethack/src/read.c#1236">1236</a>         }
<a name=1237 href="/lxr/source/nethack/src/read.c#1237">1237</a> }
<a name=1238 href="/lxr/source/nethack/src/read.c#1238">1238</a> 
<a name=1239 href="/lxr/source/nethack/src/read.c#1239">1239</a> #define <a href="/lxr/ident?i=REALLY">REALLY</a> 1
<a name=1240 href="/lxr/source/nethack/src/read.c#1240">1240</a> #define <a href="/lxr/ident?i=PLAYER">PLAYER</a> 2
<a name=1241 href="/lxr/source/nethack/src/read.c#1241">1241</a> void
<a name=1242 href="/lxr/source/nethack/src/read.c#1242">1242</a> do_genocide(<a href="/lxr/ident?i=how">how</a>)
<a name=1243 href="/lxr/source/nethack/src/read.c#1243">1243</a> int <a href="/lxr/ident?i=how">how</a>;
<a name=1244 href="/lxr/source/nethack/src/read.c#1244">1244</a> <b><i>/* 0 = no genocide; create monsters (cursed scroll) */</i></b>
<a name=1245 href="/lxr/source/nethack/src/read.c#1245">1245</a> <b><i>/* 1 = normal genocide */</i></b>
<a name=1246 href="/lxr/source/nethack/src/read.c#1246">1246</a> <b><i>/* 3 = forced genocide of player */</i></b>
<a name=1247 href="/lxr/source/nethack/src/read.c#1247">1247</a> {
<a name=1248 href="/lxr/source/nethack/src/read.c#1248">1248</a>         char <a href="/lxr/ident?i=buf">buf</a>[<a href="/lxr/ident?i=BUFSZ">BUFSZ</a>];
<a name=1249 href="/lxr/source/nethack/src/read.c#1249">1249</a>         register int    <a href="/lxr/ident?i=i">i</a>, killplayer = 0;
<a name=1250 href="/lxr/source/nethack/src/read.c#1250">1250</a>         register int <a href="/lxr/ident?i=mndx">mndx</a>;
<a name=1251 href="/lxr/source/nethack/src/read.c#1251">1251</a>         register struct <a href="/lxr/ident?i=permonst">permonst</a> *<a href="/lxr/ident?i=ptr">ptr</a>;
<a name=1252 href="/lxr/source/nethack/src/read.c#1252">1252</a>         const char *<a href="/lxr/ident?i=which">which</a>;
<a name=1253 href="/lxr/source/nethack/src/read.c#1253">1253</a> 
<a name=1254 href="/lxr/source/nethack/src/read.c#1254">1254</a>         if (<a href="/lxr/ident?i=how">how</a> &amp; <a href="/lxr/ident?i=PLAYER">PLAYER</a>) {
<a name=1255 href="/lxr/source/nethack/src/read.c#1255">1255</a>                 <a href="/lxr/ident?i=ptr">ptr</a> = <a href="/lxr/ident?i=player_mon">player_mon</a>();
<a name=1256 href="/lxr/source/nethack/src/read.c#1256">1256</a>                 <a href="/lxr/ident?i=mndx">mndx</a> = monsndx(<a href="/lxr/ident?i=ptr">ptr</a>);
<a name=1257 href="/lxr/source/nethack/src/read.c#1257">1257</a>                 <a href="/lxr/ident?i=Strcpy">Strcpy</a>(<a href="/lxr/ident?i=buf">buf</a>, <a href="/lxr/ident?i=ptr">ptr</a>-&gt;<a href="/lxr/ident?i=mname">mname</a>);
<a name=1258 href="/lxr/source/nethack/src/read.c#1258">1258</a>                 killplayer++;
<a name=1259 href="/lxr/source/nethack/src/read.c#1259">1259</a>         } else {
<a name=1260 href="/lxr/source/nethack/src/read.c#1260">1260</a>             for(<a href="/lxr/ident?i=i">i</a> = 0; ; <a href="/lxr/ident?i=i">i</a>++) {
<a name=1261 href="/lxr/source/nethack/src/read.c#1261">1261</a>                 if(<a href="/lxr/ident?i=i">i</a> &gt;= 5) {
<a name=1262 href="/lxr/source/nethack/src/read.c#1262">1262</a>                     <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=thats_enough_tries">thats_enough_tries</a>);
<a name=1263 href="/lxr/source/nethack/src/read.c#1263">1263</a>                     return;
<a name=1264 href="/lxr/source/nethack/src/read.c#1264">1264</a>                 }
<a name=1265 href="/lxr/source/nethack/src/read.c#1265">1265</a>                 <a href="/lxr/ident?i=getlin">getlin</a>(<i>"What monster do you want to genocide? [type the name]"</i>,
<a name=1266 href="/lxr/source/nethack/src/read.c#1266">1266</a>                         <a href="/lxr/ident?i=buf">buf</a>);
<a name=1267 href="/lxr/source/nethack/src/read.c#1267">1267</a> 
<a name=1268 href="/lxr/source/nethack/src/read.c#1268">1268</a>                 <a href="/lxr/ident?i=mndx">mndx</a> = name_to_mon(<a href="/lxr/ident?i=buf">buf</a>);
<a name=1269 href="/lxr/source/nethack/src/read.c#1269">1269</a>                 if (<a href="/lxr/ident?i=mndx">mndx</a> == <a href="/lxr/ident?i=NON_PM">NON_PM</a> || (<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=mndx">mndx</a>].mvflags &amp; <a href="/lxr/ident?i=G_GENOD">G_GENOD</a>)) {
<a name=1270 href="/lxr/source/nethack/src/read.c#1270">1270</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"Such creatures %s exist in this world."</i>,
<a name=1271 href="/lxr/source/nethack/src/read.c#1271">1271</a>                               (<a href="/lxr/ident?i=mndx">mndx</a> == <a href="/lxr/ident?i=NON_PM">NON_PM</a>) ? <i>"do not"</i> : <i>"no longer"</i>);
<a name=1272 href="/lxr/source/nethack/src/read.c#1272">1272</a>                         continue;
<a name=1273 href="/lxr/source/nethack/src/read.c#1273">1273</a>                 }
<a name=1274 href="/lxr/source/nethack/src/read.c#1274">1274</a>                 <a href="/lxr/ident?i=ptr">ptr</a> = &amp;<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=mndx">mndx</a>];
<a name=1275 href="/lxr/source/nethack/src/read.c#1275">1275</a>                 if (<a href="/lxr/ident?i=Your_Own_Role">Your_Own_Role</a>(<a href="/lxr/ident?i=mndx">mndx</a>)) {
<a name=1276 href="/lxr/source/nethack/src/read.c#1276">1276</a>                         killplayer++;
<a name=1277 href="/lxr/source/nethack/src/read.c#1277">1277</a>                         break;
<a name=1278 href="/lxr/source/nethack/src/read.c#1278">1278</a>                 }
<a name=1279 href="/lxr/source/nethack/src/read.c#1279">1279</a>                 if (<a href="/lxr/ident?i=is_human">is_human</a>(<a href="/lxr/ident?i=ptr">ptr</a>)) adjalign(-sgn(<a href="/lxr/ident?i=u">u</a>.ualign.<a href="/lxr/ident?i=type">type</a>));
<a name=1280 href="/lxr/source/nethack/src/read.c#1280">1280</a>                 if (<a href="/lxr/ident?i=is_demon">is_demon</a>(<a href="/lxr/ident?i=ptr">ptr</a>)) adjalign(sgn(<a href="/lxr/ident?i=u">u</a>.ualign.<a href="/lxr/ident?i=type">type</a>));
<a name=1281 href="/lxr/source/nethack/src/read.c#1281">1281</a> 
<a name=1282 href="/lxr/source/nethack/src/read.c#1282">1282</a>                 if(!(<a href="/lxr/ident?i=ptr">ptr</a>-&gt;geno &amp; <a href="/lxr/ident?i=G_GENO">G_GENO</a>))  {
<a name=1283 href="/lxr/source/nethack/src/read.c#1283">1283</a>                         if(<a href="/lxr/ident?i=flags">flags</a>.soundok) {
<a name=1284 href="/lxr/source/nethack/src/read.c#1284">1284</a>         <b><i>/* fixme: unconditional "caverns" will be silly in some circumstances */</i></b>
<a name=1285 href="/lxr/source/nethack/src/read.c#1285">1285</a>                             if(<a href="/lxr/ident?i=flags">flags</a>.<a href="/lxr/ident?i=verbose">verbose</a>)
<a name=1286 href="/lxr/source/nethack/src/read.c#1286">1286</a>                         <a href="/lxr/ident?i=pline">pline</a>(<i>"A thunderous voice booms though the caverns:"</i>);
<a name=1287 href="/lxr/source/nethack/src/read.c#1287">1287</a>                             verbalize(<i>"No, mortal!  That will not be done."</i>);
<a name=1288 href="/lxr/source/nethack/src/read.c#1288">1288</a>                         }
<a name=1289 href="/lxr/source/nethack/src/read.c#1289">1289</a>                         continue;
<a name=1290 href="/lxr/source/nethack/src/read.c#1290">1290</a>                 }
<a name=1291 href="/lxr/source/nethack/src/read.c#1291">1291</a>                 break;
<a name=1292 href="/lxr/source/nethack/src/read.c#1292">1292</a>             }
<a name=1293 href="/lxr/source/nethack/src/read.c#1293">1293</a>         }
<a name=1294 href="/lxr/source/nethack/src/read.c#1294">1294</a> 
<a name=1295 href="/lxr/source/nethack/src/read.c#1295">1295</a>         <a href="/lxr/ident?i=which">which</a> = <i>"all "</i>;
<a name=1296 href="/lxr/source/nethack/src/read.c#1296">1296</a>         if (<a href="/lxr/ident?i=Hallucination">Hallucination</a>) {
<a name=1297 href="/lxr/source/nethack/src/read.c#1297">1297</a>             if (<a href="/lxr/ident?i=u">u</a>.umonnum != PM_PLAYERMON)
<a name=1298 href="/lxr/source/nethack/src/read.c#1298">1298</a>                 <a href="/lxr/ident?i=Strcpy">Strcpy</a>(<a href="/lxr/ident?i=buf">buf</a>,<a href="/lxr/ident?i=uasmon">uasmon</a>-&gt;<a href="/lxr/ident?i=mname">mname</a>);
<a name=1299 href="/lxr/source/nethack/src/read.c#1299">1299</a>             else {
<a name=1300 href="/lxr/source/nethack/src/read.c#1300">1300</a>                 <a href="/lxr/ident?i=Strcpy">Strcpy</a>(<a href="/lxr/ident?i=buf">buf</a>, <a href="/lxr/ident?i=pl_character">pl_character</a>);
<a name=1301 href="/lxr/source/nethack/src/read.c#1301">1301</a>                 <a href="/lxr/ident?i=buf">buf</a>[0] = lowc(<a href="/lxr/ident?i=buf">buf</a>[0]);
<a name=1302 href="/lxr/source/nethack/src/read.c#1302">1302</a>             }
<a name=1303 href="/lxr/source/nethack/src/read.c#1303">1303</a>         } else {
<a name=1304 href="/lxr/source/nethack/src/read.c#1304">1304</a>             <a href="/lxr/ident?i=Strcpy">Strcpy</a>(<a href="/lxr/ident?i=buf">buf</a>, <a href="/lxr/ident?i=ptr">ptr</a>-&gt;<a href="/lxr/ident?i=mname">mname</a>); <b><i>/* make sure we have standard singular */</i></b>
<a name=1305 href="/lxr/source/nethack/src/read.c#1305">1305</a>             if ((<a href="/lxr/ident?i=ptr">ptr</a>-&gt;geno &amp; <a href="/lxr/ident?i=G_UNIQ">G_UNIQ</a>) &amp;&amp; <a href="/lxr/ident?i=ptr">ptr</a> != &amp;<a href="/lxr/ident?i=mons">mons</a>[PM_HIGH_PRIEST])
<a name=1306 href="/lxr/source/nethack/src/read.c#1306">1306</a>                 <a href="/lxr/ident?i=which">which</a> = !<a href="/lxr/ident?i=type_is_pname">type_is_pname</a>(<a href="/lxr/ident?i=ptr">ptr</a>) ? <i>"the "</i> : <i>""</i>;
<a name=1307 href="/lxr/source/nethack/src/read.c#1307">1307</a>         }
<a name=1308 href="/lxr/source/nethack/src/read.c#1308">1308</a>         if (<a href="/lxr/ident?i=how">how</a> &amp; <a href="/lxr/ident?i=REALLY">REALLY</a>) {
<a name=1309 href="/lxr/source/nethack/src/read.c#1309">1309</a>             <b><i>/* setting no-corpse affects wishing and random tin generation */</i></b>
<a name=1310 href="/lxr/source/nethack/src/read.c#1310">1310</a>             <a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=mndx">mndx</a>].mvflags |= (<a href="/lxr/ident?i=G_GENOD">G_GENOD</a> | <a href="/lxr/ident?i=G_NOCORPSE">G_NOCORPSE</a>);
<a name=1311 href="/lxr/source/nethack/src/read.c#1311">1311</a>             <a href="/lxr/ident?i=pline">pline</a>(<i>"Wiped out %s%s."</i>, <a href="/lxr/ident?i=which">which</a>,
<a name=1312 href="/lxr/source/nethack/src/read.c#1312">1312</a>                   (*<a href="/lxr/ident?i=which">which</a> != <i>'a'</i>) ? <a href="/lxr/ident?i=buf">buf</a> : makeplural(<a href="/lxr/ident?i=buf">buf</a>));
<a name=1313 href="/lxr/source/nethack/src/read.c#1313">1313</a> 
<a name=1314 href="/lxr/source/nethack/src/read.c#1314">1314</a>             if (killplayer) {
<a name=1315 href="/lxr/source/nethack/src/read.c#1315">1315</a>                 <b><i>/* might need to wipe out dual role */</i></b>
<a name=1316 href="/lxr/source/nethack/src/read.c#1316">1316</a>                 int altx = <a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'C'</i>) ? (PM_CAVEMAN + PM_CAVEWOMAN - <a href="/lxr/ident?i=mndx">mndx</a>) :
<a name=1317 href="/lxr/source/nethack/src/read.c#1317">1317</a>                            <a href="/lxr/ident?i=Role_is">Role_is</a>(<i>'P'</i>) ? (PM_PRIEST  + PM_PRIESTESS - <a href="/lxr/ident?i=mndx">mndx</a>) :
<a name=1318 href="/lxr/source/nethack/src/read.c#1318">1318</a>                            0;
<a name=1319 href="/lxr/source/nethack/src/read.c#1319">1319</a>                 if (altx) <a href="/lxr/ident?i=mvitals">mvitals</a>[altx].mvflags |= (<a href="/lxr/ident?i=G_GENOD">G_GENOD</a> | <a href="/lxr/ident?i=G_NOCORPSE">G_NOCORPSE</a>);
<a name=1320 href="/lxr/source/nethack/src/read.c#1320">1320</a> 
<a name=1321 href="/lxr/source/nethack/src/read.c#1321">1321</a>                 <a href="/lxr/ident?i=u">u</a>.uhp = -1;
<a name=1322 href="/lxr/source/nethack/src/read.c#1322">1322</a>                 <a href="/lxr/ident?i=killer_format">killer_format</a> = <a href="/lxr/ident?i=KILLED_BY_AN">KILLED_BY_AN</a>;
<a name=1323 href="/lxr/source/nethack/src/read.c#1323">1323</a>                 if (<a href="/lxr/ident?i=how">how</a> &amp; <a href="/lxr/ident?i=PLAYER">PLAYER</a>)
<a name=1324 href="/lxr/source/nethack/src/read.c#1324">1324</a>                         <a href="/lxr/ident?i=killer">killer</a> = <i>"genocidal confusion"</i>;
<a name=1325 href="/lxr/source/nethack/src/read.c#1325">1325</a>                 else <b><i>/* selected player deliberately, not confused */</i></b>
<a name=1326 href="/lxr/source/nethack/src/read.c#1326">1326</a>                         <a href="/lxr/ident?i=killer">killer</a> = <i>"scroll of genocide"</i>;
<a name=1327 href="/lxr/source/nethack/src/read.c#1327">1327</a> 
<a name=1328 href="/lxr/source/nethack/src/read.c#1328">1328</a>         <b><i>/* Polymorphed characters will die as soon as they're rehumanized. */</i></b>
<a name=1329 href="/lxr/source/nethack/src/read.c#1329">1329</a>                 if (<a href="/lxr/ident?i=u">u</a>.umonnum &gt;= <a href="/lxr/ident?i=LOW_PM">LOW_PM</a>) You_feel(<i>"dead inside."</i>);
<a name=1330 href="/lxr/source/nethack/src/read.c#1330">1330</a>                 else
<a name=1331 href="/lxr/source/nethack/src/read.c#1331">1331</a>                         <a href="/lxr/ident?i=done">done</a>(<a href="/lxr/ident?i=GENOCIDED">GENOCIDED</a>);
<a name=1332 href="/lxr/source/nethack/src/read.c#1332">1332</a>             } else if (<a href="/lxr/ident?i=ptr">ptr</a> == <a href="/lxr/ident?i=uasmon">uasmon</a>) {
<a name=1333 href="/lxr/source/nethack/src/read.c#1333">1333</a>                 <a href="/lxr/ident?i=rehumanize">rehumanize</a>();
<a name=1334 href="/lxr/source/nethack/src/read.c#1334">1334</a>             }
<a name=1335 href="/lxr/source/nethack/src/read.c#1335">1335</a>             reset_rndmonst(<a href="/lxr/ident?i=mndx">mndx</a>);
<a name=1336 href="/lxr/source/nethack/src/read.c#1336">1336</a>             <a href="/lxr/ident?i=kill_genocided_monsters">kill_genocided_monsters</a>();
<a name=1337 href="/lxr/source/nethack/src/read.c#1337">1337</a>             <a href="/lxr/ident?i=update_inventory">update_inventory</a>(); <b><i>/* in case identified eggs were affected */</i></b>
<a name=1338 href="/lxr/source/nethack/src/read.c#1338">1338</a>         } else {
<a name=1339 href="/lxr/source/nethack/src/read.c#1339">1339</a>             int <a href="/lxr/ident?i=cnt">cnt</a> = 0;
<a name=1340 href="/lxr/source/nethack/src/read.c#1340">1340</a> 
<a name=1341 href="/lxr/source/nethack/src/read.c#1341">1341</a>             if (!(<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=mndx">mndx</a>].geno &amp; <a href="/lxr/ident?i=G_UNIQ">G_UNIQ</a>) &amp;&amp;
<a name=1342 href="/lxr/source/nethack/src/read.c#1342">1342</a>                     !(<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=mndx">mndx</a>].mvflags &amp; (<a href="/lxr/ident?i=G_GENOD">G_GENOD</a> | <a href="/lxr/ident?i=G_EXTINCT">G_EXTINCT</a>)))
<a name=1343 href="/lxr/source/nethack/src/read.c#1343">1343</a>                 for (<a href="/lxr/ident?i=i">i</a> = <a href="/lxr/ident?i=rn1">rn1</a>(3, 4); <a href="/lxr/ident?i=i">i</a> &gt; 0; <a href="/lxr/ident?i=i">i</a>--) {
<a name=1344 href="/lxr/source/nethack/src/read.c#1344">1344</a>                     if (!makemon(<a href="/lxr/ident?i=ptr">ptr</a>, <a href="/lxr/ident?i=u">u</a>.ux, <a href="/lxr/ident?i=u">u</a>.uy, <a href="/lxr/ident?i=NO_MINVENT">NO_MINVENT</a>))
<a name=1345 href="/lxr/source/nethack/src/read.c#1345">1345</a>                         break;  <b><i>/* couldn't make one */</i></b>
<a name=1346 href="/lxr/source/nethack/src/read.c#1346">1346</a>                     ++<a href="/lxr/ident?i=cnt">cnt</a>;
<a name=1347 href="/lxr/source/nethack/src/read.c#1347">1347</a>                     if (<a href="/lxr/ident?i=mvitals">mvitals</a>[<a href="/lxr/ident?i=mndx">mndx</a>].mvflags &amp; <a href="/lxr/ident?i=G_EXTINCT">G_EXTINCT</a>)
<a name=1348 href="/lxr/source/nethack/src/read.c#1348">1348</a>                         break;  <b><i>/* just made last one */</i></b>
<a name=1349 href="/lxr/source/nethack/src/read.c#1349">1349</a>                 }
<a name=1350 href="/lxr/source/nethack/src/read.c#1350">1350</a>             if (<a href="/lxr/ident?i=cnt">cnt</a>)
<a name=1351 href="/lxr/source/nethack/src/read.c#1351">1351</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"Sent in some %s."</i>, makeplural(<a href="/lxr/ident?i=buf">buf</a>));
<a name=1352 href="/lxr/source/nethack/src/read.c#1352">1352</a>             else
<a name=1353 href="/lxr/source/nethack/src/read.c#1353">1353</a>                 <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=nothing_happens">nothing_happens</a>);
<a name=1354 href="/lxr/source/nethack/src/read.c#1354">1354</a>         }
<a name=1355 href="/lxr/source/nethack/src/read.c#1355">1355</a> }
<a name=1356 href="/lxr/source/nethack/src/read.c#1356">1356</a> 
<a name=1357 href="/lxr/source/nethack/src/read.c#1357">1357</a> void
<a name=1358 href="/lxr/source/nethack/src/read.c#1358">1358</a> punish(<a href="/lxr/ident?i=sobj">sobj</a>)
<a name=1359 href="/lxr/source/nethack/src/read.c#1359">1359</a> register struct <a href="/lxr/ident?i=obj">obj</a>     *<a href="/lxr/ident?i=sobj">sobj</a>;
<a name=1360 href="/lxr/source/nethack/src/read.c#1360">1360</a> {
<a name=1361 href="/lxr/source/nethack/src/read.c#1361">1361</a>         You(<i>"are being punished for your misbehavior!"</i>);
<a name=1362 href="/lxr/source/nethack/src/read.c#1362">1362</a>         if(<a href="/lxr/ident?i=Punished">Punished</a>){
<a name=1363 href="/lxr/source/nethack/src/read.c#1363">1363</a>                 Your(<i>"iron ball gets heavier."</i>);
<a name=1364 href="/lxr/source/nethack/src/read.c#1364">1364</a>                 uball-&gt;owt += 160 * (1 + <a href="/lxr/ident?i=sobj">sobj</a>-&gt;cursed);
<a name=1365 href="/lxr/source/nethack/src/read.c#1365">1365</a>                 return;
<a name=1366 href="/lxr/source/nethack/src/read.c#1366">1366</a>         }
<a name=1367 href="/lxr/source/nethack/src/read.c#1367">1367</a>         if (<a href="/lxr/ident?i=amorphous">amorphous</a>(<a href="/lxr/ident?i=uasmon">uasmon</a>) || <a href="/lxr/ident?i=is_whirly">is_whirly</a>(<a href="/lxr/ident?i=uasmon">uasmon</a>) || <a href="/lxr/ident?i=unsolid">unsolid</a>(<a href="/lxr/ident?i=uasmon">uasmon</a>)) {
<a name=1368 href="/lxr/source/nethack/src/read.c#1368">1368</a>                 <a href="/lxr/ident?i=pline">pline</a>(<i>"A ball and chain appears, then falls away."</i>);
<a name=1369 href="/lxr/source/nethack/src/read.c#1369">1369</a>                 dropy(mkobj(<a href="/lxr/ident?i=BALL_CLASS">BALL_CLASS</a>, <a href="/lxr/ident?i=TRUE">TRUE</a>));
<a name=1370 href="/lxr/source/nethack/src/read.c#1370">1370</a>                 return;
<a name=1371 href="/lxr/source/nethack/src/read.c#1371">1371</a>         }
<a name=1372 href="/lxr/source/nethack/src/read.c#1372">1372</a>         setworn(mkobj(<a href="/lxr/ident?i=CHAIN_CLASS">CHAIN_CLASS</a>, <a href="/lxr/ident?i=TRUE">TRUE</a>), <a href="/lxr/ident?i=W_CHAIN">W_CHAIN</a>);
<a name=1373 href="/lxr/source/nethack/src/read.c#1373">1373</a>         setworn(mkobj(<a href="/lxr/ident?i=BALL_CLASS">BALL_CLASS</a>, <a href="/lxr/ident?i=TRUE">TRUE</a>), <a href="/lxr/ident?i=W_BALL">W_BALL</a>);
<a name=1374 href="/lxr/source/nethack/src/read.c#1374">1374</a>         uball-&gt;spe = 1;         <b><i>/* special ball (see save) */</i></b>
<a name=1375 href="/lxr/source/nethack/src/read.c#1375">1375</a> 
<a name=1376 href="/lxr/source/nethack/src/read.c#1376">1376</a>         <b><i>/*</i></b>
<a name=1377 href="/lxr/source/nethack/src/read.c#1377">1377</a> <b><i>         *  Place ball &amp; chain if not swallowed.  If swallowed, the ball &amp;</i></b>
<a name=1378 href="/lxr/source/nethack/src/read.c#1378">1378</a> <b><i>         *  chain variables will be set at the next call to placebc().</i></b>
<a name=1379 href="/lxr/source/nethack/src/read.c#1379">1379</a> <b><i>         */</i></b>
<a name=1380 href="/lxr/source/nethack/src/read.c#1380">1380</a>         if (!<a href="/lxr/ident?i=u">u</a>.uswallow) {
<a name=1381 href="/lxr/source/nethack/src/read.c#1381">1381</a>             <a href="/lxr/ident?i=placebc">placebc</a>();
<a name=1382 href="/lxr/source/nethack/src/read.c#1382">1382</a>             if (<a href="/lxr/ident?i=Blind">Blind</a>) set_bc(1);       <b><i>/* set up ball and chain variables */</i></b>
<a name=1383 href="/lxr/source/nethack/src/read.c#1383">1383</a>             newsym(<a href="/lxr/ident?i=u">u</a>.ux,<a href="/lxr/ident?i=u">u</a>.uy);          <b><i>/* see ball&amp;chain if can't see self */</i></b>
<a name=1384 href="/lxr/source/nethack/src/read.c#1384">1384</a>         }
<a name=1385 href="/lxr/source/nethack/src/read.c#1385">1385</a> }
<a name=1386 href="/lxr/source/nethack/src/read.c#1386">1386</a> 
<a name=1387 href="/lxr/source/nethack/src/read.c#1387">1387</a> void
<a name=1388 href="/lxr/source/nethack/src/read.c#1388">1388</a> <a href="/lxr/ident?i=unpunish">unpunish</a>()
<a name=1389 href="/lxr/source/nethack/src/read.c#1389">1389</a> {           <b><i>/* remove the ball and chain */</i></b>
<a name=1390 href="/lxr/source/nethack/src/read.c#1390">1390</a>         struct <a href="/lxr/ident?i=obj">obj</a> *savechain = uchain;
<a name=1391 href="/lxr/source/nethack/src/read.c#1391">1391</a> 
<a name=1392 href="/lxr/source/nethack/src/read.c#1392">1392</a>         obj_extract_self(uchain);
<a name=1393 href="/lxr/source/nethack/src/read.c#1393">1393</a>         newsym(uchain-&gt;<a href="/lxr/ident?i=ox">ox</a>,uchain-&gt;<a href="/lxr/ident?i=oy">oy</a>);
<a name=1394 href="/lxr/source/nethack/src/read.c#1394">1394</a>         setworn((struct <a href="/lxr/ident?i=obj">obj</a> *)0, <a href="/lxr/ident?i=W_CHAIN">W_CHAIN</a>);
<a name=1395 href="/lxr/source/nethack/src/read.c#1395">1395</a>         dealloc_obj(savechain);
<a name=1396 href="/lxr/source/nethack/src/read.c#1396">1396</a>         uball-&gt;spe = 0;
<a name=1397 href="/lxr/source/nethack/src/read.c#1397">1397</a>         setworn((struct <a href="/lxr/ident?i=obj">obj</a> *)0, <a href="/lxr/ident?i=W_BALL">W_BALL</a>);
<a name=1398 href="/lxr/source/nethack/src/read.c#1398">1398</a> }
<a name=1399 href="/lxr/source/nethack/src/read.c#1399">1399</a> 
<a name=1400 href="/lxr/source/nethack/src/read.c#1400">1400</a> <b><i>/* some creatures have special data structures that only make sense in their</i></b>
<a name=1401 href="/lxr/source/nethack/src/read.c#1401">1401</a> <b><i> * normal locations -- if the player tries to create one elsewhere, or to revive</i></b>
<a name=1402 href="/lxr/source/nethack/src/read.c#1402">1402</a> <b><i> * one, the disoriented creature becomes a zombie</i></b>
<a name=1403 href="/lxr/source/nethack/src/read.c#1403">1403</a> <b><i> */</i></b>
<a name=1404 href="/lxr/source/nethack/src/read.c#1404">1404</a> <a href="/lxr/ident?i=boolean">boolean</a>
<a name=1405 href="/lxr/source/nethack/src/read.c#1405">1405</a> cant_create(<a href="/lxr/ident?i=mtype">mtype</a>)
<a name=1406 href="/lxr/source/nethack/src/read.c#1406">1406</a> int *<a href="/lxr/ident?i=mtype">mtype</a>;
<a name=1407 href="/lxr/source/nethack/src/read.c#1407">1407</a> {
<a name=1408 href="/lxr/source/nethack/src/read.c#1408">1408</a> 
<a name=1409 href="/lxr/source/nethack/src/read.c#1409">1409</a>         if (*<a href="/lxr/ident?i=mtype">mtype</a>==PM_GUARD || *<a href="/lxr/ident?i=mtype">mtype</a>==PM_SHOPKEEPER
<a name=1410 href="/lxr/source/nethack/src/read.c#1410">1410</a>              || *<a href="/lxr/ident?i=mtype">mtype</a>==PM_ALIGNED_PRIEST || *<a href="/lxr/ident?i=mtype">mtype</a>==PM_ANGEL) {
<a name=1411 href="/lxr/source/nethack/src/read.c#1411">1411</a>                 *<a href="/lxr/ident?i=mtype">mtype</a> = PM_HUMAN_ZOMBIE;
<a name=1412 href="/lxr/source/nethack/src/read.c#1412">1412</a>                 return <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=1413 href="/lxr/source/nethack/src/read.c#1413">1413</a>         } else if (*<a href="/lxr/ident?i=mtype">mtype</a>==PM_LONG_WORM_TAIL) { <b><i>/* for create_particular() */</i></b>
<a name=1414 href="/lxr/source/nethack/src/read.c#1414">1414</a>                 *<a href="/lxr/ident?i=mtype">mtype</a> = PM_LONG_WORM;
<a name=1415 href="/lxr/source/nethack/src/read.c#1415">1415</a>                 return <a href="/lxr/ident?i=TRUE">TRUE</a>;
<a name=1416 href="/lxr/source/nethack/src/read.c#1416">1416</a>         }
<a name=1417 href="/lxr/source/nethack/src/read.c#1417">1417</a>         return <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1418 href="/lxr/source/nethack/src/read.c#1418">1418</a> }
<a name=1419 href="/lxr/source/nethack/src/read.c#1419">1419</a> 
<a name=1420 href="/lxr/source/nethack/src/read.c#1420">1420</a> #ifdef <a href="/lxr/ident?i=WIZARD">WIZARD</a>
<a name=1421 href="/lxr/source/nethack/src/read.c#1421">1421</a> <a href="/lxr/ident?i=boolean">boolean</a>
<a name=1422 href="/lxr/source/nethack/src/read.c#1422">1422</a> <a href="/lxr/ident?i=create_particular">create_particular</a>()
<a name=1423 href="/lxr/source/nethack/src/read.c#1423">1423</a> {
<a name=1424 href="/lxr/source/nethack/src/read.c#1424">1424</a>         char <a href="/lxr/ident?i=buf">buf</a>[<a href="/lxr/ident?i=BUFSZ">BUFSZ</a>];
<a name=1425 href="/lxr/source/nethack/src/read.c#1425">1425</a>         int <a href="/lxr/ident?i=which">which</a>, <a href="/lxr/ident?i=tries">tries</a> = 0;
<a name=1426 href="/lxr/source/nethack/src/read.c#1426">1426</a> 
<a name=1427 href="/lxr/source/nethack/src/read.c#1427">1427</a>         do {
<a name=1428 href="/lxr/source/nethack/src/read.c#1428">1428</a>             <a href="/lxr/ident?i=getlin">getlin</a>(<i>"Create what kind of monster? [type the name]"</i>, <a href="/lxr/ident?i=buf">buf</a>);
<a name=1429 href="/lxr/source/nethack/src/read.c#1429">1429</a>             if (<a href="/lxr/ident?i=buf">buf</a>[0] == <i>'\033'</i>) return <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1430 href="/lxr/source/nethack/src/read.c#1430">1430</a>             <a href="/lxr/ident?i=which">which</a> = name_to_mon(<a href="/lxr/ident?i=buf">buf</a>);
<a name=1431 href="/lxr/source/nethack/src/read.c#1431">1431</a>             if (<a href="/lxr/ident?i=which">which</a> &lt; <a href="/lxr/ident?i=LOW_PM">LOW_PM</a>) <a href="/lxr/ident?i=pline">pline</a>(<i>"I've never heard of such monsters."</i>);
<a name=1432 href="/lxr/source/nethack/src/read.c#1432">1432</a>             else break;
<a name=1433 href="/lxr/source/nethack/src/read.c#1433">1433</a>         } while (++<a href="/lxr/ident?i=tries">tries</a> &lt; 5);
<a name=1434 href="/lxr/source/nethack/src/read.c#1434">1434</a>         if (<a href="/lxr/ident?i=tries">tries</a> == 5) <a href="/lxr/ident?i=pline">pline</a>(<a href="/lxr/ident?i=thats_enough_tries">thats_enough_tries</a>);
<a name=1435 href="/lxr/source/nethack/src/read.c#1435">1435</a>         else {
<a name=1436 href="/lxr/source/nethack/src/read.c#1436">1436</a>             (void) cant_create(&amp;<a href="/lxr/ident?i=which">which</a>);
<a name=1437 href="/lxr/source/nethack/src/read.c#1437">1437</a>             return((<a href="/lxr/ident?i=boolean">boolean</a>)(makemon(&amp;<a href="/lxr/ident?i=mons">mons</a>[<a href="/lxr/ident?i=which">which</a>],
<a name=1438 href="/lxr/source/nethack/src/read.c#1438">1438</a>                                 <a href="/lxr/ident?i=u">u</a>.ux, <a href="/lxr/ident?i=u">u</a>.uy, <a href="/lxr/ident?i=NO_MM_FLAGS">NO_MM_FLAGS</a>) != 0));
<a name=1439 href="/lxr/source/nethack/src/read.c#1439">1439</a>         }
<a name=1440 href="/lxr/source/nethack/src/read.c#1440">1440</a>         return <a href="/lxr/ident?i=FALSE">FALSE</a>;
<a name=1441 href="/lxr/source/nethack/src/read.c#1441">1441</a> }
<a name=1442 href="/lxr/source/nethack/src/read.c#1442">1442</a> #endif <b><i>/* WIZARD */</i></b>
<a name=1443 href="/lxr/source/nethack/src/read.c#1443">1443</a> 
<a name=1444 href="/lxr/source/nethack/src/read.c#1444">1444</a> #endif <b><i>/* OVLB */</i></b>
<a name=1445 href="/lxr/source/nethack/src/read.c#1445">1445</a> 
<a name=1446 href="/lxr/source/nethack/src/read.c#1446">1446</a> <b><i>/*read.c*/</i></b>
<a name=1447 href="/lxr/source/nethack/src/read.c#1447">1447</a> </pre><P>
<BR>
<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=4 WIDTH="100%">
 <TR>
  <TD WIDTH="50%" ALIGN=LEFT VALIGN=TOP>
   This page was automatically generated by the 
   <A HREF="http://lxr.linux.no/">LXR engine</A>
   written by
   <A HREF="mailto:lxr@linux.no">Arne Georg Gleditsch</A> and
   <A HREF="mailto:lxr@linux.no">Per Kristian Gjermshus</A>.
  </TD>
  <TD WIDTH="50%" ALIGN=LEFT VALIGN=TOP>
   Contact 
   <A HREF="mailto:msw@gimp.org">Matt Wilson</a>
   with any comments or questions about LXR on gnome.org.<br>
   <B>Do not</B> contact Matt Wilson concerning any <I>software</I> on this site.
  </TD>
 </TR>
</TABLE>
</html>
