変愚蛮怒のメインリポジトリです
Revision | 70a074055d86965d5929d20ddf9506652cdb2a60 (tree) |
---|---|
Time | 2003-12-22 19:00:21 |
Author | nothere <nothere@0568...> |
Commiter | nothere |
CAVE_OBJECTに関する修正.
* cave.c 1.145のエンバグにより, cave_set_feat()で正しくCAVE_OBJECTを
* プレイヤーがOBJECT地形にいる時に*破壊*を使っても足元の地形は*破壊*
* 地震と*破壊*ではOBJECT地形であってもcave_set_feat()を通し, そこで
@@ -4520,17 +4520,6 @@ void cave_set_feat(int y, int x, int feat) | ||
4520 | 4520 | cave_type *c_ptr = &cave[y][x]; |
4521 | 4521 | feature_type *f_ptr = &f_info[feat]; |
4522 | 4522 | |
4523 | - if (character_dungeon && is_mirror_grid(c_ptr) && (d_info[dungeon_type].flags1 & DF1_DARKNESS)) | |
4524 | - { | |
4525 | - c_ptr->info &= ~(CAVE_GLOW); | |
4526 | - if (!view_torch_grids) c_ptr->info &= ~(CAVE_MARK); | |
4527 | - | |
4528 | - /* Remove flag for mirror/glyph */ | |
4529 | - c_ptr->info &= ~(CAVE_OBJECT); | |
4530 | - | |
4531 | - update_local_illumination(y, x); | |
4532 | - } | |
4533 | - | |
4534 | 4523 | /* Clear mimic type */ |
4535 | 4524 | c_ptr->mimic = 0; |
4536 | 4525 |
@@ -4539,6 +4528,17 @@ void cave_set_feat(int y, int x, int feat) | ||
4539 | 4528 | |
4540 | 4529 | if (character_dungeon) |
4541 | 4530 | { |
4531 | + if (is_mirror_grid(c_ptr) && (d_info[dungeon_type].flags1 & DF1_DARKNESS)) | |
4532 | + { | |
4533 | + c_ptr->info &= ~(CAVE_GLOW); | |
4534 | + if (!view_torch_grids) c_ptr->info &= ~(CAVE_MARK); | |
4535 | + | |
4536 | + update_local_illumination(y, x); | |
4537 | + } | |
4538 | + | |
4539 | + /* Remove flag for mirror/glyph */ | |
4540 | + c_ptr->info &= ~(CAVE_OBJECT); | |
4541 | + | |
4542 | 4542 | /* Check for change to boring grid */ |
4543 | 4543 | if (!have_flag(f_ptr->flags, FF_REMEMBER)) c_ptr->info &= ~(CAVE_MARK); |
4544 | 4544 |
@@ -5262,8 +5262,8 @@ bool destroy_area(int y1, int x1, int r, bool in_generate) | ||
5262 | 5262 | |
5263 | 5263 | if (!in_generate) /* Normal */ |
5264 | 5264 | { |
5265 | - /* Lose unsafety and runes/mirrors */ | |
5266 | - c_ptr->info &= ~(CAVE_UNSAFE | CAVE_OBJECT); | |
5265 | + /* Lose unsafety */ | |
5266 | + c_ptr->info &= ~(CAVE_UNSAFE); | |
5267 | 5267 | |
5268 | 5268 | /* Hack -- Notice player affect */ |
5269 | 5269 | if (player_bold(y, x)) |
@@ -5871,9 +5871,6 @@ msg_format("%^s | ||
5871 | 5871 | /* Delete objects */ |
5872 | 5872 | delete_object(yy, xx); |
5873 | 5873 | |
5874 | - /* Clear mirror, runes flag */ | |
5875 | - c_ptr->info &= ~CAVE_OBJECT; | |
5876 | - | |
5877 | 5874 | /* Wall (or floor) type */ |
5878 | 5875 | t = cave_have_flag_bold(yy, xx, FF_PROJECT) ? randint0(100) : 200; |
5879 | 5876 |