view urogue/monsdata.c @ 310:827441d05b3e

Advanced Rogue family: fix some potential buffer overflows. Some code for determining the score file location assumed that PATH_MAX would be less than 1024, which cannot be guaranteed. Advanced Rogue 5 and 7, and XRogue, have had the buffers for the file name enlarged. UltraRogue never called the functions, so the code has been deleted instead.
author John "Elwin" Edwards
date Mon, 03 May 2021 19:05:37 -0400
parents c495a4f288c6
children
line wrap: on
line source

/*
    monsdata.c - monster data initializer
   
    UltraRogue: The Ultimate Adventure in the Dungeons of Doom
    Copyright (C) 1985, 1986, 1992, 1993, 1995 Herb Chong
    All rights reserved.

    Based on "Advanced Rogue"
    Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka
    All rights reserved.

    Based on "Rogue: Exploring the Dungeons of Doom"
    Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
    All rights reserved.

    See the file LICENSE.TXT for full copyright and licensing information.
*/

#include "rogue.h"

#define HPT(x) x

/* {"Name",
        CARRY_PROB, NORMAL, WANDER, SYMBOL, INTELLIGENCE,
        {ATTRIBUTE_FLAGS},
        CREATURE_SUMMONED, NUMBER_SUMMONED,
        ADDED_EXPERIENCE_PER_HIT_POINT,
        {str,   exp_pts, exp_level, armor_class, hit_points,
        "damage"}
},
*/

