OSDN Git Service

微少な速度よりも混乱しないコードの方が良いという事で、
authormogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 2 Aug 2003 03:32:54 +0000 (03:32 +0000)
committermogami <mogami@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 2 Aug 2003 03:32:54 +0000 (03:32 +0000)
_nothereさんの一番最初(厳密には「細かい修正」が入った2番目)のコード
に戻した。つまり、c_ptr->mimicを参照するときに
byte feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
を使うコード。

src/cave.c
src/cmd1.c
src/cmd2.c
src/dungeon.c
src/generate.c
src/grid.c
src/rooms.c
src/wild.c
src/xtra2.c

index 8992417..4cb5abb 100644 (file)
@@ -941,7 +941,7 @@ void map_info(int y, int x, byte *ap, char *cp)
        s16b this_o_idx, next_o_idx = 0;
 
        /* Feature code (applying "mimic" field) */
-       byte feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+       byte feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
        byte a;
        byte c;
@@ -1757,7 +1757,7 @@ void note_spot(int y, int x)
        byte feat;
 
        /* Feature code (applying "mimic" field) */
-       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
 
        /* Blind players see nothing */
@@ -4687,7 +4687,7 @@ void map_area(int range)
                        c_ptr = &cave[y][x];
 
                        /* Feature code (applying "mimic" field) */
