Changeset 823

Show
Ignore:
Timestamp:
03/29/08 14:31:12 (6 months ago)
Author:
takkaria
Message:

Renumber the flag constants to start at RF0_. I've played with this version for a while and haven't noticed anything untoward. (Kenneth Boyd)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/attack.c

    r791 r823  
    211211 
    212212        /* Slay Animal */ 
    213         if ((f1 & TR1_SLAY_ANIMAL) && (r_ptr->flags[2] & RF3_ANIMAL)) 
     213        if ((f1 & TR1_SLAY_ANIMAL) && (r_ptr->flags[2] & RF2_ANIMAL)) 
    214214        { 
    215215                if (m_ptr->ml) 
    216                         l_ptr->flags[2] |= (RF3_ANIMAL); 
     216                        l_ptr->flags[2] |= (RF2_ANIMAL); 
    217217 
    218218                if (mult < 2) mult = 2; 
     
    220220 
    221221        /* Slay Evil */ 
    222         if ((f1 & TR1_SLAY_EVIL) && (r_ptr->flags[2] & RF3_EVIL)) 
     222        if ((f1 & TR1_SLAY_EVIL) && (r_ptr->flags[2] & RF2_EVIL)) 
    223223        { 
    224224                if (m_ptr->ml) 
    225                         l_ptr->flags[2] |= (RF3_EVIL); 
     225                        l_ptr->flags[2] |= (RF2_EVIL); 
    226226 
    227227                if (mult < 2) mult = 2; 
     
    229229 
    230230        /* Slay Undead */ 
    231         if ((f1 & TR1_SLAY_UNDEAD) && (r_ptr->flags[2] & RF3_UNDEAD)) 
     231        if ((f1 & TR1_SLAY_UNDEAD) && (r_ptr->flags[2] & RF2_UNDEAD)) 
    232232        { 
    233233                if (m_ptr->ml) 
    234                         l_ptr->flags[2] |= (RF3_UNDEAD); 
     234                        l_ptr->flags[2] |= (RF2_UNDEAD); 
    235235 
    236236                if (mult < 3) mult = 3; 
     
    238238 
    239239        /* Slay Demon */ 
    240         if ((f1 & TR1_SLAY_DEMON) && (r_ptr->flags[2] & RF3_DEMON)) 
     240        if ((f1 & TR1_SLAY_DEMON) && (r_ptr->flags[2] & RF2_DEMON)) 
    241241        { 
    242242                if (m_ptr->ml) 
    243                         l_ptr->flags[2] |= (RF3_DEMON); 
     243                        l_ptr->flags[2] |= (RF2_DEMON); 
    244244 
    245245                if (mult < 3) mult = 3; 
     
    247247 
    248248        /* Slay Orc */ 
    249         if ((f1 & TR1_SLAY_ORC) && (r_ptr->flags[2] & RF3_ORC)) 
     249        if ((f1 & TR1_SLAY_ORC) && (r_ptr->flags[2] & RF2_ORC)) 
    250250        { 
    251251                if (m_ptr->ml) 
    252                         l_ptr->flags[2] |= (RF3_ORC); 
     252                        l_ptr->flags[2] |= (RF2_ORC); 
    253253 
    254254                if (mult < 3) mult = 3; 
     
    256256 
    257257        /* Slay Troll */ 
    258         if ((f1 & TR1_SLAY_TROLL) && (r_ptr->flags[2] & RF3_TROLL)) 
     258        if ((f1 & TR1_SLAY_TROLL) && (r_ptr->flags[2] & RF2_TROLL)) 
    259259        { 
    260260                if (m_ptr->ml) 
    261                         l_ptr->flags[2] |= (RF3_TROLL); 
     261                        l_ptr->flags[2] |= (RF2_TROLL); 
    262262 
    263263                if (mult < 3) mult = 3; 
     
    265265 
    266266        /* Slay Giant */ 
    267         if ((f1 & TR1_SLAY_GIANT) && (r_ptr->flags[2] & RF3_GIANT)) 
     267        if ((f1 & TR1_SLAY_GIANT) && (r_ptr->flags[2] & RF2_GIANT)) 
    268268        { 
    269269                if (m_ptr->ml) 
    270                         l_ptr->flags[2] |= (RF3_GIANT); 
     270                        l_ptr->flags[2] |= (RF2_GIANT); 
    271271 
    272272                if (mult < 3) mult = 3; 
     
    274274 
    275275        /* Slay Dragon */ 
    276         if ((f1 & TR1_SLAY_DRAGON) && (r_ptr->flags[2] & RF3_DRAGON)) 
     276        if ((f1 & TR1_SLAY_DRAGON) && (r_ptr->flags[2] & RF2_DRAGON)) 
    277277        { 
    278278                if (m_ptr->ml) 
    279                         l_ptr->flags[2] |= (RF3_DRAGON); 
     279                        l_ptr->flags[2] |= (RF2_DRAGON); 
    280280 
    281281                if (mult < 3) mult = 3; 
     
    283283 
    284284        /* Execute Dragon */ 
    285         if ((f1 & TR1_KILL_DRAGON) && (r_ptr->flags[2] & RF3_DRAGON)) 
     285        if ((f1 & TR1_KILL_DRAGON) && (r_ptr->flags[2] & RF2_DRAGON)) 
    286286        { 
    287287                if (m_ptr->ml) 
    288                         l_ptr->flags[2] |= (RF3_DRAGON); 
     288                        l_ptr->flags[2] |= (RF2_DRAGON); 
    289289 
    290290                if (mult < 5) mult = 5; 
     
    292292 
    293293        /* Execute demon */ 
    294         if ((f1 & TR1_KILL_DEMON) && (r_ptr->flags[2] & RF3_DEMON)) 
     294        if ((f1 & TR1_KILL_DEMON) && (r_ptr->flags[2] & RF2_DEMON)) 
    295295        { 
    296296                if (m_ptr->ml) 
    297                         l_ptr->flags[2] |= (RF3_DEMON); 
     297                        l_ptr->flags[2] |= (RF2_DEMON); 
    298298 
    299299                if (mult < 5) mult = 5; 
     
    301301 
    302302        /* Execute undead */ 
    303         if ((f1 & TR1_KILL_UNDEAD) && (r_ptr->flags[2] & RF3_UNDEAD)) 
     303        if ((f1 & TR1_KILL_UNDEAD) && (r_ptr->flags[2] & RF2_UNDEAD)) 
    304304        { 
    305305                if (m_ptr->ml) 
    306                         l_ptr->flags[2] |= (RF3_UNDEAD); 
     306                        l_ptr->flags[2] |= (RF2_UNDEAD); 
    307307 
    308308                if (mult < 5) mult = 5; 
     
    313313        { 
    314314                /* Notice immunity */ 
    315                 if (r_ptr->flags[2] & (RF3_IM_ACID)) 
     315                if (r_ptr->flags[2] & (RF2_IM_ACID)) 
    316316                { 
    317317                        if (m_ptr->ml) 
    318                                 l_ptr->flags[2] |= (RF3_IM_ACID); 
     318                                l_ptr->flags[2] |= (RF2_IM_ACID); 
    319319                } 
    320320 
     
    330330        { 
    331331                /* Notice immunity */ 
    332                 if (r_ptr->flags[2] & (RF3_IM_ELEC)) 
     332                if (r_ptr->flags[2] & (RF2_IM_ELEC)) 
    333333                { 
    334334                        if (m_ptr->ml) 
    335                                 l_ptr->flags[2] |= (RF3_IM_ELEC); 
     335                                l_ptr->flags[2] |= (RF2_IM_ELEC); 
    336336                } 
    337337 
     
    347347        { 
    348348                /* Notice immunity */ 
    349                 if (r_ptr->flags[2] & (RF3_IM_FIRE)) 
     349                if (r_ptr->flags[2] & (RF2_IM_FIRE)) 
    350350                { 
    351351                        if (m_ptr->ml) 
    352                                 l_ptr->flags[2] |= (RF3_IM_FIRE); 
     352                                l_ptr->flags[2] |= (RF2_IM_FIRE); 
    353353                } 
    354354 
     
    364364        { 
    365365                /* Notice immunity */ 
    366                 if (r_ptr->flags[2] & (RF3_IM_COLD)) 
     366                if (r_ptr->flags[2] & (RF2_IM_COLD)) 
    367367                { 
    368368                        if (m_ptr->ml) 
    369                                 l_ptr->flags[2] |= (RF3_IM_COLD); 
     369                                l_ptr->flags[2] |= (RF2_IM_COLD); 
    370370                } 
    371371 
     
    381381        { 
    382382                /* Notice immunity */ 
    383                 if (r_ptr->flags[2] & (RF3_IM_POIS)) 
     383                if (r_ptr->flags[2] & (RF2_IM_POIS)) 
    384384                { 
    385385                        if (m_ptr->ml) 
    386                                 l_ptr->flags[2] |= (RF3_IM_POIS); 
     386                                l_ptr->flags[2] |= (RF2_IM_POIS); 
    387387                } 
    388388 
     
    514514 
    515515                                /* Confuse the monster */ 
    516                                 if (r_ptr->flags[2] & (RF3_NO_CONF)) 
     516                                if (r_ptr->flags[2] & (RF2_NO_CONF)) 
    517517                                { 
    518518                                        if (m_ptr->ml) 
    519519                                        { 
    520                                                 l_ptr->flags[2] |= (RF3_NO_CONF); 
     520                                                l_ptr->flags[2] |= (RF2_NO_CONF); 
    521521                                        } 
    522522 
     
    787787 
    788788                                /* Some monsters get "destroyed" */ 
    789                                 if ((r_ptr->flags[2] & (RF3_DEMON)) || 
    790                                     (r_ptr->flags[2] & (RF3_UNDEAD)) || 
    791                                     (r_ptr->flags[1] & (RF2_STUPID)) || 
     789                                if ((r_ptr->flags[2] & (RF2_DEMON)) || 
     790                                    (r_ptr->flags[2] & (RF2_UNDEAD)) || 
     791                                    (r_ptr->flags[1] & (RF1_STUPID)) || 
    792792                                    (strchr("Evg", r_ptr->d_char))) 
    793793                                { 
     
    10771077 
    10781078                                /* Some monsters get "destroyed" */ 
    1079                                 if ((r_ptr->flags[2] & (RF3_DEMON)) || 
    1080                                     (r_ptr->flags[2] & (RF3_UNDEAD)) || 
    1081                                     (r_ptr->flags[1] & (RF2_STUPID)) || 
     1079                                if ((r_ptr->flags[2] & (RF2_DEMON)) || 
     1080                                    (r_ptr->flags[2] & (RF2_UNDEAD)) || 
     1081                                    (r_ptr->flags[1] & (RF1_STUPID)) || 
    10821082                                    (strchr("Evg", r_ptr->d_char))) 
    10831083                                { 
  • trunk/src/birth.c

    r815 r823  
    519519 
    520520                /* Hack -- Reset the max counter */ 
    521                 if (r_ptr->flags[0] & (RF1_UNIQUE)) r_ptr->max_num = 1; 
     521                if (r_ptr->flags[0] & (RF0_UNIQUE)) r_ptr->max_num = 1; 
    522522 
    523523                /* Clear player kills */ 
  • trunk/src/cave.c

    r812 r823  
    722722                         
    723723                        /* Multi-hued monster */ 
    724                         else if (r_ptr->flags[0] & (RF1_ATTR_MULTI)) 
     724                        else if (r_ptr->flags[0] & (RF0_ATTR_MULTI)) 
    725725                        { 
    726726                                /* Multi-hued attr */ 
     
    732732                         
    733733                        /* Normal monster (not "clear" in any way) */ 
    734                         else if (!(r_ptr->flags[0] & (RF1_ATTR_CLEAR | RF1_CHAR_CLEAR))) 
     734                        else if (!(r_ptr->flags[0] & (RF0_ATTR_CLEAR | RF0_CHAR_CLEAR))) 
    735735                        { 
    736736                                /* Use attr */ 
     
    756756                         
    757757                        /* Normal char, Clear attr, monster */ 
    758                         else if (!(r_ptr->flags[0] & (RF1_CHAR_CLEAR))) 
     758                        else if (!(r_ptr->flags[0] & (RF0_CHAR_CLEAR))) 
    759759                        { 
    760760                                /* Normal char */ 
     
    763763                                 
    764764                        /* Normal attr, Clear char, monster */ 
    765                         else if (!(r_ptr->flags[0] & (RF1_ATTR_CLEAR))) 
     765                        else if (!(r_ptr->flags[0] & (RF0_ATTR_CLEAR))) 
    766766                        { 
    767767                                /* Normal attr */ 
  • trunk/src/cmd3.c

    r819 r823  
    887887 
    888888                /* Require non-unique monsters if needed */ 
    889                 if (norm && (r_ptr->flags[0] & (RF1_UNIQUE))) continue; 
     889                if (norm && (r_ptr->flags[0] & (RF0_UNIQUE))) continue; 
    890890 
    891891                /* Require unique monsters if needed */ 
    892                 if (uniq && !(r_ptr->flags[0] & (RF1_UNIQUE))) continue; 
     892                if (uniq && !(r_ptr->flags[0] & (RF0_UNIQUE))) continue; 
    893893 
    894894                /* Collect "appropriate" monsters */ 
  • trunk/src/cmd4.c

    r822 r823  
    10071007 
    10081008        /* Display kills */ 
    1009         if (r_ptr->flags[0] & (RF1_UNIQUE)) 
     1009        if (r_ptr->flags[0] & (RF0_UNIQUE)) 
    10101010                put_str(format("%s", (r_ptr->max_num == 0)?  " dead" : "alive"), row, 70); 
    10111011        else 
     
    10771077 
    10781078        /* Different display for the first item if we've got uniques to show */ 
    1079         if (gid == 0 && ((&r_info[default_join[object_list[0]].oid])->flags[0] & (RF1_UNIQUE))) 
     1079        if (gid == 0 && ((&r_info[default_join[object_list[0]].oid])->flags[0] & (RF0_UNIQUE))) 
    10801080        { 
    10811081                c_prt(TERM_L_BLUE, format("%d known uniques, %d slain.", n, kills), 
     
    11051105                if (!r_ptr->name) continue; 
    11061106 
    1107                 if (r_ptr->flags[0] & RF1_UNIQUE) m_count++; 
     1107                if (r_ptr->flags[0] & RF0_UNIQUE) m_count++; 
    11081108 
    11091109                for (j = 1; j < N_ELEMENTS(monster_group) - 1; j++) 
     
    11391139                if (!r_ptr->name) continue; 
    11401140 
    1141                 if (r_ptr->flags[0] & RF1_UNIQUE) m_count++; 
     1141                if (r_ptr->flags[0] & RF0_UNIQUE) m_count++; 
    11421142 
    11431143                for (j = 1; j < N_ELEMENTS(monster_group) - 1; j++) 
     
    11611161                { 
    11621162                        const char *pat = monster_group[j].chars; 
    1163                         if (j == 0 && !(r_ptr->flags[0] & RF1_UNIQUE))  
     1163                        if (j == 0 && !(r_ptr->flags[0] & RF0_UNIQUE))  
    11641164                                continue; 
    11651165                        else if (j > 0 && !strchr(pat, r_ptr->d_char)) 
  • trunk/src/defines.h

    r816 r823  
    19451945 * New monster race bit flags 
    19461946 */ 
    1947 #define RF1_UNIQUE                    0x00000001      /* Unique Monster */ 
    1948 #define RF1_QUESTOR                   0x00000002      /* Quest Monster */ 
    1949 #define RF1_MALE                      0x00000004      /* Male gender */ 
    1950 #define RF1_FEMALE                    0x00000008      /* Female gender */ 
    1951 #define RF1_CHAR_CLEAR                0x00000010      /* Absorbs symbol */ 
    1952 #define RF1_CHAR_MULTI                0x00000020      /* Changes symbol */ 
    1953 #define RF1_ATTR_CLEAR                0x00000040      /* Absorbs color */ 
    1954 #define RF1_ATTR_MULTI                0x00000080      /* Changes color */ 
    1955 #define RF1_FORCE_DEPTH               0x00000100      /* Start at "correct" depth */ 
    1956 #define RF1_XXX1              0x00000200 
    1957 #define RF1_FORCE_SLEEP               0x00000400      /* Start out sleeping */ 
    1958 #define RF1_FORCE_EXTRA               0x00000800      /* Start out something */ 
    1959 #define RF1_FRIEND                    0x00001000      /* Arrive with a friend */ 
    1960 #define RF1_FRIENDS                   0x00002000      /* Arrive with some friends */ 
    1961 #define RF1_ESCORT                    0x00004000      /* Arrive with an escort */ 
    1962 #define RF1_ESCORTS                   0x00008000      /* Arrive with some escorts */ 
    1963 #define RF1_NEVER_BLOW                0x00010000      /* Never make physical blow */ 
    1964 #define RF1_NEVER_MOVE                0x00020000      /* Never make physical move */ 
    1965 #define RF1_RAND_25                   0x00040000      /* Moves randomly (25%) */ 
    1966 #define RF1_RAND_50                   0x00080000      /* Moves randomly (50%) */ 
    1967 #define RF1_ONLY_GOLD         0x00100000      /* Drop only gold */ 
    1968 #define RF1_ONLY_ITEM         0x00200000      /* Drop only items */ 
    1969 #define RF1_DROP_60                   0x00400000      /* Drop an item/gold (60%) */ 
    1970 #define RF1_DROP_90                   0x00800000      /* Drop an item/gold (90%) */ 
    1971 #define RF1_DROP_1D2          0x01000000      /* Drop 1d2 items/gold */ 
    1972 #define RF1_DROP_2D2          0x02000000      /* Drop 2d2 items/gold */ 
    1973 #define RF1_DROP_3D2          0x04000000      /* Drop 3d2 items/gold */ 
    1974 #define RF1_DROP_4D2          0x08000000      /* Drop 4d2 items/gold */ 
    1975 #define RF1_DROP_GOOD         0x10000000      /* Drop good items */ 
    1976 #define RF1_DROP_GREAT                0x20000000      /* Drop great items */ 
    1977 #define RF1_DROP_USEFUL               0x40000000      /* Drop "useful" items */ 
    1978 #define RF1_DROP_CHOSEN               0x80000000      /* Drop "chosen" items */ 
     1947#define RF0_UNIQUE                    0x00000001      /* Unique Monster */ 
     1948#define RF0_QUESTOR                   0x00000002      /* Quest Monster */ 
     1949#define RF0_MALE                      0x00000004      /* Male gender */ 
     1950#define RF0_FEMALE                    0x00000008      /* Female gender */ 
     1951#define RF0_CHAR_CLEAR                0x00000010      /* Absorbs symbol */ 
     1952#define RF0_CHAR_MULTI                0x00000020      /* Changes symbol */ 
     1953#define RF0_ATTR_CLEAR                0x00000040      /* Absorbs color */ 
     1954#define RF0_ATTR_MULTI                0x00000080      /* Changes color */ 
     1955#define RF0_FORCE_DEPTH               0x00000100      /* Start at "correct" depth */ 
     1956#define RF0_XXX1              0x00000200 
     1957#define RF0_FORCE_SLEEP               0x00000400      /* Start out sleeping */ 
     1958#define RF0_FORCE_EXTRA               0x00000800      /* Start out something */ 
     1959#define RF0_FRIEND                    0x00001000      /* Arrive with a friend */ 
     1960#define RF0_FRIENDS                   0x00002000      /* Arrive with some friends */ 
     1961#define RF0_ESCORT                    0x00004000      /* Arrive with an escort */ 
     1962#define RF0_ESCORTS                   0x00008000      /* Arrive with some escorts */ 
     1963#define RF0_NEVER_BLOW                0x00010000      /* Never make physical blow */ 
     1964#define RF0_NEVER_MOVE                0x00020000      /* Never make physical move */ 
     1965#define RF0_RAND_25                   0x00040000      /* Moves randomly (25%) */ 
     1966#define RF0_RAND_50                   0x00080000      /* Moves randomly (50%) */ 
     1967#define RF0_ONLY_GOLD         0x00100000      /* Drop only gold */ 
     1968#define RF0_ONLY_ITEM         0x00200000      /* Drop only items */ 
     1969#define RF0_DROP_60                   0x00400000      /* Drop an item/gold (60%) */ 
     1970#define RF0_DROP_90                   0x00800000      /* Drop an item/gold (90%) */ 
     1971#define RF0_DROP_1D2          0x01000000      /* Drop 1d2 items/gold */ 
     1972#define RF0_DROP_2D2          0x02000000      /* Drop 2d2 items/gold */ 
     1973#define RF0_DROP_3D2          0x04000000      /* Drop 3d2 items/gold */ 
     1974#define RF0_DROP_4D2          0x08000000      /* Drop 4d2 items/gold */ 
     1975#define RF0_DROP_GOOD         0x10000000      /* Drop good items */ 
     1976#define RF0_DROP_GREAT                0x20000000      /* Drop great items */ 
     1977#define RF0_DROP_USEFUL               0x40000000      /* Drop "useful" items */ 
     1978#define RF0_DROP_CHOSEN               0x80000000      /* Drop "chosen" items */ 
    19791979 
    19801980/* 
    19811981 * New monster race bit flags 
    19821982 */ 
    1983 #define RF2_STUPID                    0x00000001      /* Monster is stupid */ 
    1984 #define RF2_SMART                     0x00000002      /* Monster is smart */ 
    1985 #define RF2_XXX1                      0x00000004      /* (?) */ 
    1986 #define RF2_XXX2                      0x00000008      /* (?) */ 
    1987 #define RF2_INVISIBLE         0x00000010      /* Monster avoids vision */ 
    1988 #define RF2_COLD_BLOOD                0x00000020      /* Monster avoids infra */ 
    1989 #define RF2_EMPTY_MIND                0x00000040      /* Monster avoids telepathy */ 
    1990 #define RF2_WEIRD_MIND                0x00000080      /* Monster avoids telepathy? */ 
    1991 #define RF2_MULTIPLY          0x00000100      /* Monster reproduces */ 
    1992 #define RF2_REGENERATE                0x00000200      /* Monster regenerates */ 
    1993 #define RF2_XXX3                      0x00000400      /* (?) */ 
    1994 #define RF2_XXX4                      0x00000800      /* (?) */ 
    1995 #define RF2_POWERFUL          0x00001000      /* Monster has strong breath */ 
    1996 #define RF2_XXX5                      0x00002000      /* (?) */ 
    1997 #define RF2_XXX7                      0x00004000      /* (?) */ 
    1998 #define RF2_XXX6                      0x00008000      /* (?) */ 
    1999 #define RF2_OPEN_DOOR         0x00010000      /* Monster can open doors */ 
    2000 #define RF2_BASH_DOOR         0x00020000      /* Monster can bash doors */ 
    2001 #define RF2_PASS_WALL         0x00040000      /* Monster can pass walls */ 
    2002 #define RF2_KILL_WALL         0x00080000      /* Monster can destroy walls */ 
    2003 #define RF2_MOVE_BODY         0x00100000      /* Monster can move monsters */ 
    2004 #define RF2_KILL_BODY         0x00200000      /* Monster can kill monsters */ 
    2005 #define RF2_TAKE_ITEM         0x00400000      /* Monster can pick up items */ 
    2006 #define RF2_KILL_ITEM         0x00800000      /* Monster can crush items */ 
    2007 #define RF2_BRAIN_1                   0x01000000 
    2008 #define RF2_BRAIN_2                   0x02000000 
    2009 #define RF2_BRAIN_3                   0x04000000 
    2010 #define RF2_BRAIN_4                   0x08000000 
    2011 #define RF2_BRAIN_5                   0x10000000 
    2012 #define RF2_BRAIN_6                   0x20000000 
    2013 #define RF2_BRAIN_7                   0x40000000 
    2014 #define RF2_BRAIN_8                   0x80000000 
     1983#define RF1_STUPID                    0x00000001      /* Monster is stupid */ 
     1984#define RF1_SMART                     0x00000002      /* Monster is smart */ 
     1985#define RF1_XXX1                      0x00000004      /* (?) */ 
     1986#define RF1_XXX2                      0x00000008      /* (?) */ 
     1987#define RF1_INVISIBLE         0x00000010      /* Monster avoids vision */ 
     1988#define RF1_COLD_BLOOD                0x00000020      /* Monster avoids infra */ 
     1989#define RF1_EMPTY_MIND                0x00000040      /* Monster avoids telepathy */ 
     1990#define RF1_WEIRD_MIND                0x00000080      /* Monster avoids telepathy? */ 
     1991#define RF1_MULTIPLY          0x00000100      /* Monster reproduces */ 
     1992#define RF1_REGENERATE                0x00000200      /* Monster regenerates */ 
     1993#define RF1_XXX3                      0x00000400      /* (?) */ 
     1994#define RF1_XXX4                      0x00000800      /* (?) */ 
     1995#define RF1_POWERFUL          0x00001000      /* Monster has strong breath */ 
     1996#define RF1_XXX5                      0x00002000      /* (?) */ 
     1997#define RF1_XXX7                      0x00004000      /* (?) */ 
     1998#define RF1_XXX6                      0x00008000      /* (?) */ 
     1999#define RF1_OPEN_DOOR         0x00010000      /* Monster can open doors */ 
     2000#define RF1_BASH_DOOR         0x00020000      /* Monster can bash doors */ 
     2001#define RF1_PASS_WALL         0x00040000      /* Monster can pass walls */ 
     2002#define RF1_KILL_WALL         0x00080000      /* Monster can destroy walls */ 
     2003#define RF1_MOVE_BODY         0x00100000      /* Monster can move monsters */ 
     2004#define RF1_KILL_BODY         0x00200000      /* Monster can kill monsters */ 
     2005#define RF1_TAKE_ITEM         0x00400000      /* Monster can pick up items */ 
     2006#define RF1_KILL_ITEM         0x00800000      /* Monster can crush items */ 
     2007#define RF1_BRAIN_1                   0x01000000 
     2008#define RF1_BRAIN_2                   0x02000000 
     2009#define RF1_BRAIN_3                   0x04000000 
     2010#define RF1_BRAIN_4                   0x08000000 
     2011#define RF1_BRAIN_5                   0x10000000 
     2012#define RF1_BRAIN_6                   0x20000000 
     2013#define RF1_BRAIN_7                   0x40000000 
     2014#define RF1_BRAIN_8                   0x80000000 
    20152015 
    20162016/* 
    20172017 * New monster race bit flags 
    20182018 */ 
    2019 #define RF3_ORC                               0x00000001      /* Orc */ 
    2020 #define RF3_TROLL                     0x00000002      /* Troll */ 
    2021 #define RF3_GIANT                     0x00000004      /* Giant */ 
    2022 #define RF3_DRAGON                    0x00000008      /* Dragon */ 
    2023 #define RF3_DEMON                     0x00000010      /* Demon */ 
    2024 #define RF3_UNDEAD                    0x00000020      /* Undead */ 
    2025 #define RF3_EVIL                      0x00000040      /* Evil */ 
    2026 #define RF3_ANIMAL                    0x00000080      /* Animal */ 
    2027 #define RF3_XXX1                      0x00000100      /* (?) */ 
    2028 #define RF3_XXX2                      0x00000200      /* (?) */ 
    2029 #define RF3_XXX3                      0x00000400      /* Non-Vocal (?) */ 
    2030 #define RF3_XXX4                      0x00000800      /* Non-Living (?) */ 
    2031 #define RF3_HURT_LITE         0x00001000      /* Hurt by lite */ 
    2032 #define RF3_HURT_ROCK         0x00002000      /* Hurt by rock remover */ 
    2033 #define RF3_HURT_FIRE         0x00004000      /* Hurt badly by fire */ 
    2034 #define RF3_HURT_COLD         0x00008000      /* Hurt badly by cold */ 
    2035 #define RF3_IM_ACID                   0x00010000      /* Resist acid a lot */ 
    2036 #define RF3_IM_ELEC                   0x00020000      /* Resist elec a lot */ 
    2037 #define RF3_IM_FIRE                   0x00040000      /* Resist fire a lot */ 
    2038 #define RF3_IM_COLD                   0x00080000      /* Resist cold a lot */ 
    2039 #define RF3_IM_POIS                   0x00100000      /* Resist poison a lot */ 
    2040 #define RF3_XXX5                      0x00200000      /* Immune to (?) */ 
    2041 #define RF3_RES_NETH          0x00400000      /* Resist nether a lot */ 
    2042 #define RF3_IM_WATER          0x00800000      /* Immune to water */ 
    2043 #define RF3_RES_PLAS          0x01000000      /* Resist plasma */ 
    2044 #define RF3_RES_NEXUS         0x02000000      /* Resist nexus */ 
    2045 #define RF3_RES_DISE          0x04000000      /* Resist disenchantment */ 
    2046 #define RF3_XXX6                      0x08000000      /* Resist (?) */ 
    2047 #define RF3_NO_FEAR                   0x10000000      /* Cannot be scared */ 
    2048 #define RF3_NO_STUN                   0x20000000      /* Cannot be stunned */ 
    2049 #define RF3_NO_CONF                   0x40000000      /* Cannot be confused */ 
    2050 #define RF3_NO_SLEEP          0x80000000      /* Cannot be slept */ 
     2019#define RF2_ORC                               0x00000001      /* Orc */ 
     2020#define RF2_TROLL                     0x00000002      /* Troll */ 
     2021#define RF2_GIANT                     0x00000004      /* Giant */ 
     2022#define RF2_DRAGON                    0x00000008      /* Dragon */ 
     2023#define RF2_DEMON                     0x00000010      /* Demon */ 
     2024#define RF2_UNDEAD                    0x00000020      /* Undead */ 
     2025#define RF2_EVIL                      0x00000040      /* Evil */ 
     2026#define RF2_ANIMAL                    0x00000080      /* Animal */ 
     2027#define RF2_XXX1                      0x00000100      /* (?) */ 
     2028#define RF2_XXX2                      0x00000200      /* (?) */ 
     2029#define RF2_XXX3                      0x00000400      /* Non-Vocal (?) */ 
     2030#define RF2_XXX4                      0x00000800      /* Non-Living (?) */ 
     2031#define RF2_HURT_LITE         0x00001000      /* Hurt by lite */ 
     2032#define RF2_HURT_ROCK         0x00002000      /* Hurt by rock remover */ 
     2033#define RF2_HURT_FIRE         0x00004000      /* Hurt badly by fire */ 
     2034#define RF2_HURT_COLD         0x00008000      /* Hurt badly by cold */ 
     2035#define RF2_IM_ACID                   0x00010000      /* Resist acid a lot */ 
     2036#define RF2_IM_ELEC                   0x00020000      /* Resist elec a lot */ 
     2037#define RF2_IM_FIRE                   0x00040000      /* Resist fire a lot */ 
     2038#define RF2_IM_COLD                   0x00080000      /* Resist cold a lot */ 
     2039#define RF2_IM_POIS                   0x00100000      /* Resist poison a lot */ 
     2040#define RF2_XXX5                      0x00200000      /* Immune to (?) */ 
     2041#define RF2_RES_NETH          0x00400000      /* Resist nether a lot */ 
     2042#define RF2_IM_WATER          0x00800000      /* Immune to water */ 
     2043#define RF2_RES_PLAS          0x01000000      /* Resist plasma */ 
     2044#define RF2_RES_NEXUS         0x02000000      /* Resist nexus */ 
     2045#define RF2_RES_DISE          0x04000000      /* Resist disenchantment */ 
     2046#define RF2_XXX6                      0x08000000      /* Resist (?) */ 
     2047#define RF2_NO_FEAR                   0x10000000      /* Cannot be scared */ 
     2048#define RF2_NO_STUN                   0x20000000      /* Cannot be stunned */ 
     2049#define RF2_NO_CONF                   0x40000000      /* Cannot be confused */ 
     2050#define RF2_NO_SLEEP          0x80000000      /* Cannot be slept */ 
    20512051 
    20522052/* 
    20532053 * New monster race bit flags 
    20542054 */ 
    2055 #define RF4_SHRIEK          0x00000001 /* Shriek for help */ 
    2056 #define RF4_XXX2            0x00000002 /* (?) */ 
    2057 #define RF4_XXX3            0x00000004 /* (?) */ 
    2058 #define RF4_XXX4            0x00000008 /* (?) */ 
    2059 #define RF4_ARROW_1         0x00000010 /* Fire an arrow (light) */ 
    2060 #define RF4_ARROW_2         0x00000020 /* Fire an arrow (heavy) */ 
    2061 #define RF4_ARROW_3         0x00000040 /* Fire missiles (light) */ 
    2062 #define RF4_ARROW_4         0x00000080 /* Fire missiles (heavy) */ 
    2063 #define RF4_BR_ACID         0x00000100 /* Breathe Acid */ 
    2064 #define RF4_BR_ELEC         0x00000200 /* Breathe Elec */ 
    2065 #define RF4_BR_FIRE         0x00000400 /* Breathe Fire */ 
    2066 #define RF4_BR_COLD         0x00000800 /* Breathe Cold */ 
    2067 #define RF4_BR_POIS         0x00001000 /* Breathe Poison */ 
    2068 #define RF4_BR_NETH         0x00002000 /* Breathe Nether */ 
    2069 #define RF4_BR_LITE         0x00004000 /* Breathe Lite */ 
    2070 #define RF4_BR_DARK         0x00008000 /* Breathe Dark */ 
    2071 #define RF4_BR_CONF         0x00010000 /* Breathe Confusion */ 
    2072 #define RF4_BR_SOUN         0x00020000 /* Breathe Sound */ 
    2073 #define RF4_BR_CHAO         0x00040000 /* Breathe Chaos */ 
    2074 #define RF4_BR_DISE         0x00080000 /* Breathe Disenchant */ 
    2075 #define RF4_BR_NEXU         0x00100000 /* Breathe Nexus */ 
    2076 #define RF4_BR_TIME         0x00200000 /* Breathe Time */ 
    2077 #define RF4_BR_INER         0x00400000 /* Breathe Inertia */ 
    2078 #define RF4_BR_GRAV         0x00800000 /* Breathe Gravity */ 
    2079 #define RF4_BR_SHAR         0x01000000 /* Breathe Shards */ 
    2080 #define RF4_BR_PLAS         0x02000000 /* Breathe Plasma */ 
    2081 #define RF4_BR_WALL         0x04000000 /* Breathe Force */ 
    2082 #define RF4_BR_MANA         0x08000000 /* Breathe Mana */ 
    2083 #define RF4_XXX5            0x10000000 
    2084 #define RF4_XXX6            0x20000000 
    2085 #define RF4_XXX7            0x40000000 
    2086 #define RF4_BOULDER         0x80000000 /* Throw a boulder */ 
     2055#define RF3_SHRIEK          0x00000001 /* Shriek for help */ 
     2056#define RF3_XXX2            0x00000002 /* (?) */ 
     2057#define RF3_XXX3            0x00000004 /* (?) */ 
     2058#define RF3_XXX4            0x00000008 /* (?) */ 
     2059#define RF3_ARROW_1         0x00000010 /* Fire an arrow (light) */ 
     2060#define RF3_ARROW_2         0x00000020 /* Fire an arrow (heavy) */ 
     2061#define RF3_ARROW_3         0x00000040 /* Fire missiles (light) */ 
     2062#define RF3_ARROW_4         0x00000080 /* Fire missiles (heavy) */ 
     2063#define RF3_BR_ACID         0x00000100 /* Breathe Acid */ 
     2064#define RF3_BR_ELEC         0x00000200 /* Breathe Elec */ 
     2065#define RF3_BR_FIRE         0x00000400 /* Breathe Fire */ 
     2066#define RF3_BR_COLD         0x00000800 /* Breathe Cold */ 
     2067#define RF3_BR_POIS         0x00001000 /* Breathe Poison */ 
     2068#define RF3_BR_NETH         0x00002000 /* Breathe Nether */ 
     2069#define RF3_BR_LITE         0x00004000 /* Breathe Lite */ 
     2070#define RF3_BR_DARK         0x00008000 /* Breathe Dark */ 
     2071#define RF3_BR_CONF         0x00010000 /* Breathe Confusion */ 
     2072#define RF3_BR_SOUN         0x00020000 /* Breathe Sound */ 
     2073#define RF3_BR_CHAO         0x00040000 /* Breathe Chaos */ 
     2074#define RF3_BR_DISE         0x00080000 /* Breathe Disenchant */ 
     2075#define RF3_BR_NEXU         0x00100000 /* Breathe Nexus */ 
     2076#define RF3_BR_TIME         0x00200000 /* Breathe Time */ 
     2077#define RF3_BR_INER         0x00400000 /* Breathe Inertia */ 
     2078#define RF3_BR_GRAV         0x00800000 /* Breathe Gravity */ 
     2079#define RF3_BR_SHAR         0x01000000 /* Breathe Shards */ 
     2080#define RF3_BR_PLAS         0x02000000 /* Breathe Plasma */ 
     2081#define RF3_BR_WALL         0x04000000 /* Breathe Force */ 
     2082#define RF3_BR_MANA         0x08000000 /* Breathe Mana */ 
     2083#define RF3_XXX5            0x10000000 
     2084#define RF3_XXX6            0x20000000 
     2085#define RF3_XXX7            0x40000000 
     2086#define RF3_BOULDER         0x80000000 /* Throw a boulder */ 
    20872087 
    20882088/* 
    20892089 * New monster race bit flags 
    20902090 */ 
    2091 #define RF5_BA_ACID                   0x00000001      /* Acid Ball */ 
    2092 #define RF5_BA_ELEC                   0x00000002      /* Elec Ball */ 
    2093 #define RF5_BA_FIRE                   0x00000004      /* Fire Ball */ 
    2094 #define RF5_BA_COLD                   0x00000008      /* Cold Ball */ 
    2095 #define RF5_BA_POIS                   0x00000010      /* Poison Ball */ 
    2096 #define RF5_BA_NETH                   0x00000020      /* Nether Ball */ 
    2097 #define RF5_BA_WATE                   0x00000040      /* Water Ball */ 
    2098 #define RF5_BA_MANA                   0x00000080      /* Mana Storm */ 
    2099 #define RF5_BA_DARK                   0x00000100      /* Darkness Storm */ 
    2100 #define RF5_DRAIN_MANA                0x00000200      /* Drain Mana */ 
    2101 #define RF5_MIND_BLAST                0x00000400      /* Blast Mind */ 
    2102 #define RF5_BRAIN_SMASH               0x00000800      /* Smash Brain */ 
    2103 #define RF5_CAUSE_1                   0x00001000      /* Cause Light Wound */ 
    2104 #define RF5_CAUSE_2                   0x00002000      /* Cause Serious Wound */ 
    2105 #define RF5_CAUSE_3                   0x00004000      /* Cause Critical Wound */ 
    2106 #define RF5_CAUSE_4                   0x00008000      /* Cause Mortal Wound */ 
    2107 #define RF5_BO_ACID                   0x00010000      /* Acid Bolt */ 
    2108 #define RF5_BO_ELEC                   0x00020000      /* Elec Bolt (unused) */ 
    2109 #define RF5_BO_FIRE                   0x00040000      /* Fire Bolt */ 
    2110 #define RF5_BO_COLD                   0x00080000      /* Cold Bolt */ 
    2111 #define RF5_BO_POIS                   0x00100000      /* Poison Bolt (unused) */ 
    2112 #define RF5_BO_NETH                   0x00200000      /* Nether Bolt */ 
    2113 #define RF5_BO_WATE                   0x00400000      /* Water Bolt */ 
    2114 #define RF5_BO_MANA                   0x00800000      /* Mana Bolt */ 
    2115 #define RF5_BO_PLAS                   0x01000000      /* Plasma Bolt */ 
    2116 #define RF5_BO_ICEE                   0x02000000      /* Ice Bolt */ 
    2117 #define RF5_MISSILE                   0x04000000      /* Magic Missile */ 
    2118 #define RF5_SCARE                     0x08000000      /* Frighten Player */ 
    2119 #define RF5_BLIND                     0x10000000      /* Blind Player */ 
    2120 #define RF5_CONF                      0x20000000      /* Confuse Player */ 
    2121 #define RF5_SLOW                      0x40000000      /* Slow Player */ 
    2122 #define RF5_HOLD                      0x80000000      /* Paralyze Player */ 
     2091#define RF4_BA_ACID                   0x00000001      /* Acid Ball */ 
     2092#define RF4_BA_ELEC                   0x00000002      /* Elec Ball */ 
     2093#define RF4_BA_FIRE                   0x00000004      /* Fire Ball */ 
     2094#define RF4_BA_COLD                   0x00000008      /* Cold Ball */ 
     2095#define RF4_BA_POIS                   0x00000010      /* Poison Ball */ 
     2096#define RF4_BA_NETH                   0x00000020      /* Nether Ball */ 
     2097#define RF4_BA_WATE                   0x00000040      /* Water Ball */ 
     2098#define RF4_BA_MANA                   0x00000080      /* Mana Storm */ 
     2099#define RF4_BA_DARK                   0x00000100      /* Darkness Storm */ 
     2100#define RF4_DRAIN_MANA                0x00000200      /* Drain Mana */ 
     2101#define RF4_MIND_BLAST                0x00000400      /* Blast Mind */ 
     2102#define RF4_BRAIN_SMASH               0x00000800      /* Smash Brain */ 
     2103#define RF4_CAUSE_1                   0x00001000      /* Cause Light Wound */ 
     2104#define RF4_CAUSE_2                   0x00002000      /* Cause Serious Wound */ 
     2105#define RF4_CAUSE_3                   0x00004000      /* Cause Critical Wound */ 
     2106#define RF4_CAUSE_4                   0x00008000      /* Cause Mortal Wound */ 
     2107#define RF4_BO_ACID                   0x00010000      /* Acid Bolt */ 
     2108#define RF4_BO_ELEC                   0x00020000      /* Elec Bolt (unused) */ 
     2109#define RF4_BO_FIRE                   0x00040000      /* Fire Bolt */ 
     2110#define RF4_BO_COLD                   0x00080000      /* Cold Bolt */ 
     2111#define RF4_BO_POIS                   0x00100000      /* Poison Bolt (unused) */ 
     2112#define RF4_BO_NETH                   0x00200000      /* Nether Bolt */ 
     2113#define RF4_BO_WATE                   0x00400000      /* Water Bolt */ 
     2114#define RF4_BO_MANA                   0x00800000      /* Mana Bolt */ 
     2115#define RF4_BO_PLAS                   0x01000000      /* Plasma Bolt */ 
     2116#define RF4_BO_ICEE                   0x02000000      /* Ice Bolt */ 
     2117#define RF4_MISSILE                   0x04000000      /* Magic Missile */ 
     2118#define RF4_SCARE                     0x08000000      /* Frighten Player */ 
     2119#define RF4_BLIND                     0x10000000      /* Blind Player */ 
     2120#define RF4_CONF                      0x20000000      /* Confuse Player */ 
     2121#define RF4_SLOW                      0x40000000      /* Slow Player */ 
     2122#define RF4_HOLD                      0x80000000      /* Paralyze Player */ 
    21232123 
    21242124/* 
    21252125 * New monster race bit flags 
    21262126 */ 
    2127 #define RF6_HASTE           0x00000001 /* Speed self */ 
    2128 #define RF6_XXX1            0x00000002 /* Speed a lot (?) */ 
    2129 #define RF6_HEAL            0x00000004 /* Heal self */ 
    2130 #define RF6_XXX2            0x00000008 /* Heal a lot (?) */ 
    2131 #define RF6_BLINK           0x00000010 /* Teleport Short */ 
    2132 #define RF6_TPORT           0x00000020 /* Teleport Long */ 
    2133 #define RF6_XXX3            0x00000040 /* Move to Player (?) */ 
    2134 #define RF6_XXX4            0x00000080 /* Move to Monster (?) */ 
    2135 #define RF6_TELE_TO         0x00000100 /* Move player to monster */ 
    2136 #define RF6_TELE_AWAY       0x00000200 /* Move player far away */ 
    2137 #define RF6_TELE_LEVEL      0x00000400 /* Move player vertically */ 
    2138 #define RF6_XXX5            0x00000800 /* Move player (?) */ 
    2139 #define RF6_DARKNESS        0x00001000 /* Create Darkness */ 
    2140 #define RF6_TRAPS           0x00002000 /* Create Traps */ 
    2141 #define RF6_FORGET          0x00004000 /* Cause amnesia */ 
    2142 #define RF6_XXX6            0x00008000 /* (?) */ 
    2143 #define RF6_S_KIN           0x00010000 /* Summon Kin */ 
    2144 #define RF6_S_HI_DEMON      0x00020000 /* Summon Greater Demons */ 
    2145 #define RF6_S_MONSTER       0x00040000 /* Summon Monster */ 
    2146 #define RF6_S_MONSTERS      0x00080000 /* Summon Monsters */ 
    2147 #define RF6_S_ANIMAL        0x00100000 /* Summon Animals */ 
    2148 #define RF6_S_SPIDER        0x00200000 /* Summon Spiders */ 
    2149 #define RF6_S_HOUND         0x00400000 /* Summon Hounds */ 
    2150 #define RF6_S_HYDRA         0x00800000 /* Summon Hydras */ 
    2151 #define RF6_S_ANGEL         0x01000000 /* Summon Angel */ 
    2152 #define RF6_S_DEMON         0x02000000 /* Summon Demon */ 
    2153 #define RF6_S_UNDEAD        0x04000000 /* Summon Undead */ 
    2154 #define RF6_S_DRAGON        0x08000000 /* Summon Dragon */ 
    2155 #define RF6_S_HI_UNDEAD     0x10000000 /* Summon Greater Undead */ 
    2156 #define RF6_S_HI_DRAGON    &