Difference between revisions of "Source:NetHack 1.4f/monst.h"

From NetHackWiki
Jump to navigation Jump to search
m (Automated source code upload)
 
m (Semi-redirect to 1.3d versions)
Line 1: Line 1:
Below is the full text to '''monst.h''' from the [[NetHack 1.4f source code|source code]] of [[NetHack 1.4f]]. To link to a particular line, write [[NetHack 1.4f/monst.h#line123|<nowiki>[[NetHack 1.4f/monst.h#line123]]</nowiki>]], for example.
+
The source code file '''monst.h''' in [[NetHack 1.4f source code|NetHack 1.4f]] is unchanged from [[NetHack 1.3d/monst.h]].
 
+
[[Category:NetHack 1.4f source code]]
'''Warning!''' This is the source code from an old release. For the latest release, see [[Source code]]
 
 
 
{{CWI}}
 
<span id="line1">1.   /* SCCS Id: @(#)monst.h 1.3 87/07/14</span>
 
<span id="line2">2.    /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</span>
 
<span id="line3">3.    /* monst.h - version 1.0.2 */</span>
 
<span id="line4">4.    </span>
 
<span id="line5">5.    struct monst {</span>
 
<span id="line6">6.    struct monst *nmon;</span>
 
<span id="line7">7.    struct permonst *data;</span>
 
<span id="line8">8.    unsigned m_id;</span>
 
<span id="line9">9.    xchar mx,my;</span>
 
<span id="line10">10.  xchar mdx,mdy; /* if mdispl then pos where last displayed */</span>
 
<span id="line11">11.  #define MTSZ 4</span>
 
<span id="line12">12.  coord mtrack[MTSZ]; /* monster track */</span>
 
<span id="line13">13.  schar mhp,mhpmax;</span>
 
<span id="line14">14.  char mappearance; /* nonzero for undetected 'M's and for '1's */</span>
 
<span id="line15">15.  Bitfield(mimic,1); /* undetected mimic */</span>
 
<span id="line16">16.  Bitfield(mdispl,1); /* mdx,mdy valid */</span>
 
<span id="line17">17.  Bitfield(minvis,1); /* invisible */</span>
 
<span id="line18">18.  Bitfield(cham,1); /* shape-changer */</span>
 
<span id="line19">19.  Bitfield(mhide,1); /* hides beneath objects */</span>
 
<span id="line20">20.  Bitfield(mundetected,1); /* not seen in present hiding place */</span>
 
<span id="line21">21.  Bitfield(mspeed,2);</span>
 
<span id="line22">22.  Bitfield(msleep,1);</span>
 
<span id="line23">23.  Bitfield(mfroz,1);</span>
 
<span id="line24">24.  Bitfield(mconf,1);</span>
 
<span id="line25">25.  Bitfield(mflee,1); /* fleeing */</span>
 
<span id="line26">26.  Bitfield(mfleetim,7); /* timeout for mflee */</span>
 
<span id="line27">27.  Bitfield(mcan,1); /* has been cancelled */</span>
 
<span id="line28">28.  Bitfield(mtame,1); /* implies peaceful */</span>
 
<span id="line29">29.  Bitfield(mpeaceful,1); /* does not attack unprovoked */</span>
 
<span id="line30">30.  Bitfield(isshk,1); /* is shopkeeper */</span>
 
<span id="line31">31.  Bitfield(isgd,1); /* is guard */</span>
 
<span id="line32">32.  Bitfield(mcansee,1); /* cansee 1, temp.blinded 0, blind 0 */</span>
 
<span id="line33">33.  Bitfield(mblinded,7); /* cansee 0, temp.blinded n, blind 0 */</span>
 
<span id="line34">34.  Bitfield(mtrapped,1); /* trapped in a pit or bear trap */</span>
 
<span id="line35">35.  Bitfield(mnamelth,6); /* length of name (following mxlth) */</span>
 
<span id="line36">36.  #ifndef NOWORM</span>
 
<span id="line37">37.  Bitfield(wormno,5); /* at most 31 worms on any level */</span>
 
<span id="line38">38.  #endif</span>
 
<span id="line39">39.  #ifdef WALKIES</span>
 
<span id="line40">40.  Bitfield(mleashed,1); /* monster is on a leash */</span>
 
<span id="line41">41.  #endif</span>
 
<span id="line42">42.  long mtrapseen; /* bitmap of traps we've been trapped in */</span>
 
<span id="line43">43.  long mlstmv; /* prevent two moves at once */</span>
 
<span id="line44">44.  struct obj *minvent;</span>
 
<span id="line45">45.  long mgold;</span>
 
<span id="line46">46.  unsigned mxlth; /* length of following data */</span>
 
<span id="line47">47.  /* in order to prevent alignment problems mextra should</span>
 
<span id="line48">48.    be (or follow) a long int */</span>
 
<span id="line49">49.  long mextra[1]; /* monster dependent info */</span>
 
<span id="line50">50.   };</span>
 
<span id="line51">51.  </span>
 
<span id="line52">52.  #define newmonst(xl) (struct monst *) alloc((unsigned)(xl) + sizeof(struct monst))</span>
 
<span id="line53">53.  </span>
 
<span id="line54">54.  extern struct monst *fmon;</span>
 
<span id="line55">55.  extern struct monst *fallen_down;</span>
 
<span id="line56">56.  struct monst *m_at();</span>
 
<span id="line57">57.  </span>
 
<span id="line58">58.  /* these are in mspeed */</span>
 
<span id="line59">59.  #define MSLOW 1 /* slow monster */</span>
 
<span id="line60">60.  #define MFAST 2 /* speeded monster */</span>
 
<span id="line61">61.  </span>
 
<span id="line62">62.  #define NAME(mtmp) (((char *) mtmp->mextra) + mtmp->mxlth)</span>
 
<span id="line63">63.  #define MREGEN "TVi1"</span>
 
<span id="line64">64.  #define UNDEAD "ZVW "</span>
 
[[Category:NetHack 1.4f source code|monst.h]]
 

Revision as of 20:50, 3 September 2006

The source code file monst.h in NetHack 1.4f is unchanged from NetHack 1.3d/monst.h.