Changeset 911

Show
Ignore:
Timestamp:
05/17/08 07:51:08 (2 months ago)
Author:
takkaria
Message:

Disconnect the big monster spell switch from the RF3_OFFSET constant and instead use a SPELL() macro which will ultimately be less error-prone. (Kenneth Boyd)

Files:

Legend:

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

    r895 r911  
    435435 * Offsets for the spell indices 
    436436 */ 
    437 #define RF3_OFFSET 32 * 3 
    438 #define RF4_OFFSET 32 * 4 
    439 #define RF5_OFFSET 32 * 5 
    440  
     437#define BASE2_LOG_HACK_FRAGMENT(A,B) ((((A)>>(B)) & 1)*(B)) 
     438 
     439/** Unfortunately, this macro only works for an isolated bitflag  
     440 * (exactly one bit set, all others reset).  It also only works for at most  
     441 * 32 bits.  
     442 */ 
     443#define BASE2_LOG_HACK(A)       \ 
     444        (BASE2_LOG_HACK_FRAGMENT(A,31)+BASE2_LOG_HACK_FRAGMENT(A,30)+ \ 
     445         BASE2_LOG_HACK_FRAGMENT(A,29)+BASE2_LOG_HACK_FRAGMENT(A,28)+ \ 
     446         BASE2_LOG_HACK_FRAGMENT(A,27)+BASE2_LOG_HACK_FRAGMENT(A,26)+ \ 
     447         BASE2_LOG_HACK_FRAGMENT(A,25)+BASE2_LOG_HACK_FRAGMENT(A,24)+ \ 
     448         BASE2_LOG_HACK_FRAGMENT(A,23)+BASE2_LOG_HACK_FRAGMENT(A,22)+ \ 
     449         BASE2_LOG_HACK_FRAGMENT(A,21)+BASE2_LOG_HACK_FRAGMENT(A,20)+ \ 
     450         BASE2_LOG_HACK_FRAGMENT(A,19)+BASE2_LOG_HACK_FRAGMENT(A,18)+ \ 
     451         BASE2_LOG_HACK_FRAGMENT(A,17)+BASE2_LOG_HACK_FRAGMENT(A,16)+ \ 
     452         BASE2_LOG_HACK_FRAGMENT(A,15)+BASE2_LOG_HACK_FRAGMENT(A,14)+ \ 
     453         BASE2_LOG_HACK_FRAGMENT(A,13)+BASE2_LOG_HACK_FRAGMENT(A,12)+ \ 
     454         BASE2_LOG_HACK_FRAGMENT(A,11)+BASE2_LOG_HACK_FRAGMENT(A,10)+ \ 
     455         BASE2_LOG_HACK_FRAGMENT(A,9)+BASE2_LOG_HACK_FRAGMENT(A,8)+ \ 
     456         BASE2_LOG_HACK_FRAGMENT(A,7)+BASE2_LOG_HACK_FRAGMENT(A,6)+ \ 
     457         BASE2_LOG_HACK_FRAGMENT(A,5)+BASE2_LOG_HACK_FRAGMENT(A,4)+ \ 
     458         BASE2_LOG_HACK_FRAGMENT(A,3)+BASE2_LOG_HACK_FRAGMENT(A,2)+ \ 
     459         BASE2_LOG_HACK_FRAGMENT(A,1)) 
     460 
     461#define SPELL_ORIGIN 1 
     462#define MIN_NONINNATE_SPELL (SPELL_ORIGIN+32) 
     463 
     464/** converts spell flag into an index value for the case statement */ 
     465#define SPELL(A,B) SPELL_ORIGIN+(A)*32+BASE2_LOG_HACK(B) 
    441466 
    442467/* 
     
    595620        for (i = 0; i < 32*RACE_FLAG_SPELL_STRICT_UB; i++) 
    596621        { 
    597                 if (TEST_FLAG(f, i)) spells[num++] = i + 32*RACE_FLAG_STRICT_UB
     622                if (TEST_FLAG(f, i)) spells[num++] = i + SPELL_ORIGIN
    598623        } 
    599624 
     
    801826 
    802827        /* Check for spell failure (innate attacks never fail) */ 
    803         if ((thrown_spell >= RF4_OFFSET) && (randint0(100) < failrate)) 
     828        if ((thrown_spell >= MIN_NONINNATE_SPELL) && (randint0(100) < failrate)) 
    804829        { 
    805830                /* Message */ 
     
    812837        switch (thrown_spell) 
    813838        { 
    814                 /* RSF0_SHRIEK */ 
    815                 case RF3_OFFSET+0: 
     839                case SPELL(0,RSF0_SHRIEK): 
    816840                { 
    817841                        if (!direct) break; 
     
    823847                } 
    824848 
    825                 /* RSF0_XXX2X4 */ 
    826                 case RF3_OFFSET+1: 
    827                 { 
    828                         break; 
    829                 } 
    830  
    831                 /* RSF0_XXX3X4 */ 
    832                 case RF3_OFFSET+2: 
    833                 { 
    834                         break; 
    835                 } 
    836  
    837                 /* RSF0_XXX4X4 */ 
    838                 case RF3_OFFSET+3: 
    839                 { 
    840                         break; 
    841                 } 
    842  
    843                 /* RSF0_ARROW_1 */ 
    844                 case RF3_OFFSET+4: 
     849                case SPELL(0,RSF0_XXX2): 
     850                { 
     851                        break; 
     852                } 
     853 
     854                case SPELL(0,RSF0_XXX3): 
     855                { 
     856                        break; 
     857                } 
     858 
     859                case SPELL(0,RSF0_XXX4): 
     860                { 
     861                        break; 
     862                } 
     863 
     864                case SPELL(0,RSF0_ARROW_1): 
    845865                { 
    846866                        disturb(1, 0); 
     
    851871                } 
    852872 
    853                 /* RSF0_ARROW_2 */ 
    854                 case RF3_OFFSET+5: 
     873                case SPELL(0,RSF0_ARROW_2): 
    855874                { 
    856875                        disturb(1, 0); 
     
    861880                } 
    862881 
    863                 /* RSF0_ARROW_3 */ 
    864                 case RF3_OFFSET+6: 
     882                case SPELL(0,RSF0_ARROW_3): 
    865883                { 
    866884                        disturb(1, 0); 
     
    871889                } 
    872890 
    873                 /* RSF0_ARROW_4 */ 
    874                 case RF3_OFFSET+7: 
     891                case SPELL(0,RSF0_ARROW_4): 
    875892                { 
    876893                        disturb(1, 0); 
     
    881898                } 
    882899 
    883                 /* RSF0_BR_ACID */ 
    884                 case RF3_OFFSET+8: 
     900                case SPELL(0,RSF0_BR_ACID): 
    885901                { 
    886902                        disturb(1, 0); 
     
    894910                } 
    895911 
    896                 /* RSF0_BR_ELEC */ 
    897                 case RF3_OFFSET+9: 
     912                case SPELL(0,RSF0_BR_ELEC): 
    898913                { 
    899914                        disturb(1, 0); 
     
    907922                } 
    908923 
    909                 /* RSF0_BR_FIRE */ 
    910                 case RF3_OFFSET+10: 
     924                case SPELL(0,RSF0_BR_FIRE): 
    911925                { 
    912926                        disturb(1, 0); 
     
    920934                } 
    921935 
    922                 /* RSF0_BR_COLD */ 
    923                 case RF3_OFFSET+11: 
     936                case SPELL(0,RSF0_BR_COLD): 
    924937                { 
    925938                        disturb(1, 0); 
     
    933946                } 
    934947 
    935                 /* RSF0_BR_POIS */ 
    936                 case RF3_OFFSET+12: 
     948                case SPELL(0,RSF0_BR_POIS): 
    937949                { 
    938950                        disturb(1, 0); 
     
    946958                } 
    947959 
    948                 /* RSF0_BR_NETH */ 
    949                 case RF3_OFFSET+13: 
     960                case SPELL(0,RSF0_BR_NETH): 
    950961                { 
    951962                        disturb(1, 0); 
     
    959970                } 
    960971 
    961                 /* RSF0_BR_LITE */ 
    962                 case RF3_OFFSET+14: 
     972                case SPELL(0,RSF0_BR_LITE): 
    963973                { 
    964974                        disturb(1, 0); 
     
    972982                } 
    973983 
    974                 /* RSF0_BR_DARK */ 
    975                 case RF3_OFFSET+15: 
     984                case SPELL(0,RSF0_BR_DARK): 
    976985                { 
    977986                        disturb(1, 0); 
     
    985994                } 
    986995 
    987                 /* RSF0_BR_CONF */ 
    988                 case RF3_OFFSET+16: 
     996                case SPELL(0,RSF0_BR_CONF): 
    989997                { 
    990998                        disturb(1, 0); 
     
    9981006                } 
    9991007 
    1000                 /* RSF0_BR_SOUN */ 
    1001                 case RF3_OFFSET+17: 
     1008                case SPELL(0,RSF0_BR_SOUN): 
    10021009                { 
    10031010                        disturb(1, 0); 
     
    10111018                } 
    10121019 
    1013                 /* RSF0_BR_CHAO */ 
    1014                 case RF3_OFFSET+18: 
     1020                case SPELL(0,RSF0_BR_CHAO): 
    10151021                { 
    10161022                        disturb(1, 0); 
     
    10241030                } 
    10251031 
    1026                 /* RSF0_BR_DISE */ 
    1027                 case RF3_OFFSET+19: 
     1032                case SPELL(0,RSF0_BR_DISE): 
    10281033                { 
    10291034                        disturb(1, 0); 
     
    10371042                } 
    10381043 
    1039                 /* RSF0_BR_NEXU */ 
    1040                 case RF3_OFFSET+20: 
     1044                case SPELL(0,RSF0_BR_NEXU): 
    10411045                { 
    10421046                        disturb(1, 0); 
     
    10501054                } 
    10511055 
    1052                 /* RSF0_BR_TIME */ 
    1053                 case RF3_OFFSET+21: 
     1056                case SPELL(0,RSF0_BR_TIME): 
    10541057                { 
    10551058                        disturb(1, 0); 
     
    10621065                } 
    10631066 
    1064                 /* RSF0_BR_INER */ 
    1065                 case RF3_OFFSET+22: 
     1067                case SPELL(0,RSF0_BR_INER): 
    10661068                { 
    10671069                        disturb(1, 0); 
     
    10741076                } 
    10751077 
    1076                 /* RSF0_BR_GRAV */ 
    1077                 case RF3_OFFSET+23: 
     1078                case SPELL(0,RSF0_BR_GRAV): 
    10781079                { 
    10791080                        disturb(1, 0); 
     
    10861087                } 
    10871088 
    1088                 /* RSF0_BR_SHAR */ 
    1089                 case RF3_OFFSET+24: 
     1089                case SPELL(0,RSF0_BR_SHAR): 
    10901090                { 
    10911091                        disturb(1, 0); 
     
    10991099                } 
    11001100 
    1101                 /* RSF0_BR_PLAS */ 
    1102                 case RF3_OFFSET+25: 
     1101                case SPELL(0,RSF0_BR_PLAS): 
    11031102                { 
    11041103                        disturb(1, 0); 
     
    11111110                } 
    11121111 
    1113                 /* RSF0_BR_WALL */ 
    1114                 case RF3_OFFSET+26: 
     1112                case SPELL(0,RSF0_BR_WALL): 
    11151113                { 
    11161114                        disturb(1, 0); 
     
    11231121                } 
    11241122 
    1125                 /* RSF0_BR_MANA */ 
    1126                 case RF3_OFFSET+27: 
     1123                case SPELL(0,RSF0_BR_MANA): 
    11271124                { 
    11281125                        /* XXX XXX XXX */ 
     
    11301127                } 
    11311128 
    1132                 /* RSF0_XXX5X4 */ 
    1133                 case RF3_OFFSET+28: 
    1134                 { 
    1135                         break; 
    1136                 } 
    1137  
    1138                 /* RSF0_XXX6X4 */ 
    1139                 case RF3_OFFSET+29: 
    1140                 { 
    1141                         break; 
    1142                 } 
    1143  
    1144                 /* RSF0_XXX7X4 */ 
    1145                 case RF3_OFFSET+30: 
    1146                 { 
    1147                         break; 
    1148                 } 
    1149  
    1150                 /* RSF0_BOULDER */ 
    1151                 case RF3_OFFSET+31: 
     1129                case SPELL(0,RSF0_XXX5): 
     1130                { 
     1131                        break; 
     1132                } 
     1133 
     1134                case SPELL(0,RSF0_XXX6): 
     1135                { 
     1136                        break; 
     1137                } 
     1138 
     1139                case SPELL(0,RSF0_XXX7): 
     1140                { 
     1141                        break; 
     1142                } 
     1143 
     1144                case SPELL(0,RSF0_BOULDER): 
    11521145                { 
    11531146                        disturb(1, 0); 
     
    11591152 
    11601153 
    1161                 /* RSF1_BA_ACID */ 
    1162                 case RF4_OFFSET+0: 
     1154                case SPELL(1,RSF1_BA_ACID): 
    11631155                { 
    11641156                        disturb(1, 0); 
     
    11711163                } 
    11721164 
    1173                 /* RSF1_BA_ELEC */ 
    1174                 case RF4_OFFSET+1: 
     1165                case SPELL(1,RSF1_BA_ELEC): 
    11751166                { 
    11761167                        disturb(1, 0); 
     
    11831174                } 
    11841175 
    1185                 /* RSF1_BA_FIRE */ 
    1186                 case RF4_OFFSET+2: 
     1176                case SPELL(1,RSF1_BA_FIRE): 
    11871177                { 
    11881178                        disturb(1, 0); 
     
    11951185                } 
    11961186 
    1197                 /* RSF1_BA_COLD */ 
    1198                 case RF4_OFFSET+3: 
     1187                case SPELL(1,RSF1_BA_COLD): 
    11991188                { 
    12001189                        disturb(1, 0); 
     
    12071196                } 
    12081197 
    1209                 /* RSF1_BA_POIS */ 
    1210                 case RF4_OFFSET+4: 
     1198                case SPELL(1,RSF1_BA_POIS): 
    12111199                { 
    12121200                        disturb(1, 0); 
     
    12191207                } 
    12201208 
    1221                 /* RSF1_BA_NETH */ 
    1222                 case RF4_OFFSET+5: 
     1209                case SPELL(1,RSF1_BA_NETH): 
    12231210                { 
    12241211                        disturb(1, 0); 
     
    12311218                } 
    12321219 
    1233                 /* RSF1_BA_WATE */ 
    1234                 case RF4_OFFSET+6: 
     1220                case SPELL(1,RSF1_BA_WATE): 
    12351221                { 
    12361222                        disturb(1, 0); 
     
    12431229                } 
    12441230 
    1245                 /* RSF1_BA_MANA */ 
    1246                 case RF4_OFFSET+7: 
     1231                case SPELL(1,RSF1_BA_MANA): 
    12471232                { 
    12481233                        disturb(1, 0); 
     
    12541239                } 
    12551240 
    1256                 /* RSF1_BA_DARK */ 
    1257                 case RF4_OFFSET+8: 
     1241                case SPELL(1,RSF1_BA_DARK): 
    12581242                { 
    12591243                        disturb(1, 0); 
     
    12661250                } 
    12671251 
    1268                 /* RSF1_DRAIN_MANA */ 
    1269                 case RF4_OFFSET+9: 
     1252                case SPELL(1,RSF1_DRAIN_MANA): 
    12701253                { 
    12711254                        if (!direct) break; 
     
    13211304                } 
    13221305 
    1323                 /* RSF1_MIND_BLAST */ 
    1324                 case RF4_OFFSET+10: 
     1306                case SPELL(1,RSF1_MIND_BLAST): 
    13251307                { 
    13261308                        if (!direct) break; 
     
    13511333                } 
    13521334 
    1353                 /* RSF1_BRAIN_SMASH */ 
    1354                 case RF4_OFFSET+11: 
     1335                case SPELL(1,RSF1_BRAIN_SMASH): 
    13551336                { 
    13561337                        if (!direct) break; 
     
    13891370                } 
    13901371 
    1391                 /* RSF1_CAUSE_1 */ 
    1392                 case RF4_OFFSET+12: 
     1372                case SPELL(1,RSF1_CAUSE_1): 
    13931373                { 
    13941374                        if (!direct) break; 
     
    14071387                } 
    14081388 
    1409                 /* RSF1_CAUSE_2 */ 
    1410                 case RF4_OFFSET+13: 
     1389                case SPELL(1,RSF1_CAUSE_2): 
    14111390                { 
    14121391                        if (!direct) break; 
     
    14251404                } 
    14261405 
    1427                 /* RSF1_CAUSE_3 */ 
    1428                 case RF4_OFFSET+14: 
     1406                case SPELL(1,RSF1_CAUSE_3): 
    14291407                { 
    14301408                        if (!direct) break; 
     
    14431421                } 
    14441422 
    1445                 /* RSF1_CAUSE_4 */ 
    1446                 case RF4_OFFSET+15: 
     1423                case SPELL(1,RSF1_CAUSE_4): 
    14471424                { 
    14481425                        if (!direct) break; 
     
    14621439                } 
    14631440 
    1464                 /* RSF1_BO_ACID */ 
    1465                 case RF4_OFFSET+16: 
     1441                case SPELL(1,RSF1_BO_ACID): 
    14661442                { 
    14671443                        disturb(1, 0); 
     
    14741450                } 
    14751451 
    1476                 /* RSF1_BO_ELEC */ 
    1477                 case RF4_OFFSET+17: 
     1452                case SPELL(1,RSF1_BO_ELEC): 
    14781453                { 
    14791454                        disturb(1, 0); 
     
    14861461                } 
    14871462 
    1488                 /* RSF1_BO_FIRE */ 
    1489                 case RF4_OFFSET+18: 
     1463                case SPELL(1,RSF1_BO_FIRE): 
    14901464                { 
    14911465                        disturb(1, 0); 
     
    14981472                } 
    14991473 
    1500                 /* RSF1_BO_COLD */ 
    1501                 case RF4_OFFSET+19: 
     1474                case SPELL(1,RSF1_BO_COLD): 
    15021475                { 
    15031476                        disturb(1, 0); 
     
    15101483                } 
    15111484 
    1512                 /* RSF1_BO_POIS */ 
    1513                 case RF4_OFFSET+20: 
     1485                case SPELL(1,RSF1_BO_POIS): 
    15141486                { 
    15151487                        /* XXX XXX XXX */ 
     
    15171489                } 
    15181490 
    1519                 /* RSF1_BO_NETH */ 
    1520                 case RF4_OFFSET+21: 
     1491                case SPELL(1,RSF1_BO_NETH): 
    15211492                { 
    15221493                        disturb(1, 0); 
     
    15291500                } 
    15301501 
    1531                 /* RSF1_BO_WATE */ 
    1532                 case RF4_OFFSET+22: 
     1502                case SPELL(1,RSF1_BO_WATE): 
    15331503                { 
    15341504                        disturb(1, 0); 
     
    15401510                } 
    15411511 
    1542                 /* RSF1_BO_MANA */ 
    1543                 case RF4_OFFSET+23: 
     1512                case SPELL(1,RSF1_BO_MANA): 
    15441513                { 
    15451514                        disturb(1, 0); 
     
    15511520                } 
    15521521 
    1553                 /* RSF1_BO_PLAS */ 
    1554                 case RF4_OFFSET+24: 
     1522                case SPELL(1,RSF1_BO_PLAS): 
    15551523                { 
    15561524                        disturb(1, 0); 
     
    15621530                } 
    15631531 
    1564                 /* RSF1_BO_ICEE */ 
    1565                 case RF4_OFFSET+25: 
     1532                case SPELL(1,RSF1_BO_ICEE): 
    15661533                { 
    15671534                        disturb(1, 0); 
     
    15741541                } 
    15751542 
    1576                 /* RSF1_MISSILE */ 
    1577                 case RF4_OFFSET+26: 
     1543                case SPELL(1,RSF1_MISSILE): 
    15781544                { 
    15791545                        disturb(1, 0); 
     
    15851551                } 
    15861552 
    1587                 /* RSF1_SCARE */ 
    1588                 case RF4_OFFSET+27: 
     1553                case SPELL(1,RSF1_SCARE): 
    15891554                { 
    15901555                        if (!direct) break; 
     
    16091574                } 
    16101575 
    1611                 /* RSF1_BLIND */ 
    1612                 case RF4_OFFSET+28: 
     1576                case SPELL(1,RSF1_BLIND): 
    16131577                { 
    16141578                        if (!direct) break; 
     
    16321596                } 
    16331597 
    1634                 /* RSF1_CONF */ 
    1635                 case RF4_OFFSET+29: 
     1598                case SPELL(1,RSF1_CONF): 
    16361599                { 
    16371600                        if (!direct) break; 
     
    16551618                } 
    16561619 
    1657                 /* RSF1_SLOW */ 
    1658                 case RF4_OFFSET+30: 
     1620                case SPELL(1,RSF1_SLOW): 
    16591621                { 
    16601622                        if (!direct) break; 
     
    16771639                } 
    16781640 
    1679                 /* RSF1_HOLD */ 
    1680                 case RF4_OFFSET+31: 
     1641                case SPELL(1,RSF1_HOLD): 
    16811642                { 
    16821643                        if (!direct) break; 
     
    17011662 
    17021663 
    1703  
    1704                 /* RSF2_HASTE */ 
    1705                 case RF5_OFFSET+0: 
     1664                case SPELL(2,RSF2_HASTE): 
    17061665                { 
    17071666                        disturb(1, 0); 
     
    17321691                } 
    17331692 
    1734                 /* RSF2_XXX1X6 */ 
    1735                 case RF5_OFFSET+1: 
    1736                 { 
    1737                         break; 
    1738                 } 
    1739  
    1740                 /* RSF2_HEAL */ 
    1741                 case RF5_OFFSET+2: 
     1693                case SPELL(2,RSF2_XXX1): 
     1694                { 
     1695                        break; 
     1696                } 
     1697 
     1698                case SPELL(2,RSF2_HEAL): 
    17421699                { 
    17431700                        disturb(1, 0); 
     
    18031760                } 
    18041761 
    1805                 /* RSF2_XXX2X6 */ 
    1806                 case RF5_OFFSET+3: 
    1807                 { 
    1808                         break; 
    1809                 } 
    1810  
    1811                 /* RSF2_BLINK */ 
    1812                 case RF5_OFFSET+4: 
     1762                case SPELL(2,RSF2_XXX2): 
     1763                { 
     1764                        break; 
     1765                } 
     1766 
     1767                case SPELL(2,RSF2_BLINK): 
    18131768                { 
    18141769                        disturb(1, 0); 
     
    18181773                } 
    18191774 
    1820                 /* RSF2_TPORT */ 
    1821                 case RF5_OFFSET+5: 
     1775                case SPELL(2,RSF2_TPORT): 
    18221776                { 
    18231777                        disturb(1, 0); 
     
    18271781                } 
    18281782 
    1829                 /* RSF2_XXX3X6 */ 
    1830                 case RF5_OFFSET+6: 
    1831                 { 
    1832                         break; 
    1833                 } 
    1834  
    1835                 /* RSF2_XXX4X6 */ 
    1836                 case RF5_OFFSET+7: 
    1837                 { 
    1838                         break; 
    1839                 } 
    1840  
    1841                 /* RSF2_TELE_TO */ 
    1842                 case RF5_OFFSET+8: 
     1783                case SPELL(2,RSF2_XXX3): 
     1784                { 
     1785                        break; 
     1786                } 
     1787 
     1788                case SPELL(2,RSF2_XXX4): 
     1789                { 
     1790                        break; 
     1791                } 
     1792 
     1793                case SPELL(2,RSF2_TELE_TO): 
    18431794                { 
    18441795                        if (!direct) break; 
     
    18491800                } 
    18501801 
    1851                 /* RSF2_TELE_AWAY */ 
    1852                 case RF5_OFFSET+9: 
     1802                case SPELL(2,RSF2_TELE_AWAY): 
    18531803                { 
    18541804                        if (!direct) break; 
     
    18591809                } 
    18601810 
    1861                 /* RSF2_TELE_LEVEL */ 
    1862                 case RF5_OFFSET+10: 
     1811                case SPELL(2,RSF2_TELE_LEVEL): 
    18631812                { 
    18641813                        if (!direct) break; 
     
    18821831                } 
    18831832 
    1884                 /* RSF2_XXX5 */ 
    1885                 case RF5_OFFSET+11: 
    1886                 { 
    1887                         break; 
    1888                 } 
    1889  
    1890                 /* RSF2_DARKNESS */ 
    1891                 case RF5_OFFSET+12: 
     1833                case SPELL(2,RSF2_XXX5): 
     1834                { 
     1835                        break; 
     1836                } 
     1837 
     1838                case SPELL(2,RSF2_DARKNESS): 
    18921839                { 
    18931840                        if (!direct) break; 
     
    18991846                } 
    19001847 
    1901                 /* RSF2_TRAPS */ 
    1902                 case RF5_OFFSET+13: 
     1848                case SPELL(2,RSF2_TRAPS): 
    19031849                { 
    19041850                        if (!direct) break; 
     
    19111857                } 
    19121858 
    1913                 /* RSF2_FORGET */ 
    1914                 case RF5_OFFSET+14: 
     1859                case SPELL(2,RSF2_FORGET): 
    19151860                { 
    19161861                        if (!direct) break; 
     
    19261871                } 
    19271872 
    1928                 /* RSF2_ANIMAL */ 
    1929                 case RF5_OFFSET+15: 
    1930                 { 
    1931                         break; 
    1932                 } 
    1933  
    1934                 /* RSF2_S_KIN */ 
    1935                 case RF5_OFFSET+16: 
     1873                case SPELL(2,RSF2_XXX6): 
     1874                { 
     1875                        break; 
     1876                } 
     1877 
     1878                case SPELL(2,RSF2_S_KIN): 
    19361879                { 
    19371880                        disturb(1, 0); 
     
    19551898                } 
    19561899 
    1957                 /* RSF2_HI_DEMON */ 
    1958                 case RF5_OFFSET+17: 
     1900                case SPELL(2,RSF2_S_HI_DEMON): 
    19591901                { 
    19601902                        disturb(1, 0); 
     
    19731915                } 
    19741916 
    1975                 /* RSF2_S_MONSTER */ 
    1976                 case RF5_OFFSET+18: 
     1917                case SPELL(2,RSF2_S_MONSTER): 
    19771918                { 
    19781919                        disturb(1, 0); 
     
    19911932                } 
    19921933 
    1993                 /* RSF2_S_MONSTERS */ 
    1994                 case RF5_OFFSET+19: 
     1934                case SPELL(2,RSF2_S_MONSTERS): 
    19951935                { 
    19961936                        disturb(1, 0); 
     
    20091949                } 
    20101950 
    2011                 /* RSF2_S_ANIMAL */ 
    2012                 case RF5_OFFSET+20: 
     1951                case SPELL(2,RSF2_S_ANIMAL): 
    20131952                { 
    20141953                        disturb(1, 0); 
     
    20271966                } 
    20281967 
    2029                 /* RSF2_S_SPIDER */ 
    2030                 case RF5_OFFSET+21: 
     1968                case SPELL(2,RSF2_S_SPIDER): 
    20311969                { 
    20321970                        disturb(1, 0); 
     
    20451983                } 
    20461984 
    2047                 /* RSF2_S_HOUND */ 
    2048                 case RF5_OFFSET+22: 
     1985                case SPELL(2,RSF2_S_HOUND): 
    20491986                { 
    20501987                        disturb(1, 0); 
     
    20632000                } 
    20642001 
    2065                 /* RSF2_S_HYDRA */ 
    2066                 case RF5_OFFSET+23: 
     2002                case SPELL(2,RSF2_S_HYDRA): 
    20672003                { 
    20682004                        disturb(1, 0); 
     
    20812017                } 
    20822018 
    2083                 /* RSF2_S_ANGEL */ 
    2084                 case RF5_OFFSET+24: 
     2019                case SPELL(2,RSF2_S_ANGEL): 
    20852020                { 
    20862021                        disturb(1, 0); 
     
    20992034                } 
    21002035 
    2101                 /* RSF2_S_DEMON */ 
    2102                 case RF5_OFFSET+25: 
     2036                case SPELL(2,RSF2_S_DEMON): 
    21032037                { 
    21042038                        disturb(1, 0); 
     
    21172051                } 
    21182052 
    2119                 /* RSF2_S_UNDEAD */ 
    2120                 case RF5_OFFSET+26: 
     2053                case SPELL(2,RSF2_S_UNDEAD): 
    21212054                { 
    21222055                        disturb(1, 0); 
     
    21352068                } 
    21362069 
    2137                 /* RSF2_S_DRAGON */ 
    2138                 case RF5_OFFSET+27: 
     2070                case SPELL(2,RSF2_S_DRAGON): 
    21392071                { 
    21402072                        disturb(1, 0); 
     
    21532085                } 
    21542086 
    2155                 /* RSF2_S_HI_UNDEAD */ 
    2156                 case RF5_OFFSET+28: 
     2087                case SPELL(2,RSF2_S_HI_UNDEAD): 
    21572088                { 
    21582089                        disturb(1, 0); 
     
    21712102                } 
    21722103 
    2173                 /* RSF2_S_HI_DRAGON */ 
    2174                 case RF5_OFFSET+29: 
     2104                case SPELL(2,RSF2_S_HI_DRAGON): 
    21752105                { 
    21762106                        disturb(1, 0); 
     
    21892119                } 
    21902120 
    2191                 /* RSF2_S_WRAITH */ 
    2192                 case RF5_OFFSET+30: 
     2121                case SPELL(2,RSF2_S_WRAITH): 
    21932122                { 
    21942123                        disturb(1, 0); 
     
    22112140                } 
    22122141 
    2213                 /* RSF2_S_UNIQUE */ 
    2214                 case RF5_OFFSET+31: 
     2142                case SPELL(2,RSF2_S_UNIQUE): 
    22152143                { 
    22162144                        disturb(1, 0); 
     
    22382166        if (seen) 
    22392167        { 
    2240                 SET_FLAG(l_ptr->spell_flags, thrown_spell-32*RACE_FLAG_STRICT_UB); 
     2168                SET_FLAG(l_ptr->spell_flags, thrown_spell-SPELL_ORIGIN); 
    22412169 
    22422170                /* Innate spell */ 
    2243                 if (thrown_spell < 32*(RACE_FLAG_STRICT_UB + 1)
     2171                if (thrown_spell < SPELL_ORIGIN+32
    22442172                { 
    22452173                        if (l_ptr->cast_innate < MAX_UCHAR) l_ptr->cast_innate++; 
     
    22472175 
    22482176                /* Bolt or Ball, or Special spell */ 
    2249                 else if (thrown_spell < 32*(RACE_FLAG_STRICT_UB+RACE_FLAG_SPELL_STRICT_UB)) 
     2177                else if (thrown_spell < SPELL_ORIGIN+32*(RACE_FLAG_SPELL_STRICT_UB)) 
    22502178                { 
    22512179                        if (l_ptr->cast_spell < MAX_UCHAR) l_ptr->cast_spell++; 
     
    40904018        monster_race *r_ptr; 
    40914019 
    4092  
    40934020        /* Process the monsters (backwards) */ 
    40944021        for (i = mon_max - 1; i >= 1; i--)