When changing levels, the state of rndmonst() is reset, causing the monster
choices to be recalculated. However, the frequency counts for initial
uncommon() monsters were never cleared. Thus, if the first non-extinct
monster were a hell monster, and you returned to the main dungeon, the hell
monster will remain in the list and could be selected.
traveling while standing on a trap would sometime step in the wrong direction
avoid traveling into water/lava, using usual running rules
unchanging iron golem would still rehumanize in a rust trap
+fix an impossible rndmonst: bad `mndx' bug
Platform- and/or Interface-Specific Fixes
rndmonst_state.choice_count = 0;
/* look for first common monster */
- for (mndx = LOW_PM; mndx < SPECIAL_PM; mndx++)
+ for (mndx = LOW_PM; mndx < SPECIAL_PM; mndx++) {
if (!uncommon(mndx)) break;
+ rndmonst_state.mchoices[mndx] = 0;
+ }
if (mndx == SPECIAL_PM) {
/* evidently they've all been exterminated */
#ifdef DEBUG