Fix 1996304: the Swap card incorrectly swapping monsters/player caught in a net
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@5941 c06c8d41-db1a-0410-9941-cceddc491573
HAMUM5IA4BJMLRIME7KVVVYLRHVS55RIYMGLLQZL3F7QEP7FJ5KAC ND4ACNEVS6XTHPUSWPD6OCD7UXVLGCC4VNHUYRZNGRRO6ETD77EAC DF5LOTJFSXOT7UBDHLBDLGA22OY4L7ZF6CVFP6H3KL4N5CHB5C5QC CIAIASCBKKV7VMYBL2CIFAYGFQTB6GIME4FSQGZNQGXO7FXQTA5AC SVY2PTCLXR3KNPQAWXVXTTGCC5DR334HOAKHYO3VDDRWM2BWMALAC Z75MWMOPGK3RC3ERIV5AW52CRJDTYWLXYGE6CHRF4MCB5EJ7WH6QC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC V7IKAPO5OY7CJTT62GMHQOD3EQW42FTTY3KDBOTJUODPS5WMBCHAC WQLOHSNCA3VOMDJF6IINJYKSYVYZEBPJJWBB33QSNE4RP5HEXPMAC JP7SVXCIKEPVDD4Q5CDYDATPK7X5XOYW3T6QK2Y6EWHFH52LBK3QC 6MAMXLPWLW5IXKQXGUNSKNZNHZM7U24GQNN4IWZL2FKKGAKL23YAC TO43FWKHNIA5MVDOFXYHQODTLBQYEZKX5UIUGID57436UF7G2EXQC RVST2QHYJ757ZHK4AUJ5NGPDZ44AD6RVFVXYPKQIBJXZBDNUCHXQC NLXVJSK53M3GCGGVJWYPHYZJ2A7JAF2FEYQPIGLRUYJ3FTWYONLQC 4HLF6Q3OBOOHCCJ76L2BXVIYI6EMJ2G7O4XXZPFTLFP6BQGSUZNAC YOYLOYEHDT254RQ6KODMNSSNWS5S4AMT35QAXLFWZAPX7BGL7MMAC void check_net_will_hold_monster(monsters *mons){if (mons->body_size(PSIZE_BODY) >= SIZE_GIANT){int net = get_trapping_net(mons->x, mons->y);if (net != NON_ITEM)destroy_item(net);if (see_grid(mons->x, mons->y)){if (player_monster_visible(mons)){mprf("The net rips apart, and %s comes free!",mons->name(DESC_NOCAP_THE).c_str());}elsempr("All of a sudden the net rips apart!");}}else if (mons_is_insubstantial(mons->type)|| mons->type == MONS_OOZE|| mons->type == MONS_PULSATING_LUMP){const int net = get_trapping_net(mons->x, mons->y);if (net != NON_ITEM)remove_item_stationary(mitm[net]);if (mons_is_insubstantial(mons->type)){simple_monster_message(mons," drifts right through the net!");}else{simple_monster_message(mons," oozes right through the net!");}}elsemons->add_ench(ENCH_HELD);}
if (see_grid(monster->x, monster->y)){if (player_monster_visible(monster)){mprf("The net rips apart, and %s comes free!",monster->name(DESC_NOCAP_THE).c_str());}elsempr("All of a sudden the net rips apart!");}}else if (mons_is_insubstantial(monster->type)|| monster->type == MONS_OOZE|| monster->type == MONS_PULSATING_LUMP){const int net = get_trapping_net(monster->x, monster->y);if (net != NON_ITEM)remove_item_stationary(mitm[net]);if (mons_is_insubstantial(monster->type)){simple_monster_message(monster," drifts right through the net!");}else{simple_monster_message(monster," oozes right through the net!");}}elsemonster->add_ench(ENCH_HELD);}
if (mon_caught){if (you.body_size(PSIZE_BODY) >= SIZE_GIANT){mpr("The net rips apart!");you.attribute[ATTR_HELD] = 0;int net = get_trapping_net(you.x_pos, you.y_pos);if (net != NON_ITEM)destroy_item(net);}else{you.attribute[ATTR_HELD] = 10;mpr("You become entangled in the net!");}if (!you_caught)mon.del_ench(ENCH_HELD, true);}