git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@3813 c06c8d41-db1a-0410-9941-cceddc491573
KAOE5HB3THUKVGFZRO5EZESHEB3Q34WUO5DFMLWIKOBF47LZTIYAC GGEB64C3QQ5PPS7GOFXULDUCRT2NZL2PMIE5UDDUJTUTLLPTDU7QC FEBNNCNH6C44FRFAJKLVC4QF6JLXVEPYUNMCVUJK3KA3ALKSOC3QC O2A7I25VYURCVDZEGRMFCP6X6DEYT4EB3TZESZSDCDDJE2U7QYVAC UTGQ25S6K4R2POPYLVF6A5ZU4PRTN3SIR4DL672HERNAE3RZP7AAC GO6DARZD47R5UPXZIBMPX7PZUGJH24JWYDFMTWWESS4IZR7PAWRQC TDE7UVSZX4XJDAQWKCAPZ5IU25C75KKYUHXFI53JRIWHKK5SAGHQC OBGOBCWABXEGCPYXEY45DRPXL4AVGPATUQ4NFLJGMAF7XLEGOOBAC TMN6MGCYNMQL3GG5P3JKKT4ROF2RB26H4AE6LHNEE76MBRVCDZMQC 7MXX53FZ5VFNAFDQN5WPPYF2MPKL5B3H3TINRKCFV2P6QZ2APVGQC EOJPYR3QD5GGS7GB2P7SBLMOP7YC57YMIVR7VKCOMWNCKNBPESBQC V7IKAPO5OY7CJTT62GMHQOD3EQW42FTTY3KDBOTJUODPS5WMBCHAC DH3D44HGNRXTSZLL5HTHKOPKCO4VZQZVBEMFOAPRJGQMLGN2BFQAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC T2AYVN57EFJQLFUFLAZDXKDAFDGTDLQIEQWQZNYFWJZBYSTYH4QQC NUYXKJP5YXHRDUQW5QW7UC3D5U3VPANIOZAOHFCPWMSRYGMA3GCAC OSGS3PH2L5CBTDVZCZS6OCFQNA4A7RMEXBYJQB7DDZBYYJW7QSSAC SDLKLUNFGVKDS55DDJZCBAVIB7NL3RRYPTACAY65SCUQKV6APFSAC RPOZZWKG5GLPHVZZ7ZKMKS64ZMV2LDCQSARBJFJ6FZOTOKCQO7FAC DODCHP2S4I6VZKQAVXX6D76OPNFI2YWZ4XH3HZTMAJZXA2RJ3XRQC TR4NPGNO5QNNRJNVMNSUEO5QLT37HCXXDOBKXCB5XWXRQNAJ5SHAC YOH32TMLN6QJG4ZFLYWPJF3YUEGIMZPVPYN57RTB26QBBHMICV3AC TV3ZC6WOZKSQQJQN26JIVKCHK6UK7WMDBYZDUYRWEAZ4JB4YVNAAC 5UC5TI7B6NWGIGN74QRBZKDBYUMHLM2ZO5ATXEZ6TZOGOLF3JX5QC C5VA63WAQRWPENIMXRPUPZLZJMC77PL2B3A77HYFWDCZU5QDG7VQC NLQNXH3SVJ52CWXEV35FSSZP32VHC4QFGN3HINF4KO5GZHZMOBKQC NDCVITU5R7TBEUC4FILNFRKWQGUNCJUGW5HA5KW3CQTU6AYRLYWQC QDTVLBRGHDTRUVT7I3O72K6TMOYAUSAJBZUHGOEFU2RKJNUPWZSQC 77H4BWWPPGLM3PLZH4QTAJRXIZTSDVNCOKZE223I437FN2UJ34RQC DOZORMA366M4HB5JKSS27BMCR6ET7QNZNND2B7KV3NVEEPR5H7EAC YA24HFHVUI2LDWFOZR5QSHRIVTAWGSGPAH5E2FPP6ANCL2MTUSTAC KFULGQQOHWUTXOM3BXCCYPGGVGGY4Z6265XUFRCBPNLTZAEHJZSQC MX2KOWAIE37VLSQJWXVEDVQVB3DL325Q7YFUSSHYMAIH53Y74IJQC TC2BJGPEDVBTY6YWMGLBYQKFLPZPEJC5ZN3HPHXFBIBDIEJ2ZTRQC F7Q5PX44SLPANIZXCY67TG2W5JTRVJMHGQW54VJLGB4XRH7R6JBQC RISMOCQM6BKK4XSIRKYLOBB2UPDYJNDAL6OGIIR5GGNZQAK5YSZAC UZ6N6HOUPGVSPC5NQROEEDWMEGJA5XUWUY2AKH5QG65AZ25PVXDAC 2E4RV454MTTCKYLKMSHEEAFPNAFVUXXPBZV3XP6V7QMF4BBWE7TAC DDU4A3JGN5IUIPP5IASOODKPR2WBHSDSV4FITZ6HNXNSXXQACWAQC G2IBQUJ2V2OGM4TR6VKC4CLNVLALTDLB5STOBN7637GOUX2SH4ZAC SJDOBXECX7F3ZPPVR7FPURE53D47PP2TFIF4SB6XPS456PZV3DQAC 3BJ2OOF4F524G6UKVGOZVT6W3FSTSHHTKRJADUBZCHDXZWV3KANQC CGYTZT5QWIEGYKUOLOK7MFXSLJKLYRZONER5ZCDZO5XYWSLG475QC NFOXLH722RGWYY5D63VV6SF2XEJBEOQEFQME6FSA4HZRK3CPLSRQC AOAJ6D3OKSELEYKAT55XCVU5LYJ7SMCZKC6DIEGLLB3TF2LEENWQC UIRWVLX5LDNWURTZOG7EFLXE5OOEL4XBPSLSUHUQSKHC4A7WCVLQC 4HATGRJJE7Q6LXHJ3ZGYTNBLG542KAUEK6ERKARIYRKRWY6VTDKQC 4UXFU3FZOCBSLDQ4S7MJKAE2H7VUHCNRDQMIY6NJ3PHYXWNGISDQC AKDVUYRVYFPCV23KOSWGC3VQ52UK5AH2KZONXTPL57I66V4CRFFAC NNG27Y5ZQAZX6UD7F7M4F6KEZBEDFXPEEC3LFUSX4ESKT7K6UJQAC NW6P7VRKBFBQ2FRDZBXN7APJZPYC4SYCIA3MOOE2KZGX43IXNK2AC RBAGQ2PB7V5YAM5KSHSZR2E3MLKDSRVM5XYGI2TIXP5QMVBOQHDQC PM65H4V4GNPVIJFUQW57DC3VDB7TRUUNXKVZONQKEFZSK3AXX5GQC FSD7GIK3YLZXWLEH37BU6KV3IUCFGXPQL6IZ7H65YWNRBEKDBX5AC WUWTYSQ2Z7HI637WNO2J55LW6WLPBDF2ILH622T47ICW3AN7OWMQC K7SLUAS7TC2T6AG5HMZHVMD4ANGAI42FBSZTB6CTHLSGY2CRY4LQC GT7BSR54BVJKHUCLEBTELGBMNBFFDQW52EVC4XKVEMUVG2UGZMDAC X5WLJCJVW55SXZVP7IKP7ADCJIGNKN4PKAXFECVR6TNK7XSMZR7QC 5K2ANIEXD3CPJM4XNKNPZINP2G4NT7SJBKRN62WNBUKJXFERTILQC UN4CXQWERF622PXUR3ZM4CJWR6R7OOFVELMY22WLVVT7RD3G2XYAC QNKMXCJSGRBEPE6ZNPEXU5EQIOME6EI4DECVC56GLOBCMGWWE6MQC WCK6TM2ZD56WSOK6SMMKBYAYGG4OUCTILLMVVLMB4QO5I5S2IVNAC 5NV5FF4MDZFC5E3UQQSGX2CTESAGBSSEVCR5UIPRZRBYL6TSDGBQC AS2IQQJNNCEQNXXKTGYHLB7RO3ZKCF4F7GK6FJH66BOOKDDRGNIQC OPNCHI4UGN7WBIYPAXVV2C4N22ZSWROA435FJCY5UZVXKWRYQ42QC GVCGKTH5IJ4VSQEIN4CRC7ZFVZW26JPIYNCPTO7GY66CSZZEW3ZQC HFXCFYFH2X3BIZR55ZADL3CV4MQJEEHDSIJZ7YSTHO3HTZP7GWEAC IDTLZ6PEPJP67PO7K5TODLXTBFAEVIE4C3HZCXIQK6OIAQKRVDUQC B62ICMDTN5V7R7RBL4JALFVKEMVOOVLRSJASRNYS6CGFWBEEF5JQC QKGDOYIYKE6B36ION5O2DRW65DWWPZMYNWJVH7LJJ7FPGGM2MYAQC CAGCTYIUYWDHQAJOLVLKOEV5HG6K5ZG7IDHONLIG6BDNCWZJAK4AC ZP2KE7A2LE7Z2S7AC45WE4CXDSEVDTWIMV2EM4IBUKXYJIDU6R7QC HH3HFWVXABJ4IRMN22PPJCREMULZSN6DA7VYKOGECGMNUQTZ5QNQC RCPQNIRPR3NQXEMVLBAQW6657UJFIP43N54UJVEZHJH22OH4UQIQC I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC 5BJPWUPLJFS34FUTFJVKA4A52YMIGV6EWDXLNSDCWBJWBGVSQFGQC 2SNCC2NXKFVBYTWH7THU2QELHONTOBRNCWH6FWYORKKCWZAXTTVAC GBUB77EAYHOFY6GQ5IY3ZSBC7FSQFZZKYNBD5QMCQFIKFLYLWHOQC TCZNXMPFNAWJYUIBTUEOTT73KLB4CU5S6HBKTHRT6KCD4ZVGBGUQC MZXKH5NHXRMX5Y5FG4XXNHZQ7HTQZFX3ARQU55DO4RM5NR3GIAIQC YX2LDGNQNB6AQRKAVXNYQ473X6EVPQEBT5AJKBIIWFIMS3U2BNQQC X6W4FXCQ72PYSDPGMQCZ44QQANZFGTXPUHDC5GW4YFSJ2KPBVAMAC static bool handle_special_ability(monsters *monster, bolt & beem);static bool handle_pickup(monsters *monster);static void handle_behaviour(monsters *monster);static void set_nearest_monster_foe(monsters *monster);static void mons_in_cloud(monsters *monster);static bool monster_move(monsters *monster);static bool plant_spit(monsters *monster, bolt &pbolt);static spell_type map_wand_to_mspell(int wand_type);
static bool _handle_special_ability(monsters *monster, bolt & beem);static bool _handle_pickup(monsters *monster);static void _handle_behaviour(monsters *monster);static void _set_nearest_monster_foe(monsters *monster);static void _mons_in_cloud(monsters *monster);static bool _monster_move(monsters *monster);static bool _plant_spit(monsters *monster, bolt &pbolt);static spell_type _map_wand_to_mspell(int wand_type);
static void monster_drop_ething(monsters *monster,bool mark_item_origins = false)
static void _monster_drop_ething(monsters *monster,bool mark_item_origins = false)
while (tries-- && (!valid_morph( monster, targetc )|| is_poly_power_unsuitable(power, source_power,target_power, relax)));
while (tries-- && (!_valid_morph( monster, targetc )|| _is_poly_power_unsuitable(power, source_power,target_power, relax)));
if (mons_check_set_foe(mon, mx - k, y, friendly, neutral)|| mons_check_set_foe(mon, mx + k, y, friendly, neutral))return;
if (_mons_check_set_foe(mon, mx - k, y, friendly, neutral)|| _mons_check_set_foe(mon, mx + k, y, friendly, neutral)){return;}
handle_special_ability(monster, beem)|| handle_monster_spell(monster, beem): handle_monster_spell(monster, beem)|| handle_special_ability(monster, beem))
_handle_special_ability(monster, beem)|| _handle_monster_spell(monster, beem): _handle_monster_spell(monster, beem)|| _handle_special_ability(monster, beem))
static bool mon_can_move_to_pos(const monsters *monster, const int count_x,const int count_y, bool just_check = false);
static bool _mon_can_move_to_pos(const monsters *monster, const int count_x,const int count_y, bool just_check = false);
if ((mon_can_move_to_pos(monster, x-1, y, true)|| mon_can_move_to_pos(monster, x+1,y, true))&& (mon_can_move_to_pos(monster, x,y-1, true)|| mon_can_move_to_pos(monster, x,y+1, true)))
if ((_mon_can_move_to_pos(monster, x-1, y, true)|| _mon_can_move_to_pos(monster, x+1,y, true))&& (_mon_can_move_to_pos(monster, x,y-1, true)|| _mon_can_move_to_pos(monster, x,y+1, true)))
static void sticky_flame_monster( int mn, kill_category who, int hurt_final );static bool affects_wall(const bolt &beam, int wall_feature);static bool isBouncy(bolt &beam, unsigned char gridtype);static int beam_source(const bolt &beam);static std::string beam_zapper(const bolt &beam);static bool beam_term_on_target(bolt &beam, int x, int y);static void beam_explodes(bolt &beam, int x, int y);static int affect_wall(bolt &beam, int x, int y);static int affect_place_clouds(bolt &beam, int x, int y);static void affect_place_explosion_clouds(bolt &beam, int x, int y);static int affect_player(bolt &beam);static void affect_items(bolt &beam, int x, int y);static int affect_monster(bolt &beam, monsters *mon);static int affect_monster_enchantment(bolt &beam, monsters *mon);static void beam_paralyses_monster( bolt &pbolt, monsters *monster );static int range_used_on_hit(bolt &beam);static void explosion1(bolt &pbolt);static void explosion_map(bolt &beam, int x, int y,int count, int dir, int r);static void explosion_cell(bolt &beam, int x, int y, bool drawOnly);
static void _sticky_flame_monster( int mn, kill_category who, int hurt_final );static bool _affects_wall(const bolt &beam, int wall_feature);static bool _isBouncy(bolt &beam, unsigned char gridtype);static int _beam_source(const bolt &beam);static std::string _beam_zapper(const bolt &beam);static bool _beam_term_on_target(bolt &beam, int x, int y);static void _beam_explodes(bolt &beam, int x, int y);static int _affect_wall(bolt &beam, int x, int y);static int _affect_place_clouds(bolt &beam, int x, int y);static void _affect_place_explosion_clouds(bolt &beam, int x, int y);static int _affect_player(bolt &beam);static void _affect_items(bolt &beam, int x, int y);static int _affect_monster(bolt &beam, monsters *mon);static int _affect_monster_enchantment(bolt &beam, monsters *mon);static void _beam_paralyses_monster( bolt &pbolt, monsters *monster );static int _range_used_on_hit(bolt &beam);static void _explosion1(bolt &pbolt);static void _explosion_map(bolt &beam, int x, int y,int count, int dir, int r);static void _explosion_cell(bolt &beam, int x, int y, bool drawOnly);
static void ench_animation( int flavour, const monsters *mon = NULL, bool force = false);static void zappy(zap_type z_type, int power, bolt &pbolt);static void monster_die(monsters *mons, const bolt &beam);
static void _ench_animation( int flavour, const monsters *mon = NULL, bool force = false);static void _zappy(zap_type z_type, int power, bolt &pbolt);static void _monster_die(monsters *mons, const bolt &beam);
affect_items(beam, realx, realy);if (affects_wall(beam, grd[realx][realy]))affect_wall(beam, realx, realy);
_affect_items(beam, realx, realy);if (_affects_wall(beam, grd[realx][realy]))_affect_wall(beam, realx, realy);