Difference between revisions of "Source:NetHack 3.6.0/include/permonst.h"

From NetHackWiki
Jump to navigation Jump to search
(Created page with "__MIXEDSYNTAXHIGHLIGHT__ Below is the full text to '''permonst.h''' from the source code of NetHack 3.6.0. To link to a particular line, writ...")
 
 
Line 3: Line 3:
  
 
{{NGPL}}
 
{{NGPL}}
  <span id="line1">1.   /* NetHack 3.6 permonst.h $NHDT-Date: 1432512778 2015/05/25 00:12:58 $  $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */</span>
+
  <span id="line1">1. /* NetHack 3.6 permonst.h $NHDT-Date: 1432512778 2015/05/25 00:12:58 $  $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */</span>
  <span id="line2">2.   /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</span>
+
  <span id="line2">2. /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */</span>
  <span id="line3">3.   /* NetHack may be freely redistributed.  See license for details. */</span>
+
  <span id="line3">3. /* NetHack may be freely redistributed.  See license for details. */</span>
  <span id="line4">4.   </span>
+
  <span id="line4">4. </span>
  <span id="line5">5.   #ifndef PERMONST_H</span>
+
  <span id="line5">5. #ifndef PERMONST_H</span>
  <span id="line6">6.   #define PERMONST_H</span>
+
  <span id="line6">6. #define PERMONST_H</span>
  <span id="line7">7.   </span>
+
  <span id="line7">7. </span>
  <span id="line8">8.   /* This structure covers all attack forms.</span>
+
  <span id="line8">8. /* This structure covers all attack forms.</span>
  <span id="line9">9.     * aatyp is the gross attack type (eg. claw, bite, breath, ...)</span>
+
  <span id="line9">9.  * aatyp is the gross attack type (eg. claw, bite, breath, ...)</span>
  <span id="line10">10.   * adtyp is the damage type (eg. physical, fire, cold, spell, ...)</span>
+
  <span id="line10">10.  * adtyp is the damage type (eg. physical, fire, cold, spell, ...)</span>
  <span id="line11">11.   * damn is the number of hit dice of damage from the attack.</span>
+
  <span id="line11">11.  * damn is the number of hit dice of damage from the attack.</span>
  <span id="line12">12.   * damd is the number of sides on each die.</span>
+
  <span id="line12">12.  * damd is the number of sides on each die.</span>
  <span id="line13">13.   *</span>
+
  <span id="line13">13.  *</span>
  <span id="line14">14.   * Some attacks can do no points of damage.  Additionally, some can</span>
+
  <span id="line14">14.  * Some attacks can do no points of damage.  Additionally, some can</span>
  <span id="line15">15.   * have special effects *and* do damage as well.  If damn and damd</span>
+
  <span id="line15">15.  * have special effects *and* do damage as well.  If damn and damd</span>
  <span id="line16">16.   * are set, they may have a special meaning.  For example, if set</span>
+
  <span id="line16">16.  * are set, they may have a special meaning.  For example, if set</span>
  <span id="line17">17.   * for a blinding attack, they determine the amount of time blinded.</span>
+
  <span id="line17">17.  * for a blinding attack, they determine the amount of time blinded.</span>
  <span id="line18">18.   */</span>
+
  <span id="line18">18.  */</span>
  <span id="line19">19.   </span>
+
  <span id="line19">19. </span>
  <span id="line20">20.   struct attack {</span>
+
  <span id="line20">20. struct attack {</span>
  <span id="line21">21.       uchar aatyp;</span>
+
  <span id="line21">21.     uchar aatyp;</span>
  <span id="line22">22.       uchar adtyp, damn, damd;</span>
+
  <span id="line22">22.     uchar adtyp, damn, damd;</span>
  <span id="line23">23.   };</span>
+
  <span id="line23">23. };</span>
  <span id="line24">24.   </span>
+
  <span id="line24">24. </span>
  <span id="line25">25.   /* Max # of attacks for any given monster.</span>
+
  <span id="line25">25. /* Max # of attacks for any given monster.</span>
  <span id="line26">26.   */</span>
+
  <span id="line26">26.  */</span>
  <span id="line27">27.   </span>
+
  <span id="line27">27. </span>
  <span id="line28">28.   #define NATTK 6</span>
+
  <span id="line28">28. #define NATTK 6</span>
  <span id="line29">29.   </span>
+
  <span id="line29">29. </span>
  <span id="line30">30.   /* Weight of a human body</span>
+
  <span id="line30">30. /* Weight of a human body</span>
  <span id="line31">31.   */</span>
+
  <span id="line31">31.  */</span>
  <span id="line32">32.   </span>
+
  <span id="line32">32. </span>
  <span id="line33">33.   #define WT_HUMAN 1450</span>
+
  <span id="line33">33. #define WT_HUMAN 1450</span>
  <span id="line34">34.   </span>
+
  <span id="line34">34. </span>
  <span id="line35">35.   #ifndef ALIGN_H</span>
+
  <span id="line35">35. #ifndef ALIGN_H</span>
  <span id="line36">36.   #include "align.h"</span>
