From: deskull Date: Tue, 26 Feb 2019 15:42:27 +0000 (+0900) Subject: [Refactor] #38993 base_level を floor_type に取り込む。 / Move base_level to floor_type... X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=24a2f02eca5e4b45296589db0f5408eb4eaa5967;p=hengband%2Fhengband.git [Refactor] #38993 base_level を floor_type に取り込む。 / Move base_level to floor_type structure. --- diff --git a/src/chest.c b/src/chest.c index 6499774e3..2616d0d7e 100644 --- a/src/chest.c +++ b/src/chest.c @@ -104,7 +104,7 @@ void chest_death(bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx) } /* Reset the object level */ - object_level = base_level; + object_level = current_floor->base_level; /* No longer opening a chest */ opening_chest = FALSE; diff --git a/src/dungeon.c b/src/dungeon.c index e12161440..5e2320dd8 100644 --- a/src/dungeon.c +++ b/src/dungeon.c @@ -5269,7 +5269,7 @@ static void dungeon(bool load_game) int quest_num = 0; /* Set the base level */ - base_level = dun_level; + current_floor->base_level = dun_level; /* Reset various flags */ is_loading_now = FALSE; @@ -5418,10 +5418,10 @@ static void dungeon(bool load_game) /*** Process this dungeon level ***/ /* Reset the monster generation level */ - monster_level = base_level; + monster_level = current_floor->base_level; /* Reset the object generation level */ - object_level = base_level; + object_level = current_floor->base_level; is_loading_now = TRUE; diff --git a/src/externs.h b/src/externs.h index d329140ef..11297db12 100644 --- a/src/externs.h +++ b/src/externs.h @@ -165,7 +165,6 @@ extern DEPTH dun_level; extern MONSTER_NUMBER num_repro; extern DEPTH object_level; extern DEPTH monster_level; -extern DEPTH base_level; extern bool invoking_midnight_curse; extern GAME_TURN turn; extern GAME_TURN turn_limit; diff --git a/src/floor-generate.c b/src/floor-generate.c index d943eba3c..e72e5c9dc 100644 --- a/src/floor-generate.c +++ b/src/floor-generate.c @@ -937,7 +937,7 @@ static bool cave_gen(void) alloc_object(ALLOC_SET_BOTH, ALLOC_TYP_GOLD, randnor(DUN_AMT_GOLD, 3)); /* Set back to default */ - object_level = base_level; + object_level = current_floor->base_level; /* Put the Guardian */ if (!alloc_guardian(TRUE)) return FALSE; @@ -1195,10 +1195,10 @@ static void generate_fixed_floor(void) } /* Set the quest level */ - base_level = quest[p_ptr->inside_quest].level; - dun_level = base_level; - object_level = base_level; - monster_level = base_level; + current_floor->base_level = quest[p_ptr->inside_quest].level; + dun_level = current_floor->base_level; + object_level = current_floor->base_level; + monster_level = current_floor->base_level; if (record_stair) do_cmd_write_nikki(NIKKI_TO_QUEST, p_ptr->inside_quest, NULL); get_mon_num_prep(get_monster_hook(), NULL); @@ -1351,13 +1351,13 @@ void clear_cave(void) p_ptr->x = p_ptr->y = 0; /* Set the base level */ - base_level = dun_level; + current_floor->base_level = dun_level; /* Reset the monster generation level */ - monster_level = base_level; + monster_level = current_floor->base_level; /* Reset the object generation level */ - object_level = base_level; + object_level = current_floor->base_level; } diff --git a/src/grid.c b/src/grid.c index 11952526a..2a62854df 100644 --- a/src/grid.c +++ b/src/grid.c @@ -711,9 +711,9 @@ void vault_monsters(POSITION y1, POSITION x1, int num) if (!cave_empty_grid(g_ptr)) continue; /* Place the monster (allow groups) */ - monster_level = base_level + 2; + monster_level = current_floor->base_level + 2; (void)place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; } } } diff --git a/src/init1.c b/src/init1.c index 4f502bb60..68e24ae86 100644 --- a/src/init1.c +++ b/src/init1.c @@ -4006,11 +4006,11 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in /* Create a monster */ if (random & RANDOM_MONSTER) { - monster_level = base_level + monster_index; + monster_level = current_floor->base_level + monster_index; place_monster(*y, *x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; } else if (monster_index) { @@ -4058,7 +4058,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in /* Object (and possible trap) */ if ((random & RANDOM_OBJECT) && (random & RANDOM_TRAP)) { - object_level = base_level + object_index; + object_level = current_floor->base_level + object_index; /* * Random trap and random treasure defined @@ -4073,11 +4073,11 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in place_trap(*y, *x); } - object_level = base_level; + object_level = current_floor->base_level; } else if (random & RANDOM_OBJECT) { - object_level = base_level + object_index; + object_level = current_floor->base_level + object_index; /* Create an out of deep object */ if (randint0(100) < 75) @@ -4087,7 +4087,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in else place_object(*y, *x, AM_GOOD | AM_GREAT); - object_level = base_level; + object_level = current_floor->base_level; } /* Random trap */ else if (random & RANDOM_TRAP) @@ -4113,7 +4113,7 @@ static errr process_dungeon_file_aux(char *buf, int ymin, int xmin, int ymax, in } /* Apply magic (no messages, no artifacts) */ - apply_magic(o_ptr, base_level, AM_NO_FIXED_ART | AM_GOOD); + apply_magic(o_ptr, current_floor->base_level, AM_NO_FIXED_ART | AM_GOOD); drop_here(o_ptr, *y, *x); } diff --git a/src/load.c b/src/load.c index b24fbd871..caff11e2d 100644 --- a/src/load.c +++ b/src/load.c @@ -2566,10 +2566,10 @@ static errr rd_dungeon_old(void) } /* Set the base level for old versions */ - base_level = dun_level; + current_floor->base_level = dun_level; rd_s16b(&tmp16s); - base_level = (DEPTH)tmp16s; + current_floor->base_level = (DEPTH)tmp16s; rd_s16b(&tmp16s); num_repro = (MONSTER_NUMBER)tmp16s; @@ -2999,7 +2999,7 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr) rd_s16b(&tmp16s); dun_level = (DEPTH)tmp16s; - base_level = dun_level; + current_floor->base_level = dun_level; } else { @@ -3029,7 +3029,7 @@ static errr rd_saved_floor(saved_floor_type *sf_ptr) } rd_s16b(&tmp16s); - base_level = (DEPTH)tmp16s; + current_floor->base_level = (DEPTH)tmp16s; rd_s16b(&tmp16s); num_repro = (MONSTER_NUMBER)tmp16s; diff --git a/src/monster1.c b/src/monster1.c index 0342dbd0a..c3bff7429 100644 --- a/src/monster1.c +++ b/src/monster1.c @@ -3092,7 +3092,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item) } /* Reset the object level */ - object_level = base_level; + object_level = current_floor->base_level; /* Reset "coin" type */ coin_type = 0; diff --git a/src/monster2.c b/src/monster2.c index 5d4403fc3..6eb57d015 100644 --- a/src/monster2.c +++ b/src/monster2.c @@ -2857,11 +2857,11 @@ static IDX initial_r_appearance(MONRACE_IDX r_idx) { int attempts = 1000; IDX ap_r_idx; - DEPTH min = MIN(base_level-5, 50); + DEPTH min = MIN(current_floor->base_level-5, 50); if (p_ptr->pseikaku == SEIKAKU_CHARGEMAN) { - if (base_level == 0 || one_in_(5)) return MON_ALIEN_JURAL; + if (current_floor->base_level == 0 || one_in_(5)) return MON_ALIEN_JURAL; } if (!(r_info[r_idx].flags7 & RF7_TANUKI)) @@ -2871,7 +2871,7 @@ static IDX initial_r_appearance(MONRACE_IDX r_idx) while (--attempts) { - ap_r_idx = get_mon_num(base_level + 10); + ap_r_idx = get_mon_num(current_floor->base_level + 10); if (r_info[ap_r_idx].level >= min) return ap_r_idx; } diff --git a/src/rooms-vault.c b/src/rooms-vault.c index e50ad3676..c6f88ecc5 100644 --- a/src/rooms-vault.c +++ b/src/rooms-vault.c @@ -461,9 +461,9 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm case 'A': /* Reward for Pattern walk */ - object_level = base_level + 12; + object_level = current_floor->base_level + 12; place_object(y, x, AM_GOOD | AM_GREAT); - object_level = base_level; + object_level = current_floor->base_level; break; case '~': @@ -554,42 +554,42 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm /* Monster */ case '&': { - monster_level = base_level + 5; + monster_level = current_floor->base_level + 5; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; break; } /* Meaner monster */ case '@': { - monster_level = base_level + 11; + monster_level = current_floor->base_level + 11; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; break; } /* Meaner monster, plus treasure */ case '9': { - monster_level = base_level + 9; + monster_level = current_floor->base_level + 9; place_monster(y, x, PM_ALLOW_SLEEP); - monster_level = base_level; - object_level = base_level + 7; + monster_level = current_floor->base_level; + object_level = current_floor->base_level + 7; place_object(y, x, AM_GOOD); - object_level = base_level; + object_level = current_floor->base_level; break; } /* Nasty monster and treasure */ case '8': { - monster_level = base_level + 40; + monster_level = current_floor->base_level + 40; place_monster(y, x, PM_ALLOW_SLEEP); - monster_level = base_level; - object_level = base_level + 20; + monster_level = current_floor->base_level; + object_level = current_floor->base_level + 20; place_object(y, x, AM_GOOD | AM_GREAT); - object_level = base_level; + object_level = current_floor->base_level; break; } @@ -598,15 +598,15 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm { if (randint0(100) < 50) { - monster_level = base_level + 3; + monster_level = current_floor->base_level + 3; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; } if (randint0(100) < 50) { - object_level = base_level + 7; + object_level = current_floor->base_level + 7; place_object(y, x, 0L); - object_level = base_level; + object_level = current_floor->base_level; } break; } diff --git a/src/rooms.c b/src/rooms.c index 54bcc7579..136a18195 100644 --- a/src/rooms.c +++ b/src/rooms.c @@ -1407,29 +1407,29 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi if (value < 0) { /* Meanest monster + treasure */ - monster_level = base_level + 40; + monster_level = current_floor->base_level + 40; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; - object_level = base_level + 20; + monster_level = current_floor->base_level; + object_level = current_floor->base_level + 20; place_object(y, x, AM_GOOD); - object_level = base_level; + object_level = current_floor->base_level; } else if (value < 5) { /* Mean monster +treasure */ - monster_level = base_level + 20; + monster_level = current_floor->base_level + 20; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; - object_level = base_level + 10; + monster_level = current_floor->base_level; + object_level = current_floor->base_level + 10; place_object(y, x, AM_GOOD); - object_level = base_level; + object_level = current_floor->base_level; } else if (value < 10) { /* Monster */ - monster_level = base_level + 9; + monster_level = current_floor->base_level + 9; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; } else if (value < 17) { @@ -1457,9 +1457,9 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi else if (value < 30) { /* Monster and trap */ - monster_level = base_level + 5; + monster_level = current_floor->base_level + 5; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; place_trap(y, x); } else if (value < 40) @@ -1467,15 +1467,15 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi /* Monster or object */ if (randint0(100) < 50) { - monster_level = base_level + 3; + monster_level = current_floor->base_level + 3; place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP)); - monster_level = base_level; + monster_level = current_floor->base_level; } if (randint0(100) < 50) { - object_level = base_level + 7; + object_level = current_floor->base_level + 7; place_object(y, x, 0L); - object_level = base_level; + object_level = current_floor->base_level; } } else if (value < 50) diff --git a/src/save.c b/src/save.c index f961c5872..36db87283 100644 --- a/src/save.c +++ b/src/save.c @@ -939,7 +939,7 @@ static void wr_saved_floor(saved_floor_type *sf_ptr) wr_s16b(sf_ptr->lower_floor_id); } - wr_u16b((u16b)base_level); + wr_u16b((u16b)current_floor->base_level); wr_u16b((s16b)num_repro); wr_u16b((u16b)p_ptr->y); wr_u16b((u16b)p_ptr->x); diff --git a/src/types.h b/src/types.h index d8abbdf1e..73c95669a 100644 --- a/src/types.h +++ b/src/types.h @@ -1876,4 +1876,5 @@ typedef struct { typedef struct { grid_type *grid_array[MAX_HGT]; + DEPTH base_level; } floor_type; \ No newline at end of file diff --git a/src/variable.c b/src/variable.c index 8755b47a2..595880423 100644 --- a/src/variable.c +++ b/src/variable.c @@ -113,11 +113,10 @@ GAME_TURN resting; /* Current counter for resting, if any */ POSITION cur_hgt; /* Current dungeon height */ POSITION cur_wid; /* Current dungeon width */ -DEPTH dun_level; /*!< 現在の実ダンジョン階層、base_levelの参照元となる / Current dungeon level */ +DEPTH dun_level; /*!< 現在の実ダンジョン階層、current_floor->base_levelの参照元となる / Current dungeon level */ MONSTER_NUMBER num_repro; /*!< Current reproducer count */ -DEPTH base_level; /*!< 基本生成レベル、後述のobject_level, monster_levelの参照元となる / Base dungeon level */ -DEPTH object_level; /*!< アイテムの生成レベル、base_levelを起点に一時変更する時に参照 / Current object creation level */ -DEPTH monster_level; /*!< モンスターの生成レベル、base_levelを起点に一時変更する時に参照 / Current monster creation level */ +DEPTH object_level; /*!< アイテムの生成レベル、current_floor->base_levelを起点に一時変更する時に参照 / Current object creation level */ +DEPTH monster_level; /*!< モンスターの生成レベル、current_floor->base_levelを起点に一時変更する時に参照 / Current monster creation level */ bool invoking_midnight_curse; /*!< 悪夢モード時の真夜中太古の呪い発生処理フラグ */ GAME_TURN turn; /*!< 画面表示上のゲーム時間基準となるターン / Current game turn */ diff --git a/src/wild.c b/src/wild.c index 2bab2997c..12bf0bba8 100644 --- a/src/wild.c +++ b/src/wild.c @@ -325,16 +325,16 @@ static void generate_area(POSITION y, POSITION x, bool border, bool corner) p_ptr->town_num = wilderness[y][x].town; /* Set the base level */ - base_level = wilderness[y][x].level; + current_floor->base_level = wilderness[y][x].level; /* Set the dungeon level */ dun_level = 0; /* Set the monster generation level */ - monster_level = base_level; + monster_level = current_floor->base_level; /* Set the object generation level */ - object_level = base_level; + object_level = current_floor->base_level; /* Create the town */