diff options
Diffstat (limited to 'crawl-ref/source')
-rw-r--r-- | crawl-ref/source/beam.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/chardump.cc | 2 | ||||
-rw-r--r-- | crawl-ref/source/spells4.cc | 4 | ||||
-rw-r--r-- | crawl-ref/source/spl-cast.cc | 10 | ||||
-rw-r--r-- | crawl-ref/source/spl-cast.h | 2 | ||||
-rw-r--r-- | crawl-ref/source/spl-data.h | 210 | ||||
-rw-r--r-- | crawl-ref/source/spl-util.cc | 27 | ||||
-rw-r--r-- | crawl-ref/source/spl-util.h | 4 |
8 files changed, 240 insertions, 21 deletions
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc index 0f3c8b94af..5f5202b0a3 100644 --- a/crawl-ref/source/beam.cc +++ b/crawl-ref/source/beam.cc @@ -280,7 +280,7 @@ static void zappy( zap_type z_type, int power, struct bolt &pbolt ) // // The example characters are simplified to three stats: // - // - Intelligence: This magifies power, its very useful. + // - Intelligence: This magnifies power, it's very useful. // // - Skills: This represents the character having Spellcasting // and the average of the component skills at this level. diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc index 2a78fd6e41..a5a6b497c5 100644 --- a/crawl-ref/source/chardump.cc +++ b/crawl-ref/source/chardump.cc @@ -874,7 +874,7 @@ static void sdump_spells(const std::string &, std::string & text) for (int i = spell_line.length(); i < 41; ++i ) spell_line += ' '; - spell_line += spell_power_to_string(calc_spell_power(spell,true)); + spell_line += spell_power_string(spell); for (int i = spell_line.length(); i < 56; ++i ) spell_line += ' '; diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc index dbd82557fa..15068e46f8 100644 --- a/crawl-ref/source/spells4.cc +++ b/crawl-ref/source/spells4.cc @@ -623,8 +623,8 @@ void cast_summon_butterflies(int pow) void cast_summon_large_mammal(int pow) { - int mon; - int temp_rand = random2(pow); + monster_type mon; + const int temp_rand = random2(pow); if (temp_rand < 10) mon = MONS_JACKAL; diff --git a/crawl-ref/source/spl-cast.cc b/crawl-ref/source/spl-cast.cc index cfe6a670da..c92df53d2e 100644 --- a/crawl-ref/source/spl-cast.cc +++ b/crawl-ref/source/spl-cast.cc @@ -207,7 +207,7 @@ char list_spells(void) // 35--48 is the spell schools gotoxy(51, wherey()); - cprintf("%s",spell_power_to_string(calc_spell_power(spell,true))); + cprintf("%s", spell_power_string(spell)); //gotoxy(58, wherey()); gotoxy(65, wherey()); @@ -3510,8 +3510,14 @@ const char* failure_rate_to_string( int fail ) : "Perfect"; } -const char* spell_power_to_string( int power ) +const char* spell_power_string( spell_type spell ) { + const int powercap = spell_power_cap(spell); + if ( powercap == 0 ) + return "N/A"; + const int power = calc_spell_power(spell, true); + if ( power >= powercap ) + return "Maximum"; return (power > 100) ? "Enormous" : (power > 90) ? "Huge" : diff --git a/crawl-ref/source/spl-cast.h b/crawl-ref/source/spl-cast.h index 349fd34216..6fe7b5ee13 100644 --- a/crawl-ref/source/spl-cast.h +++ b/crawl-ref/source/spl-cast.h @@ -51,6 +51,6 @@ bool miscast_effect( unsigned int sp_type, int mag_pow, int mag_fail, int force_effect, const char *cause = NULL ); const char* failure_rate_to_string( int fail ); -const char* spell_power_to_string( int power ); +const char* spell_power_string( spell_type spell ); #endif diff --git a/crawl-ref/source/spl-data.h b/crawl-ref/source/spl-data.h index 09cd7d2546..1bb796bb13 100644 --- a/crawl-ref/source/spl-data.h +++ b/crawl-ref/source/spl-data.h @@ -141,6 +141,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 6, + 0, NULL, false, true @@ -151,6 +152,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 5, + 0, NULL, false, false @@ -161,6 +163,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -171,6 +174,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 1, + 0, NULL, false, true @@ -181,6 +185,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 5, + 0, NULL, false, true @@ -191,6 +196,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true, false @@ -201,6 +207,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET, 6, + 200, NULL, true, false @@ -211,6 +218,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 4, + 0, NULL, false, false @@ -221,6 +229,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 1, + 1000, NULL, false, false @@ -231,6 +240,7 @@ SPTYP_TRANSLOCATION, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true }, @@ -240,6 +250,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_NONE, 3, + 100, NULL, false, false @@ -250,6 +261,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 4, + 200, NULL, false, true @@ -260,6 +272,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET, 5, + 200, NULL, true }, @@ -269,6 +282,7 @@ SPTYP_CONJURATION | SPTYP_ICE, SPFLAG_DIR_OR_TARGET, 5, + 200, NULL, true }, @@ -278,6 +292,7 @@ SPTYP_CONJURATION | SPTYP_AIR, SPFLAG_DIR_OR_TARGET, 6, + 200, NULL, true }, @@ -287,6 +302,7 @@ SPTYP_CONJURATION | SPTYP_FIRE | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 5, + 200, NULL, true }, @@ -296,6 +312,7 @@ SPTYP_TRANSMIGRATION, // removed enchantment, wasn't needed -- bwr SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 5, + 200, NULL, true }, @@ -305,6 +322,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET, 3, + 200, NULL, true }, @@ -313,9 +331,10 @@ SPELL_HASTE, "Haste", SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET | SPFLAG_HELPFUL, - 6, // lowered to 6 from 8, since its easily available from various items - // and Swiftness is level 2 (and gives a similar effect). Its also + 6, // lowered to 6 from 8, since it's easily available from various items + // and Swiftness is level 2 (and gives a similar effect). It's also // not that much better than Invisibility. -- bwr + 200, NULL, false, true @@ -326,6 +345,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET, 4, + 200, NULL, true }, @@ -335,6 +355,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET, 3, + 200, NULL, true }, @@ -344,6 +365,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET | SPFLAG_HELPFUL, 6, + 200, NULL, false, true @@ -354,6 +376,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET, 2, + 50, NULL, true }, @@ -363,6 +386,7 @@ SPTYP_CONJURATION | SPTYP_ICE, SPFLAG_DIR_OR_TARGET, 2, + 50, NULL, true }, @@ -372,6 +396,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 8, + 0, NULL, false, false @@ -382,6 +407,7 @@ SPTYP_CONJURATION | SPTYP_ICE | SPTYP_AIR, SPFLAG_GRID, 7, + 200, "Where do you want to put it?", true }, @@ -391,6 +417,7 @@ SPTYP_CONJURATION | SPTYP_POISON | SPTYP_AIR, SPFLAG_DIR_OR_TARGET, 3, + 200, NULL, true }, @@ -400,6 +427,7 @@ SPTYP_ENCHANTMENT | SPTYP_FIRE, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -410,6 +438,7 @@ SPTYP_HOLY, SPFLAG_NONE, 2, + 0, NULL, false, false @@ -420,6 +449,7 @@ SPTYP_HOLY, SPFLAG_NONE, 2, + 0, NULL, false, false @@ -430,6 +460,7 @@ SPTYP_HOLY, SPFLAG_NONE, 2, + 0, NULL, false, false @@ -440,6 +471,7 @@ SPTYP_CONJURATION | SPTYP_POISON, SPFLAG_DIR_OR_TARGET, 5, + 200, NULL, true }, @@ -449,6 +481,7 @@ SPTYP_POISON, SPFLAG_NONE, 4, + 0, NULL, true }, @@ -458,6 +491,7 @@ SPTYP_TRANSLOCATION, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 4, + 200, NULL, true }, @@ -467,6 +501,7 @@ SPTYP_HOLY, SPFLAG_NONE, 2, + 0, NULL, false, true @@ -477,6 +512,7 @@ SPTYP_HOLY, SPFLAG_NONE, 6, + 0, NULL, false, false @@ -487,6 +523,7 @@ SPTYP_HOLY, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -497,6 +534,7 @@ SPTYP_HOLY, SPFLAG_NONE, 5, + 0, NULL, false, false @@ -507,6 +545,7 @@ SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -517,6 +556,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 3, + 0, NULL, false, false @@ -527,6 +567,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -537,6 +578,7 @@ SPTYP_HOLY, SPFLAG_TARGET | SPFLAG_NOT_SELF, 4, + 200, "Smite whom?", false, false @@ -547,6 +589,7 @@ SPTYP_HOLY, SPFLAG_NONE, 3, + 0, NULL, false, false @@ -557,6 +600,7 @@ SPTYP_HOLY, SPFLAG_NONE, 7, + 0, NULL, false, false @@ -567,6 +611,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 3, + 0, NULL, false, false @@ -577,6 +622,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 1, + 80, NULL, false, false @@ -587,6 +633,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -597,6 +644,7 @@ SPTYP_SUMMONING | SPTYP_POISON, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -607,6 +655,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 2, + 150, NULL, false, false @@ -617,6 +666,7 @@ SPTYP_CONJURATION | SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET, 6, + 200, NULL, true }, @@ -626,6 +676,7 @@ SPTYP_CONJURATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 8, + 200, NULL, true }, @@ -635,6 +686,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 2, + 1000, NULL, true }, @@ -644,6 +696,7 @@ SPTYP_CONJURATION | SPTYP_POISON | SPTYP_AIR, SPFLAG_GRID, 6, + 200, "Where do you want to put it?", true } @@ -654,6 +707,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_GRID, 9, + 200, "Where?", true }, @@ -663,6 +717,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 2, + 50, NULL, false, false @@ -673,6 +728,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 2, + 0, NULL, false, true @@ -686,6 +742,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 4, + 100, NULL, true }, @@ -695,6 +752,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -705,6 +763,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 8, + 200, NULL, false, false @@ -715,6 +774,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 4, + 200, NULL, true }, @@ -724,6 +784,7 @@ SPTYP_DIVINATION | SPTYP_EARTH, SPFLAG_NONE, 4, + 45, NULL, false, false @@ -734,6 +795,7 @@ SPTYP_HOLY, SPFLAG_DIR_OR_TARGET | SPFLAG_HELPFUL | SPFLAG_NOT_SELF, 3, + 100, NULL, true, false @@ -744,6 +806,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 4, + 0, NULL, false, true @@ -754,6 +817,7 @@ SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true }, @@ -763,6 +827,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -773,6 +838,7 @@ SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, SPFLAG_NONE, 6, + 200, NULL, true }, @@ -782,6 +848,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 1, + 0, NULL, false, false @@ -792,6 +859,7 @@ SPTYP_NECROMANCY, SPFLAG_DIR | SPFLAG_NOT_SELF, 3, + 200, NULL, false, false @@ -802,6 +870,7 @@ SPTYP_NECROMANCY | SPTYP_SUMMONING, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -812,6 +881,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 2, + 50, NULL, false, false @@ -822,6 +892,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -832,6 +903,7 @@ SPTYP_FIRE, SPFLAG_NONE, 1, + 25, NULL, false, false @@ -842,6 +914,7 @@ SPTYP_ICE, SPFLAG_NONE, 1, + 25, NULL, false, false @@ -852,6 +925,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -862,6 +936,7 @@ SPTYP_ICE, SPFLAG_NONE, 5, + 200, NULL, true }, @@ -871,6 +946,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET, 4, + 100, NULL, true }, @@ -880,6 +956,7 @@ SPTYP_ICE | SPTYP_SUMMONING, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -890,6 +967,7 @@ SPTYP_ENCHANTMENT | SPTYP_ICE, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -900,6 +978,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 3, + 200, NULL, false, false @@ -910,6 +989,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -920,6 +1000,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 3, + 0, NULL, false, false @@ -930,6 +1011,7 @@ SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET, 4, + 100, NULL, true }, @@ -939,6 +1021,7 @@ SPTYP_HOLY, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -949,6 +1032,7 @@ SPTYP_HOLY, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -959,6 +1043,7 @@ SPTYP_HOLY | SPTYP_AIR, SPFLAG_DIR_OR_TARGET, 6, // why is this the only holy spell with a secondary? {dlb} + 200, NULL, true } @@ -969,6 +1054,7 @@ SPTYP_HOLY, SPFLAG_DIR_OR_TARGET, 8, + 200, NULL, true }, @@ -978,6 +1064,7 @@ SPTYP_HOLY, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -988,6 +1075,7 @@ SPTYP_HOLY, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -998,6 +1086,7 @@ SPTYP_HOLY, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1008,6 +1097,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1018,6 +1108,7 @@ SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -1028,6 +1119,7 @@ SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET, 3, + 200, NULL, true }, @@ -1037,6 +1129,7 @@ SPTYP_TRANSLOCATION, SPFLAG_DIR_OR_TARGET | SPFLAG_UNHOLY, 5, + 200, NULL, true }, @@ -1046,6 +1139,7 @@ SPTYP_TRANSMIGRATION | SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 5, + 200, NULL, false, false @@ -1056,6 +1150,7 @@ SPTYP_CONJURATION | SPTYP_POISON, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true }, @@ -1065,6 +1160,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1075,6 +1171,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -1085,6 +1182,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET | SPFLAG_UNHOLY, 9, + 200, NULL, true }, @@ -1094,6 +1192,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 5, + 200, NULL, false, false @@ -1104,6 +1203,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 6, + 200, NULL, false, false @@ -1114,6 +1214,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 7, + 200, NULL, false, false @@ -1124,6 +1225,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 2, + 0, NULL, false, false @@ -1134,6 +1236,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1144,6 +1247,7 @@ SPTYP_ENCHANTMENT | SPTYP_FIRE, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1154,6 +1258,7 @@ SPTYP_ENCHANTMENT | SPTYP_ICE, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1164,6 +1269,7 @@ SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1174,6 +1280,7 @@ SPTYP_EARTH, SPFLAG_DIR | SPFLAG_NOT_SELF, 1, + 25, NULL, false, false @@ -1184,6 +1291,7 @@ SPTYP_CONJURATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 6, + 200, NULL, true }, @@ -1193,6 +1301,7 @@ SPTYP_CONJURATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 3, + 50, NULL, true }, @@ -1202,6 +1311,7 @@ SPTYP_CONJURATION | SPTYP_EARTH, // conj makes more sense than tmig -- bwr SPFLAG_NONE, 7, + 0, NULL, false, false @@ -1213,6 +1323,7 @@ SPTYP_ENCHANTMENT | SPTYP_EARTH, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -1223,6 +1334,7 @@ SPTYP_CONJURATION | SPTYP_AIR, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true }, @@ -1232,6 +1344,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1242,6 +1355,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1252,6 +1366,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1262,6 +1377,7 @@ SPTYP_CONJURATION | SPTYP_AIR, SPFLAG_DIR_OR_TARGET, 7, + 200, NULL, true }, @@ -1271,6 +1387,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 2, + 60, // not 50, note the fuzz NULL, false, false @@ -1281,6 +1398,7 @@ SPTYP_POISON, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1292,6 +1410,7 @@ SPTYP_ENCHANTMENT | SPTYP_TRANSLOCATION, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1302,6 +1421,7 @@ SPTYP_ENCHANTMENT | SPTYP_POISON, SPFLAG_NONE, 4, // jmf: SPTYP_TRANSMIGRATION vs SPTYP_ENCHANTMENT? + 0, NULL, false, false @@ -1313,6 +1433,7 @@ SPTYP_ENCHANTMENT | SPTYP_POISON, SPFLAG_NONE, 4, + 0, NULL, false, false @@ -1323,6 +1444,7 @@ SPTYP_ENCHANTMENT | SPTYP_POISON, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1333,6 +1455,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 2, + 0, NULL, false, false @@ -1343,6 +1466,7 @@ SPTYP_TRANSMIGRATION, SPFLAG_NONE, 7, + 0, NULL, false, false @@ -1353,6 +1477,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 7, + 100, NULL, false, false @@ -1363,6 +1488,7 @@ SPTYP_SUMMONING | SPTYP_TRANSLOCATION, SPFLAG_NONE, 3, + 0, NULL, false, false @@ -1373,6 +1499,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 7, + 0, NULL, false, false @@ -1383,6 +1510,7 @@ SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 5, + 200, NULL, false, false @@ -1393,6 +1521,7 @@ SPTYP_TRANSMIGRATION | SPTYP_POISON, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -1403,6 +1532,7 @@ SPTYP_TRANSMIGRATION, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, false, false @@ -1413,6 +1543,7 @@ SPTYP_TRANSMIGRATION, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 6, + 200, NULL, true }, @@ -1422,6 +1553,7 @@ SPTYP_TRANSMIGRATION, SPFLAG_NONE, 5, // only removes weapon, so I raised this from 4 -- bwr + 200, NULL, false, false @@ -1432,6 +1564,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -1442,6 +1575,7 @@ SPTYP_ICE | SPTYP_TRANSMIGRATION, SPFLAG_NONE, 4, // doesn't allow for equipment, so I lowered this from 5 -- bwr + 200, NULL, false, false @@ -1452,6 +1586,7 @@ SPTYP_FIRE | SPTYP_TRANSMIGRATION, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -1462,6 +1597,7 @@ SPTYP_TRANSMIGRATION | SPTYP_NECROMANCY, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -1472,6 +1608,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 9, + 200, NULL, false, false @@ -1482,6 +1619,7 @@ SPTYP_NECROMANCY, SPFLAG_NONE, 6, + 0, NULL, false, false @@ -1492,6 +1630,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -1502,6 +1641,7 @@ SPTYP_CONJURATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET, 7, + 200, NULL, true }, @@ -1511,6 +1651,7 @@ SPTYP_CONJURATION | SPTYP_ICE, SPFLAG_DIR_OR_TARGET, 4, + 100, NULL, true }, @@ -1520,6 +1661,7 @@ SPTYP_CONJURATION | SPTYP_ICE, SPFLAG_DIR_OR_TARGET, 9, + 200, NULL, true }, @@ -1529,6 +1671,7 @@ SPTYP_AIR, SPFLAG_NONE, 1, + 25, NULL, false, false @@ -1539,6 +1682,7 @@ SPTYP_AIR, SPFLAG_TARGET | SPFLAG_NOT_SELF, 4, + 200, NULL, false, false @@ -1549,6 +1693,7 @@ SPTYP_SUMMONING, // jmf: or SPTYP_SUMMONING | SPTYP_CONJURATION SPFLAG_NONE, 5, + 0, NULL, false } @@ -1559,6 +1704,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 1, + 200, NULL, false, false @@ -1569,6 +1715,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1584,6 +1731,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 1, + 25, NULL, false, false @@ -1594,6 +1742,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -1604,6 +1753,7 @@ SPTYP_FIRE | SPTYP_TRANSMIGRATION, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -1614,6 +1764,7 @@ SPTYP_TRANSMIGRATION | SPTYP_SUMMONING, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1624,6 +1775,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 3, + 200, NULL, false, false @@ -1634,6 +1786,7 @@ SPTYP_FIRE | SPTYP_SUMMONING, SPFLAG_NONE, 9, + 200, NULL, false, false @@ -1644,6 +1797,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1654,6 +1808,7 @@ SPTYP_ENCHANTMENT | SPTYP_ICE, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 2, + 56, NULL, true }, @@ -1663,6 +1818,7 @@ SPTYP_ENCHANTMENT | SPTYP_ICE, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -1673,6 +1829,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 1, + 0, NULL, false, false @@ -1683,6 +1840,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 1, + 200, NULL, false, false @@ -1693,6 +1851,7 @@ SPTYP_ENCHANTMENT | SPTYP_DIVINATION, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1703,6 +1862,7 @@ SPTYP_DIVINATION, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1713,6 +1873,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 1, + 200, NULL, false, false @@ -1723,6 +1884,7 @@ SPTYP_ENCHANTMENT | SPTYP_NECROMANCY, SPFLAG_NONE, 5, // fairly high level - potentially one of the best brands + 200, NULL, false, false @@ -1733,6 +1895,7 @@ SPTYP_ENCHANTMENT | SPTYP_TRANSLOCATION, SPFLAG_NONE, 7, // this is high for a reason - Warp brands are very powerful. + 0, NULL, false, false @@ -1743,6 +1906,7 @@ SPTYP_ENCHANTMENT | SPTYP_AIR, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1753,6 +1917,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 9, + 200, NULL, false, false @@ -1763,6 +1928,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 7, + 200, NULL, false, false @@ -1773,6 +1939,7 @@ SPTYP_CONJURATION | SPTYP_AIR, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1783,6 +1950,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 1, + 100, NULL, false, false @@ -1793,6 +1961,7 @@ SPTYP_ENCHANTMENT, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 1, + 200, NULL, true }, @@ -1802,6 +1971,7 @@ SPTYP_TRANSMIGRATION | SPTYP_POISON, SPFLAG_NONE, 4, + 0, NULL, false, false @@ -1812,6 +1982,7 @@ SPTYP_ENCHANTMENT, SPFLAG_NONE, 5, + 200, NULL }, @@ -1820,6 +1991,7 @@ SPTYP_FIRE | SPTYP_TRANSMIGRATION, SPFLAG_NONE, 2, // XXX: level 2 or 3, what should it be now? -- bwr + 200, NULL, true }, @@ -1829,6 +2001,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 4, + 0, NULL, false, false @@ -1839,6 +2012,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1849,6 +2023,7 @@ SPTYP_TRANSMIGRATION | SPTYP_AIR, SPFLAG_NONE, 9, + 200, NULL, false, false @@ -1859,6 +2034,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_DIR_OR_TARGET | SPFLAG_NOT_SELF, 1, + 50, NULL, true }, @@ -1868,6 +2044,7 @@ SPTYP_TRANSMIGRATION | SPTYP_NECROMANCY, SPFLAG_NONE, 5, + 200, NULL, false, false @@ -1878,6 +2055,7 @@ SPTYP_TRANSMIGRATION | SPTYP_EARTH, SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1888,6 +2066,7 @@ SPTYP_ICE | SPTYP_TRANSMIGRATION, SPFLAG_NONE, 4, + 200, NULL, false, false @@ -1898,6 +2077,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 3, + 100, NULL, false, false @@ -1908,6 +2088,7 @@ SPTYP_EARTH | SPTYP_TRANSMIGRATION, // was ench -- bwr SPFLAG_NONE, 2, + 200, NULL, false, false @@ -1918,6 +2099,7 @@ SPTYP_ICE | SPTYP_NECROMANCY, SPFLAG_NONE, 6, + 200, NULL, false, false @@ -1928,6 +2110,7 @@ SPTYP_AIR | SPTYP_CONJURATION, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -1938,6 +2121,7 @@ SPTYP_AIR | SPTYP_CONJURATION, SPFLAG_NONE, 8, + 200, NULL, false, false @@ -1948,6 +2132,7 @@ SPTYP_FIRE | SPTYP_CONJURATION, SPFLAG_NONE, 7, + 0, NULL, false, false @@ -1958,6 +2143,7 @@ SPTYP_TRANSMIGRATION | SPTYP_NECROMANCY, SPFLAG_NONE, 1, + 50, NULL, false, false @@ -1968,6 +2154,7 @@ SPTYP_CONJURATION | SPTYP_POISON, SPFLAG_DIR_OR_TARGET, 6, + 200, NULL, true }, @@ -1977,6 +2164,7 @@ 0, SPFLAG_DIR_OR_TARGET, 1, + 25, NULL, true }, @@ -1986,6 +2174,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET | SPFLAG_UNHOLY, 9, + 200, NULL, false, false @@ -1996,6 +2185,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 3, + 0, NULL, false, false @@ -2006,6 +2196,7 @@ SPTYP_NECROMANCY, SPFLAG_UNHOLY, 3, + 0, NULL, false, false @@ -2016,6 +2207,7 @@ SPTYP_SUMMONING | SPTYP_NECROMANCY, SPFLAG_UNHOLY, 3, + 0, NULL, false }, @@ -2025,6 +2217,7 @@ SPTYP_CONJURATION | SPTYP_FIRE, SPFLAG_DIR_OR_TARGET, 4, + 0, NULL, true }, @@ -2034,6 +2227,7 @@ SPTYP_SUMMONING, SPFLAG_UNHOLY, 4, + 0, NULL, false, false @@ -2044,6 +2238,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 4, + 0, NULL, false }, @@ -2053,6 +2248,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 4, + 0, NULL, true }, @@ -2062,6 +2258,7 @@ SPTYP_POISON, SPFLAG_DIR_OR_TARGET, 2, + 0, NULL, true }, @@ -2071,6 +2268,7 @@ SPTYP_SUMMONING | SPTYP_NECROMANCY, SPFLAG_NONE, 7, + 0, NULL, false, false, @@ -2081,6 +2279,7 @@ SPTYP_NONE, SPFLAG_NONE, 1, + 0, NULL, false, false @@ -2091,6 +2290,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 5, + 0, NULL, true }, @@ -2100,6 +2300,7 @@ SPTYP_CONJURATION, SPFLAG_DIR_OR_TARGET, 5, + 0, NULL, true }, @@ -2109,6 +2310,7 @@ SPTYP_CONJURATION | SPTYP_NECROMANCY, SPFLAG_DIR_OR_TARGET, 6, + 0, NULL, true }, @@ -2118,6 +2320,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 6, + 0, NULL, false, false @@ -2128,6 +2331,7 @@ SPTYP_TRANSLOCATION, SPFLAG_NONE, 2, + 0, NULL, true }, @@ -2137,6 +2341,7 @@ SPTYP_SUMMONING, SPFLAG_NONE, 4, + 0, NULL, false, false @@ -2147,6 +2352,7 @@ 0, 0, 0, + 0, NULL, false, false diff --git a/crawl-ref/source/spl-util.cc b/crawl-ref/source/spl-util.cc index 40eb6f662d..61988ccd19 100644 --- a/crawl-ref/source/spl-util.cc +++ b/crawl-ref/source/spl-util.cc @@ -49,7 +49,7 @@ static int spell_list[NUM_SPELLS]; #define SPELLDATASIZE (sizeof(spelldata)/sizeof(struct spell_desc)) -static struct spell_desc *seekspell(int spellid); +static struct spell_desc *seekspell(spell_type spellid); static bool cloud_helper(int (*func)(int, int, int, cloud_type, kill_category), int x, int y, int pow, cloud_type ctype, kill_category ); @@ -61,24 +61,22 @@ static bool cloud_helper(int (*func)(int, int, int, cloud_type, kill_category), // all this does is merely refresh the internal spell list {dlb}: void init_spell_descs(void) { - unsigned int x = 0; - - for (x = 0; x < NUM_SPELLS; x++) - spell_list[x] = -1; + for (int i = 0; i < NUM_SPELLS; i++) + spell_list[i] = -1; // can only use up to SPELLDATASIZE _MINUS ONE_, or the // last entry tries to set spell_list[SPELL_NO_SPELL] // which corrupts the heap. - for (x = 0; x < SPELLDATASIZE - 1; x++) - spell_list[spelldata[x].id] = x; + for (unsigned int i = 0; i < SPELLDATASIZE - 1; i++) + spell_list[spelldata[i].id] = i; - for (x = 0; x < NUM_SPELLS; x++) + for (int i = 0; i < NUM_SPELLS; i++) { - if (spell_list[x] == -1) - spell_list[x] = spell_list[SPELL_NO_SPELL]; + if (spell_list[i] == -1) + spell_list[i] = spell_list[SPELL_NO_SPELL]; } - return; // return value should not matter here {dlb} + return; } // end init_spell_descs() int get_spell_slot_by_letter( char letter ) @@ -807,7 +805,7 @@ int spell_type2skill(unsigned int spelltype) */ //jmf: simplified; moved init code to top function, init_spell_descs() -static struct spell_desc *seekspell(int spell) +static struct spell_desc *seekspell(spell_type spell) { return (&spelldata[spell_list[spell]]); } @@ -824,3 +822,8 @@ static bool cloud_helper(int (*func)(int, int, int, cloud_type, kill_category), return false; } + +int spell_power_cap(spell_type spell) +{ + return seekspell(spell)->power_cap; +} diff --git a/crawl-ref/source/spl-util.h b/crawl-ref/source/spl-util.h index 25335d0530..3c480d8668 100644 --- a/crawl-ref/source/spl-util.h +++ b/crawl-ref/source/spl-util.h @@ -25,8 +25,10 @@ struct spell_desc unsigned int disciplines; // bitfield unsigned int flags; // bitfield unsigned int level; + int power_cap; const char *target_prompt; + // If a monster is casting this, does it need a tracer? bool ms_needs_tracer; @@ -53,6 +55,8 @@ int spell_mana(spell_type which_spell); // * called from: chardump - it_use3 - player - spell - spl-book - // * spells0 - spells3 int spell_difficulty(spell_type which_spell); +int spell_power_cap(spell_type spell); + const char *get_spell_target_prompt( spell_type which_spell ); bool spell_needs_tracer(spell_type spell); |