struct monster monsters[] =
{
{"the player",
        0,  FALSE,  FALSE,  '\0',   "",
        {0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
        0, 0,
        0,
        {10,    0,  0,  0,  HPT(""), ""}
},
{"bat",
        0,  TRUE,   FALSE,  'B',    "2-4",
        {ISMEAN, CANFLY, ISHUH, CANDISEASE, ISFLOCK, ISSMALL},
        0, 0,
        0,
        {10,    5,  2,  1,  HPT("1d4"), "1d2"}
},
{"xvart",
        0,  TRUE,   TRUE,   'x',    "8-12",
        {ISMEAN, ISSWARM, ISSMALL, CANWIELD},
        0, 0,
        1,
        {8, 5,  1,  7,  HPT("1d4"), "1d4+1"}
},
{"giant rat",
        0,  TRUE,   TRUE,   'R',    "2-4",
        {ISMEAN, CANDISEASE, ISFLOCK, ISSMALL},
        0, 0,
        1,
        {10,    7,  1,  7,  HPT("1d4"), "1d3"}
},
{"jackal",
        0,  TRUE,   TRUE,   'J',    "2-5",
        {ISMEAN, ISSMALL},
        0, 0,
        1,
        {8, 5,  1,  7,  HPT("1d4"), "1d2"}
},
{"snake",
        0,  TRUE,   FALSE,   'S',    "2-5",
        {ISMEAN, ISSMALL},
        0, 0,
        1,
        {8, 5,  1,  5,  HPT("1d4"), "1d3"}
},
{"kobold",
        0,  TRUE,   TRUE,   'K',    "8-8",
        {ISMEAN, CANSHOOT, CANWIELD, ISSWARM, ISSMALL},
        0, 0,
        1,
        {9, 5,  1,  7,  HPT("1d4"), "1d4"}
},
{"vilstrak",
        5,  TRUE,   FALSE,  'V',    "5-8",
        {ISMEAN, CANINWALL},
        0, 0,
        1,
        {10,    7,  1,  2,  HPT("1d6"), "1d4+1/1d4+1"}
},
{"gnome",
        10, TRUE,   TRUE,   'G',    "11-12",
        {CANSHOOT, CANWIELD, ISSWARM, ISSMALL, MEDFRIENDLY},
        0, 0,
        1,
        {10,    8,  1,  5,  HPT("1d6"), "1d6"}
},
{"halfling",
        10, TRUE,   TRUE,   'H',    "11-12",
        {CANSHOOT, CANWIELD, ISSWARM, ISSMALL, HIGHFRIENDLY},
        0, 0,
        1,
        {8, 9,  1,  4,  HPT("1d6"), "1d6"}
},
{"dwarf",
        15, TRUE,   TRUE,   'D',    "11-12",
        {CANSHOOT, CANWIELD, ISSMALL, ISSWARM, MEDFRIENDLY},
        0, 0,
        1,
        {14,    10, 1,  4,  HPT("1d8"), "1d8"}
},
{"orc",
        15, TRUE,   TRUE,   'O',    "8-8",
        {ISMEAN, CANSHOOT, CANWIELD, ISSWARM},
        0, 0,
        1,
        {12,    10, 1,  6,  HPT("1d8"), "1d8"}
},
{"larva",
        0,  TRUE,   TRUE,   'l',    "5-8",
        {ISMEAN, ISFLOCK},
        0, 0,
        1,
        {6, 10, 1,  7,  HPT("1d8"), "1d4+1"}
},
{"skeleton",
        0,  TRUE,   TRUE,   's',    "0-0",
        {ISMEAN, ISSWARM, ISUNDEAD},
        0, 0,
        1,
        {6, 14, 1,  7,  HPT("1d8"), "1d6"}
},
{"carrion crawler",
        0,  TRUE,   TRUE,   'c',    "2-4",
        {ISMEAN, CANPARALYZE, ISLARGE},
        0, 0,
        1,
        {8, 20, 1,  7,  HPT("1d8+1"), "1d2"}
},
{"manes",
        0,  TRUE,   TRUE,   'M',    "2-4",
        {ISMEAN, MAGICHIT, ISUNDEAD, ISSMALL},
        0, 0,
        1,
        {10,    18, 1,  7,  HPT("1d8"), "1d2/1d2/1d4"}
},
{"elf",
        50, TRUE,   TRUE,   'E',    "13-20",
        {CANSHOOT, CANWIELD, CANBARGAIN, ISSWARM, HIGHFRIENDLY},
        0, 0,
        2,
        {12,    20, 1,  5,  HPT("1d8+1"), "1d10"}
},
{"hobgoblin",
        0,  TRUE,   TRUE,   'H',    "8-10",
        {ISMEAN, CANSHOOT, CANWIELD, ISSWARM},
        0, 0,
        2,
        {14,    20, 1,  5,  HPT("1d8+1"), "1d8"}
},
{"wild dog",
        0,  TRUE,   TRUE,   'w',    "2-5",
        {ISMEAN, ISFAST, ISSMALL, ISFLOCK},
        0, 0,
        2,
        {10,    20, 1,  7,  HPT("1d8+1"), "1d4"}
},
{"baboon",
        0,  TRUE,   TRUE,   'b',    "4-7",
        {ISMEAN, ISSMALL, ISSWARM},
        0, 0,
        2,
        {10,    20, 1,  7,  HPT("1d8+1"), "1d4"}
},
{"fire beetle",
        0,  TRUE,   TRUE,   'B',    "0-0",
        {ISMEAN, HASFIRE, ISFLOCK, ISSMALL},
        0, 0,
        2,
        {10,    20, 1,  4,  HPT("1d8+2"), "2d4"}
},
{"badger",
        0,  TRUE,   TRUE,   'k',    "4-6",
        {CANSURPRISE, ISSMALL},
        0, 0,
        3,
        {10,    30, 2,  4,  HPT("1d8+2"), "2d2/1d3"}
},
{"giant ant",
        0,  TRUE,   TRUE,   'A',    "1-1",
        {ISMEAN, CANPOISON, ISSMALL, ISSWARM},
        0, 0,
        3,
        {10,    40, 2,  3,  HPT("2d8"), "1d6"}
},
{"war dog",
        0,  TRUE,   TRUE,   'D',    "3-5",
        {ISMEAN, ISFAST},
        0, 0,
        3,
        {10,    35, 2,  6,  HPT("2d8+2"), "2d4"}
},
{"zombie",
        0,  TRUE,   TRUE,   'Z',    "0-0",
        {ISMEAN, ISUNDEAD, ISFLOCK},
        0, 0,
        2,
        {10,    20, 2,  8,  HPT("2d8"), "1d8"}
},
{"wuccubi",
        0,  TRUE,   TRUE,   'w',    "0-0",
        {ISMEAN},
        0, 0,
        2,
        {10,    20, 2,  8,  HPT("2d8"), "1d4/1d10"}
},
{"aarakocra",
        5,  TRUE,   TRUE,   'a',    "8-12",
        {CANFLY, CANWIELD, ISFLOCK, LOWFRIENDLY},
        0, 0,
        2,
        {11,    28, 2,  7,  "1d8+2", "1d3/1d3"}
},
{"gnoll",
        0,  TRUE,   TRUE,   'g',    "7-11",
        {ISMEAN, CANWIELD, CANSHOOT, ISLARGE, ISSWARM},
        0, 0,
        2,
        {10,    28, 2,  5,  HPT("2d8"), "2d4"}
},
{"warthog",
        0,  TRUE,   TRUE,   'w',    "3-5",
        {ISMEAN},
        0, 0,
        3,
        {14,    35, 2,  7,  HPT("3d8"), "2d8/2d8"}
},
{"black bear",
        0,  TRUE,   FALSE,  'U',    "5-8",
        {CANHUG},
        0, 0,
        3,
        {10,    30, 3,  7,  HPT("2d8+3"), "2d3"}
},
{"ear seeker",
        0,  TRUE,   TRUE,   'e',    "0-0",
        {ISMEAN, CANINFEST, ISSMALL},
        0, 0,
        0,
        {10,    0,  1,  9,  HPT("1d1"), "0d0"}
},
{"floating eye",
        0,  TRUE,   TRUE,   'E',    "0-0",
        {CANHUH, ISSMALL},
        0, 0,
        1,
        {7, 30, 1,  9,  HPT("1d4"), "0d0"}
},
{"brownie",
        0,  TRUE,   TRUE,   'B',    "12-15",
        {LOWCAST, CANSHOOT, CANWIELD, CANSURPRISE, STEALGOLD, CANBARGAIN, ISSMALL, ISFLOCK, HIGHFRIENDLY},
        0, 0,
        0,
        {6, 31, 10, 3,  HPT("1d4"), "1d3"}
},
{"shrieker",
        0,  TRUE,   FALSE,  'S',    "0-0",
        {CANSHRIEK, NOMOVE, ISFLOCK},
        0, 0,
        1,
        {10,    5,  3,  7,  HPT("3d8"), "0d0"}
},
{"gas spore",
        0,  TRUE,   FALSE,  'g',    "0-0",
        {CANSPORE, NOMOVE, ISLARGE},
        0, 0,
        0,
        {8, 33, 2,  9,  HPT("1d1"), "0d0"}
},
{"hyena",
        0,  TRUE,   TRUE,   'h',    "3-5",
        {ISMEAN},
        0, 0,
        3,
        {10,    35, 2,  7,  HPT("3d8"), "2d4"}
},
{"mind maggot",
        0,  TRUE,   TRUE,   'm',    "1-1",
        {ISMEAN, NOMOVE, DRAINBRAIN, ISFLOCK, CANSURPRISE, ISSMALL},
        0, 0,
        3,
        {10,    40, 4,  8,  HPT("1d8+1"), "1d3"}
},
{"giant beetle",
        0,  TRUE,   FALSE,  'b',    "0-0",
        {ISFLOCK},
        0, 0,
        4,
        {10,    40, 3,  4,  HPT("2d8"), "4d4"}
},
{"bombadier beetle",
        0,  TRUE,   FALSE,  'B',    "0-0",
        {CANBACID, ISFLOCK},
        0, 0,
        4,
        {10,    40, 2,  4,  HPT("2d8+2"), "2d6"}
},
{"stirge",
        0,  TRUE,   TRUE,   's',    "1-1",
        {ISMEAN, CANFLY, CANDRAW, ISSMALL},
        0, 0,
        2,
        {10,    36, 4,  8,  HPT("1d8+1"), "1d3"}
},
{"wild camel",
        0,  TRUE,   TRUE,   'w',    "3-7",
        {ISMEAN, CANTRAMPLE, ISLARGE, ISFLOCK},
        0, 0,
        3,
        {12,    35, 2,  7,  HPT("3d8"), "1d4"}
},
{"wolf",
        0,  TRUE,   TRUE,   'W',    "3-7",
        {ISMEAN, ISLARGE, ISSWARM, ISFAST},
        0, 0,
        3,
        {12,    35, 2,  7,  HPT("2d8+2"), "1d4+1"}
},
{"troglodyte",
        5,  TRUE,   TRUE,   'T',    "5-7",
        {ISMEAN, CANSMELL, CANSHOOT, CANWIELD, ISSWARM},
        0, 0,
        2,
        {10,    36, 2,  5,  HPT("2d8"), "1d3/1d3/2d5"}
},
{"killer frog",
        0,  TRUE,   FALSE,  'f',    "2-4",
        {ISMEAN},
        0, 0,
        4,
        {10,    40, 3,  6,  HPT("3d8"), "2d3/1d4"}
},
{"axe beak",
        0,  TRUE,   FALSE,  'a',    "2-4",
        {ISMEAN, ISLARGE},
        0, 0,
        4,
        {10,    40, 3,  6,  HPT("3d8"), "2d3/2d4"}
},
{"spinning tick",  
        0,  TRUE,   TRUE,   't',    "2-6",
        {ISMEAN, CANFRIGHTEN, ISSMALL, ISFAST, ISFLOCK},
        0, 0,
        5,
        {10,    50, 2,  3,  HPT("2d8+2"), "1d2/1d2/1d4"}
},
{"giant centipede",
        0,  TRUE,   TRUE,   'c',    "1-2",
        {ISMEAN, CANPOISON, ISLARGE, ISFLOCK},
        0, 0,
        1,
        {6, 40, 2,  9,  HPT("2d2"), "2d3"}
},
{"pegasus",
        0,  TRUE,   TRUE,   'p',    "9-12",
        {CANFLY, ISFAST, ISLARGE, LOWFRIENDLY},
        0, 0,
        4,
        {15,    50, 3,  6,  HPT("4d8"), "1d3/1d8/1d8"}
},
{"lemure",
        0,  TRUE,   FALSE,  'L',    "2-4",
        {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, ISFLOCK},
        0, 0,
        3,
        {10,    65, 3,  7,  HPT("3d8"), "1d3"}
},
{"zemure",
        0,  TRUE,   FALSE,  'z',    "2-4",
        {ISMEAN, ISREGEN, MAGICHIT, ISUNDEAD, ISFLOCK},
        0, 0,
        3,
        {10,    65, 4,  7,  HPT("3d8"), "1d4"}
},
{"giant beaver",
        0,  TRUE,   TRUE,   'B',    "6-9",
        {ISMEAN, CANSWIM, ISSWARM},
        0, 0,
        4,
        {10,    60, 1,  6,  HPT("4d8"), "4d4"}
},
{"crocodile",
        0,  TRUE,   TRUE,   'c',    "2-5",
        {ISMEAN, CANSWIM, CANSURPRISE, ISFLOCK, ISLARGE},
        0, 0,
        4,
        {15,    60, 3,  5,  HPT("3d8"), "1d3/2d4"}
},
{"hipogriff",
        0,  TRUE,   TRUE,   'h',    "3-6",
        {CANFLY, ISMEAN},
        0, 0,
        4,
        {12,    60, 3,  5,  HPT("3d8+3"), "1d6/1d6/1d10"}
},
{"giant goat",
        0,  TRUE,   TRUE,   'G',    "3-5",
        {ISMEAN, ISFAST, ISLARGE},
        0, 0,
        4,
        {10,    85, 3,  7,  HPT("3d8+1"), "2d8"}
},
{"wererat",
        20, TRUE,   TRUE,   'r',    "11-12",
        {ISMEAN, CANSUMMON, MAGICHIT, ISFLOCK},
        "giant rat", 4,
        4,
        {10,    90, 3,  6,  HPT("3d8+1"), "1d8"}
},
{"ulodyte",
        0,  TRUE,   TRUE,   'u',    "5-8",
        {ISLARGE},
        0, 0,
        3,
        {10,    80, 3,  6,  HPT("3d8"), "1d3/1d3"}
},
{"brown bear",
        0,  TRUE,   TRUE,   'U',    "5-8",
        {CANHUG, ISLARGE},
        0, 0,
        3,
        {10,    80, 3,  6,  HPT("4d8+5"), "2d6/1d8"}
},
{"ghoul",
        0,  TRUE,   TRUE,   'g',    "5-7",
        {ISMEAN, CANPARALYZE, ISUNDEAD, ISFLOCK},
        0, 0,
        2,
        {10,    65, 2,  6,  HPT("2d8"), "1d3/1d3/1d6"}
},
{"giant hyena",
        0,  TRUE,   TRUE,   'H',    "3-5",
        {ISMEAN, ISLARGE},
        0, 0,
        5,
        {10,    90, 2,  7,  HPT("3d8"), "3d4"}
},
{"huorn",
        0,  TRUE,   TRUE,   'h',    "6-10",
        {CANBBURN, ISSHADOW, CANHUG},
        0, 0,
        3,
        {18,    60, 3,  7,  HPT("5d6"), "3d3"}
},
{"piercer",
        0,  TRUE,   FALSE,  'P',    "0-0",
        {NOMOVE, CANSURPRISE, ISSWARM},
        0, 0,
        4,
        {10,    60, 3,  3,  HPT("4d8"), "4d6"}
},
{"ape",
        0,  TRUE,   FALSE,  'A',    "4-6",
        {CANHUG},
        0, 0,
        1,
        {10,    50, 3,  6,  HPT("4d8+1"), "2d3"}
},
{"homonculous",
        0,  TRUE,   TRUE,   'H',    "9-15",
        {CANFLY, ISSMALL, LOWFRIENDLY},
        0, 0,
        2,
        {10,    81, 3,  6,  HPT("2d8"), "1d3"}
},
{"leprechaun",
        0,  TRUE,   FALSE,  'L',    "15-16",
        {ISMEAN, CARRYGOLD, STEALGOLD, CANBARGAIN, MEDFRIENDLY},
        0, 0,
        1,
        {10,    80, 8,  -6, HPT("4d8+1"), "1d1"}
},
{"ogre",
        50, TRUE,   TRUE,   'o',    "5-7",
        {ISMEAN, ISGREED, ISLARGE, ISFLOCK},
        0, 0,
        5,
        {18,    90, 4,  5,  HPT("4d8+1"), "2d6"}
},
{"bull",
        0,  TRUE,   TRUE,   'B',    "3-5",
        {ISMEAN, CANTRAMPLE, ISFLOCK, ISLARGE},
        0, 0,
        4,
        {14,    85, 2,  7,  HPT("4d8"), "1d6"}
},
{"wild boar",
        0,  TRUE,   TRUE,   'w',    "3-5",
        {ISMEAN, ISFLOCK},
        0, 0,
        4,
        {15,    85, 3,  7,  HPT("3d8+3"), "3d4"}
},
{"centaur",
        15, TRUE,   TRUE,   'C',    "5-10",
        {CANSHOOT, CANWIELD, ISFLOCK, ISLARGE, LOWFRIENDLY},
        0, 0,
        4,
        {10,    85, 4,  4,  HPT("4d8"), "1d6/1d6"}
},
{"pseudo dragon",
        10, TRUE,   FALSE,  'p',    "15-16",
        {ISMEAN, ISGREED},
        0, 0,
        9,
        {10,    100,    3,  -1, HPT("3d9"), "2d3/1d6"}
},
{"very young dragon",
        10, TRUE,   FALSE,  'd',    "15-16",
        {ISMEAN, CANBRANDOM, ISGREED},
        0, 0,
        9,
        {10,    100,    3,  -1, HPT("3d9"), "1d8/1d8/3d10"}
},
{"batarang",
        20, TRUE,   TRUE,   'B',    "4-6",
        {ISMEAN, CANFRIGHTEN, CANFLY, CANSUMMON, ISFLOCK, ISSMALL},
        "bat", 4,
        5,
        {10,    100,    3,  1,  HPT("3d8"), "1d4/1d4"}
},
{"carnivorous ape",
        5,  TRUE,   FALSE,  'A',    "7-10",
        {CANHUG, ISMEAN, ISLARGE},
        0, 0,
        4,
        {12,    120,    4,  6,  HPT("5d8"), "2d4"}
},
{"pixie",
        0,  TRUE,   TRUE,   'p',    "12-15",
        {LOWCAST, CANSHOOT, CANWIELD, ISINVIS, ISSMALL, ISFLOCK, LOWFRIENDLY},
        0, 0,
        1,
        {6, 105,    3,  3,  HPT("1d4"), "1d2"}
},
{"mountain lion",
        0,  TRUE,   TRUE,   'L',    "3-5",
        {ISMEAN, ISFAST},
        0, 0,
        6,
        {12,    110,    3,  6,  HPT("3d8+1"), "1d3/1d3/1d6"}
},
{"bugbear",
        5,  TRUE,   TRUE,   'U',    "5-8",
        {ISMEAN, CANSHOOT, CANWIELD, CANSURPRISE, ISFLOCK, ISLARGE},
        "black bear", 2,
        6,
        {16,    135,    3,  5,  HPT("3d8+1"), "2d4"}
},
{"giant lizard",
        0,  TRUE,   TRUE,   'G',    "2-4",
        {ISFAST, ISLARGE},
        0, 0,
        4,
        {13,    125,    4,  5,  HPT("3d8+1"), "1d8"}
},
{"harpy",
        0,  TRUE,   TRUE,   'H',    "6-9",
        {CANFLY, CANWIELD},
        0, 0,
        3,
        {10,    145,    4,  7,  HPT("3d8"), "1d3/1d3/1d6"}
},
{"iguanadon",
        0,  TRUE,   TRUE,   'i',    "0-0",
        {ISMEAN, ISLARGE, ISFLOCK},
        0, 0,
        6,
        {12,    150,    4,  4,  HPT("6d8"), "1d3/1d3/2d4"}
},
{"leopard",
        0,  TRUE,   TRUE,   'L',    "3-5",
        {ISMEAN, ISFAST, CANSURPRISE},
        0, 0,
        4,
        {10,    150,    4,  6,  HPT("3d8+2"), "1d3/1d3/1d6"}
},
{"nymph",
        100,    TRUE,   FALSE,  'N',    "15-16",
        {STEALMAGIC, MEDCAST, LOWFRIENDLY},
        0, 0,
        3,
        {10,    350,    8,  -5, HPT("3d8"), "0d0"}
},
{"giant ram",
        0,  TRUE,   TRUE,   'R',    "3-5",
        {ISFLOCK, CANSUMMON, ISFAST},
        "giant goat", 1,
        4,
        {10,    285,    3,  6,  HPT("4d8"), "2d6"}
},
{"rot grub",
        0,  TRUE,   TRUE,   'r',    "0-0",
        {ISMEAN, CANINFEST, ISSWARM, ISSMALL, ISSLOW},
        0, 0,
        0,
        {10,    0,  1,  9,  HPT("1d1"), "0d0"}
},
{"triffid",
        0,  TRUE,   FALSE,  'T',    "12-18",
        {ISMEAN, CANHOLD, ISSLOW, CANBBURN, CANPOISON},
        "huorn", 1,
        4,
        {10,    135,    10, 7,  HPT("2d8"), "1d6"}
},
{"violet fungi",
        0,  TRUE,   FALSE,  'F',    "0-0",
        {ISMEAN, CANHOLD, NOMOVE, CANROT, CANINFEST, CANPOISON},
        0, 0,
        4,
        {10,    135,    3,  7,  HPT("3d8"), "5d1"}
},
{"giant tick",
        0,  TRUE,   TRUE,   't',    "0-0",
        {ISMEAN, CANDRAW, CANDISEASE, ISSMALL},
        0, 0,
        2,
        {10,    105,    3,  3,  HPT("3d8"), "1d4"}
},
{"giant eagle",
        0,  TRUE,   TRUE,   'e',    "0-0",
        {ISMEAN, CANFLY, CANSPEAK, ISFLOCK, MEDFRIENDLY},
        0, 0,
        4,
        {10,    150,    3,  7,  HPT("4d8"), "1d6/1d6/2d6"}
},
{"peryton",
        0,  TRUE,   TRUE,   'P',    "0-0",
        {ISMEAN, CANFLY, CANSPEAK, ISFLOCK},
        0, 0,
        4,
        {10,    150,    3,  7,  HPT("4d8"), "4d4"}
},
{"gelatinous cube",
        90, TRUE,   TRUE,   'c',    "0-0",
        {ISSLOW, ISMEAN, ISSCAVENGE, CANPARALYZE, ISLARGE},
        0, 0,
        4,
        {10,    150,    4,  8,  HPT("4d8"), "2d4"}
},
{"giant owl",
        0,  TRUE,   TRUE,   'O',    "0-0",
        {ISMEAN, CANFLY},
        0, 0,
        4,
        {10,    150,    4,  6,  HPT("4d8"), "2d4/2d4/1d4+1"}
},
{"giant skunk",
        0,  TRUE,   TRUE,   's',    "3-5",
        {CANSTINK, ISFLEE},
        0, 0,
        5,
        {10,    165,    4,  7,  HPT("5d8"), "1d6"}
},
{"blink dog",
        0,  TRUE,   TRUE,   'B',    "8-10",
        {ISMEAN, CANBLINK, ISFLOCK, HIGHFRIENDLY},
        0, 0,
        5,
        {10,    170,    4,  5,  HPT("4d8"), "1d6"}
},
{"rust monster",
        0,  TRUE,   TRUE,   'R',    "1-1",
        {ISMEAN, CANRUST},
        0, 0,
        4,
        {10,    185,    5,  2,  HPT("3d8"), "0d0/0d0"}
},
{"ghast",
        0,  TRUE,   TRUE,   'G',    "11-12",
        {CANPARALYZE, CANSTINK, ISMEAN, ISUNDEAD},
        0, 0,
        4,
        {10,    190,    4,  4,  HPT("4d8"), "1d4/1d4/1d8"}
},
{"blindheim",
        0,  TRUE,   FALSE,  'b',    "1",
        {ISMEAN, CANBLIND},
        0, 0,
        4,
        {8, 200,    2,  1,  HPT("4d8+2"), "1d8"}
},
{"jaguar",
        0,  TRUE,   TRUE,   'j',    "3-5",
        {ISMEAN, CANSURPRISE, ISLARGE},
        0, 0,
        5,
        {12,    205,    2,  7,  HPT("4d8+1"), "2d3/2d5"}
},
{"dryad",
        100,    TRUE,   FALSE,  'D',    "15-16",
        {STEALMAGIC, LOWFRIENDLY},
        0, 0,
        3,
        {8, 325,    8,  -2, HPT("2d8"), "1d1"}
},
{"anhkheg",
        5,  TRUE,   FALSE,  'a',    "2-4",
        {ISMEAN,CANSURPRISE, ISLARGE},
        0, 0,
        2,
        {10,    300,    3,  2,  HPT("1d6+2"), "3d6"}
},
{"shadow",
        0,  TRUE,   TRUE,   's',    "5-7",
        {ISSHADOW, ISMEAN, CANCHILL, ISUNDEAD, ISFLOCK},
        0, 0,
        4,
        {10,    255,    3,  7,  HPT("3d8+3"), "1d6"}
},
{"gargoyle",
        5,  TRUE,   TRUE,   'g',    "5-7",
        {ISMEAN, MAGICHIT, ISFLOCK},
        0, 0,
        5,
        {10,    165,    4,  5,  HPT("4d8+4"), "1d3/1d3/1d6/1d4"}
},
{"su-monster",
        10, TRUE,   TRUE,   's',    "8-10",
        {ISMEAN},
        0, 0,
        6,
        {10,    225,    5,  6,  HPT("5d8+5"), "4d4/2d4"}
},
{"gray ooze",
        50, TRUE,   FALSE,  'o',    "1-1",
        {ISMEAN, NOMOVE, CANRUST, ISSCAVENGE, BOLTDIVIDE, BLOWDIVIDE, NOFIRE, NOCOLD},
        0, 0,
        5,
        {10,    200,    3,  8,  HPT("3d8+3"), "2d8"}
},
{"psuedo-dragon",
        0,  TRUE,   TRUE,   'P',    "8-12",
        {CANSURPRISE, CANSEE, CANFLY, CANPOISON, LOWFRIENDLY},
        0, 0,
        2,
        {10,    200,    3,  2,  HPT("2d8"), "1d3"}
},
{"lava child",
        0,  TRUE,   TRUE,   'l',    "8-12",
        {NOMETAL, NOFIRE, LOWFRIENDLY},
        0, 0,
        5,
        {11,    205,    4,  4,  HPT("5d8"), "1d6/1d6/2d6"}
},
{"hell hound",
        0,  TRUE,   TRUE,   'h',    "5-8",
        {ISMEAN, NOFIRE, CANBFIRE, CANSURPRISE, CANSEE},
        0, 0,
        8,
        {10,    250,    4,  4,  HPT("5d8+4"), "1d10"}
},
{"pech",
        60, TRUE,   FALSE,  'p',    "8-14",
        {CANINWALL, LOWFRIENDLY},
        0, 0,
        4,
        {10,    240,    4,  3,  HPT("4d8"), "1d6"}
},
{"winter wolf",
        0,  TRUE,   TRUE,   'w',    "8-12",
        {ISMEAN, ISFAST, CANBICE, NOCOLD, ISFLOCK},
        "wolf", 6,
        5,
        {10,    245,    4,  5,  HPT("6d8"), "2d4"}
},
{"sylph",
        100,    TRUE,   FALSE,  's',    "15-16",
        {STEALMAGIC, LOWFRIENDLY},
        0, 0,
        3,
        {8, 325,    8,  -2, HPT("2d8"), "1d1"}
},
{"lion",
        0,  TRUE,   TRUE,   'L',    "3-5",
        {ISMEAN, ISLARGE},
        0, 0,
        6,
        {12,    300,    4,  6,  HPT("5d8+2"), "1d4/1d4/1d10"}
},
{"undine",
        30, TRUE,   TRUE,   'u',    "12-18",
        {ISMEAN, MAGICHIT, NOBOLT, NOCOLD, CANSUMMON, CANSEE, CANSWIM, ISFAST},
        "crocodile", 3,
        10,
        {10,    200,    9,  7,  HPT("7d8+3"), "1d6/1d6/1d6/1d4"}
},
{"ochre jelly",
        0,  TRUE,   FALSE,  'O',    "1-1",
        {ISMEAN, ISSLOW, BOLTDIVIDE, CANROT},
        "gelatinous cube", 2,
        10,
        {10,    250,    4,  8,  HPT("6d8"), "3d4"}
},
{"phoenix",
        5,  TRUE,   FALSE,  'X',    "5-7",
        {NOFIRE, NOBOLT, CANSPEAK, CANBFIRE, ISLARGE, MEDFRIENDLY},
        0, 0,
        8,
        {10,    200,    4,  2,  HPT("4d8"), "1d4/1d8"}
},
{"owlbear",
        5,  TRUE,   TRUE,   'U',    "5-7",
        {ISMEAN, CANHUG, CANSUMMON, ISLARGE},
        "giant owl", 2,
        12,
        {10,    225,    5,  5,  HPT("5d8+2"), "1d6/1d6/2d6"}
},
{"phycomid",
        3,  TRUE,   FALSE,  'P',    "0-0",
        {CANPOISON, CANINFEST, CANBACID},
        0, 0,