]> granicus.if.org Git - nethack/commitdiff
U260 - waiting times out for no reason while in were form
authorcohrs <cohrs>
Wed, 12 Feb 2003 02:07:22 +0000 (02:07 +0000)
committercohrs <cohrs>
Wed, 12 Feb 2003 02:07:22 +0000 (02:07 +0000)
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.

doc/fixes34.1
src/allmain.c

index 208c0b73fe4521764bf3ab998ad5c9a907cfa33d..a56ecf6328a5e970e99da1b9544ecfa0b7a3ea03 100644 (file)
@@ -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
index d3004e57abb554138c56fd72ce1687a14ab6b429..81350f448f0af63317986bf29f12302278a14e16 100644 (file)
@@ -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) {