OSDN Git Service

featが床であるかどうかの判定(!(feat & 0x20))を剥き出しの演算ではなく
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 28 Jun 2003 18:02:41 +0000 (18:02 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 28 Jun 2003 18:02:41 +0000 (18:02 +0000)
マクロfeat_floor()としてまとめた.

src/cmd1.c
src/defines.h
src/grid.c
src/rooms.c

index 475b50a..dc79cc8 100644 (file)
@@ -4896,7 +4896,7 @@ static bool run_test(void)
                }
 
                /* Analyze unknown grids and floors considering mimic */
-               if (inv || (!(feat & 0x20)))
+               if (inv || feat_floor(feat))
                {
                        /* Looking for open area */
                        if (find_openarea)
index 2780c32..10db0ca 100644 (file)
 
 
 /*
+ * Determine if a "feature" is a "floor"
+ */
+#define feat_floor(F) \
+       (!((F) & 0x20))
+
+
+/*
  * Determine if a "legal" grid is a "floor" grid
  *
  * Line 1 -- forbid doors, rubble, seams, walls
  * -KMW-
  */
 #define cave_floor_bold(Y,X) \
-       (!(cave[Y][X].feat & 0x20))
+       (feat_floor(cave[(Y)][(X)].feat))
 
 
 /*
  * Grid based version of "cave_floor_bold()"
  */
 #define cave_floor_grid(C) \
-    (!((C)->feat & 0x20))
+       (feat_floor((C)->feat))
 
 
 /*
  * Determine if a "boundary" grid is "floor mimic"
  */
 #define boundary_floor_bold(Y,X) \
-    ((cave[(Y)][(X)].feat == FEAT_PERM_SOLID) && \
-      cave[(Y)][(X)].mimic && \
-    !(cave[(Y)][(X)].mimic & 0x20))
+       ((cave[(Y)][(X)].feat == FEAT_PERM_SOLID) && \
+         cave[(Y)][(X)].mimic && feat_floor(cave[(Y)][(X)].mimic))
 
 #define boundary_floor_grid(C) \
-    (((C)->feat == FEAT_PERM_SOLID) && \
-      (C)->mimic && \
-    !((C)->mimic & 0x20))
+       (((C)->feat == FEAT_PERM_SOLID) && \
+         (C)->mimic && feat_floor((C)->mimic))
 
 #define update_playtime() \
 {\
index 444351a..064cf95 100644 (file)
@@ -148,7 +148,7 @@ void place_random_door(int y, int x, bool room)
                c_ptr->mimic = room ? feat_wall_outer : fill_type[randint0(100)];
 
                /* Floor type terrain cannot hide a door */
-               if (!(c_ptr->mimic & 0x20))
+               if (feat_floor(c_ptr->mimic))
                {
                        c_ptr->feat = c_ptr->mimic;
                        c_ptr->mimic = 0;
index 08ff9d5..06d9a45 100644 (file)
@@ -70,7 +70,7 @@ static void place_secret_door(int y, int x)
                c_ptr->mimic = feat_wall_inner;
 
                /* Floor type terrain cannot hide a door */
-               if (!(c_ptr->mimic & 0x20))
+               if (feat_floor(c_ptr->mimic))
                {
                        c_ptr->feat = c_ptr->mimic;
                        c_ptr->mimic = 0;