OSDN Git Service

[Refactor] #38993 object_level を floor_type に取り込む。 / Move object_level to floor_type...
authordeskull <deskull@users.sourceforge.jp>
Tue, 26 Feb 2019 17:06:55 +0000 (02:06 +0900)
committerdeskull <deskull@users.sourceforge.jp>
Tue, 26 Feb 2019 17:06:55 +0000 (02:06 +0900)
15 files changed:
src/artifact.c
src/bldg.c
src/chest.c
src/dungeon.c
src/externs.h
src/floor-generate.c
src/gamevalue.h
src/init1.c
src/monster1.c
src/object2.c
src/rooms-vault.c
src/rooms.c
src/types.h
src/variable.c
src/wild.c

index d053b97..fc7285f 100644 (file)
@@ -2571,10 +2571,10 @@ bool make_artifact_special(object_type *o_ptr)
 
                /*! @note アーティファクト生成階が現在に対して足りない場合は高確率で1/(不足階層*2)を満たさないと生成リストに加えられない /
                 *  XXX XXX Enforce minimum "depth" (loosely) */
-               if (a_ptr->level > object_level)
+               if (a_ptr->level > current_floor_ptr->object_level)
                {
                        /* @note  / Acquire the "out-of-depth factor". Roll for out-of-depth creation. */
-                       int d = (a_ptr->level - object_level) * 2;
+                       int d = (a_ptr->level - current_floor_ptr->object_level) * 2;
                        if (!one_in_(d)) continue;
                }
 
@@ -2584,9 +2584,9 @@ bool make_artifact_special(object_type *o_ptr)
                /*! @note INSTA_ART型固定アーティファクトのベースアイテムもチェック対象とする。ベースアイテムの生成階層が足りない場合1/(不足階層*5) を満たさないと除外される。 /
                 *  Find the base object. XXX XXX Enforce minimum "object" level (loosely). Acquire the "out-of-depth factor". Roll for out-of-depth creation. */
                k_idx = lookup_kind(a_ptr->tval, a_ptr->sval);
-               if (k_info[k_idx].level > object_level)
+               if (k_info[k_idx].level > current_floor_ptr->object_level)
                {
-                       int d = (k_info[k_idx].level - object_level) * 5;
+                       int d = (k_info[k_idx].level - current_floor_ptr->object_level) * 5;
                        if (!one_in_(d)) continue;
                }
 
index 07a0a47..8673295 100644 (file)
@@ -1870,7 +1870,7 @@ static bool kankin(void)
 
                                /* Prepare to make a prize */
                                object_prep(&forge, lookup_kind(prize_list[num-1].tval, prize_list[num-1].sval));
-                               apply_magic(&forge, object_level, AM_NO_FIXED_ART);
+                               apply_magic(&forge, current_floor_ptr->object_level, AM_NO_FIXED_ART);
 
                                object_aware(&forge);
                                object_known(&forge);
index 443cb75..cf6c6f4 100644 (file)
@@ -45,12 +45,12 @@ void chest_death(bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx)
                number = 5;
                small = FALSE;
                mode |= AM_GREAT;
-               object_level = o_ptr->xtra3;
+               current_floor_ptr->object_level = o_ptr->xtra3;
        }
        else
        {
                /* Determine the "value" of the items */
-               object_level = ABS(o_ptr->pval) + 10;
+               current_floor_ptr->object_level = ABS(o_ptr->pval) + 10;
        }
 
        /* Zero pval means empty chest */
@@ -104,7 +104,7 @@ void chest_death(bool scatter, POSITION y, POSITION x, OBJECT_IDX o_idx)
        }
 
        /* Reset the object level */
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 
        /* No longer opening a chest */
        opening_chest = FALSE;
index 6031c01..aa9c25a 100644 (file)
@@ -5421,7 +5421,7 @@ static void dungeon(bool load_game)
        monster_level = current_floor_ptr->base_level;
 
        /* Reset the object generation level */
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 
        is_loading_now = TRUE;
 
index a212293..264eb67 100644 (file)
@@ -159,7 +159,6 @@ extern s16b command_new;
 extern bool msg_flag;
 extern s16b running;
 extern GAME_TURN resting;
-extern DEPTH object_level;
 extern DEPTH monster_level;
 extern bool invoking_midnight_curse;
 extern GAME_TURN turn;
