OSDN Git Service

罠ピットが壁の中に孤立している事があるバグ修正。
authormogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 23 Oct 2002 07:40:44 +0000 (07:40 +0000)
committermogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Wed, 23 Oct 2002 07:40:44 +0000 (07:40 +0000)
部屋の中のグリッドはCAVE_FLOORで埋めておかないとうまくトンネルが繋がらない。

src/rooms.c

index 2c1eed2..dbd93d5 100644 (file)
@@ -5238,7 +5238,8 @@ static void build_type13(int by0, int bx0)
                for (x = x1 - 1; x <= x2 + 1; x++)
                {
                         c_ptr = &cave[y][x];
-                        place_solid_grid(c_ptr);
+                        place_inner_grid(c_ptr);
+                       c_ptr->info |= (CAVE_ROOM);
                }
        }
 
@@ -5247,12 +5248,10 @@ static void build_type13(int by0, int bx0)
         {
                 c_ptr = &cave[yval-2][x];
                 place_floor_grid(c_ptr);
-                c_ptr->info |= (CAVE_ROOM);
                 add_cave_info(yval-2, x, CAVE_ICKY);
 
                 c_ptr = &cave[yval+2][x];
                 place_floor_grid(c_ptr);
-                c_ptr->info |= (CAVE_ROOM);
                 add_cave_info(yval+2, x, CAVE_ICKY);
         }
 
@@ -5261,12 +5260,10 @@ static void build_type13(int by0, int bx0)
         {
                 c_ptr = &cave[yval-3][x];
                 place_floor_grid(c_ptr);
-                c_ptr->info |= (CAVE_ROOM);
                 add_cave_info(yval-3, x, CAVE_ICKY);
 
                 c_ptr = &cave[yval+3][x];
                 place_floor_grid(c_ptr);
-                c_ptr->info |= (CAVE_ROOM);
                 add_cave_info(yval+3, x, CAVE_ICKY);
         }
 
@@ -5281,50 +5278,50 @@ static void build_type13(int by0, int bx0)
                 place_floor_grid(c_ptr);
        }
 
+       /* Place the outer walls */
+       for (y = y1 - 1; y <= y2 + 1; y++)
+       {
+               c_ptr = &cave[y][x1 - 1];
+               place_outer_grid(c_ptr);
+               c_ptr = &cave[y][x2 + 1];
+               place_outer_grid(c_ptr);
+       }
+       for (x = x1 - 1; x <= x2 + 1; x++)
+       {
+               c_ptr = &cave[y1 - 1][x];
+               place_outer_grid(c_ptr);
+               c_ptr = &cave[y2 + 1][x];
+               place_outer_grid(c_ptr);
+       }
+
        /* Random corridor */
         if (one_in_(2))
         {
                 for (y = y1; y <= yval; y++)
                 {
-                        c_ptr = &cave[y][x1];
-                        place_floor_grid(c_ptr);
+                        place_floor_bold(y, x2);
+                        place_solid_bold(y, x1-1);
                 }
                 for (y = yval; y <= y2 + 1; y++)
                 {
-                        c_ptr = &cave[y][x2];
-                        place_floor_grid(c_ptr);
+                        place_floor_bold(y, x1);
+                        place_solid_bold(y, x2+1);
                 }
         }
         else
         {
                 for (y = yval; y <= y2 + 1; y++)
                 {
-                        c_ptr = &cave[y][x1];
-                        place_floor_grid(c_ptr);
+                        place_floor_bold(y, x1);
+                        place_solid_bold(y, x2+1);
                 }
                 for (y = y1; y <= yval; y++)
                 {
-                        c_ptr = &cave[y][x2];
-                        place_floor_grid(c_ptr);
+                        place_floor_bold(y, x2);
+                        place_solid_bold(y, x1-1);
                 }
         }
 
-       /* Place the outer walls */
-       for (y = y1 - 1; y <= y2 + 1; y++)
-       {
-               c_ptr = &cave[y][x1 - 1];
-               place_outer_grid(c_ptr);
-               c_ptr = &cave[y][x2 + 1];
-               place_outer_grid(c_ptr);
-       }
-       for (x = x1 - 1; x <= x2 + 1; x++)
-       {
-               c_ptr = &cave[y1 - 1][x];
-               place_outer_grid(c_ptr);
-               c_ptr = &cave[y2 + 1][x];
-               place_outer_grid(c_ptr);
-       }
-
        /* Place the wall open trap */
        cave[yval][xval].mimic = cave[yval][xval].feat;
        cave[yval][xval].feat = FEAT_TRAP_OPEN;