home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume9 / umoria3 / part13 < prev    next >
Encoding:
Internet Message Format  |  1990-05-21  |  58.9 KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v09i068:  umoria3 - single player dungeon simulation (ver. 5.2), Part13/31
  5. Message-ID: <5599@tekred.CNA.TEK.COM>
  6. Date: 16 May 90 19:16:48 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 1361
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: wilson@ernie.Berkeley.EDU (Jim Wilson)
  12. Posting-number: Volume 9, Issue 68
  13. Archive-name: umoria3/Part13
  14. Supersedes: umoria2: Volume 5, Issue 32-37,41-52,87
  15.  
  16.  
  17.  
  18. #! /bin/sh
  19. # This is a shell archive.  Remove anything before this line, then unpack
  20. # it by saving it into a file and typing "sh file".  To overwrite existing
  21. # files, type "sh file -c".  You can also feed this as standard input via
  22. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  23. # will see the following message at the end:
  24. #        "End of archive 13 (of 31)."
  25. # Contents:  atari_st/ERRORS source/monsters.c util/printit.c
  26. # Wrapped by billr@saab on Wed May 16 11:54:24 1990
  27. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  28. if test -f 'atari_st/ERRORS' -a "${1}" != "-c" ; then 
  29.   echo shar: Will not clobber existing file \"'atari_st/ERRORS'\"
  30. else
  31. echo shar: Extracting \"'atari_st/ERRORS'\" \(50 characters\)
  32. sed "s/^X//" >'atari_st/ERRORS' <<'END_OF_FILE'
  33. Xthe makefile is obsolete, and needs to be updated
  34. END_OF_FILE
  35. if test 50 -ne `wc -c <'atari_st/ERRORS'`; then
  36.     echo shar: \"'atari_st/ERRORS'\" unpacked with wrong size!
  37. fi
  38. # end of 'atari_st/ERRORS'
  39. fi
  40. if test -f 'source/monsters.c' -a "${1}" != "-c" ; then 
  41.   echo shar: Will not clobber existing file \"'source/monsters.c'\"
  42. else
  43. echo shar: Extracting \"'source/monsters.c'\" \(40781 characters\)
  44. sed "s/^X//" >'source/monsters.c' <<'END_OF_FILE'
  45. X/* monsters.c: monster definitions
  46. X
  47. X   Copyright (c) 1989 James E. Wilson, Robert A. Koeneke
  48. X
  49. X   This software may be copied and distributed for educational, research, and
  50. X   not for profit purposes provided that this copyright and statement are
  51. X   included in all such copies. */
  52. X
  53. X#include "constant.h"
  54. X#include "config.h"
  55. X#include "types.h"
  56. X
  57. X/* Following are creature arrays and variables            */
  58. X    /* Creatures must be defined here                */
  59. X    /*    See types.h under creature_type for a complete list
  60. X        of all variables for creatures.     Some of the less obvious
  61. X        are explained below.
  62. X
  63. X    Hit points:    #1, #2: where #2 is the range of each roll and
  64. X            #1 is the number of added up rolls to make.
  65. X            Example: a creature with 5 eight-sided hit die
  66. X            is given {5,8}.
  67. X
  68. X        Attack types:
  69. X        1    Normal attack
  70. X        2    Poison Strength
  71. X        3    Confusion attack
  72. X        4    Fear attack
  73. X        5    Fire attack
  74. X        6    Acid attack
  75. X        7    Cold attack
  76. X        8    Lightning attack
  77. X        9    Corrosion attack
  78. X        10    Blindness attack
  79. X        11    Paralysis attack
  80. X        12    Steal Money
  81. X        13    Steal Object
  82. X        14    Poison
  83. X        15    Lose dexterity
  84. X        16    Lose constitution
  85. X        17    Lose intelligence
  86. X        18    Lose wisdom
  87. X        19    Lose experience
  88. X        20    Aggravation
  89. X        21    Disenchants
  90. X        22    Eats food
  91. X        23    Eats light
  92. X        24    Eats charges
  93. X        99    Blank
  94. X
  95. X        Attack descriptions:
  96. X        1    hits you.
  97. X        2    bites you.
  98. X        3    claws you.
  99. X        4    stings you.
  100. X        5    touches you.
  101. X        6    kicks you.
  102. X        7    gazes at you.
  103. X        8    breathes on you.
  104. X        9    spits on you.
  105. X        10    makes a horrible wail.
  106. X        11    embraces you.
  107. X        12    crawls on you.
  108. X        13    releases a cloud of spores.
  109. X        14    begs you for money.
  110. X        15    You've been slimed.
  111. X        16    crushes you.
  112. X        17    tramples you.
  113. X        18    drools on you.
  114. X        19    insults you.
  115. X        99    is repelled.
  116. X
  117. X    Example:  For a creature which bites for 1d6, then stings for
  118. X          2d4 and loss of dex you would use:
  119. X            {1,2,1,6},{15,4,2,4}
  120. X
  121. X        CMOVE flags:
  122. XMovement.    00000001    Move only to attack
  123. X    .    00000002    Move, attack normal
  124. X    .    00000008    20% random movement
  125. X    .    00000010    40% random movement
  126. X    .    00000020    75% random movement
  127. XSpecial +    00010000    Invisible movement
  128. X    +    00020000    Move through door
  129. X    +    00040000    Move through wall
  130. X    +    00080000    Move through creatures
  131. X    +    00100000    Picks up objects
  132. X    +    00200000    Multiply monster
  133. XCarries =    01000000    Carries objects.
  134. X    =    02000000    Carries gold.
  135. X    =    04000000    Has 60% of time.
  136. X    =    08000000    Has 90% of time.
  137. X    =    10000000    1d2 objects/gold.
  138. X    =    20000000    2d2 objects/gold.
  139. X    =    40000000    4d2 objects/gold.
  140. XSpecial ~    80000000    Win-the-Game creature.
  141. X
  142. X        SPELL Flags:
  143. XFrequency    000001      1    These add up to x.  Then
  144. X(1 in x).    000002      2    if RANDINT(X) = 1 the
  145. X    .    000004      4    creature casts a spell.
  146. X    .    000008      8
  147. XSpells    =    000010    Teleport short (blink)
  148. X    =    000020    Teleport long
  149. X    =    000040    Teleport player to monster
  150. X    =    000080    Cause light wound
  151. X    =    000100    Cause serious wound
  152. X    =    000200    Hold person (Paralysis)
  153. X    =    000400    Cause blindness
  154. X    =    000800    Cause confusion
  155. X    =    001000    Cause fear
  156. X    =    002000    Summon monster
  157. X    =    004000    Summon undead
  158. X    =    008000    Slow Person
  159. X    =    010000    Drain Mana
  160. X    =    020000    Not Used
  161. X    =    040000    Not Used
  162. XBreaths +    080000    Breath Lightning
  163. X    +    100000    Breath Gas
  164. X    +    200000    Breath Acid
  165. X    +    400000    Breath Frost
  166. X    +    800000    Breath Fire
  167. X
  168. X        CDEFENSE flags:
  169. X        0001    Hurt by Slay Dragon.
  170. X        0002    Hurt by Slay Animal.
  171. X        0004    Hurt by Slay Evil.
  172. X        0008    Hurt by Slay Undead.
  173. X        0010    Hurt by Frost.
  174. X        0020    Hurt by Fire.
  175. X        0040    Hurt by Poison.
  176. X        0080    Hurt by Acid.
  177. X        0100    Hurt by Light-Wand.
  178. X        0200    Hurt by Stone-to-Mud.
  179. X        0400    Not used.
  180. X        0800    Not used.
  181. X        1000    Cannot be charmed or slept.
  182. X        2000    Can be seen with infra-vision.
  183. X        4000    Max Hit points.
  184. X        8000    Not used.
  185. X
  186. X
  187. X    Sleep (sleep)    :    A measure in turns of how fast creature
  188. X                will notice player (on the average).
  189. X    Area of affect (aaf) :    Max range that creature is able to "notice"
  190. X                the player.
  191. X                                    */
  192. X
  193. X#ifdef MACGAME
  194. Xcreature_type *c_list;
  195. X#else
  196. Xcreature_type c_list[MAX_CREATURES] = {
  197. X{"Filthy Street Urchin"        ,0x0012000AL,0x00000000L,0x2034,    0,  40,
  198. X   4,    1, 11, 'p', {1,4}   , {72,148,0,0}        ,    0},
  199. X{"Blubbering Idiot"        ,0x0012000AL,0x00000000L,0x2030,    0,   0,
  200. X   6,    1, 11, 'p', {1,2}   , {79,0,0,0}        ,    0},
  201. X{"Pitiful-Looking Beggar"   ,0x0012000AL,0x00000000L,0x2030,    0,  40,
  202. X  10,    1, 11, 'p', {1,4}   , {72,0,0,0}        ,    0},
  203. X{"Mangy-Looking Leper"        ,0x0012000AL,0x00000000L,0x2030,    0,  50,
  204. X  10,    1, 11, 'p', {1,1}   , {72,0,0,0}        ,    0},
  205. X{"Squint-Eyed Rogue"        ,0x07120002L,0x00000000L,0x2034,    0,  99,
  206. X  10,    8, 11, 'p', {2,8}   , {5,149,0,0}        ,    0},
  207. X{"Singing, Happy Drunk"        ,0x06120038L,0x00000000L,0x2030,    0,   0,
  208. X  10,    1, 11, 'p', {2,3}   , {72,0,0,0}        ,    0},
  209. X{"Mean-Looking Mercenary"   ,0x0B12000AL,0x00000000L,0x2034,    0, 250,
  210. X  10,  20, 11, 'p', {5,8}   , {9,0,0,0}            ,    0},
  211. X{"Battle-Scarred Veteran"   ,0x0B12000AL,0x00000000L,0x2030,    0, 250,
  212. X  10,  30, 11, 'p', {7,8}   , {15,0,0,0}        ,    0},
  213. X{"Grey Mushroom patch"        ,0x00000001L,0x00000000L,0x10A0,    1,   0,
  214. X   2,    1, 11, ',', {1,2}   , {91,0,0,0}        ,    1},
  215. X{"Giant Yellow Centipede"   ,0x00000002L,0x00000000L,0x0002,    2,  30,
  216. X   8,  12, 11, 'c', {2,6}   , {26,60,0,0}        ,    1},
  217. X{"Giant White Centipede"    ,0x0000000AL,0x00000000L,0x0002,    2,  40,
  218. X   7,  10, 11, 'c', {3,5}   , {25,59,0,0}        ,    1},
  219. X{"White Icky-Thing"        ,0x00000012L,0x00000000L,0x0020,    2,  10,
  220. X  12,    7, 11, 'i', {3,5}   , {63,0,0,0}        ,    1},
  221. X{"Clear Icky-Thing"        ,0x00010012L,0x00000000L,0x0020,    1,  10,
  222. X  12,    6, 11, 'i', {2,5}   , {63,0,0,0}        ,    1},
  223. X{"Giant White Mouse"        ,0x0020000AL,0x00000000L,0x2072,    1,  20,
  224. X   8,    4, 11, 'r', {1,3}   , {25,0,0,0}        ,    1},
  225. X{"Large Brown Snake"        ,0x0000000AL,0x00000000L,0x00B2,    3,  99,
  226. X   4,  35, 10, 'R', {4,6}   , {26,73,0,0}        ,    1},
  227. X{"Large White Snake"        ,0x00000012L,0x00000000L,0x00B2,    2,  99,
  228. X   4,  30, 11, 'R', {3,6}   , {24,0,0,0}        ,    1},
  229. X{"Kobold"            ,0x07020002L,0x00000000L,0x2030,    5,  10,
  230. X  20,  16, 11, 'k', {3,7}   , {5,0,0,0}            ,    1},
  231. X{"White Worm mass"        ,0x00200022L,0x00000000L,0x01B2,    2,  10,
  232. X   7,    1, 10, 'w', {4,4}   , {173,0,0,0}        ,    1},
  233. X{"Floating Eye"            ,0x00000001L,0x0001000DL,0x2100,    1,  10,
  234. X   2,    6, 11, 'e', {3,6}   , {146,0,0,0}        ,    1},
  235. X{"Shrieker Mushroom patch"  ,0x00000001L,0x00000000L,0x10A0,    1,   0,
  236. X   2,    1, 11, ',', {1,1}   , {203,0,0,0}        ,    2},
  237. X{"Blubbering Icky-Thing"    ,0x0B180012L,0x00000000L,0x0020,    8,  10,
  238. X  14,    4, 11, 'i', {5,8}   , {174,210,0,0}        ,    2},
  239. X{"Metallic Green Centipede" ,0x00000012L,0x00000000L,0x0002,    3,  10,
  240. X   5,    4, 12, 'c', {4,4}   , {68,0,0,0}        ,    2},
  241. X{"Novice Warrior"        ,0x07020002L,0x00000000L,0x2030,    6,   5,
  242. X  20,  16, 11, 'p', {9,4}   , {6,0,0,0}            ,    2},
  243. X{"Novice Rogue"            ,0x07020002L,0x00000000L,0x2034,    6,   5,
  244. X  20,  12, 11, 'p', {8,4}   , {5,148,0,0}        ,    2},
  245. X{"Novice Priest"        ,0x07020002L,0x0000108CL,0x2030,    7,  10,
  246. X  20,  10, 11, 'p', {7,4}   , {4,0,0,0}            ,    2},
  247. X{"Novice Mage"            ,0x07020002L,0x0000089CL,0x2030,    7,   5,
  248. X  20,    6, 11, 'p', {6,4}   , {3,0,0,0}            ,    2},
  249. X{"Yellow Mushroom patch"    ,0x00000001L,0x00000000L,0x10A0,    2,   0,
  250. X   2,    1, 11, ',', {1,1}   , {100,0,0,0}        ,    2},
  251. X{"White Jelly"            ,0x00000001L,0x00000000L,0x11A0,   10,  99,
  252. X   2,    1, 12, 'J', {8,8}   , {168,0,0,0}        ,    2},
  253. X{"Giant Green Frog"        ,0x0000000AL,0x00000000L,0x00A2,    6,  30,
  254. X  12,    8, 11, 'f', {2,8}   , {26,0,0,0}        ,    2},
  255. X{"Giant Black Ant"        ,0x0000000AL,0x00000000L,0x0002,    8,  80,
  256. X   8,  20, 11, 'a', {3,6}   , {27,0,0,0}        ,    2},
  257. X{"White Harpy"            ,0x00000012L,0x00000000L,0x2034,    5,  10,
  258. X  16,  17, 11, 'h', {2,5}   , {49,49,25,0}        ,    2},
  259. X{"Blue Yeek"            ,0x07020002L,0x00000000L,0x2030,    4,  10,
  260. X  18,  14, 11, 'y', {2,6}   , {4,0,0,0}            ,    2},
  261. X{"Green Worm mass"        ,0x00200022L,0x00000000L,0x0132,    3,  10,
  262. X   7,    3, 10, 'w', {6,4}   , {140,0,0,0}        ,    2},
  263. X{"Large Black Snake"        ,0x0000000AL,0x00000000L,0x00B2,    9,  75,
  264. X   5,  38, 10, 'R', {4,8}   , {27,74,0,0}        ,    2},
  265. X{"Poltergeist"            ,0x0F15003AL,0x0000001FL,0x110C,    6,  10,
  266. X   8,  15, 13, 'G', {2,5}   , {93,0,0,0}        ,    3},
  267. X{"Metallic Blue Centipede"  ,0x00000012L,0x00000000L,0x0002,    7,  15,
  268. X   6,    6, 12, 'c', {4,5}   , {69,0,0,0}        ,    3},
  269. X{"Giant White Louse"        ,0x00200022L,0x00000000L,0x01F2,    1,  10,
  270. X   6,    5, 12, 'l', {1,1}   , {24,0,0,0}        ,    3},
  271. X{"Black Naga"            ,0x0710000AL,0x00000000L,0x20E4,   20, 120,
  272. X  16,  40, 11, 'n', {6,8}   , {75,0,0,0}        ,    3},
  273. X{"Spotted Mushroom patch"   ,0x00000001L,0x00000000L,0x10A0,    3,   0,
  274. X   2,    1, 11, ',', {1,1}   , {175,0,0,0}        ,    3},
  275. X{"Yellow Jelly"            ,0x00000001L,0x0001000FL,0x11A0,   12,  99,
  276. X   2,    1, 12, 'J', {10,8}  , {169,0,0,0}        ,    3},
  277. X{"Scruffy-Looking Hobbit"   ,0x07020002L,0x00000000L,0x2034,    4,  10,
  278. X  16,    8, 11, 'p', {3,5}   , {3,148,0,0}        ,    3},
  279. X{"Huge Brown Bat"        ,0x00000022L,0x00000000L,0x2162,    4,  40,
  280. X   8,  12, 13, 'b', {2,6}   , {25,0,0,0}        ,    3},
  281. X{"Giant White Ant"        ,0x00000002L,0x00000000L,0x0002,    7,  80,
  282. X   8,  16, 11, 'a', {3,6}   , {27,0,0,0}        ,    3},
  283. X{"Yellow Mold"            ,0x00000001L,0x00000000L,0x10A0,    9,  99,
  284. X   2,  10, 11, 'm', {8,8}   , {3,0,0,0}            ,    3},
  285. X{"Metallic Red Centipede"   ,0x0000000AL,0x00000000L,0x0002,   12,  20,
  286. X   8,    9, 12, 'c', {4,8}   , {69,0,0,0}        ,    3},
  287. X{"Yellow Worm mass"        ,0x00200022L,0x00000000L,0x01B2,    4,  10,
  288. X   7,    4, 10, 'w', {4,8}   , {182,0,0,0}        ,    3},
  289. X{"Large Green Snake"        ,0x0000000AL,0x00000000L,0x00B2,   10,  70,
  290. X   5,  40, 10, 'R', {6,8}   , {27,74,0,0}        ,    3},
  291. X{"Radiation Eye"        ,0x00000001L,0x0001000BL,0x2100,    6,  10,
  292. X   2,    6, 11, 'e', {3,6}   , {88,0,0,0}        ,    3},
  293. X{"Drooling Harpy"        ,0x00000012L,0x00000000L,0x2034,    7,  10,
  294. X  16,  22, 11, 'h', {2,8}   , {49,49,25,79}        ,    3},
  295. X{"Silver Mouse"            ,0x0020000AL,0x00000000L,0x0072,    1,  10,
  296. X   8,    5, 11, 'r', {1,1}   , {212,0,0,0}        ,    4},
  297. X{"Black Mushroom patch"        ,0x00000001L,0x00000000L,0x10A0,    8,   0,
  298. X   2,    1, 11, ',', {8,8}   , {71,0,0,0}        ,    4},
  299. X{"Blue Jelly"            ,0x00000001L,0x00000000L,0x11A0,   14,  99,
  300. X   2,    1, 11, 'J', {12,8}  , {125,0,0,0}        ,    4},
  301. X{"Creeping Copper Coins"    ,0x12000002L,0x00000000L,0x1000,    9,  10,
  302. X   3,  24, 10, '$', {7,8}   , {3,170,0,0}        ,    4},
  303. X{"Giant White Rat"        ,0x0020000AL,0x00000000L,0x2072,    1,  30,
  304. X   8,    7, 11, 'r', {2,2}   , {153,0,0,0}        ,    4},
  305. X{"Giant Black Centipede"    ,0x0000000AL,0x00000000L,0x0002,   11,  30,
  306. X   8,  20, 11, 'c', {5,8}   , {25,59,0,0}        ,    4},
  307. X{"Giant Blue Centipede"        ,0x00000002L,0x00000000L,0x0002,   10,  50,
  308. X   8,  20, 11, 'c', {4,8}   , {26,61,0,0}        ,    4},
  309. X{"Blue Worm mass"        ,0x00200022L,0x00000000L,0x01A2,    5,  10,
  310. X   7,  12, 10, 'w', {5,8}   , {129,0,0,0}        ,    4},
  311. X{"Large Grey Snake"        ,0x0000000AL,0x00000000L,0x00B2,   14,  50,
  312. X   6,  41, 10, 'R', {6,8}   , {28,75,0,0}        ,    4},
  313. X{"Jackal"            ,0x00000012L,0x00000000L,0x2032,    8,  30,
  314. X  12,  16, 11, 'j', {3,8}   , {29,0,0,0}        ,    4},
  315. X{"Green Naga"            ,0x0710000AL,0x00000000L,0x2064,   30, 120,
  316. X  18,  40, 11, 'n', {9,8}   , {75,118,0,0}        ,    5},
  317. X{"Green Glutton Ghost"        ,0x0F150032L,0x0000003FL,0x110C,   15,  10,
  318. X  10,  20, 13, 'G', {3,6}   , {211,0,0,0}        ,    5},
  319. X{"White Mushroom patch"        ,0x00000001L,0x00000000L,0x10A0,    5,   0,
  320. X   2,    1, 11, ',', {1,1}   , {147,0,0,0}        ,    5},
  321. X{"Green Jelly"            ,0x00000001L,0x00000000L,0x1120,   18,  99,
  322. X   2,    1, 12, 'J', {22,8}  , {136,0,0,0}        ,    5},
  323. X{"Skeleton Kobold"        ,0x00020002L,0x00000000L,0x100C,   12,  40,
  324. X  20,  26, 11, 's', {5,8}   , {5,0,0,0}            ,    5},
  325. X{"Silver Jelly"            ,0x00000001L,0x00000000L,0x10A0,   15,  40,
  326. X   2,  25, 11, 'J', {20,8}  , {213,0,0,0}        ,    5},
  327. X{"Giant Black Frog"        ,0x0000000AL,0x00000000L,0x00A2,   12,  40,
  328. X  12,  18, 11, 'f', {4,8}   , {29,0,0,0}        ,    5},
  329. X{"Grey Icky-Thing"        ,0x00000012L,0x00000000L,0x0020,   10,  15,
  330. X  14,  12, 11, 'i', {4,8}   , {66,0,0,0}        ,    5},
  331. X{"Disenchanter Eye"        ,0x00000001L,0x00010009L,0x2100,   20,  10,
  332. X   2,  10, 10, 'e', {7,8}   , {207,0,0,0}        ,    5},
  333. X{"Black Yeek"            ,0x07020002L,0x00000000L,0x2030,    8,  10,
  334. X  18,  16, 11, 'y', {2,8}   , {4,0,0,0}            ,    5},
  335. X{"Red Worm mass"        ,0x00200022L,0x00000000L,0x2192,    6,  10,
  336. X   7,  12, 10, 'w', {5,8}   , {111,0,0,0}        ,    5},
  337. X{"Giant House Fly"        ,0x00000022L,0x00000000L,0x0062,   10,  20,
  338. X  12,  16, 13, 'F', {3,8}   , {25,0,0,0}        ,    5},
  339. X{"Copperhead Snake"        ,0x00000012L,0x00000000L,0x00B2,   15,   1,
  340. X   6,  20, 11, 'R', {4,6}   , {158,0,0,0}        ,    5},
  341. X{"Rot Jelly"            ,0x00000001L,0x00000000L,0x10A0,   15,  99,
  342. X   2,  30, 11, 'J', {20,8}  , {209,0,0,0}        ,    5},
  343. X{"Purple Mushroom patch"    ,0x00000001L,0x00000000L,0x10A0,   12,   0,
  344. X   2,    1, 12, ',', {1,1}   , {183,0,0,0}        ,    6},
  345. X{"Brown Mold"            ,0x00000001L,0x00000000L,0x10A0,   20,  99,
  346. X   2,  12, 11, 'm', {15,8}  , {89,0,0,0}        ,    6},
  347. X{"Giant Brown Bat"        ,0x0000001AL,0x00000000L,0x2162,   10,  30,
  348. X  10,  15, 13, 'b', {3,8}   , {26,0,0,0}        ,    6},
  349. X{"Creeping Silver Coins"    ,0x16000002L,0x00000000L,0x1000,   18,  10,
  350. X   4,  30, 10, '$', {12,8}  , {5,171,0,0}        ,    6},
  351. X{"Orc"                ,0x0B020002L,0x00000000L,0x2034,   16,  30,
  352. X  20,  32, 11, 'o', {9,8}   , {7,0,0,0}            ,    6},
  353. X{"Grey Harpy"            ,0x00000012L,0x00000000L,0x2034,   14,  10,
  354. X  16,  20, 12, 'h', {3,8}   , {50,50,25,0}        ,    6},
  355. X{"Blue Icky-Thing"        ,0x00000012L,0x00000000L,0x0020,   12,  20,
  356. X  14,  14, 11, 'i', {4,8}   , {126,0,0,0}        ,    6},
  357. X{"Rattlesnake"            ,0x00000012L,0x00000000L,0x00B2,   20,   1,
  358. X   6,  24, 11, 'R', {6,7}   , {159,0,0,0}        ,    6},
  359. X{"Bloodshot Eye"        ,0x00000001L,0x00010007L,0x2100,   15,  10,
  360. X   2,    6, 11, 'e', {4,8}   , {143,0,0,0}        ,    7},
  361. X{"Red Naga"            ,0x0710000AL,0x00000000L,0x20E4,   40, 120,
  362. X  20,  40, 11, 'n', {11,8}  , {76,82,0,0}        ,    7},
  363. X{"Red Jelly"            ,0x00000001L,0x00000000L,0x11A0,   26,  99,
  364. X   2,    1, 11, 'J', {26,8}  , {87,0,0,0}        ,    7},
  365. X{"Giant Red Frog"        ,0x0000000AL,0x00000000L,0x00A2,   16,  50,
  366. X  12,  16, 11, 'f', {5,8}   , {83,0,0,0}        ,    7},
  367. X{"Green Icky-Thing"        ,0x00000012L,0x00000000L,0x0020,   18,  20,
  368. X  14,  12, 11, 'i', {5,8}   , {137,0,0,0}        ,    7},
  369. X{"Zombie Kobold"        ,0x00020002L,0x00000000L,0x102C,   14,  30,
  370. X  20,  14, 11, 'z', {6,8}   , {1,1,0,0}            ,    7},
  371. X{"Lost Soul"            ,0x0F15001AL,0x0001002FL,0x110C,   18,  10,
  372. X  12,  10, 11, 'G', {2,8}   , {11,185,0,0}        ,    7},
  373. X{"Greedy Little Gnome"        ,0x0B020002L,0x00000000L,0x2034,   13,  10,
  374. X  18,  14, 11, 'p', {3,8}   , {6,149,0,0}        ,    7},
  375. X{"Giant Green Fly"        ,0x00000022L,0x00000000L,0x0062,   15,  20,
  376. X  12,  14, 12, 'F', {3,8}   , {27,0,0,0}        ,    7},
  377. X{"Brown Yeek"            ,0x07020002L,0x00000000L,0x2030,   11,  10,
  378. X  18,  18, 11, 'y', {3,8}   , {5,0,0,0}            ,    8},
  379. X{"Green Mold"            ,0x00000001L,0x00000000L,0x10A0,   28,  75,
  380. X   2,  14, 11, 'm', {21,8}  , {94,0,0,0}        ,    8},
  381. X{"Skeleton Orc"            ,0x00020002L,0x00000000L,0x100C,   26,  40,
  382. X  20,  36, 11, 's', {10,8}  , {14,0,0,0}        ,    8},
  383. X{"Seedy Looking Human"        ,0x13020002L,0x00000000L,0x2034,   22,  20,
  384. X  20,  26, 11, 'p', {8,8}   , {17,0,0,0}        ,    8},
  385. X{"Red Icky-Thing"        ,0x00000012L,0x00000000L,0x0020,   22,  20,
  386. X  14,  18, 12, 'i', {4,8}   , {64,117,0,0}        ,    8},
  387. X{"Bandit"            ,0x13020002L,0x00000000L,0x2034,   26,  10,
  388. X  20,  24, 11, 'p', {8,8}   , {13,148,0,0}        ,    8},
  389. X{"Yeti"                ,0x00020002L,0x00000000L,0x2024,   30,  10,
  390. X  20,  24, 11, 'Y', {11,8}  , {51,51,27,0}        ,    9},
  391. X{"Bloodshot Icky-Thing"        ,0x00000012L,0x0001000BL,0x0020,   24,  20,
  392. X  14,  18, 11, 'i', {7,8}   , {65,139,0,0}        ,    9},
  393. X{"Giant Grey Rat"        ,0x0020000AL,0x00000000L,0x2072,    2,  20,
  394. X   8,  12, 11, 'r', {2,3}   , {154,0,0,0}        ,    9},
  395. X{"Black Harpy"            ,0x0000000AL,0x00000000L,0x2034,   19,  10,
  396. X  16,  22, 12, 'h', {3,8}   , {50,50,26,0}        ,    9},
  397. X{"Giant Black Bat"        ,0x00000012L,0x00000000L,0x2162,   16,  25,
  398. X  12,  18, 13, 'b', {2,8}   , {29,0,0,0}        ,    9},
  399. X{"Clear Yeek"            ,0x07030002L,0x00000000L,0x0030,   14,  10,
  400. X  18,  24, 11, 'y', {3,6}   , {4,0,0,0}            ,    9},
  401. X{"Orc Shaman"            ,0x0B020002L,0x00008085L,0x2034,   30,  20,
  402. X  20,  15, 11, 'o', {7,8}   , {5,0,0,0}            ,    9},
  403. X{"Giant Red Ant"        ,0x00000002L,0x00000000L,0x0002,   22,  60,
  404. X  12,  34, 11, 'a', {4,8}   , {27,85,0,0}        ,    9},
  405. X{"King Cobra"            ,0x00000012L,0x00000000L,0x00B2,   28,   1,
  406. X   8,  30, 11, 'R', {8,8}   , {144,161,0,0}        ,    9},
  407. X{"Clear Mushroom patch"        ,0x00210001L,0x00000000L,0x10A0,    1,   0,
  408. X   4,    1, 12, ',', {1,1}   , {70,0,0,0}        ,   10},
  409. X{"Giant White Tick"        ,0x0000000AL,0x00000000L,0x0022,   27,  20,
  410. X  12,  40, 10, 't', {15,8}  , {160,0,0,0}        ,   10},
  411. X{"Hairy Mold"            ,0x00000001L,0x00000000L,0x10A0,   32,  70,
  412. X   2,  15, 11, 'm', {15,8}  , {151,0,0,0}        ,   10},
  413. X{"Disenchanter Mold"        ,0x00000001L,0x0001000BL,0x10A0,   40,  70,
  414. X   2,  20, 11, 'm', {16,8}  , {206,0,0,0}        ,   10},
  415. X{"Giant Red Centipede"        ,0x00000002L,0x00000000L,0x0002,   24,  50,
  416. X  12,  26, 12, 'c', {3,8}   , {25,164,0,0}        ,   10},
  417. X{"Creeping Gold Coins"        ,0x1A000002L,0x00000000L,0x1000,   32,  10,
  418. X   5,  36, 10, '$', {18,8}  , {14,172,0,0}        ,   10},
  419. X{"Giant Fruit Fly"        ,0x00200022L,0x00000000L,0x0062,    4,  10,
  420. X   8,  14, 12, 'F', {2,2}   , {25,0,0,0}        ,   10},
  421. X{"Brigand"            ,0x13020002L,0x00000000L,0x2034,   35,  10,
  422. X  20,  32, 11, 'p', {9,8}   , {13,149,0,0}        ,   10},
  423. X{"Orc Zombie"            ,0x00020002L,0x00000000L,0x102C,   30,  25,
  424. X  20,  24, 11, 'z', {11,8}  , {3,3,0,0}            ,   11},
  425. X{"Orc Warrior"            ,0x0B020002L,0x00000000L,0x2034,   34,  25,
  426. X  20,  36, 11, 'o', {11,8}  , {15,0,0,0}        ,   11},
  427. X{"Vorpal Bunny"            ,0x0020000AL,0x00000000L,0x2072,    2,  30,
  428. X   8,  10, 12, 'r', {2,3}   , {28,0,0,0}        ,   11},
  429. X{"Nasty Little Gnome"        ,0x13020002L,0x000020B5L,0x2034,   32,  10,
  430. X  18,  10, 11, 'p', {4,8}   , {4,0,0,0}            ,   11},
  431. X{"Hobgoblin"            ,0x0F020002L,0x00000000L,0x2034,   38,  30,
  432. X  20,  38, 11, 'H', {12,8}  , {9,0,0,0}            ,   11},
  433. X{"Black Mamba"            ,0x00000012L,0x00000000L,0x00B2,   40,   1,
  434. X  10,  32, 12, 'R', {10,8}  , {163,0,0,0}        ,   12},
  435. X{"Grape Jelly"            ,0x00000001L,0x0001000BL,0x11A0,   60,  99,
  436. X   2,    1, 11, 'J', {52,8}  , {186,0,0,0}        ,   12},
  437. X{"Master Yeek"            ,0x07020002L,0x00008018L,0x2030,   28,  10,
  438. X  18,  24, 11, 'y', {5,8}   , {7,0,0,0}            ,   12},
  439. X{"Priest"            ,0x13020002L,0x00000285L,0x2030,   36,  40,
  440. X  20,  22, 11, 'p', {7,8}   , {12,0,0,0}        ,   12},
  441. X{"Giant Clear Ant"        ,0x00010002L,0x00000000L,0x0002,   24,  60,
  442. X  12,  18, 11, 'a', {3,7}   , {27,0,0,0}        ,   12},
  443. X{"Air Spirit"            ,0x00030022L,0x00000000L,0x1000,   40,  20,
  444. X  12,  20, 13, 'E', {5,8}   , {2,0,0,0}            ,   12},
  445. X{"Skeleton Human"        ,0x00020002L,0x00000000L,0x100C,   38,  30,
  446. X  20,  30, 11, 's', {12,8}  , {7,0,0,0}            ,   12},
  447. X{"Human Zombie"            ,0x00020002L,0x00000000L,0x102C,   34,  20,
  448. X  20,  24, 11, 'z', {11,8}  , {3,3,0,0}            ,   12},
  449. X{"Moaning Spirit"        ,0x0F15000AL,0x0001002FL,0x110C,   44,  10,
  450. X  14,  20, 11, 'G', {4,8}   , {99,178,0,0}        ,   12},
  451. X{"Swordsman"            ,0x13020002L,0x00000000L,0x2030,   40,  20,
  452. X  20,  34, 11, 'p', {11,8}  , {18,0,0,0}        ,   12},
  453. X{"Killer Brown Beetle"        ,0x0000000AL,0x00000000L,0x0002,   38,  30,
  454. X  10,  40, 11, 'K', {13,8}  , {41,0,0,0}        ,   13},
  455. X{"Ogre"                ,0x07020002L,0x00000000L,0x2034,   42,  30,
  456. X  20,  32, 11, 'o', {13,8}  , {16,0,0,0}        ,   13},
  457. X{"Giant Red Speckled Frog"  ,0x0000000AL,0x00000000L,0x00A2,   32,  30,
  458. X  12,  20, 11, 'f', {6,8}   , {41,0,0,0}        ,   13},
  459. X{"Magic User"            ,0x13020002L,0x00002413L,0x2030,   35,  10,
  460. X  20,  10, 11, 'p', {7,8}   , {11,0,0,0}        ,   13},
  461. X{"Black Orc"            ,0x0B020002L,0x00000000L,0x2034,   40,  20,
  462. X  20,  36, 11, 'o', {12,8}  , {17,0,0,0}        ,   13},
  463. X{"Giant Long-Eared Bat"        ,0x00000012L,0x00000000L,0x2162,   20,  20,
  464. X  12,  20, 13, 'b', {5,8}   , {27,50,50,0}        ,   13},
  465. X{"Giant Gnat"            ,0x00200022L,0x00000000L,0x0062,    1,  10,
  466. X   8,    4, 13, 'F', {1,2}   , {24,0,0,0}        ,   13},
  467. X{"Killer Green Beetle"        ,0x0000000AL,0x00000000L,0x0002,   46,  30,
  468. X  12,  45, 11, 'K', {16,8}  , {43,0,0,0}        ,   14},
  469. X{"Giant Flea"            ,0x00200022L,0x00000000L,0x0062,    1,  10,
  470. X   8,  25, 12, 'F', {2,2}   , {25,0,0,0}        ,   14},
  471. X{"Giant White Dragon Fly"   ,0x00000012L,0x0040000AL,0x0062,   54,  50,
  472. X  20,  20, 11, 'F', {5,8}   , {122,0,0,0}        ,   14},
  473. X{"Hill Giant"            ,0x07020002L,0x00000000L,0x2034,   52,  50,
  474. X  20,  36, 11, 'P', {16,8}  , {19,0,0,0}        ,   14},
  475. X{"Skeleton Hobgoblin"        ,0x00020002L,0x00000000L,0x100C,   46,  30,
  476. X  20,  34, 11, 's', {13,8}  , {14,0,0,0}        ,   14},
  477. X{"Flesh Golem"            ,0x00000002L,0x00000000L,0x1030,   48,  10,
  478. X  12,  10, 11, 'g', {12,8}  , {5,5,0,0}            ,   14},
  479. X{"White Dragon Bat"        ,0x00000012L,0x00400004L,0x0162,   40,  50,
  480. X  12,  20, 13, 'b', {2,6}   , {121,0,0,0}        ,   14},
  481. X{"Giant Black Louse"        ,0x00200012L,0x00000000L,0x01F2,    1,  10,
  482. X   6,    7, 12, 'l', {1,1}   , {25,0,0,0}        ,   14},
  483. X{"Guardian Naga"        ,0x1710000AL,0x00000000L,0x20E4,   60, 120,
  484. X  20,  50, 11, 'n', {24,8}  , {77,31,0,0}        ,   15},
  485. X{"Giant Grey Bat"        ,0x00000012L,0x00000000L,0x2162,   22,  15,
  486. X  12,  22, 13, 'b', {4,8}   , {29,50,50,0}        ,   15},
  487. X{"Giant Clear Centipede"    ,0x00010002L,0x00000000L,0x0002,   30,  30,
  488. X  12,  30, 11, 'c', {5,8}   , {34,62,0,0}        ,   15},
  489. X{"Giant Yellow Tick"        ,0x0000000AL,0x00000000L,0x0022,   48,  20,
  490. X  12,  48, 10, 't', {20,8}  , {162,0,0,0}        ,   15},
  491. X{"Giant Ebony Ant"        ,0x00200002L,0x00000000L,0x0002,    3,  60,
  492. X  12,  24, 11, 'a', {3,4}   , {33,0,0,0}        ,   15},
  493. X{"Frost Giant"            ,0x07020002L,0x00000000L,0x0024,   54,  50,
  494. X  20,  38, 11, 'P', {17,8}  , {120,0,0,0}        ,   15},
  495. X{"Clay Golem"            ,0x00000002L,0x00000000L,0x1200,   50,  10,
  496. X  12,  20, 11, 'g', {14,8}  , {7,7,0,0}            ,   15},
  497. X{"Huge White Bat"        ,0x00200012L,0x00000000L,0x2162,    3,  40,
  498. X   7,  12, 12, 'b', {3,8}   , {29,0,0,0}        ,   15},
  499. X{"Giant Tan Bat"        ,0x00000012L,0x00000000L,0x2162,   18,  40,
  500. X  12,  18, 12, 'b', {3,8}   , {95,49,49,0}        ,   15},
  501. X{"Violet Mold"            ,0x00000001L,0x00010009L,0x10A0,   50,  70,
  502. X   2,  15, 11, 'm', {17,8}  , {145,0,0,0}        ,   15},
  503. X{"Umber Hulk"            ,0x00020002L,0x00000000L,0x2124,   75,  10,
  504. X  20,  20, 11, 'U', {20,8}  , {92,5,5,36}        ,   16},
  505. X{"Gelatinous Cube"        ,0x2F18000AL,0x00000000L,0x1020,   36,   1,
  506. X  12,  18, 10, 'C', {45,8}  , {115,0,0,0}        ,   16},
  507. X{"Giant Black Rat"        ,0x0020000AL,0x00000000L,0x2072,    3,  20,
  508. X   8,  16, 11, 'r', {3,4}   , {155,0,0,0}        ,   16},
  509. X{"Giant Green Dragon Fly"   ,0x00000012L,0x0010000AL,0x0032,   58,  50,
  510. X  20,  20, 11, 'F', {5,8}   , {156,0,0,0}        ,   16},
  511. X{"Fire Giant"            ,0x07020002L,0x00000000L,0x2014,   62,  50,
  512. X  20,  40, 11, 'P', {20,8}  , {102,0,0,0}        ,   16},
  513. X{"Green Dragon Bat"        ,0x00000012L,0x00100004L,0x2112,   44,  50,
  514. X  12,  22, 13, 'b', {2,7}   , {153,0,0,0}        ,   16},
  515. X{"Quasit"            ,0x1103000AL,0x000010FAL,0x1004,   48,  20,
  516. X  20,  30, 11, 'q', {5,8}   , {176,51,51,0}        ,   16},
  517. X{"Troll"            ,0x0F020002L,0x00000000L,0x2024,   64,  40,
  518. X  20,  40, 11, 'T', {17,8}  , {3,3,29,0}        ,   17},
  519. X{"Water Spirit"            ,0x0000000AL,0x00000000L,0x1020,   58,  40,
  520. X  12,  28, 12, 'E', {8,8}   , {13,0,0,0}        ,   17},
  521. X{"Giant Brown Scorpion"        ,0x0000000AL,0x00000000L,0x0002,   62,  20,
  522. X  12,  44, 11, 'S', {11,8}  , {34,86,0,0}        ,   17},
  523. X{"Earth Spirit"            ,0x0016000AL,0x00000000L,0x1200,   64,  50,
  524. X  10,  40, 11, 'E', {13,8}  , {7,7,0,0}            ,   17},
  525. X{"Fire Spirit"            ,0x0000000AL,0x00000000L,0x3010,   66,  20,
  526. X  16,  30, 12, 'E', {10,8}  , {101,0,0,0}        ,   18},
  527. X{"Uruk-Hai Orc"            ,0x0B020002L,0x00000000L,0x2034,   68,  20,
  528. X  20,  42, 11, 'o', {14,8}  , {18,0,0,0}        ,   18},
  529. X{"Stone Giant"            ,0x07020002L,0x00000000L,0x2204,   80,  50,
  530. X  20,  40, 11, 'P', {22,8}  , {20,0,0,0}        ,   18},
  531. X{"Stone Golem"            ,0x00000002L,0x00000000L,0x1200,  100,  10,
  532. X  12,  75, 10, 'g', {28,8}  , {9,9,0,0}            ,   19},
  533. X{"Grey Ooze"            ,0x07180022L,0x00000000L,0x10A0,   40,   1,
  534. X  15,  10, 11, 'O', {6,8}   , {127,0,0,0}        ,   19},
  535. X{"Disenchanter Ooze"        ,0x07180022L,0x00000000L,0x10B0,   50,   1,
  536. X  15,  15, 11, 'O', {6,8}   , {205,0,0,0}        ,   19},
  537. X{"Giant Spotted Rat"        ,0x0020000AL,0x00000000L,0x2072,    3,  20,
  538. X   8,  20, 11, 'r', {4,3}   , {155,0,0,0}        ,   19},
  539. X{"Mummified Kobold"        ,0x0B020002L,0x00000000L,0x102C,   46,  75,
  540. X  20,  24, 11, 'M', {13,8}  , {5,5,0,0}            ,   19},
  541. X{"Killer Black Beetle"        ,0x0000000AL,0x00000000L,0x0002,   75,  30,
  542. X  12,  46, 11, 'K', {18,8}  , {44,0,0,0}        ,   19},
  543. X{"Red Mold"            ,0x00000001L,0x00000000L,0x3090,   64,  70,
  544. X   2,  16, 11, 'm', {17,8}  , {108,0,0,0}        ,   19},
  545. X{"Quylthulg"            ,0x00010000L,0x00002017L,0x5000,  200,   0,
  546. X  10,    1, 11, 'Q', {4,8}   , {0,0,0,0}            ,   20},
  547. X{"Giant Red Bat"        ,0x00000012L,0x00000000L,0x2162,   40,  20,
  548. X  12,  24, 12, 'b', {5,8}   , {30,51,51,0}        ,   20},
  549. X{"Giant Black Dragon Fly"   ,0x00000012L,0x00200009L,0x0072,   58,  50,
  550. X  20,  22, 11, 'F', {4,8}   , {141,0,0,0}        ,   20},
  551. X{"Cloud Giant"            ,0x07020002L,0x00000000L,0x2034,  125,  50,
  552. X  20,  44, 11, 'P', {24,8}  , {130,0,0,0}        ,   20},
  553. X{"Black Dragon Bat"        ,0x00000012L,0x00200004L,0x2152,   50,  50,
  554. X  12,  24, 13, 'b', {2,8}   , {112,0,0,0}        ,   21},
  555. X{"Blue Dragon Bat"        ,0x00000012L,0x00080004L,0x2052,   54,  50,
  556. X  12,  26, 13, 'b', {3,6}   , {131,0,0,0}        ,   21},
  557. X{"Mummified Orc"        ,0x0B020002L,0x00000000L,0x102C,   56,  75,
  558. X  20,  28, 11, 'M', {14,8}  , {13,13,0,0}        ,   21},
  559. X{"Killer Boring Beetle"        ,0x0000000AL,0x00000000L,0x0002,   70,  30,
  560. X  12,  48, 11, 'K', {18,8}  , {44,0,0,0}        ,   21},
  561. X{"Killer Stag Beetle"        ,0x0000000AL,0x00000000L,0x0002,   80,  30,
  562. X  12,  50, 11, 'K', {20,8}  , {41,10,0,0}        ,   22},
  563. X{"Black Mold"            ,0x00000081L,0x00000000L,0x10A0,   68,  50,
  564. X   2,  18, 11, 'm', {15,8}  , {21,0,0,0}        ,   22},
  565. X{"Iron Golem"            ,0x00000002L,0x00000000L,0x1080,  160,  10,
  566. X  12,  99,  9, 'g', {80,8}  , {10,10,0,0}        ,   22},
  567. X{"Giant Yellow Scorpion"    ,0x0000000AL,0x00000000L,0x0002,   60,  20,
  568. X  12,  38, 11, 'S', {12,8}  , {31,167,0,0}        ,   22},
  569. X{"Green Ooze"            ,0x073A0012L,0x00000000L,0x1030,    6,   1,
  570. X  15,    5, 10, 'O', {4,8}   , {116,0,0,0}        ,   22},
  571. X{"Black Ooze"            ,0x073A0012L,0x0001000BL,0x1030,    7,   1,
  572. X  10,    6,  9, 'O', {6,8}   , {138,0,0,0}        ,   23},
  573. X{"Warrior"            ,0x13020002L,0x00000000L,0x2030,   60,  40,
  574. X  20,  40, 11, 'p', {15,8}  , {18,0,0,0}        ,   23},
  575. X{"Red Dragon Bat"        ,0x00000012L,0x00800004L,0x2152,   60,  50,
  576. X  12,  28, 13, 'b', {3,8}   , {105,0,0,0}        ,   23},
  577. X{"Killer Blue Beetle"        ,0x0000000AL,0x00000000L,0x0002,   85,  30,
  578. X  14,  50, 11, 'K', {20,8}  , {44,0,0,0}        ,   23},
  579. X{"Giant Silver Ant"        ,0x0000000AL,0x00000000L,0x0002,   45,  60,
  580. X  10,  38, 11, 'a', {6,8}   , {114,0,0,0}        ,   23},
  581. X{"Crimson Mold"            ,0x00000001L,0x00000000L,0x10A0,   65,  50,
  582. X   2,  18, 11, 'm', {16,8}  , {2,97,0,0}        ,   23},
  583. X{"Forest Wight"            ,0x0F02000AL,0x0000100FL,0x112C,  140,  30,
  584. X  20,  30, 11, 'W', {12,8}  , {5,5,187,0}        ,   24},
  585. X{"Berzerker"            ,0x13020002L,0x00000000L,0x2030,   65,  10,
  586. X  20,  20, 11, 'p', {15,8}  , {7,7,0,0}            ,   24},
  587. X{"Mummified Human"        ,0x0B020002L,0x00000000L,0x102C,   70,  60,
  588. X  20,  34, 11, 'M', {17,8}  , {13,13,0,0}        ,   24},
  589. X{"Banshee"            ,0x0F15001AL,0x0001002FL,0x110C,   60,  10,
  590. X  20,  24, 12, 'G', {6,8}   , {99,188,0,0}        ,   24},
  591. X{"Giant Troll"            ,0x0F020002L,0x00000000L,0x2024,   85,  50,
  592. X  20,  40, 11, 'T', {19,8}  , {5,5,41,0}        ,   25},
  593. X{"Giant Brown Tick"        ,0x0000000AL,0x00000000L,0x0022,   70,  20,
  594. X  12,  50, 10, 't', {18,8}  , {157,142,0,0}        ,   25},
  595. X{"Killer Red Beetle"        ,0x0000000AL,0x00000000L,0x0002,   85,  30,
  596. X  14,  50, 11, 'K', {20,8}  , {84,0,0,0}        ,   25},
  597. X{"Wooden Mold"            ,0x00000001L,0x00000000L,0x10A0,  100,  50,
  598. X   2,  50, 11, 'm', {25,8}  , {171,0,0,0}        ,   25},
  599. X{"Giant Blue Dragon Fly"    ,0x00000012L,0x00080009L,0x0072,   75,  50,
  600. X  20,  24, 11, 'F', {6,8}   , {29,0,0,0}        ,   25},
  601. X{"Giant Grey Ant Lion"        ,0x0008000AL,0x00000000L,0x0032,   90,  40,
  602. X  10,  40, 11, 'A', {19,8}  , {39,0,0,0}        ,   26},
  603. X{"Disenchanter Bat"        ,0x00000012L,0x00000000L,0x2162,   75,   1,
  604. X  14,  24, 13, 'b', {4,8}   , {204,0,0,0}        ,   26},
  605. X{"Giant Fire Tick"        ,0x0000000AL,0x00000000L,0x2012,   90,  20,
  606. X  14,  54, 11, 't', {16,8}  , {109,0,0,0}        ,   26},
  607. X{"White Wraith"            ,0x0F02000AL,0x0000100CL,0x112C,  165,  10,
  608. X  20,  40, 11, 'W', {15,8}  , {5,5,189,0}        ,   26},
  609. X{"Giant Black Scorpion"        ,0x0000000AL,0x00000000L,0x0002,   85,  20,
  610. X  12,  50, 11, 'S', {13,8}  , {32,167,0,0}        ,   26},
  611. X{"Clear Ooze"            ,0x0719000AL,0x00000000L,0x10B0,   12,   1,
  612. X  10,  14, 11, 'O', {4,8}   , {90,0,0,0}        ,   26},
  613. X{"Killer Fire Beetle"        ,0x0000000AL,0x00000000L,0x2012,   95,  30,
  614. X  14,  45, 11, 'K', {13,8}  , {41,110,0,0}        ,   27},
  615. X{"Vampire"            ,0x17020002L,0x00001209L,0x112C,  175,  10,
  616. X  20,  45, 11, 'V', {20,8}  , {5,5,190,0}        ,   27},
  617. X{"Giant Red Dragon Fly"        ,0x00000012L,0x00800008L,0x2052,   75,  50,
  618. X  20,  24, 11, 'F', {7,8}   , {96,0,0,0}        ,   27},
  619. X{"Shimmering Mold"        ,0x00000081L,0x00000000L,0x10A0,  180,  50,
  620. X   2,  24, 11, 'm', {32,8}  , {135,0,0,0}        ,   27},
  621. X{"Black Knight"            ,0x13020002L,0x0000010FL,0x2034,  140,  10,
  622. X  20,  60, 11, 'p', {25,8}  , {23,0,0,0}        ,   28},
  623. X{"Mage"                ,0x13020002L,0x00002C73L,0x2030,  150,  10,
  624. X  20,  30, 11, 'p', {10,8}  , {14,0,0,0}        ,   28},
  625. X{"Ice Troll"            ,0x0F020002L,0x00000000L,0x0024,  160,  50,
  626. X  20,  46, 11, 'T', {22,8}  , {4,4,123,0}        ,   28},
  627. X{"Giant Purple Worm"        ,0x0000000AL,0x00000000L,0x2032,  400,  30,
  628. X  14,  65, 11, 'w', {65,8}  , {7,113,166,0}        ,   29},
  629. X{"Young Blue Dragon"        ,0x1F00000AL,0x0008100BL,0x2005,  300,  70,
  630. X  20,  50, 11, 'd', {33,8}  , {52,52,29,0}        ,   29},
  631. X{"Young White Dragon"        ,0x1F00000AL,0x0040100BL,0x0025,  275,  70,
  632. X  20,  50, 11, 'd', {32,8}  , {52,52,29,0}        ,   29},
  633. X{"Young Green Dragon"        ,0x1F00000AL,0x0010100BL,0x2005,  290,  70,
  634. X  20,  50, 11, 'd', {32,8}  , {52,52,29,0}        ,   29},
  635. X{"Giant Fire Bat"        ,0x00000012L,0x00000000L,0x2152,   85,  10,
  636. X  14,  30, 12, 'b', {5,8}   , {106,52,52,0}        ,   29},
  637. X{"Giant Glowing Rat"        ,0x0020000AL,0x00000000L,0x2072,    4,  20,
  638. X   8,  24, 11, 'r', {3,3}   , {132,0,0,0}        ,   29},
  639. X    /* Now things are going to get tough.             */
  640. X    /* Some of the creatures have Max hit points, denoted in */
  641. X    /* their CDEFENSE flags as the '4000' bit set         */
  642. X{"Skeleton Troll"        ,0x00020002L,0x00000000L,0x500C,  225,  20,
  643. X  20,  55, 11, 's', {14,8}  , {5,5,41,0}        ,   30},
  644. X{"Giant Lightning Bat"        ,0x00000012L,0x00000000L,0x2042,   80,  10,
  645. X  15,  34, 12, 'b', {8,8}   , {133,53,53,0}        ,   30},
  646. X{"Giant Static Ant"        ,0x0000000AL,0x00000000L,0x0002,   80,  60,
  647. X  10,  40, 11, 'a', {8,8}   , {134,0,0,0}        ,   30},
  648. X{"Grave Wight"            ,0x0F02000AL,0x0000190AL,0x512C,  325,  30,
  649. X  20,  35, 11, 'W', {12,8}  , {6,6,191,0}        ,   30},
  650. X{"Killer Slicer Beetle"        ,0x0000000AL,0x00000000L,0x0002,  200,  30,
  651. X  14,  55, 11, 'K', {22,8}  , {48,0,0,0}        ,   30},
  652. X{"Giant White Ant Lion"        ,0x0008000AL,0x00000000L,0x0022,  175,  40,
  653. X  12,  45, 11, 'A', {20,8}  , {124,0,0,0}        ,   30},
  654. X{"Ghost"            ,0x1715000AL,0x0001002FL,0x510C,  350,  10,
  655. X  20,  30, 12, 'G', {13,8}  , {99,192,184,0}        ,   31},
  656. X{"Giant Black Ant Lion"        ,0x0008000AL,0x00000000L,0x0032,  170,  40,
  657. X  14,  45, 11, 'A', {23,8}  , {39,119,0,0}        ,   31},
  658. X{"Death Watch Beetle"        ,0x0000000AL,0x00000000L,0x0002,  190,  30,
  659. X  16,  60, 11, 'K', {25,8}  , {47,67,0,0}        ,   31},
  660. X{"Ogre Mage"            ,0x0B020002L,0x0000A355L,0x6034,  250,  30,
  661. X  20,  42, 11, 'o', {14,8}  , {19,0,0,0}        ,   31},
  662. X{"Two-Headed Troll"        ,0x0F020002L,0x00000000L,0x6024,  275,  50,
  663. X  20,  48, 11, 'T', {14,8}  , {7,7,29,29}        ,   32},
  664. X{"Invisible Stalker"        ,0x00030022L,0x00000000L,0x1000,  200,  20,
  665. X  20,  46, 13, 'E', {19,8}  , {5,0,0,0}            ,   32},
  666. X{"Giant Hunter Ant"        ,0x00000002L,0x00000000L,0x0002,  150,   1,
  667. X  16,  40, 11, 'a', {12,8}   , {46,0,0,0}        ,   32},
  668. X{"Ninja"            ,0x13020002L,0x00000000L,0x6034,  300,  10,
  669. X  20,  65, 11, 'p', {15,8}  , {152,80,0,0}        ,   32},
  670. X{"Barrow Wight"            ,0x0F02000AL,0x00001308L,0x512C,  375,  10,
  671. X  20,  40, 11, 'W', {13,8}  , {7,7,193,0}        ,   33},
  672. X{"Skeleton 2-Headed Troll"  ,0x00020002L,0x00000000L,0x500C,  325,  20,
  673. X  20,  48, 11, 's', {20,8}  , {8,8,28,28}        ,   33},
  674. X{"Water Elemental"        ,0x0008000AL,0x00000000L,0x1020,  325,  50,
  675. X  12,  36, 11, 'E', {25,8}  , {9,9,0,0}            ,   33},
  676. X{"Fire Elemental"        ,0x0008000AL,0x00000000L,0x3010,  350,  70,
  677. X  16,  40, 10, 'E', {25,8}  , {103,0,0,0}        ,   33},
  678. X{"Lich"                ,0x1F020002L,0x00019F75L,0x510C,  750,  60,
  679. X  20,  50, 11, 'L', {25,8}  , {179,194,214,0}        ,   34},
  680. X{"Master Vampire"        ,0x17020002L,0x00001307L,0x512C,  700,  10,
  681. X  20,  55, 11, 'V', {23,8}  , {5,5,195,0}        ,   34},
  682. X{"Spirit Troll"            ,0x17150002L,0x00000000L,0x510C,  425,  10,
  683. X  20,  40, 11, 'G', {15,8}  , {53,53,29,185}        ,   34},
  684. X{"Giant Red Scorpion"        ,0x0000000AL,0x00000000L,0x0002,  275,  40,
  685. X  12,  50, 12, 'S', {18,8}  , {29,165,0,0}        ,   34},
  686. X{"Earth Elemental"        ,0x001E000AL,0x00000000L,0x1200,  375,  90,
  687. X  10,  60, 10, 'E', {30,8}  , {22,22,0,0}        ,   34},
  688. X{"Young Black Dragon"        ,0x1F00000AL,0x0020100BL,0x6005,  600,  50,
  689. X  20,  55, 11, 'd', {32,8}  , {53,53,29,0}        ,   35},
  690. X{"Young Red Dragon"        ,0x1F00000AL,0x0080100AL,0x6015,  650,  50,
  691. X  20,  60, 11, 'd', {36,8}  , {54,54,37,0}        ,   35},
  692. X{"Necromancer"            ,0x13020002L,0x00005763L,0x6030,  600,  10,
  693. X  20,  40, 11, 'p', {17,8}  , {15,0,0,0}        ,   35},
  694. X{"Mummified Troll"        ,0x0F020002L,0x00000000L,0x502C,  400,  50,
  695. X  20,  38, 11, 'M', {18,8}  , {15,15,0,0}        ,   35},
  696. X{"Giant Red Ant Lion"        ,0x0008000AL,0x00000000L,0x2012,  350,  40,
  697. X  14,  48, 11, 'A', {23,8}  , {107,0,0,0}        ,   35},
  698. X{"Mature White Dragon"        ,0x2F00000AL,0x0040100AL,0x4025, 1000,  70,
  699. X  20,  65, 11, 'd', {48,8}  , {54,54,37,0}        ,   35},
  700. X{"Xorn"                ,0x00160002L,0x00000000L,0x4200,  650,  10,
  701. X  20,  80, 11, 'X', {20,8}  , {5,5,5,0}            ,   36},
  702. X{"Giant Mottled Ant Lion"   ,0x0008000AL,0x00000000L,0x0032,  350,  40,
  703. X  14,  50, 12, 'A', {24,8}  , {38,0,0,0}        ,   36},
  704. X{"Grey Wraith"            ,0x0F02000AL,0x00001308L,0x512C,  700,  10,
  705. X  20,  50, 11, 'W', {23,8}  , {9,9,196,0}        ,   36},
  706. X{"Young Multi-Hued Dragon"  ,0x4F00000AL,0x00F81005L,0x6005, 1250,  50,
  707. X  20,  55, 11, 'd', {40,8}  , {55,55,38,0}        ,   36},
  708. X{"Mature Blue Dragon"        ,0x2F00000AL,0x00081009L,0x6005, 1200,  70,
  709. X  20,  75, 11, 'd', {48,8}  , {54,54,38,0}        ,   36},
  710. X{"Mature Green Dragon"        ,0x2F00000AL,0x0010100AL,0x6005, 1100,  70,
  711. X  20,  70, 11, 'd', {48,8}  , {52,52,29,0}        ,   36},
  712. X{"Iridescent Beetle"        ,0x0000000AL,0x00000000L,0x0002,  850,  30,
  713. X  16,  60, 11, 'K', {32,8}  , {45,10,146,0}        ,   37},
  714. X{"King Vampire"            ,0x17020002L,0x00001307L,0x512C, 1000,  10,
  715. X  20,  65, 11, 'V', {38,8}  , {5,5,198,0}        ,   37},
  716. X{"King Lich"            ,0x1F020002L,0x00019F73L,0x510C, 1400,  50,
  717. X  20,  65, 11, 'L', {52,8}  , {180,197,214,0}        ,   37},
  718. X{"Mature Red Dragon"        ,0x2F00000AL,0x00801808L,0x6015, 1400,  30,
  719. X  20,  80, 11, 'd', {60,8}  , {56,56,39,0}        ,   37},
  720. X{"Mature Black Dragon"        ,0x2F00000AL,0x00201009L,0x6005, 1350,  30,
  721. X  20,  55, 11, 'd', {58,8}  , {54,54,38,0}        ,   37},
  722. X{"Mature Multi-Hued Dragon" ,0x6F00000AL,0x00F81A05L,0x6005, 1650,  50,
  723. X  20,  65, 11, 'd', {80,8}  , {56,56,39,0}        ,   38},
  724. X{"Ancient White Dragon"        ,0x4F000002L,0x00401A09L,0x4025, 1500,  80,
  725. X  20,  80, 12, 'D', {88,8}  , {54,54,37,0}        ,   38},
  726. X{"Emperor Wight"        ,0x1B02000AL,0x00001306L,0x512C, 1600,  10,
  727. X  20,  40, 12, 'W', {48,8}  , {10,10,199,0}        ,   38},
  728. X{"Black Wraith"            ,0x1F02000AL,0x00001307L,0x512C, 1700,  10,
  729. X  20,  55, 11, 'W', {50,8}  , {10,10,200,0}        ,   38},
  730. X{"Nether Wraith"        ,0x1F07000AL,0x00005316L,0x512C, 2100,  10,
  731. X  20,  55, 11, 'W', {58,8}  , {10,10,202,0}        ,   39},
  732. X{"Sorcerer"            ,0x1F020002L,0x0000FF73L,0x6030, 2150,  10,
  733. X  20,  50, 12, 'p', {30,8}  , {16,0,0,0}        ,   39},
  734. X{"Ancient Blue Dragon"        ,0x4F000002L,0x00081A08L,0x6005, 2500,  80,
  735. X  20,  90, 12, 'D', {87,8}  , {55,55,39,0}        ,   39},
  736. X{"Ancient Green Dragon"        ,0x4F000002L,0x00101A09L,0x6005, 2400,  80,
  737. X  20,  85, 12, 'D', {90,8}  , {54,54,38,0}        ,   39},
  738. X{"Ancient Black Dragon"        ,0x4F000002L,0x00201A07L,0x6005, 2500,  70,
  739. X  20,  90, 12, 'D', {90,8}  , {55,55,38,0}        ,   39},
  740. X{"Crystal Ooze"            ,0x073B000AL,0x00000000L,0x10A0,    8,   1,
  741. X  10,  30,  9, 'O', {12,8}  , {128,0,0,0}        ,   40},
  742. X{"Disenchanter Worm"        ,0x00200022L,0x00000000L,0x01B2,   30,  10,
  743. X   7,    5, 10, 'w', {10,8}  , {208,0,0,0}        ,   40},
  744. X{"Rotting Quylthulg"        ,0x00010000L,0x00004014L,0x5000, 1000,   0,
  745. X  20,    1, 12, 'Q', {12,8}  , {0,0,0,0}            ,   40},
  746. X{"Ancient Red Dragon"        ,0x6F000002L,0x00801E06L,0x6015, 2750,  70,
  747. X  20, 100, 12, 'D', {105,8} , {56,56,40,0}        ,   40},
  748. X{"Death Quasit"            ,0x1103000AL,0x000010FAL,0x1004, 1000,   0,
  749. X  20,  80, 13, 'q', {55,8}  , {177,58,58,0}        ,   40},
  750. X{"Emperor Lich"            ,0x2F020002L,0x00019F72L,0x510C,10000,  50,
  751. X  20,  75, 12, 'L', {38,40} , {181,201,214,0}        ,   40},
  752. X{"Ancient Multi-Hued Dragon",0x7F000002L,0x00F89E05L,0x6005,12000,  70,
  753. X  20, 100, 12, 'D', {52,40} , {57,57,42,0}        ,   40},
  754. X    /* Winning creatures should follow here.             */
  755. X    /* Winning creatures are denoted by the 32 bit in CMOVE         */
  756. X    /* Iggy is not a win creature, just a royal pain in the ass.     */
  757. X{"Evil Iggy"            ,0x7F130002L,0x0001D713L,0x5004,18000,   0,
  758. X  30,  80, 12, 'p', {60,40} , {81,150,0,0}        ,   50},
  759. X    /* Here is the only actual win creature.             */
  760. X{"Balrog"            ,0xFF1F0002L,0x0081C743L,0x5004,55000L,   0,
  761. X  40, 125, 13, 'B', {75,40} , {104,78,214,0}        ,  100}
  762. X};
  763. X#endif
  764. X
  765. X/* ERROR: attack #35 is no longer used */
  766. Xstruct m_attack_type monster_attacks[N_MONS_ATTS] = {
  767. X/* 0 */    {0, 0, 0, 0},    {1, 1, 1, 2},    {1, 1, 1, 3},    {1, 1, 1, 4},
  768. X    {1, 1, 1, 5},    {1, 1, 1, 6},    {1, 1, 1, 7},    {1, 1, 1, 8},
  769. X    {1, 1, 1, 9},    {1, 1, 1, 10},    {1, 1, 1, 12},    {1, 1, 2, 2},
  770. X    {1, 1, 2, 3},    {1, 1, 2, 4},    {1, 1, 2, 5},    {1, 1, 2, 6},
  771. X    {1, 1, 2, 8},    {1, 1, 3, 4},    {1, 1, 3, 5},    {1, 1, 3, 6},
  772. X/* 20 */{1, 1, 3, 8},    {1, 1, 4, 3},    {1, 1, 4, 6},    {1, 1, 5, 5},
  773. X    {1, 2, 1, 1},    {1, 2, 1, 2},    {1, 2, 1, 3},    {1, 2, 1, 4},
  774. X    {1, 2, 1, 5},    {1, 2, 1, 6},    {1, 2, 1, 7},    {1, 2, 1, 8},
  775. X    {1, 2, 1, 10},    {1, 2, 2, 3},    {1, 2, 2, 4},    {1, 2, 2, 5},
  776. X    {1, 2, 2, 6},    {1, 2, 2, 8},    {1, 2, 2, 10},    {1, 2, 2, 12},
  777. X/* 40 */{1, 2, 2, 14},    {1, 2, 3, 4},    {1, 2, 3, 12},    {1, 2, 4, 4},
  778. X    {1, 2, 4, 5},    {1, 2, 4, 6},    {1, 2, 4, 8},    {1, 2, 5, 4},
  779. X    {1, 2, 5, 8},    {1, 3, 1, 1},    {1, 3, 1, 2},    {1, 3, 1, 3},
  780. X    {1, 3, 1, 4},    {1, 3, 1, 5},    {1, 3, 1, 8},    {1, 3, 1, 9},
  781. X    {1, 3, 1, 10},    {1, 3, 1, 12},    {1, 3, 3, 3},    {1, 4, 1, 2},
  782. X/* 60 */{1, 4, 1, 3},    {1, 4, 1, 4},    {1, 4, 2, 4},    {1, 5, 1, 2},
  783. X    {1, 5, 1, 3},    {1, 5, 1, 4},    {1, 5, 1, 5},    {1, 10, 5, 6},
  784. X    {1, 12, 1, 1},    {1, 12, 1, 2},    {1, 13, 1, 1},    {1, 13, 1, 3},
  785. X    {1, 14, 0, 0},    {1, 16, 1, 4},    {1, 16, 1, 6},    {1, 16, 1, 8},
  786. X    {1, 16, 1, 10},    {1, 16, 2, 8},    {1, 17, 8, 12},    {1, 18, 0, 0},
  787. X/* 80 */{2, 1, 3, 4},    {2, 1, 4, 6},    {2, 2, 1, 4},    {2, 2, 2, 4},
  788. X    {2, 2, 4, 4},    {2, 4, 1, 4},    {2, 4, 1, 7},    {2, 5, 1, 5},
  789. X    {2, 7, 1, 6},    {3, 1, 1, 4},    {3, 5, 1, 8},    {3, 13, 1, 4},
  790. X    {3, 7, 0, 0},    {4, 1, 1, 1},    {4, 1, 1, 4},    {4, 2, 1, 2},
  791. X    {4, 2, 1, 6},    {4, 5, 0, 0},    {4, 7, 0, 0},    {4, 10, 0, 0},
  792. X/*100 */{4, 13, 1, 6},    {5, 1, 2, 6},    {5, 1, 3, 7},    {5, 1, 4, 6},
  793. X    {5, 1, 10, 12},    {5, 2, 1, 3},    {5, 2, 3, 6},    {5, 2, 3, 12},
  794. X    {5, 5, 4, 4},    {5, 9, 3, 7},    {5, 9, 4, 5},    {5, 12, 1, 6},
  795. X    {6, 2, 1, 3},    {6, 2, 2, 8},    {6, 2, 4, 4},    {6, 5, 1, 10},
  796. X    {6, 5, 2, 3},    {6, 8, 1, 5},    {6, 9, 2, 6},    {6, 9, 3, 6},
  797. X/*120 */{7, 1, 3, 6},    {7, 2, 1, 3},    {7, 2, 1, 6},    {7, 2, 3, 6},
  798. X    {7, 2, 3, 10},    {7, 5, 1, 6},    {7, 5, 2, 3},    {7, 5, 2, 6},
  799. X    {7, 5, 4, 4},    {7, 12, 1, 4},    {8, 1, 3, 8},    {8, 2, 1, 3},
  800. X    {8, 2, 2, 6},    {8, 2, 3, 8},    {8, 2, 5, 5},    {8, 5, 5, 4},
  801. X    {9, 5, 1, 2},    {9, 5, 2, 5},    {9, 5, 2, 6},    {9, 8, 2, 4},
  802. X/*140 */{9, 12, 1, 3},    {10, 2, 1, 6},    {10, 4, 1, 1},    {10, 7, 2, 6},
  803. X    {10, 9, 1, 2},    {11, 1, 1, 2},    {11, 7, 0, 0},    {11, 13, 2, 4},
  804. X    {12, 5, 0, 0},    {13, 5, 0, 0},    {13, 19, 0, 0},    {14, 1, 1, 3},
  805. X    {14, 1, 3, 4},    {14, 2, 1, 3},    {14, 2, 1, 4},    {14, 2, 1, 5},
  806. X    {14, 2, 1, 6},    {14, 2, 1, 10},    {14, 2, 2, 4},    {14, 2, 2, 5},
  807. X/*160 */{14, 2, 2, 6},    {14, 2, 3, 4},    {14, 2, 3, 9},    {14, 2, 4, 4},
  808. X    {14, 4, 1, 2},    {14, 4, 1, 4},    {14, 4, 1, 8},    {14, 4, 2, 5},
  809. X    {14, 5, 1, 2},    {14, 5, 1, 3},    {14, 5, 2, 4},    {14, 5, 2, 6},
  810. X    {14, 5, 3, 5},    {14, 12, 1, 2},    {14, 12, 1, 4},    {14, 13, 2, 4},
  811. X    {15, 2, 1, 6},    {15, 2, 3, 6},    {15, 5, 1, 8},    {15, 5, 2, 8},
  812. X/*180 */{15, 5, 2, 10},    {15, 5, 2, 12},    {15, 12, 1, 3},    {16, 13, 1, 2},
  813. X    {17, 3, 1, 10},    {18, 5, 0, 0},    {19, 5, 5, 8},    {19, 5, 12, 8},
  814. X    {19, 5, 14, 8},    {19, 5, 15, 8},    {19, 5, 18, 8},    {19, 5, 20, 8},
  815. X    {19, 5, 22, 8},    {19, 5, 26, 8},    {19, 5, 30, 8},    {19, 5, 32, 8},
  816. X    {19, 5, 34, 8},    {19, 5, 36, 8},    {19, 5, 38, 8},    {19, 5, 42, 8},
  817. X/*200 */{19, 5, 44, 8},    {19, 5, 46, 8},    {19, 5, 52, 8},    {20, 10, 0, 0},
  818. X    {21, 1, 0, 0},    {21, 5, 0, 0},    {21, 5, 1, 6},    {21, 7, 0, 0},
  819. X    {21, 12, 1, 4},    {22, 5, 2, 3},    {22, 12, 0, 0},    {22, 15, 1, 1},
  820. X/*212 */{23, 1, 1, 1},    {23, 5, 1, 3},    {24, 5, 0, 0}
  821. X};
  822. X
  823. X
  824. Xmonster_type m_list[MAX_MALLOC];
  825. Xint16 m_level[MAX_MONS_LEVEL+1];
  826. X
  827. X/* Blank monster values    */
  828. Xmonster_type blank_monster = {0,0,0,0,0,0,0,FALSE,0,FALSE};
  829. Xint16 mfptr;            /* Cur free monster ptr    */
  830. Xint16 mon_tot_mult;        /* # of repro's of creature    */
  831. END_OF_FILE
  832. if test 40781 -ne `wc -c <'source/monsters.c'`; then
  833.     echo shar: \"'source/monsters.c'\" unpacked with wrong size!
  834. fi
  835. # end of 'source/monsters.c'
  836. fi
  837. if test -f 'util/printit.c' -a "${1}" != "-c" ; then 
  838.   echo shar: Will not clobber existing file \"'util/printit.c'\"
  839. else
  840. echo shar: Extracting \"'util/printit.c'\" \(15429 characters\)
  841. sed "s/^X//" >'util/printit.c' <<'END_OF_FILE'
  842. X#! /bin/sh
  843. X# This is a shell archive, meaning:
  844. X# 1. Remove everything above the #! /bin/sh line.
  845. X# 2. Save the resulting text in a file.
  846. X# 3. Execute the file with /bin/sh (not csh) to create:
  847. X#    Makefile
  848. X#    print_items.c
  849. X#    print_monsters.c
  850. X# This archive created: Wed Mar  2 09:26:44 1988
  851. Xexport PATH; PATH=/bin:/usr/bin:$PATH
  852. Xif test -f 'Makefile'
  853. Xthen
  854. X    echo shar: "will not over-write existing file 'Makefile'"
  855. Xelse
  856. Xcat << \SHAR_EOF > 'Makefile'
  857. XCFLAGS= -c
  858. X
  859. Xall:    print_items print_monsters
  860. X
  861. Xprint_items:    print_items.c treasure1.o
  862. X    cc print_items.c treasture1.o -o print_items
  863. X    print_items > items
  864. X
  865. Xprint_monsters:    print_monsters.c monsters.o
  866. X    cc print_monsters.c treasture1.o -o print_monsters
  867. X    print_monsters > monsters
  868. X
  869. XSHAR_EOF
  870. Xchmod +x 'Makefile'
  871. Xfi
  872. Xif test -f 'print_items.c'
  873. Xthen
  874. X    echo shar: "will not over-write existing file 'print_items.c'"
  875. Xelse
  876. Xcat << \SHAR_EOF > 'print_items.c'
  877. X/* written by Carlton Hommel */
  878. X#include "constants.h"
  879. X#include "types.h"
  880. X
  881. X#define    Strength    0x00000001
  882. X#define    Dexterity    0x00000002
  883. X#define    Constitution    0x00000004
  884. X#define    Intelligence    0x00000008
  885. X#define    Wisdom        0x00000010
  886. X#define    Charisma    0x00000020
  887. X#define    Searching    0x00000040
  888. X#define    Slow_digestion     0x00000080
  889. X#define    Stealth        0x00000100
  890. X#define    Aggravation    0x00000200
  891. X#define    Teleportation    0x00000400
  892. X#define    Regeneration    0x00000800
  893. X#define    Speed        0x00001000
  894. X#define    Slay_Dragon        0x00002000
  895. X#define    Slay_Monster    0x00004000
  896. X#define    Slay_Evil       0x00008000
  897. X#define    Slay_Undead     0x00010000
  898. X#define    Cold_Brand      0x00020000
  899. X#define    Flame_Brand     0x00040000
  900. X#define    Resist_Fire     0x00080000
  901. X#define    Resist_Acid     0x00100000
  902. X#define    Resist_Cold     0x00200000
  903. X#define    Sustain_Stat    0x00400000
  904. X#define    Free_Action     0x00800000
  905. X#define    See_Invisible   0x01000000
  906. X#define    Resist_Lightning 0x02000000
  907. X#define    Feather_Fall    0x04000000
  908. X#define    Blindness    0x08000000
  909. X#define    Timidness    0x10000000
  910. X#define    Tunneling    0x20000000
  911. X#define    Infra_vision    0x40000000
  912. X#define    Cursed        0x80000000
  913. X
  914. Xextern treasure_type object_list[];
  915. Xextern treasure_type inventory_init[];
  916. Xextern treasure_type gold_list[];
  917. Xextern treasure_type trap_lista[];
  918. Xextern treasure_type trap_listb[];
  919. Xmain()
  920. X{
  921. X    int i;
  922. X    treasure_type *t;
  923. X
  924. X    printf("[tval,sub] p1\tLvl   $ lbs\t  Dam [+, +]\t[AC,+]\tflags\tName\n");
  925. X    for (i=0; i<MAX_OBJECTS; i++) {
  926. X    t = &object_list[i];
  927. X    call_it(t);
  928. X    }
  929. X    printf("\n[tval,sub] p1\tLvl   $ lbs\t  Dam [+, +]\t[AC,+]\tflags\tName\n");
  930. X    for (i=0; i<INVEN_INIT_MAX; i++) {
  931. X    t = &inventory_init[i];
  932. X    call_it(t);
  933. X    }
  934. X    printf("\n[tval,sub] p1\tLvl   $ lbs\t  Dam [+, +]\t[AC,+]\tflags\tName\n");
  935. X    for (i=0; i<MAX_GOLD; i++) {
  936. X    t = &gold_list[i];
  937. X    call_it(t);
  938. X    }
  939. X    printf("\n[tval,sub] p1\tLvl   $ lbs\t  Dam [+, +]\t[AC,+]\tflags\tName\n");
  940. X    for (i=0; i<MAX_TRAPB; i++) {
  941. X    t = &trap_listb[i];
  942. X    call_it(t);
  943. X    }
  944. X    printf("\n[tval,sub] p1\tLvl   $ lbs\t  Dam [+, +]\t[AC,+]\tflags\tName\n");
  945. X    for (i=0; i<MAX_TRAPA; i++) {
  946. X    t = &trap_lista[i];
  947. X    call_it(t);
  948. X    }
  949. X}
  950. X
  951. Xcall_it(t)
  952. Xtreasure_type *t;
  953. X{
  954. X    printf("[%2d,%3d] ", t->tval, t->subval);
  955. X
  956. X    if (t->p1)
  957. X     printf("%d\t", t->p1);
  958. X    else printf(" \t");
  959. X
  960. X    printf("%2d %4d %3d\t", t->level, t->cost, t->weight);
  961. X
  962. X    if (strcmp(t->damage, "0d0"))
  963. X    printf("%5s ", t->damage);
  964. X    else printf("     ");
  965. X
  966. X    if (t->tohit!=0 || t->todam!=0)
  967. X     printf("[%d, %d]\t", t->tohit, t->todam);
  968. X    else printf("      \t");
  969. X
  970. X    if (t->ac!=0 || t->toac!=0)
  971. X    printf("{%d, %d}\t",
  972. X        t->ac, t->toac);
  973. X    else printf("      \t");
  974. X
  975. X    printf("'%c' \"%s\"\t",
  976. X    t->tchar, t->name);
  977. X
  978. X    print_flags(t->tval, t->flags);
  979. X
  980. X    printf("\n");
  981. X}
  982. X
  983. Xprint_flags(tval, flags)
  984. Xchar tval;
  985. Xunsigned int flags;
  986. X{
  987. X    int count;
  988. X    unsigned int mask;
  989. X
  990. X    if (flags == 0)
  991. X    return;
  992. X
  993. X    if (tval==80) {
  994. X    printf("<");
  995. X    for (count=0,mask=0x01; count<32; mask <<= 1, count++) {
  996. X        switch (flags & mask) {
  997. X        case 0x00000001: printf("poison(lvl+rnd(10)) ");        break;
  998. X        case 0x00000002: printf("blind(10*lvl+rnd(250)) ");        break;
  999. X        case 0x00000004: printf("fear(lvl+rnd(10) ");        break;
  1000. X        case 0x00000008: printf("confused(lvl+rnd(10) ");        break;
  1001. X        case 0x00000010: printf("hallucinate(25*lvl+rnd(200)+200) ");        break;
  1002. X        case 0x00000020: printf("cure_poison ");        break;
  1003. X        case 0x00000040: printf("cure_blindness ");        break;
  1004. X        case 0x00000080: printf("cure_fear ");        break;
  1005. X        case 0x00000100: printf("cure_confuse ");        break;
  1006. X        case 0x00000200: printf("lose_str ");        break;
  1007. X        case 0x00000400: printf("lose_con ");        break;
  1008. X        case 0x00000800: printf("lose_int ");        break;
  1009. X        case 0x00001000: printf("lose_wis ");        break;
  1010. X        case 0x00002000: printf("lose_dex ");        break;
  1011. X        case 0x00004000: printf("lose_chr ");        break;
  1012. X        case 0x00008000: printf("rest_str ");        break;
  1013. X        case 0x00010000: printf("rest_con ");        break;
  1014. X        case 0x00020000: printf("rest_int ");        break;
  1015. X        case 0x00040000: printf("rest_wis ");        break;
  1016. X        case 0x00080000: printf("rest_dex ");        break;
  1017. X        case 0x00100000: printf("rest_chr ");        break;
  1018. X        case 0x00200000: printf("-hp(rnd(3)) ");        break;
  1019. X        case 0x00400000: printf("-hp(rnd(6)) ");        break;
  1020. X        case 0x00800000: printf("-hp(rnd(12)) ");        break;
  1021. X        case 0x01000000: printf("-hp(rnd(3d6)) ");        break;
  1022. X        case 0x02000000: printf("-hp(rnd(3d12)) ");        break;
  1023. X        case 0x04000000: printf("hp(rnd(4)) ");        break;
  1024. X        case 0x08000000: printf("hp(rnd(8)) ");        break;
  1025. X        case 0x10000000: printf("hp(rnd(2d8))  ");        break;
  1026. X        case 0x20000000: printf("hp(rnd(3d8))  ");        break;
  1027. X        case 0x40000000: printf("major_heal ");        break;
  1028. X        case 0x80000000: printf("??? ");        break;
  1029. X        }
  1030. X    }
  1031. X    printf(">");
  1032. X    }
  1033. X    else
  1034. X    if (tval>=10 && tval<=45) {
  1035. X    printf("<");
  1036. X    for (count=0,mask=0x01; count<32; mask <<= 1, count++) {
  1037. X        switch (flags & mask) {
  1038. X        case Strength           : printf("Strength ");        break;
  1039. X        case Dexterity          : printf("Dexterity ");        break;
  1040. X        case Constitution       : printf("Constitution ");    break;
  1041. X        case Intelligence       : printf("Intelligence ");    break;
  1042. X        case Wisdom             : printf("Wisdom ");        break;
  1043. X        case Charisma           : printf("Charisma ");        break;
  1044. X        case Searching          : printf("Searching ");        break;
  1045. X        case Slow_digestion     : printf("Slow_digestion ");    break;
  1046. X        case Stealth            : printf("Stealth ");        break;
  1047. X        case Aggravation        : printf("Aggravation ");    break;
  1048. X        case Teleportation      : printf("Teleportation ");    break;
  1049. X        case Regeneration       : printf("Regeneration ");    break;
  1050. X        case Speed              : printf("Speed ");        break;
  1051. X        case Slay_Dragon        : printf("Slay_Dragon ");    break;
  1052. X        case Slay_Monster       : printf("Slay_Monster ");    break;
  1053. X        case Slay_Evil          : printf("Slay_Evil ");        break;
  1054. X        case Slay_Undead        : printf("Slay_Undead ");    break;
  1055. X        case Cold_Brand         : printf("Cold_Brand ");        break;
  1056. X        case Flame_Brand        : printf("Flame_Brand ");    break;
  1057. X        case Resist_Fire        : printf("Resist_Fire ");    break;
  1058. X        case Resist_Acid        : printf("Resist_Acid ");    break;
  1059. X        case Resist_Cold        : printf("Resist_Cold ");    break;
  1060. X        case Sustain_Stat       : printf("Sustain_Stat ");    break;
  1061. X        case Free_Action        : printf("Free_Action ");    break;
  1062. X        case See_Invisible      : printf("See_Invisible ");    break;
  1063. X        case Resist_Lightning   : printf("Resist_Lightning ");    break;
  1064. X        case Feather_Fall       : printf("Feather_Fall ");    break;
  1065. X        case Blindness          : printf("Blindness ");        break;
  1066. X        case Timidness          : printf("Timidness ");        break;
  1067. X        case Tunneling          : printf("Tunneling ");        break;
  1068. X        case Infra_vision       : printf("Infra_vision ");    break;
  1069. X        case Cursed             : printf("Cursed ");        break;
  1070. X        }
  1071. X    }
  1072. X    printf(">");
  1073. X    }
  1074. X}
  1075. XSHAR_EOF
  1076. Xfi
  1077. Xif test -f 'print_monsters.c'
  1078. Xthen
  1079. X    echo shar: "will not over-write existing file 'print_monsters.c'"
  1080. Xelse
  1081. Xcat << \SHAR_EOF > 'print_monsters.c'
  1082. X/* written by Carlton Hommel */
  1083. X#include "constants.h"
  1084. X#include "types.h"
  1085. X
  1086. X#define    M_A_ONLY    0x00000001
  1087. X#define    M_NORMAL    0x00000002
  1088. X#define    M_RANDOM_20    0x00000008
  1089. X#define    M_RANDOM_40    0x00000010
  1090. X#define    M_RANDOM_75    0x00000020
  1091. X#define    M_INVIS        0x00010000
  1092. X#define    M_DOOR        0x00020000
  1093. X#define    M_WALL        0x00040000
  1094. X#define    M_CREATURE    0x00080000
  1095. X#define    M_SCAVANGE    0x00100000
  1096. X#define    M_MULTIPLY    0x00200000
  1097. X#define    M_CARRY_TREAS    0x01000000
  1098. X#define    M_CARRY_GOLD    0x02000000
  1099. X#define    M_TREAS_60    0x04000000
  1100. X#define    M_TREAS_90    0x08000000
  1101. X#define    M_LITTLE_TREAS    0x10000000
  1102. X#define    M_SOME_TREAS    0x20000000
  1103. X#define M_MUCH_TREAS    0x40000000
  1104. X#define M_TOTAL_WINNER    0x80000000
  1105. X
  1106. X#define    S_1        0x00000001
  1107. X#define    S_2        0x00000002
  1108. X#define    S_4        0x00000004
  1109. X#define    S_8        0x00000008
  1110. X#define    S_BLINK        0x00000010
  1111. X#define    S_TELEPORT    0x00000020
  1112. X#define    S_TELE_TO    0x00000040
  1113. X#define    S_CAUSE_LIGHT    0x00000080
  1114. X#define    S_CAUSE_HEAVY    0x00000100
  1115. X#define    S_HOLD        0x00000200
  1116. X#define    S_BLIND        0x00000400
  1117. X#define    S_CONFUSION    0x00000800
  1118. X#define    S_FEAR        0x00001000
  1119. X#define    S_SUMMON_MONST    0x00002000
  1120. X#define    S_SUMMON_UNDEAD    0x00004000
  1121. X#define    S_SLOW        0x00008000
  1122. X#define    S_DRAIN_MANA    0x00010000
  1123. X#define    S_B_LIGHTNING    0x00080000
  1124. X#define    S_B_GAS        0x00100000
  1125. X#define    S_B_ACID    0x00200000
  1126. X#define    S_B_COLD    0x00400000
  1127. X#define    S_B_FIRE    0x00800000
  1128. X
  1129. X#define    C_SLAY_DRAG    0x00000001
  1130. X#define    C_SLAY_MONS    0x00000002
  1131. X#define    C_SLAY_EVIL    0x00000004
  1132. X#define    C_SLAY_UNDEAD    0x00000008
  1133. X#define    C_COLD        0x00000010
  1134. X#define    C_FIRE        0x00000020
  1135. X#define    C_POISON    0x00000040
  1136. X#define    C_ACID        0x00000080
  1137. X#define    C_LIGHT        0x00000100
  1138. X#define    C_ROCKY        0x00000200
  1139. X#define    C_NOSLEEP    0x00001000
  1140. X#define    C_INFRASEE    0x00002000
  1141. X#define    C_MAXHPS    0x00004000
  1142. X
  1143. Xextern creature_type c_list[];
  1144. X
  1145. Xmain()
  1146. X{
  1147. X    int i;
  1148. X    creature_type *c;
  1149. X
  1150. X    printf("     Lvl(Ep) [HD, AC]\tspd aaf/{sleep}\t\t    Name\tDamage(special) <Defense> {Moves} /* Spells */\n");
  1151. X    for (i=0; i<MAX_CREATURES; i++) {
  1152. X      c = &c_list[i];
  1153. X      call_it(c);
  1154. X    }
  1155. X}
  1156. X
  1157. Xcall_it(c)
  1158. Xcreature_type *c;
  1159. X{
  1160. X    /* Line 1 */
  1161. X    printf("'%c' ", c->cchar);
  1162. X    printf("%2d", c->level);
  1163. X    printf("(%4d) ", c->mexp);
  1164. X    printf("[%4s, %2d]\t", c->hd, c->ac);
  1165. X
  1166. X    printf("%2d ", c->speed);
  1167. X    printf("%2d/", c->aaf);
  1168. X    printf("{%d}\t", c->sleep);
  1169. X
  1170. X    printf("%20.20s\t", c->name);
  1171. X    print_damage(c->damage);
  1172. X    printf("\t");
  1173. X
  1174. X    print_flags_cdefense(c->cdefense);
  1175. X    printf(" ");
  1176. X    print_flags_cmove(c->cmove);
  1177. X    printf(" ");
  1178. X    print_flags_spells(c->spells);
  1179. X
  1180. X    printf("\n");
  1181. X
  1182. X}
  1183. X
  1184. Xprint_damage(attstr)
  1185. Xchar *attstr;
  1186. X{
  1187. X  int xpos, attype, adesc;
  1188. X  vtype attx;
  1189. X  dtype damstr;
  1190. X  char *string, *index();
  1191. X
  1192. X/*    printf("\"%s\" ", c->damage); */
  1193. X
  1194. X    while (strlen(attstr) > 0) {
  1195. X    if (string = index(attstr, '|'))
  1196. X         xpos = strlen(attstr) - strlen(string);
  1197. X    else xpos = -1;
  1198. X    if (xpos >= 0) {
  1199. X        (void) strncpy(attx, attstr, xpos);
  1200. X        attx[xpos] = '\0';
  1201. X        (void) strcpy(attstr, &attstr[xpos+1]);
  1202. X    }
  1203. X    else {
  1204. X        (void) strcpy(attx, attstr);
  1205. X        attstr[0] = '\0';
  1206. X    }
  1207. X    
  1208. X    (void) sscanf(attx, "%d %d %s", &attype, &adesc, damstr);
  1209. X    switch(attype) {
  1210. X    case 1:  printf("%s ", damstr);        break;
  1211. X    case 2:  printf("%s(-Str) ", damstr);    break;
  1212. X    case 3:  printf("%s(Conf) ", damstr);    break;
  1213. X    case 4:  printf("%s(Fear) ", damstr);    break;
  1214. X    case 5:  printf("%s(Fire) ", damstr);    break;
  1215. X    case 6:  printf("%s(Acid) ", damstr);    break;
  1216. X    case 7:  printf("%s(Cold) ", damstr);    break;
  1217. X    case 8:  printf("%s(Zap) ", damstr);    break;
  1218. X    case 9:  printf("%s(Acid) ", damstr);    break;
  1219. X    case 10: printf("%s(Blind) ", damstr);    break;
  1220. X    case 11: printf("%s(Paral) ", damstr);    break;
  1221. X    case 12: printf("%s(-Money) ", damstr);    break;
  1222. X    case 13: printf("%s(-Object) ", damstr);break;
  1223. X    case 14: printf("%s(Poison) ", damstr);    break;
  1224. X    case 15: printf("%s(-Dex) ", damstr);    break;
  1225. X    case 16: printf("%s(-Con ) ", damstr);    break;
  1226. X    case 17: printf("%s(-Int ) ", damstr);    break;
  1227. X    case 18: printf("%s(-Wis) ", damstr);    break;
  1228. X    case 19: printf("%s(-Exp) ", damstr);    break;
  1229. X    case 20: printf("%s(Aggr) ", damstr);    break;
  1230. X    case 21: printf("%s(-Magic) ", damstr);    break;
  1231. X    case 22: printf("%s(-Food) ", damstr);    break;
  1232. X    case 23: printf("%s(-Light) ", damstr);    break;
  1233. X    case 24: printf("%s(-Charges) ", damstr);break;
  1234. X    default:
  1235. X    case 99: printf("%s(Blank) ", damstr);    break;
  1236. X    }
  1237. X
  1238. X    }
  1239. X}
  1240. X
  1241. Xprint_flags_spells(spells)
  1242. Xunsigned int spells;
  1243. X{
  1244. X    int count;
  1245. X    unsigned int mask;
  1246. X
  1247. X    if (spells == 0)
  1248. X    return;
  1249. X
  1250. X    printf("/*");
  1251. X    for (count=0,mask=0x01; count<32; mask <<= 1, count++) {
  1252. X    switch (spells & mask) {
  1253. X    case S_1:        printf("S_1 ");    break;
  1254. X    case S_2:        printf("S_2 ");    break;
  1255. X    case S_4:        printf("S_4 ");    break;
  1256. X    case S_8:        printf("S_8 ");    break;
  1257. X    case S_BLINK:        printf("S_BLINK ");    break;
  1258. X    case S_TELEPORT:    printf("S_TELEPORT ");    break;
  1259. X    case S_TELE_TO:        printf("S_TELE_TO ");    break;
  1260. X    case S_CAUSE_LIGHT:    printf("S_CAUSE_LIGHT ");    break;
  1261. X    case S_CAUSE_HEAVY:    printf("S_CAUSE_HEAVY ");    break;
  1262. X    case S_HOLD:        printf("S_HOLD ");    break;
  1263. X    case S_BLIND:        printf("S_BLIND ");    break;
  1264. X    case S_CONFUSION:    printf("S_CONFUSION ");    break;
  1265. X    case S_FEAR:        printf("S_FEAR ");    break;
  1266. X    case S_SUMMON_MONST:    printf("S_SUMMON_MONST ");    break;
  1267. X    case S_SUMMON_UNDEAD:    printf("S_SUMMON_UNDEAD ");    break;
  1268. X    case S_SLOW:        printf("S_SLOW ");    break;
  1269. X    case S_DRAIN_MANA:    printf("S_DRAIN_MANA ");    break;
  1270. X    case S_B_LIGHTNING:    printf("S_B_LIGHTNING ");    break;
  1271. X    case S_B_GAS:        printf("S_B_GAS ");    break;
  1272. X    case S_B_ACID:        printf("S_B_ACID ");    break;
  1273. X    case S_B_COLD:        printf("S_B_COLD ");    break;
  1274. X    case S_B_FIRE:        printf("S_B_FIRE ");    break;
  1275. X    }
  1276. X    }
  1277. X    printf("*/");
  1278. X}
  1279. X
  1280. Xprint_flags_cmove(cmove)
  1281. Xunsigned int cmove;
  1282. X{
  1283. X    int count;
  1284. X    unsigned int mask;
  1285. X
  1286. X    if (cmove == 0)
  1287. X    return;
  1288. X
  1289. X    printf("<");
  1290. X    for (count=0,mask=0x01; count<32; mask <<= 1, count++) {
  1291. X    switch (cmove & mask) {
  1292. X    case M_A_ONLY:        printf("M_A_ONLY ");    break;
  1293. X    case M_NORMAL:        /*printf("M_NORMAL ");*/    break;
  1294. X    case M_RANDOM_20:    printf("M_20 ");    break;
  1295. X    case M_RANDOM_40:    printf("M_40 ");    break;
  1296. X    case M_RANDOM_75:    printf("M_75 ");    break;
  1297. X    case M_INVIS:        printf("M_INVIS ");    break;
  1298. X    case M_DOOR:        printf("M_DOOR ");    break;
  1299. X    case M_WALL:        printf("M_WALL ");    break;
  1300. X    case M_CREATURE:    printf("M_GHOSTLY ");    break;
  1301. X    case M_SCAVANGE:    printf("M_SCAVANGE ");    break;
  1302. X    case M_MULTIPLY:    printf("M_MULTIPLY ");    break;
  1303. X    case M_CARRY_TREAS:    printf("M_TREAS ");    break;
  1304. X    case M_CARRY_GOLD:    printf("M_GOLD ");    break;
  1305. X    case M_TREAS_60:    printf("M_T_60 ");    break;
  1306. X    case M_TREAS_90:    printf("M_T_90 ");    break;
  1307. X    case M_LITTLE_TREAS:    printf("M_T_1D2 ");    break;
  1308. X    case M_SOME_TREAS:    printf("M_T_2D2 ");    break;
  1309. X    case M_MUCH_TREAS:    printf("M_T_4D2 ");    break;
  1310. X    case M_TOTAL_WINNER:    printf("M_WINNER ");    break;
  1311. X    }
  1312. X    }
  1313. X    printf(">");
  1314. X}
  1315. X
  1316. Xprint_flags_cdefense(cdefense)
  1317. Xunsigned int cdefense;
  1318. X{
  1319. X    int count;
  1320. X    unsigned int mask;
  1321. X
  1322. X    if (cdefense == 0)
  1323. X    return;
  1324. X
  1325. X    printf("{");
  1326. X    for (count=0,mask=0x01; count<32; mask <<= 1, count++) {
  1327. X    switch (cdefense & mask) {
  1328. X    case C_SLAY_DRAG:    printf("DRAGON ");    break;
  1329. X    case C_SLAY_MONS:    printf("MONSTER ");    break;
  1330. X    case C_SLAY_EVIL:    printf("EVIL ");    break;
  1331. X    case C_SLAY_UNDEAD:    printf("UNDEAD ");    break;
  1332. X    case C_COLD:        printf("C_COLD ");    break;
  1333. X    case C_FIRE:        printf("C_FIRE ");    break;
  1334. X    case C_POISON:        printf("C_POISON ");    break;
  1335. X    case C_ACID:        printf("C_ACID ");    break;
  1336. X    case C_LIGHT:        printf("C_LIGHT ");    break;
  1337. X    case C_ROCKY:        printf("C_ROCKY ");    break;
  1338. X    case C_NOSLEEP:        printf("C_NOSLEEP ");    break;
  1339. X    case C_INFRASEE:    printf("C_INFRASEE ");    break;
  1340. X    case C_MAXHPS:        printf("C_MAXHPS ");    break;
  1341. X    }
  1342. X    }
  1343. X    printf("}");
  1344. X}
  1345. XSHAR_EOF
  1346. Xfi
  1347. Xexit 0
  1348. X#    End of shell archive
  1349. END_OF_FILE
  1350. if test 15429 -ne `wc -c <'util/printit.c'`; then
  1351.     echo shar: \"'util/printit.c'\" unpacked with wrong size!
  1352. fi
  1353. # end of 'util/printit.c'
  1354. fi
  1355. echo shar: End of archive 13 \(of 31\).
  1356. cp /dev/null ark13isdone
  1357. MISSING=""
  1358. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ; do
  1359.     if test ! -f ark${I}isdone ; then
  1360.     MISSING="${MISSING} ${I}"
  1361.     fi
  1362. done
  1363. if test "${MISSING}" = "" ; then
  1364.     echo You have unpacked all 31 archives.
  1365.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1366. else
  1367.     echo You still need to unpack the following archives:
  1368.     echo "        " ${MISSING}
  1369. fi
  1370. ##  End of shell archive.
  1371. exit 0
  1372.