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