From: nothere Date: Tue, 29 Jul 2003 00:47:23 +0000 (+0000) Subject: mimicのあるグリッドのmimicの地形にさらにデフォルトのmimicがある場合 X-Git-Tag: v2.1.2~1244 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=06228c2d0c0186b193580913fa93b24bf7945b52;p=hengband%2Fhengband.git mimicのあるグリッドのmimicの地形にさらにデフォルトのmimicがある場合 に, その地形に対応するタイルが使われない場合があったバグを修正. 部屋 外周の隠しドアがタイルモードで剥き出しになるバグも修正. また, mimicな しの場合にf_info[c_ptr->feat].mimicを使う場合はc_ptr->mimicに対しても f_info[c_ptr->mimic].mimicを使うようにした. --- diff --git a/src/cave.c b/src/cave.c index 899241765..75b699338 100644 --- a/src/cave.c +++ b/src/cave.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; if ((feat == FEAT_DEEP_LAVA) || ((feat >= FEAT_SHOP_HEAD) && diff --git a/src/cmd1.c b/src/cmd1.c index dc79cc899..88ee4c88d 100644 --- a/src/cmd1.c +++ b/src/cmd1.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; /* Unknown grid or non-wall XXX XXX XXX cave_floor_grid(c_ptr)) */ if (!(c_ptr->info & (CAVE_MARK)) || @@ -5150,7 +5150,7 @@ void run_step(int dir) 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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; /* Hack -- do not start silly run */ if (see_wall(dir, py, px) && diff --git a/src/cmd2.c b/src/cmd2.c index 0a40e15b7..846e4cd0d 100644 --- a/src/cmd2.c +++ b/src/cmd2.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; /* Require closed door */ if (!((feat >= FEAT_DOOR_HEAD) && diff --git a/src/dungeon.c b/src/dungeon.c index b13bcbbe3..0bdd94e84 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; if (!is_mirror_grid(c_ptr) && (feat != FEAT_QUEST_ENTER) && (feat != FEAT_ENTRANCE)) { diff --git a/src/wild.c b/src/wild.c index 669f0c171..447302ede 100644 --- a/src/wild.c +++ b/src/wild.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[c_ptr->feat].mimic; if (!is_mirror_grid(c_ptr) && (feat != FEAT_QUEST_ENTER) && (feat != FEAT_ENTRANCE)) { diff --git a/src/xtra2.c b/src/xtra2.c index 8b4119e2c..388cc7f7a 100644 --- a/src/xtra2.c +++ b/src/xtra2.c @@ -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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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 = c_ptr->mimic ? f_info[c_ptr->mimic].mimic : f_info[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))