index 015cd7c..f8a623a 100644 (file)
@@ -926,7 +926,7 @@ static bool cave_gen(void)
        if (p_ptr->enter_dungeon && current_floor_ptr->dun_level > 1)
        {
                /* No stair scum! */
-               object_level = 1;
+               current_floor_ptr->object_level = 1;
        }
 
        /* Put some objects in rooms */
@@ -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 = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 
        /* Put the Guardian */
        if (!alloc_guardian(TRUE)) return FALSE;
@@ -1197,7 +1197,7 @@ static void generate_fixed_floor(void)
        /* Set the quest level */
        current_floor_ptr->base_level = quest[p_ptr->inside_quest].level;
        current_floor_ptr->dun_level = current_floor_ptr->base_level;
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
        monster_level = current_floor_ptr->base_level;
 
        if (record_stair) do_cmd_write_nikki(NIKKI_TO_QUEST, p_ptr->inside_quest, NULL);
@@ -1357,7 +1357,7 @@ void clear_cave(void)
        monster_level = current_floor_ptr->base_level;
 
        /* Reset the object generation level */
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 }
 
 
index e451f99..674d9e5 100644 (file)
@@ -2,7 +2,7 @@
 /*!
 * @brief ベースアイテム生成階層が加算される確率
 * @details
-* There is a 1/10 (10%) chance of inflating the requested object_level
+* There is a 1/10 (10%) chance of inflating the requested current_floor_ptr->object_level
 * during the creation of an object (see "get_obj_num()" in "object.c").
 * Lower values yield better objects more often.
 */
index e4d33c2..30100ca 100644 (file)
@@ -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 = current_floor_ptr->base_level + object_index;
+                               current_floor_ptr->object_level = current_floor_ptr->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 = current_floor_ptr->base_level;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                        }
                        else if (random & RANDOM_OBJECT)
                        {
-                               object_level = current_floor_ptr->base_level + object_index;
+                               current_floor_ptr->object_level = current_floor_ptr->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 = current_floor_ptr->base_level;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                        }
                        /* Random trap */
                        else if (random & RANDOM_TRAP)
index 47dc5fc..d92c270 100644 (file)
@@ -2615,7 +2615,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
 
                        /* Prepare to make a prize */
                        object_prep(q_ptr, lookup_kind(arena_info[p_ptr->arena_number].tval, arena_info[p_ptr->arena_number].sval));
-                       apply_magic(q_ptr, object_level, AM_NO_FIXED_ART);
+                       apply_magic(q_ptr, current_floor_ptr->object_level, AM_NO_FIXED_ART);
                        (void)drop_near(q_ptr, -1, y, x);
                }
 
@@ -2675,7 +2675,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
                /* Prepare to make an object */
                object_prep(q_ptr, lookup_kind(TV_CORPSE, (corpse ? SV_CORPSE : SV_SKELETON)));
 
-               apply_magic(q_ptr, object_level, AM_NO_FIXED_ART);
+               apply_magic(q_ptr, current_floor_ptr->object_level, AM_NO_FIXED_ART);
 
                q_ptr->pval = m_ptr->r_idx;
                (void)drop_near(q_ptr, -1, y, x);
@@ -2722,7 +2722,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
                        /* Prepare to make a Blade of Chaos */
                        object_prep(q_ptr, lookup_kind(TV_SWORD, SV_BLADE_OF_CHAOS));
 
-                       apply_magic(q_ptr, object_level, AM_NO_FIXED_ART | mo_mode);
+                       apply_magic(q_ptr, current_floor_ptr->object_level, AM_NO_FIXED_ART | mo_mode);
                        (void)drop_near(q_ptr, -1, y, x);
                }
                break;
@@ -2874,7 +2874,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
                        /* Prepare to make a Can of Toys */
                        object_prep(q_ptr, lookup_kind(TV_CHEST, SV_CHEST_KANDUME));
 
-                       apply_magic(q_ptr, object_level, AM_NO_FIXED_ART);
+                       apply_magic(q_ptr, current_floor_ptr->object_level, AM_NO_FIXED_ART);
                        (void)drop_near(q_ptr, -1, y, x);
                }
                break;
@@ -3034,7 +3034,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
                                /* Prepare to make a reward */
                                object_prep(q_ptr, k_idx);
 
