More type-safety.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1624 c06c8d41-db1a-0410-9941-cceddc491573
DH3YTI6VVI727SQXO4CXSDCSBG2UN3UAWLFULBGRLBVH22ACRXIAC I7NXCEKCEBDWOGO7EDNRZ36GELP3P5GTOOXQG2YS5TXZTCNN7CDQC XUCCWGMXKPIR34BBCCOI67YHI3RST4STDWSDUZTN4B2CJWXQLQ7AC 7KWDC7XFNMBLSUO2HISIROBINZBX5T67LJEEXTAORXW2YZ7VWFGAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC ODNAIEJW732NG7USKQKCIP4R4DAEYXXJQX6LY7TIN32NKE75454QC XPCGZBHHSL6MB3ORMUJI64BAERU6AZTIY6RK56BBW7SNB3IK24IAC TZ55IZNANEJO2WDTKYWVLY2W2VV6BR7WKIN7XLNISAMMFT6LG2WQC XAFFD52IHN6FWFR2TT5F2KCUS7HAVCBI5CWTFMKPQG77GGTGAHLAC 3KAINFIXO7WNWGUGZB43EUNFRS2ZPBLQZDTY456QACMRHYIJ7WDAC if (you.slow)you.slow = 1;if (you.paralysis)you.paralysis = 1;if (you.conf)you.conf = 1;if (you.might)you.might = 1;
duration_type dur_list[] = {DUR_WEAPON_BRAND, DUR_ICY_ARMOUR, DUR_REPEL_MISSILES, DUR_REGENERATION,DUR_DEFLECT_MISSILES, DUR_SWIFTNESS, DUR_INSULATION, DUR_STONEMAIL,DUR_CONTROLLED_FLIGHT, DUR_CONTROL_TELEPORT, DUR_RESIST_POISON,DUR_RESIST_FIRE, DUR_RESIST_COLD, DUR_TRANSFORMATION, DUR_STONESKIN,DUR_FORESCRY, DUR_SEE_INVISIBLE, DUR_SILENCE, DUR_CONDENSATION_SHIELD};
if (you.invis)you.invis = 1;if (you.duration[DUR_WEAPON_BRAND])you.duration[DUR_WEAPON_BRAND] = 1;if (you.duration[DUR_ICY_ARMOUR])you.duration[DUR_ICY_ARMOUR] = 1;if (you.duration[DUR_REPEL_MISSILES])you.duration[DUR_REPEL_MISSILES] = 1;if (you.duration[DUR_REGENERATION])you.duration[DUR_REGENERATION] = 1;if (you.duration[DUR_DEFLECT_MISSILES])you.duration[DUR_DEFLECT_MISSILES] = 1;
if (you.duration[DUR_INSULATION])you.duration[DUR_INSULATION] = 1;if (you.duration[DUR_STONEMAIL])you.duration[DUR_STONEMAIL] = 1;if (you.duration[DUR_CONTROLLED_FLIGHT])you.duration[DUR_CONTROLLED_FLIGHT] = 1;if (you.duration[DUR_CONTROL_TELEPORT])you.duration[DUR_CONTROL_TELEPORT] = 1;if (you.duration[DUR_RESIST_POISON])you.duration[DUR_RESIST_POISON] = 1;if (you.duration[DUR_TRANSFORMATION])you.duration[DUR_TRANSFORMATION] = 1;//jmf: added followingif (you.duration[DUR_STONESKIN])you.duration[DUR_STONESKIN] = 1;if (you.duration[DUR_FORESCRY])you.duration[DUR_FORESCRY] = 1;if (you.duration[DUR_SEE_INVISIBLE])you.duration[DUR_SEE_INVISIBLE] = 1;if (you.duration[DUR_SILENCE])you.duration[DUR_SILENCE] = 1;if (you.duration[DUR_CONDENSATION_SHIELD])you.duration[DUR_CONDENSATION_SHIELD] = 1;
static void minefield_card(int power, deck_rarity_type rarity){const int power_level = get_power_level(power, rarity);const int radius = power_level * 2 + 2;for ( int dx = -radius; dx <= radius; ++dx ){for ( int dy = -radius; dy <= radius; ++dy ){if ( dx * dx + dy*dy > radius*radius + 1 )continue;if ( dx == 0 && dy == 0 )continue;const int rx = you.x_pos + dx;const int ry = you.y_pos + dy;if ( !in_bounds(rx, ry) )continue;if ( grd[rx][ry] == DNGN_FLOOR && trap_at_xy(rx,ry) == -1 &&one_chance_in(4 - power_level) ){place_specific_trap(rx, ry, TRAP_RANDOM);}}}}
if ( num_resists ){const duration_type possible_resists[4] = {DUR_RESIST_POISON, DUR_INSULATION,DUR_RESIST_FIRE, DUR_RESIST_COLD};const char* resist_names[4] = {"poison", "electricity", "fire", "cold"};for ( int i = 0; i < 4 && num_resists; ++i ){// if there are n left, of which we need to choose// k, we have chance k/n of selecting the next item.if ( random2(4-i) < num_resists ){// Add a temporary resistyou.duration[possible_resists[i]] += random2(power/7);msg::stream << "You feel resistant to " << resist_names[i]<< '.' << std::endl;--num_resists;if ( num_resists == 0 )break;}}}
static void summon_demon_card(int power, deck_rarity_type rarity){const int power_level = get_power_level(power, rarity);demon_class_type dct;if ( power_level >= 2 )dct = DEMON_GREATER;else if ( power_level == 1 )dct = DEMON_COMMON;elsedct = DEMON_LESSER;create_monster( dct, power/50, BEH_FRIENDLY, you.x_pos, you.y_pos,MHITYOU, 250 );}
/* if (create_monster( summon_any_demon( DEMON_LESSER ), 6,BEH_HOSTILE, you.x_pos, you.y_pos,MHITYOU, 250 ) != -1)*/
}if (you.duration[DUR_RESIST_FIRE] > 1){you.duration[DUR_RESIST_FIRE]--;if (you.duration[DUR_RESIST_FIRE] == 6){mpr("Your fire resistance is about to expire.", MSGCH_DURATION);if (coinflip())you.duration[DUR_RESIST_FIRE]--;}}else if (you.duration[DUR_RESIST_FIRE] == 1){mpr("Your fire resistance expires.", MSGCH_DURATION);you.duration[DUR_RESIST_FIRE] = 0;}if (you.duration[DUR_RESIST_COLD] > 1){you.duration[DUR_RESIST_COLD]--;if (you.duration[DUR_RESIST_COLD] == 6){mpr("Your cold resistance is about to expire.", MSGCH_DURATION);if (coinflip())you.duration[DUR_RESIST_COLD]--;}