From: cohrs Date: Wed, 12 Feb 2003 02:07:22 +0000 (+0000) Subject: U260 - waiting times out for no reason while in were form X-Git-Tag: MOVE2GIT~2193 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b48b6addf3bb86bf4c6b1fbc2e6e6bf19209fcb3;p=nethack U260 - waiting times out for no reason while in were form The initial report thought this was related to summoning help. It's not. moveloop would attempt to call you_were() even when you_were() would not actually change your form. Certainly there's a layering problem here, but for now, just put in the same check peffects() uses to avoid calling you_were() unnecessarily. --- diff --git a/doc/fixes34.1 b/doc/fixes34.1 index 208c0b73f..a56ecf632 100644 --- a/doc/fixes34.1 +++ b/doc/fixes34.1 @@ -381,6 +381,7 @@ applying figurines to an adjacent spot over water does drowning checks fix sequencing of Magicbane's hit messages avoid buffer overflow from long or too many -s params wake up first if trying to crawl out of water while asleep +while waiting, don't try to change into were form when already in were form Platform- and/or Interface-Specific Fixes diff --git a/src/allmain.c b/src/allmain.c index d3004e57a..81350f448 100644 --- a/src/allmain.c +++ b/src/allmain.c @@ -240,7 +240,8 @@ moveloop() change = 0; if(Polymorph && !rn2(100)) change = 1; - else if (u.ulycn >= LOW_PM && !rn2(80 - (20 * night()))) + else if (u.ulycn >= LOW_PM && !Upolyd && + !rn2(80 - (20 * night()))) change = 2; if (change && !Unchanging) { if (multi >= 0) {