OSDN Git Service

時たま1x1マスで1部屋だけの階ができることがあったので階の部屋数の下限を設定した。
authoriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 16 Dec 2003 09:23:06 +0000 (09:23 +0000)
committeriks <iks@0568b783-4c39-0410-ac80-bf13821ea2a2>
Tue, 16 Dec 2003 09:23:06 +0000 (09:23 +0000)
(下限数)=(階の縦の画面数)+(階の横の画面数)  (例えば、1x1画面は2部屋、3x3画面は6部屋)
この変更のため、金鉱では時折、階の再生成のメッセージが連続して出ることがあるが、仕方がないだろう。

src/rooms.c

index 4892fae..ad2ab45 100644 (file)
@@ -5974,6 +5974,9 @@ bool generate_rooms(void)
        /* Limit number of rooms */
        int dun_rooms = DUN_ROOMS_MAX * area_size / 100;
 
+       /* Limit minimum number of rooms */
+       int min_rooms = 8 - ((MAX_HGT/ cur_hgt) + (MAX_WID / cur_wid));
+
        /* Assume normal cave */
        room_info_type *room_info_ptr = room_info_normal;
 
@@ -6145,7 +6148,7 @@ bool generate_rooms(void)
                if (!remain) break;
        }
 
-       if (rooms_built < 1) return FALSE;
+       if (rooms_built < min_rooms) return FALSE;
 
        if (cheat_room)
        {