+
  <span id="line36">36. #include "align.h"</span>
  <span id="line37">37.   #endif</span>
+
  <span id="line37">37. #endif</span>
  <span id="line38">38.   #include "monattk.h"</span>
+
  <span id="line38">38. #include "monattk.h"</span>
  <span id="line39">39.   #include "monflag.h"</span>
+
  <span id="line39">39. #include "monflag.h"</span>
  <span id="line40">40.   </span>
+
  <span id="line40">40. </span>
  <span id="line41">41.   struct permonst {</span>
+
  <span id="line41">41. struct permonst {</span>
  <span id="line42">42.       const char *mname;          /* full name */</span>
+
  <span id="line42">42.     const char *mname;          /* full name */</span>
  <span id="line43">43.       char mlet;                  /* symbol */</span>
+
  <span id="line43">43.     char mlet;                  /* symbol */</span>
  <span id="line44">44.       schar mlevel,              /* base monster level */</span>
+
  <span id="line44">44.     schar mlevel,              /* base monster level */</span>
  <span id="line45">45.           mmove,                  /* move speed */</span>
+
  <span id="line45">45.         mmove,                  /* move speed */</span>
  <span id="line46">46.           ac,                    /* (base) armor class */</span>
+
  <span id="line46">46.         ac,                    /* (base) armor class */</span>
  <span id="line47">47.           mr;                    /* (base) magic resistance */</span>
+
  <span id="line47">47.         mr;                    /* (base) magic resistance */</span>
  <span id="line48">48.       aligntyp maligntyp;        /* basic monster alignment */</span>
+
  <span id="line48">48.     aligntyp maligntyp;        /* basic monster alignment */</span>
  <span id="line49">49.       unsigned short geno;        /* creation/geno mask value */</span>
+
  <span id="line49">49.     unsigned short geno;        /* creation/geno mask value */</span>
  <span id="line50">50.       struct attack mattk[NATTK]; /* attacks matrix */</span>
+
  <span id="line50">50.     struct attack mattk[NATTK]; /* attacks matrix */</span>
  <span id="line51">51.       unsigned short cwt,        /* weight of corpse */</span>
+
  <span id="line51">51.     unsigned short cwt,        /* weight of corpse */</span>
  <span id="line52">52.           cnutrit;                /* its nutritional value */</span>
+
  <span id="line52">52.         cnutrit;                /* its nutritional value */</span>
  <span id="line53">53.       uchar msound;              /* noise it makes (6 bits) */</span>
+
  <span id="line53">53.     uchar msound;              /* noise it makes (6 bits) */</span>
  <span id="line54">54.       uchar msize;                /* physical size (3 bits) */</span>
+
  <span id="line54">54.     uchar msize;                /* physical size (3 bits) */</span>
  <span id="line55">55.       uchar mresists;            /* resistances */</span>
+
  <span id="line55">55.     uchar mresists;            /* resistances */</span>
  <span id="line56">56.       uchar mconveys;            /* conveyed by eating */</span>
+
  <span id="line56">56.     uchar mconveys;            /* conveyed by eating */</span>
  <span id="line57">57.       unsigned long mflags1,      /* boolean bitflags */</span>
+
  <span id="line57">57.     unsigned long mflags1,      /* boolean bitflags */</span>
  <span id="line58">58.           mflags2;                /* more boolean bitflags */</span>
+
  <span id="line58">58.         mflags2;                /* more boolean bitflags */</span>
  <span id="line59">59.       unsigned short mflags3;    /* yet more boolean bitflags */</span>
+
  <span id="line59">59.     unsigned short mflags3;    /* yet more boolean bitflags */</span>
  <span id="line60">60.   #ifdef TEXTCOLOR</span>
+
  <span id="line60">60. #ifdef TEXTCOLOR</span>
  <span id="line61">61.       uchar mcolor; /* color to use */</span>
+
  <span id="line61">61.     uchar mcolor; /* color to use */</span>
  <span id="line62">62.   #endif</span>
+
  <span id="line62">62. #endif</span>
  <span id="line63">63.   };</span>
+
  <span id="line63">63. };</span>
  <span id="line64">64.   </span>
+
  <span id="line64">64. </span>
  <span id="line65">65.   extern NEARDATA struct permonst mons[]; /* the master list of monster types */</span>
+
  <span id="line65">65. extern NEARDATA struct permonst mons[]; /* the master list of monster types */</span>
  <span id="line66">66.   </span>
+
  <span id="line66">66. </span>
  <span id="line67">67.   #define VERY_SLOW 3</span>
+
  <span id="line67">67. #define VERY_SLOW 3</span>
  <span id="line68">68.   #define SLOW_SPEED 9</span>
+
  <span id="line68">68. #define SLOW_SPEED 9</span>
  <span id="line69">69.   #define NORMAL_SPEED 12 /* movement rates */</span>
+
  <span id="line69">69. #define NORMAL_SPEED 12 /* movement rates */</span>
  <span id="line70">70.   #define FAST_SPEED 15</span>
+
  <span id="line70">70. #define FAST_SPEED 15</span>
  <span id="line71">71.   #define VERY_FAST 24</span>