-                               apply_magic(q_ptr, object_level, AM_NO_FIXED_ART | AM_GOOD);
+                               apply_magic(q_ptr, current_floor_ptr->object_level, AM_NO_FIXED_ART | AM_GOOD);
                                (void)drop_near(q_ptr, -1, y, x);
                        }
                        msg_format(_("あなたは%sを制覇した!", "You have conquered %s!"), d_name + d_info[p_ptr->dungeon_idx].name);
@@ -3063,7 +3063,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
        coin_type = force_coin;
 
        /* Average dungeon and monster levels */
-       object_level = (current_floor_ptr->dun_level + r_ptr->level) / 2;
+       current_floor_ptr->object_level = (current_floor_ptr->dun_level + r_ptr->level) / 2;
 
        /* Drop some objects */
        for (j = 0; j < number; j++)
@@ -3092,7 +3092,7 @@ void monster_death(MONSTER_IDX m_idx, bool drop_item)
        }
 
        /* Reset the object level */
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 
        /* Reset "coin" type */
        coin_type = 0;
index 3710ce6..e0a5d56 100644 (file)
@@ -4637,7 +4637,7 @@ static bool kind_is_good(KIND_OBJECT_IDX k_idx)
  * @return 生成に成功したらTRUEを返す。
  * @details
  * This routine plays nasty games to generate the "special artifacts".\n
- * This routine uses "object_level" for the "generation level".\n
+ * This routine uses "current_floor_ptr->object_level" for the "generation level".\n
  * We assume that the given object has been "wiped".\n
  */
 bool make_object(object_type *j_ptr, BIT_FLAGS mode)
@@ -4650,7 +4650,7 @@ bool make_object(object_type *j_ptr, BIT_FLAGS mode)
        prob = ((mode & AM_GOOD) ? 10 : 1000);
 
        /* Base level for the object */
-       base = ((mode & AM_GOOD) ? (object_level + 10) : object_level);
+       base = ((mode & AM_GOOD) ? (current_floor_ptr->object_level + 10) : current_floor_ptr->object_level);
 
 
        /* Generate a special object, or a normal object */
@@ -4689,7 +4689,7 @@ bool make_object(object_type *j_ptr, BIT_FLAGS mode)
        }
 
        /* Apply magic (allow artifacts) */
-       apply_magic(j_ptr, object_level, mode);
+       apply_magic(j_ptr, current_floor_ptr->object_level, mode);
 
        /* Hack -- generate multiple spikes/missiles */
        switch (j_ptr->tval)
@@ -4720,7 +4720,7 @@ bool make_object(object_type *j_ptr, BIT_FLAGS mode)
  * @return 生成に成功したらTRUEを返す。
  * @details
  * This routine plays nasty games to generate the "special artifacts".\n
- * This routine uses "object_level" for the "generation level".\n
+ * This routine uses "current_floor_ptr->object_level" for the "generation level".\n
  * This routine requires a clean floor grid destination.\n
  */
 void place_object(POSITION y, POSITION x, BIT_FLAGS mode)
@@ -4800,12 +4800,12 @@ bool make_gold(object_type *j_ptr)
        s32b base;
 
        /* Hack -- Pick a Treasure variety */
-       i = ((randint1(object_level + 2) + 2) / 2) - 1;
+       i = ((randint1(current_floor_ptr->object_level + 2) + 2) / 2) - 1;
 
        /* Apply "extra" magic */
        if (one_in_(GREAT_OBJ))
        {
-               i += randint1(object_level + 1);
+               i += randint1(current_floor_ptr->object_level + 1);
        }
 
        /* Hack -- Creeping Coins only generate "themselves" */
index 0eac513..26b1ed4 100644 (file)
@@ -461,9 +461,9 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm
 
                        case 'A':
                                /* Reward for Pattern walk */
-                               object_level = current_floor_ptr->base_level + 12;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level + 12;
                                place_object(y, x, AM_GOOD | AM_GREAT);
-                               object_level = current_floor_ptr->base_level;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                                break;
 
                        case '~':
@@ -575,9 +575,9 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm
                                monster_level = current_floor_ptr->base_level + 9;
                                place_monster(y, x, PM_ALLOW_SLEEP);
                                monster_level = current_floor_ptr->base_level;
-                               object_level = current_floor_ptr->base_level + 7;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level + 7;
                                place_object(y, x, AM_GOOD);