-                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                        /* All non-walls are "checked" */
                        if ((feat <= FEAT_DOOR_TAIL) ||
@@ -4709,7 +4709,7 @@ void map_area(int range)
                                        c_ptr = &cave[y + ddy_ddd[i]][x + ddx_ddd[i]];
 
                                        /* Feature code (applying "mimic" field) */
-                                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                                        /* Memorize walls (etc) */
                                        if ((feat >= FEAT_RUBBLE) && (feat != FEAT_DIRT) && (feat != FEAT_GRASS))
@@ -4776,7 +4776,7 @@ void wiz_lite(bool ninja)
                        cave_type *c_ptr = &cave[y][x];
 
                        /* Feature code (applying "mimic" field) */
-                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                        /* Process all non-walls */
                        if (cave_floor_bold(y, x) || (feat == FEAT_RUBBLE) || (feat == FEAT_TREES) || (feat == FEAT_MOUNTAIN))
@@ -4791,7 +4791,7 @@ void wiz_lite(bool ninja)
                                        c_ptr = &cave[yy][xx];
 
                                        /* Feature code (applying "mimic" field) */
-                                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                                        /* Memorize normal features */
                                        if (ninja)
@@ -5256,7 +5256,7 @@ void glow_deep_lava_and_bldg(void)
                        c_ptr = &cave[y][x];
 
                        /* Feature code (applying "mimic" field) */
-                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                        if ((feat == FEAT_DEEP_LAVA) ||
                           ((feat >= FEAT_SHOP_HEAD) &&
index dc79cc8..942d66a 100644 (file)
@@ -3927,7 +3927,7 @@ msg_format("%s
                oktomove = FALSE;
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Disturb the player */
                disturb(0, 0);
@@ -4364,7 +4364,7 @@ static int see_wall(int dir, int y, int x)
        c_ptr = &cave[y][x];
 
        /* Feature code (applying "mimic" field) */
-       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
        /* Must be known to the player */
        if (c_ptr->info & (CAVE_MARK))
@@ -4749,7 +4749,7 @@ static bool run_test(void)
                c_ptr = &cave[row][col];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Visible monsters abort running */
                if (c_ptr->m_idx)
@@ -4974,7 +4974,7 @@ static bool run_test(void)
                        c_ptr = &cave[row][col];
 
                        /* Feature code (applying "mimic" field) */
-                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                        /* Unknown grid or non-wall XXX XXX XXX cave_floor_grid(c_ptr)) */
                        if (!(c_ptr->info & (CAVE_MARK)) ||
@@ -5015,7 +5015,7 @@ static bool run_test(void)
                        c_ptr = &cave[row][col];
 
                        /* Feature code (applying "mimic" field) */
-                       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                        /* Unknown grid or non-wall XXX XXX XXX cave_floor_grid(c_ptr)) */
                        if (!(c_ptr->info & (CAVE_MARK)) ||
@@ -5145,12 +5145,12 @@ void run_step(int dir)
        {
                cave_type   *c_ptr;
                byte feat;
-       
+
                /* Access grid */
                c_ptr = &cave[py+ddy[dir]][px+ddx[dir]];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Hack -- do not start silly run */
                if (see_wall(dir, py, px) &&
index 0a40e15..ea612cb 100644 (file)
@@ -949,8 +949,8 @@ static int count_dt(int *y, int *x, bool (*test)(int feat), bool under)
                if (!(c_ptr->info & (CAVE_MARK))) continue;
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-               
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
                /* Not looking for this feature */
                if (!((*test)(feat))) continue;
 
@@ -1221,8 +1221,8 @@ void do_cmd_open(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-               
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
                /* Check for chest */
                o_idx = chest_check(y, x);
 
@@ -1384,8 +1384,8 @@ void do_cmd_close(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
-               
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
+
                /* Require open/broken door */
                if ((feat != FEAT_OPEN) && (feat != FEAT_BROKEN))
                {
@@ -1528,7 +1528,7 @@ static bool do_cmd_tunnel_aux(int y, int x)
        c_ptr = &cave[y][x];
 
        /* Feature code (applying "mimic" field) */
-       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
        /* Sound */
        sound(SOUND_DIG);
@@ -1839,7 +1839,7 @@ void do_cmd_tunnel(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* No tunnelling through doors */
                if (((feat >= FEAT_DOOR_HEAD) && (feat <= FEAT_DOOR_TAIL)) ||
@@ -2353,7 +2353,7 @@ void do_cmd_disarm(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Check for chests */
                o_idx = chest_check(y, x);
@@ -2576,7 +2576,7 @@ void do_cmd_bash(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Nothing useful */
                if (!((feat >= FEAT_DOOR_HEAD) &&
@@ -2672,7 +2672,7 @@ void do_cmd_alter(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Take a turn */
                energy_use = 100;
@@ -2801,7 +2801,7 @@ void do_cmd_spike(void)
                c_ptr = &cave[y][x];
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Require closed door */
                if (!((feat >= FEAT_DOOR_HEAD) &&
index b13bcbb..3136af1 100644 (file)
@@ -2130,7 +2130,7 @@ msg_print("
                                                c_ptr = &cave[y][x];
 
                                                /* Feature code (applying "mimic" field) */
-                                               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                                               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                                                if (!is_mirror_grid(c_ptr) && (feat != FEAT_QUEST_ENTER) && (feat != FEAT_ENTRANCE))
                                                {
index daa2e1a..bb35b34 100644 (file)
@@ -482,7 +482,7 @@ static void set_bound_perm_wall(cave_type *c_ptr)
                        c_ptr->feat -= (FEAT_MAGMA_K - FEAT_MAGMA);
 
                /* Set boundary mimic */
-               c_ptr->mimic = f_info[c_ptr->feat].mimic;
+               c_ptr->mimic = c_ptr->feat;
        }
 
        /* Add "solid" perma-wall */
index e5dd7d9..064cf95 100644 (file)
@@ -145,7 +145,7 @@ void place_random_door(int y, int x, bool room)
                place_closed_door(y, x);
 
                /* Hide. If on the edge of room, use outer wall. */
-               c_ptr->mimic = f_info[room ? feat_wall_outer : fill_type[randint0(100)]].mimic;
+               c_ptr->mimic = room ? feat_wall_outer : fill_type[randint0(100)];
 
                /* Floor type terrain cannot hide a door */
                if (feat_floor(c_ptr->mimic))
index 817a754..c5ae47c 100644 (file)
@@ -67,7 +67,7 @@ static void place_secret_door(int y, int x)
                place_closed_door(y, x);
 
                /* Hide by inner wall because this is used in rooms only */
-               c_ptr->mimic = f_info[feat_wall_inner].mimic;
+               c_ptr->mimic = feat_wall_inner;
 
                /* Floor type terrain cannot hide a door */
                if (feat_floor(c_ptr->mimic))
index 669f0c1..7da994e 100644 (file)
@@ -815,7 +815,7 @@ void wilderness_gen(void)
                        else
                        {
                                /* Feature code (applying "mimic" field) */
-                               byte feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+                               byte feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                                if (!is_mirror_grid(c_ptr) && (feat != FEAT_QUEST_ENTER) && (feat != FEAT_ENTRANCE))
                                {
index 8b4119e..14215db 100644 (file)
@@ -2902,7 +2902,7 @@ static bool target_set_accept(int y, int x)
                byte feat;
 
                /* Feature code (applying "mimic" field) */
-               feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+               feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
                /* Notice glyphs */
                if (c_ptr->info & CAVE_OBJECT) return (TRUE);
@@ -3554,7 +3554,7 @@ static int target_set_aux(int y, int x, int mode, cptr info)
 
 
        /* Feature code (applying "mimic" field) */
-       feat = c_ptr->mimic ? c_ptr->mimic : f_info[c_ptr->feat].mimic;
+       feat = f_info[c_ptr->mimic ? c_ptr->mimic : c_ptr->feat].mimic;
 
        /* Require knowledge about grid, or ability to see grid */
        if (!(c_ptr->info & CAVE_MARK) && !player_can_see_bold(y, x))