github pull request #113 - shopkeeper placement
Fixes #113 Incorporate the contents of pull request #113 to fix shopkeeper setup for irregularly shaped shop rooms. Code intending to adjust the Y coordinate was erroneously incrementing the X one instead. (I'm not sure whether we have any irregular shops at all but if so, they don't have the necessary orientation to trigger this bug.) And add a couple of formatting tweaks in the vicinity....
This commit is contained in:
13
src/shknam.c
13
src/shknam.c
@@ -602,6 +602,7 @@ struct mkroom *sroom;
|
||||
/* 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--;
|
||||
@@ -613,18 +614,18 @@ struct mkroom *sroom;
|
||||
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. */
|
||||
|
||||
Reference in New Issue
Block a user