-                               object_level = current_floor_ptr->base_level;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                                break;
                        }
 
@@ -587,9 +587,9 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm
                                monster_level = current_floor_ptr->base_level + 40;
                                place_monster(y, x, PM_ALLOW_SLEEP);
                                monster_level = current_floor_ptr->base_level;
-                               object_level = current_floor_ptr->base_level + 20;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level + 20;
                                place_object(y, x, AM_GOOD | AM_GREAT);
-                               object_level = current_floor_ptr->base_level;
+                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                                break;
                        }
 
@@ -604,9 +604,9 @@ static void build_vault(POSITION yval, POSITION xval, POSITION ymax, POSITION xm
                                }
                                if (randint0(100) < 50)
                                {
-                                       object_level = current_floor_ptr->base_level + 7;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level + 7;
                                        place_object(y, x, 0L);
-                                       object_level = current_floor_ptr->base_level;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level;
                                }
                                break;
                        }
index c30e79f..c6e62c8 100644 (file)
@@ -1410,9 +1410,9 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi
                                        monster_level = current_floor_ptr->base_level + 40;
                                        place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP));
                                        monster_level = current_floor_ptr->base_level;
-                                       object_level = current_floor_ptr->base_level + 20;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level + 20;
                                        place_object(y, x, AM_GOOD);
-                                       object_level = current_floor_ptr->base_level;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level;
                                }
                                else if (value < 5)
                                {
@@ -1420,9 +1420,9 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi
                                        monster_level = current_floor_ptr->base_level + 20;
                                        place_monster(y, x, (PM_ALLOW_SLEEP | PM_ALLOW_GROUP));
                                        monster_level = current_floor_ptr->base_level;
-                                       object_level = current_floor_ptr->base_level + 10;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level + 10;
                                        place_object(y, x, AM_GOOD);
-                                       object_level = current_floor_ptr->base_level;
+                                       current_floor_ptr->object_level = current_floor_ptr->base_level;
                                }
                                else if (value < 10)
                                {
@@ -1473,9 +1473,9 @@ void fill_treasure(POSITION x1, POSITION x2, POSITION y1, POSITION y2, int diffi
                                        }
                                        if (randint0(100) < 50)
                                        {
-                                               object_level = current_floor_ptr->base_level + 7;
+                                               current_floor_ptr->object_level = current_floor_ptr->base_level + 7;
                                                place_object(y, x, 0L);
-                                               object_level = current_floor_ptr->base_level;
+                                               current_floor_ptr->object_level = current_floor_ptr->base_level;
                                        }
                                }
                                else if (value < 50)
index 41d477d..fce689f 100644 (file)
@@ -1878,6 +1878,7 @@ typedef struct {
        grid_type *grid_array[MAX_HGT];
        DEPTH dun_level;                /*!< 現在の実ダンジョン階層base_levelの参照元となる / Current dungeon level */
        DEPTH base_level;
+       DEPTH object_level;             /*!< アイテムの生成レベル、current_floor_ptr->base_levelを起点に一時変更する時に参照 / Current object creation level */
        POSITION width;                 /* Current dungeon width */
        POSITION height;                /* Current dungeon height */
        MONSTER_NUMBER num_repro; /*!< Current reproducer count */
index 2a42c73..a7e440f 100644 (file)
@@ -111,7 +111,6 @@ bool msg_flag;                      /* Used in msg_print() for "buffering" */
 s16b running;                  /* Current counter for running, if any */
 GAME_TURN resting;                     /* Current counter for resting, if any */
 
-DEPTH object_level;            /*!< アイテムの生成レベル、current_floor_ptr->base_levelを起点に一時変更する時に参照 / Current object creation level */
 DEPTH monster_level;   /*!< モンスターの生成レベル、current_floor_ptr->base_levelを起点に一時変更する時に参照 / Current monster creation level */
 bool invoking_midnight_curse; /*!< 悪夢モード時の真夜中太古の呪い発生処理フラグ */
 
index d0af4de..145edff 100644 (file)
@@ -334,7 +334,7 @@ static void generate_area(POSITION y, POSITION x, bool border, bool corner)
        monster_level = current_floor_ptr->base_level;
 
        /* Set the object generation level */
-       object_level = current_floor_ptr->base_level;
+       current_floor_ptr->object_level = current_floor_ptr->base_level;
 
 
        /* Create the town */