From 672ef5223aeaa84b5b4d62ae0355bda595060cf4 Mon Sep 17 00:00:00 2001 From: Pasi Kallinen Date: Sat, 25 Apr 2015 12:00:39 +0300 Subject: [PATCH] Fix adding doors to levels --- src/mklev.c | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/mklev.c b/src/mklev.c index 858a61664..b6944e437 100644 --- a/src/mklev.c +++ b/src/mklev.c @@ -343,18 +343,30 @@ register struct mkroom *aroom; { register struct mkroom *broom; register int tmp; + int i; + + if (aroom->doorct == 0) + aroom->fdoor = doorindex; aroom->doorct++; - broom = aroom+1; - if(broom->hx < 0) - tmp = doorindex; - else - for(tmp = doorindex; tmp > broom->fdoor; tmp--) - doors[tmp] = doors[tmp-1]; + + for (tmp = doorindex; tmp > aroom->fdoor; tmp--) + doors[tmp] = doors[tmp - 1]; + + for (i = 0; i < nroom; i++) { + broom = &rooms[i]; + if (broom != aroom && broom->doorct && broom->fdoor >= aroom->fdoor) + broom->fdoor++; + } + for (i = 0; i < nsubroom; i++) { + broom = &subrooms[i]; + if (broom != aroom && broom->doorct && broom->fdoor >= aroom->fdoor) + broom->fdoor++; + } + doorindex++; - doors[tmp].x = x; - doors[tmp].y = y; - for( ; broom->hx >= 0; broom++) broom->fdoor++; + doors[aroom->fdoor].x = x; + doors[aroom->fdoor].y = y; } STATIC_OVL void -- 2.40.0