Fix some conditions causing permanent stat loss or gain for Mf with stat modifying boots.
Unmerge boots when the player starts levitating or flying on a water square.
Use move_player_to_grid in blink, semi-controlled blink, and teleportation.
Also fix a bug where Mf could random teleport into solid walls.
2K7SL55NUJQ6PBMVPPRCMGS55M2VBZ4CFQYQEKN5SXEW427RKCPAC RCYCFKHI7HUB46VKURMSKGGV2PCMXOCAJQMYHI5AJNGZEEKMIPFQC FCQ3HHQAYE6HPTE3RB2YAGUOK4WJRYUYW63UKUX422QAYDHRTBPAC AUXVWXWIFSTWFA6VZXN2FMG7FQEKRZVV6MD32VQQ7J2RKCXHAVGAC K2CS6TCX2NDVL2ASEHGP4J4K4IJ6FP3ANNKTSIWVG43HPYSBX6ZQC TGJZXTUIAKCFZQJ54ZQEBGFBVZSJCAX6AWDRSH3TP7UJRLGUM5SAC EOMCPVNQLX3IMLC46EAO67DPBH5KEG2FQTPBLGU62HIRWA3UQ7XQC B4X67DGLW77QLGPTMORE2EJ5K5VA3TWIU23HFUF4TZDODXQSFLRQC 3PBG6FJ6WGSR4UM3I7UQUYYCSYU3UBCKCIKYKUEEANIK72TUL4XAC CIAIASCBKKV7VMYBL2CIFAYGFQTB6GIME4FSQGZNQGXO7FXQTA5AC SIDH2P7NBIG5KEOE27XHD3ZT2NQ2OJZFN6VZXWNWYFFY5YVXSSVQC VY2RJLJQMUOVIJOYPTA7AEXPURIV3H6VF7O5QQ7LF44ZS36RTFYAC HB27XKFYVYIEQZGBCEZ6LKPUBMXLIPDAAS636GJ5TULIQ7KND5KQC ENOQQ6DEA6ECRNTBGYYNK7G3DFEILMKQBNKP4SUQIZW2L6HWVR7QC UP6TD25TZ3ENYTOB6N6NA325ROEJPDCW5VPNBRTAFMC7HLFXU4CQC W6EWE6VIRP6OTSSTG3ZZEBN72OIKK6D3AEIP3OWX3HMJBA52SZSAC PNIGZ2ABVEGC6DN6PMKO6Z4M2SQ5EB7VZQT33YMEAUPEZVVEDJZQC BRGAZR5AXWC2IALBVXO5SB354IRQEIRHSK55RZPGFI4AGIOD4LUQC 7X5YDPAU34LOFKEGJYE6GC7EOEDKGT3O6CUGZBYJI45L3FQOAKHQC SBTVKHKZRMVDBYLGQNMZMJXPAYJG43UWBBD7HQJWIPN3BMMHUBJAC 6RJVKSL7RVZIZIZIC4TWIYJQ24RUSB346ODS3NYGDHUIRTC4Z5FQC LS5XCCGKQHSJQGWLWLGTP2F5OYWK4ND5AQQAGRN6H2HVBSXNCCZAC RTNCVAW3IRKSTVGF2RKT4MFCXNSMA6LHW45QVO4FZNYUNMRLJT2AC I2B33Z7NZGC33AMDSSK446AZZYWKPHWLAGULVHKKZU4MVB4BNJOAC || grd(you.pos()) != DNGN_DEEP_WATER)|| monster_at(you.pos())|| env.cgrid(you.pos()) != EMPTY_CLOUD)
|| grd(pos) != DNGN_DEEP_WATER)|| monster_at(pos)|| env.cgrid(pos) != EMPTY_CLOUD)
// Going to assume that move_player_to_grid works, (it should// because terrain type etc. was already checked). could result// in awkward messaging if it cancels for some reason but it's// probably better than getting the blink message after any Mf// transform messages all the time -cao
success = true;// Leave a purple cloud.place_cloud(CLOUD_PURP_SMOKE, you.pos(), 1 + random2(3), KC_YOU);you.moveto(target);if (you.level_type == LEVEL_ABYSS){abyss_teleport(false);if (you.pet_target != MHITYOU)you.pet_target = MHITNOT;
if (you.level_type == LEVEL_ABYSS){abyss_teleport(false);if (you.pet_target != MHITYOU)you.pet_target = MHITNOT;}