OSDN Git Service

ヘルプの検索機能や強調機能をキャンセルするとフリーズする場合があった
[hengband/hengband.git] / src / rooms.c
index df90f70..2e8f338 100644 (file)
@@ -359,14 +359,14 @@ static bool find_space(int *y, int *x, int height, int width)
        /* Initiallize */
        candidates = 0;
 
-       /* Count the number of varid places */
+       /* Count the number of valid places */
        for (block_y = dun->row_rooms - blocks_high; block_y >= 0; block_y--)
        {
                for (block_x = dun->col_rooms - blocks_wide; block_x >= 0; block_x--)
                {
                        if (find_space_aux(blocks_high, blocks_wide, block_y, block_x))
                        {
-                               /* Find a varid place */
+                               /* Find a valid place */
                                candidates++;
                        }
                }
@@ -3446,6 +3446,7 @@ static bool hack_isnt_wall(int y, int x, int c1, int c2, int c3, int feat1, int
                else if (cave[y][x].feat <= c3)
                {
                        cave[y][x].feat = feat3;
+                       cave[y][x].info &= ~(CAVE_MASK);
                        cave[y][x].info |= info3;
                        return TRUE;
                }
@@ -6109,6 +6110,7 @@ static bool build_type15(void)
                                c_ptr = &cave[y][x];
                                place_inner_perm_grid(c_ptr);
                                c_ptr->feat = feat_permanent_glass_wall;
+                               cave[yval + ddy_ddd[dir1]][xval + ddx_ddd[dir1]].info |= (CAVE_ICKY);
                        }
 
                        /* Glass door */
@@ -6122,6 +6124,7 @@ static bool build_type15(void)
                        /* Place a potion */
                        get_obj_num_hook = kind_is_potion;
                        place_object(yval, xval, AM_NO_FIXED_ART);
+                       cave[yval][xval].info |= (CAVE_ICKY);
                }
                break;
 
@@ -6174,6 +6177,7 @@ static bool build_type15(void)
 
                        /* Place an object */
                        place_object(yval, xval, AM_NO_FIXED_ART);
+                       cave[yval][xval].info |= (CAVE_ICKY);
                }
                break;
 
@@ -6235,6 +6239,11 @@ static bool build_type15(void)
                                get_obj_num_hook = kind_is_potion;
                                place_object(yval + 1, xval, AM_NO_FIXED_ART);
                        }
+
+                       for (y = yval - 2; y <= yval + 2; y++)
+                               for (x = xval - 2; x <= xval + 2; x++)
+                                       cave[y][x].info |= (CAVE_ICKY);
+
                }
                break;
        }