Fixed a possible crash when using Backspace to restart character selection.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1855 c06c8d41-db1a-0410-9941-cceddc491573
LUNOTEIMYZJ7JL5P55GEHUVSDEZMYX3TWYUB2ABRHAYJEWQSSXIAC DWQDVEHZSTDVFS2GU24ZLIGJDA3M4767TB734JAQEAUVOOCLZ75AC GUXTGUEMZYBRGV5QUAQSJHG3AOIQDWWCDIMOX4LASFJAZVGL2WQAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC CIPVRZGLOZHCERK6YPOBV3P2E4IAB4H6D5EHLRQE2O5E4P4VCBUAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC SWOYPTHJAWFEDBMB3ROT33VQZIXGZD5UOXEV456DDUENW2HGA66QC 7NDXS36TE7QVXTXJWMYSVG5UHCCLPIO4VL6NXFGTDK3ZNKE3A2IAC HYS3HXTXATFPN7GLN3WBGDCP22UT2D3JBVUS7SP5FE7L54TDCJRQC 5KJCHLIUFKRPMIVWUAYT6EOF7SW4PTQF6Y5OPEFWXGLE7DUGYLZAC XRZPPYWPWUOM4SFNI6BHKH2UKJQNLKOV6Y7XIEPEZXE5QYRT26PAC TPSCOEB3X6LNZ7F5UBMHDZ4IUE4H3RLX6IGNW65VSJBDMNNZ3FMAC DTO3EUKWHZ5RJNGNCFYXSOVTIPVXPP637F2W7WFGYKJ7JK7VNKNQC MBBPLL4SZUB3JUUYQYLZW7S5OXRCEGJX3WWADOQXGHWQ7BIKCY5QC YYHCM4CUN6G5PFWPGOYMDYX4P3SGNYUT5SZK5AUWUL2G7RULQJDAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC QKGDOYIYKE6B36ION5O2DRW65DWWPZMYNWJVH7LJJ7FPGGM2MYAQC YCL3W2PFE6ILTGBFODCSXNPDIA46KVSZP2TI7HDMYAOEJT65RIEAC summs = create_monster( MONS_DANCING_WEAPON, numsc, behavi,you.x_pos, you.y_pos, you.pet_target, 1 );
// cursed weapons become hostileif (item_cursed( you.inv[wpn] ) || force_hostile)behavi = BEH_HOSTILE;summs = create_monster( MONS_DANCING_WEAPON, numsc, behavi,you.x_pos, you.y_pos, you.pet_target, 1 );if ( summs == -1 )failed = true;}
// must delete the item before failing!mitm[i].base_type = OBJ_UNASSIGNED;mitm[i].quantity = 0;goto failed_spell;
destroy_item(i);if ( wpn != -1 )mpr("Your weapon vibrates crazily for a second.");elsemsg::stream << "Your " << your_hand(true) << " twitch."<< std::endl;return;
snprintf(info, INFO_SIZE, "%s%s%s", you.your_name, title, race_class);text += info;int k = get_number_of_cols() - linelength -1;text += std::string(k, ' ');snprintf(info, INFO_SIZE, "%s", time_turns);text += info;
text += you.your_name;text += title;text += race_class;text += std::string(get_number_of_cols() - linelength - 1, ' ');text += time_turns;
// note that this uses full ( not random2limit(foo,40) ) player_evasion.trap_hit = (20 + (you.your_level * 2)) * random2(200) / 100;your_dodge = player_evasion() + random2(you.dex) / 3- 2 + (you.duration[DUR_REPEL_MISSILES] * 10);if (trap_hit >= your_dodge && you.duration[DUR_DEFLECT_MISSILES] == 0)
else
if (poison && random2(100) < 50 - (3 * player_AC()) / 2
your_dodge = player_evasion() + random2(you.dex) / 3- 2 + (you.duration[DUR_REPEL_MISSILES] * 10);if (trap_hit >= your_dodge && you.duration[DUR_DEFLECT_MISSILES] == 0){msg += "hits you!";mpr(msg.c_str());if (poison && random2(100) < 50 - (3 * player_AC()) / 2
damage_taken = roll_dice( pbolt.damage );damage_taken -= random2( player_AC() + 1 );if (damage_taken > 0)ouch( damage_taken, 0, KILLED_BY_TRAP, pbolt.name.c_str() );
if (player_light_armour(true) && coinflip())exercise( SK_DODGING, 1 );
else{msg += "misses you.";mpr(msg.c_str());}if (player_light_armour(true) && coinflip())exercise( SK_DODGING, 1 );out_of_trap:
if (keyin == '*' || keyin == '?'){nthing = list_spells();needs_redraw = true;}if (isalpha( nthing ) || nthing == ESCAPE)keyin = nthing;else{mesclr( true );goto query;}
keyin = get_ch();if (keyin == '?' || keyin == '*')keyin = list_spells();
index_1 = letter_to_index( input_1 );spell_type spell = get_spell_by_letter( input_1 );
const int input_1 = keyin;const int index_1 = letter_to_index( input_1 );spell_type spell = get_spell_by_letter( input_1 );
// print out spell in new slot (now at input_2)mprf("%c - %s", input_2, spell_title( get_spell_by_letter(input_2) ) );
// print out spell in new slotmprf("%c - %s", input_2, spell_title(get_spell_by_letter(input_2)));