+
  <span id="line71">71. #define VERY_FAST 24</span>
  <span id="line72">72.   </span>
+
  <span id="line72">72. </span>
  <span id="line73">73.   #define NON_PM PM_PLAYERMON          /* "not a monster" */</span>
+
  <span id="line73">73. #define NON_PM PM_PLAYERMON          /* "not a monster" */</span>
  <span id="line74">74.   #define LOW_PM (NON_PM + 1)          /* first monster in mons[] */</span>
+
  <span id="line74">74. #define LOW_PM (NON_PM + 1)          /* first monster in mons[] */</span>
  <span id="line75">75.   #define SPECIAL_PM PM_LONG_WORM_TAIL /* [normal] < ~ < [special] */</span>
+
  <span id="line75">75. #define SPECIAL_PM PM_LONG_WORM_TAIL /* [normal] < ~ < [special] */</span>
  <span id="line76">76.   /* mons[SPECIAL_PM] through mons[NUMMONS-1], inclusive, are</span>
+
  <span id="line76">76. /* mons[SPECIAL_PM] through mons[NUMMONS-1], inclusive, are</span>
  <span id="line77">77.     never generated randomly and cannot be polymorphed into */</span>
+
  <span id="line77">77.   never generated randomly and cannot be polymorphed into */</span>
  <span id="line78">78.   </span>
+
  <span id="line78">78. </span>
  <span id="line79">79.   #endif /* PERMONST_H */</span>
+
  <span id="line79">79. #endif /* PERMONST_H */</span>
 
[[Category:NetHack 3.6.0 source code|include/permonst.h]]
 
[[Category:NetHack 3.6.0 source code|include/permonst.h]]

Latest revision as of 13:36, 15 December 2015

Below is the full text to permonst.h from the source code of NetHack 3.6.0. To link to a particular line, write [[Source:NetHack 3.6.0/include/permonst.h#line123]], for example.

The NetHack General Public License applies to screenshots, source code and other content from NetHack.

This content was modified from the original NetHack source code distribution (by splitting up NetHack content between wiki pages, and possibly further editing). See the page history for a list of who changed it, and on what dates.

 /* NetHack 3.6	permonst.h	$NHDT-Date: 1432512778 2015/05/25 00:12:58 $  $NHDT-Branch: master $:$NHDT-Revision: 1.9 $ */
 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
 /* NetHack may be freely redistributed.  See license for details. */
 
 #ifndef PERMONST_H
 #define PERMONST_H
 
 /*	This structure covers all attack forms.
  *	aatyp is the gross attack type (eg. claw, bite, breath, ...)
  *	adtyp is the damage type (eg. physical, fire, cold, spell, ...)
  *	damn is the number of hit dice of damage from the attack.
  *	damd is the number of sides on each die.
  *
  *	Some attacks can do no points of damage.  Additionally, some can
  *	have special effects *and* do damage as well.  If damn and damd
  *	are set, they may have a special meaning.  For example, if set
  *	for a blinding attack, they determine the amount of time blinded.
  */
 
 struct attack {
     uchar aatyp;
     uchar adtyp, damn, damd;
 };
 
 /*	Max # of attacks for any given monster.
  */
 
 #define NATTK 6
 
 /*	Weight of a human body
  */
 
 #define WT_HUMAN 1450
 
 #ifndef ALIGN_H
 #include "align.h"
 #endif
 #include "monattk.h"
 #include "monflag.h"
 
 struct permonst {
     const char *mname;          /* full name */
     char mlet;                  /* symbol */
     schar mlevel,               /* base monster level */
         mmove,                  /* move speed */
         ac,                     /* (base) armor class */
         mr;                     /* (base) magic resistance */
     aligntyp maligntyp;         /* basic monster alignment */
     unsigned short geno;        /* creation/geno mask value */
     struct attack mattk[NATTK]; /* attacks matrix */
     unsigned short cwt,         /* weight of corpse */
         cnutrit;                /* its nutritional value */
     uchar msound;               /* noise it makes (6 bits) */
     uchar msize;                /* physical size (3 bits) */
     uchar mresists;             /* resistances */
     uchar mconveys;             /* conveyed by eating */
     unsigned long mflags1,      /* boolean bitflags */
         mflags2;                /* more boolean bitflags */
     unsigned short mflags3;     /* yet more boolean bitflags */
 #ifdef TEXTCOLOR
     uchar mcolor; /* color to use */
 #endif
 };
 
 extern NEARDATA struct permonst mons[]; /* the master list of monster types */
 
 #define VERY_SLOW 3
 #define SLOW_SPEED 9
 #define NORMAL_SPEED 12 /* movement rates */
 #define FAST_SPEED 15
 #define VERY_FAST 24
 
 #define NON_PM PM_PLAYERMON          /* "not a monster" */
 #define LOW_PM (NON_PM + 1)          /* first monster in mons[] */
 #define SPECIAL_PM PM_LONG_WORM_TAIL /* [normal] < ~ < [special] */
 /* mons[SPECIAL_PM] through mons[NUMMONS-1], inclusive, are
    never generated randomly and cannot be polymorphed into */
 
 #endif /* PERMONST_H */