(ant hole, cockatrice nest, leprechaun hall)
eating rings while polymorphed didn't handle bonus/penalty for increase damage,
increase accuracy, or protection correctly
+shopkeeper's position in front of shop door didn't correctly handle bottom
+ edge of irregularly shaped shop due to typo or copy+paste error
+ (latent bug; no such shops are present in 3.6.x)
Fixes to Post-3.6.1 Problems that Were Exposed Via git Repository
/* check that the shopkeeper placement is sane */
if (sroom->irregular) {
int rmno = (int) ((sroom - rooms) + ROOMOFFSET);
+
if (isok(sx - 1, sy) && !levl[sx - 1][sy].edge
&& (int) levl[sx - 1][sy].roomno == rmno)
sx--;
sy--;
else if (isok(sx, sy + 1) && !levl[sx][sy + 1].edge
&& (int) levl[sx][sy + 1].roomno == rmno)
- sx++;
+ sy++;
else
goto shk_failed;
- } else if (sx == sroom->lx - 1)
+ } else if (sx == sroom->lx - 1) {
sx++;
- else if (sx == sroom->hx + 1)
+ } else if (sx == sroom->hx + 1) {
sx--;
- else if (sy == sroom->ly - 1)
+ } else if (sy == sroom->ly - 1) {
sy++;
- else if (sy == sroom->hy + 1)
+ } else if (sy == sroom->hy + 1) {
sy--;
- else {
+ } else {
shk_failed:
#ifdef DEBUG
/* Said to happen sometimes, but I have never seen it. */