/*! @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;
}
/*! @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;
}
/* 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);
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 */
}
/* 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;
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;
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;
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 */
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;
/* 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);
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;
}
/*!
* @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.
*/
/* 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
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)
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)
/* 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);
}
/* 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);
/* 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;
/* 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;
/* 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);
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++)
}
/* 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;
* @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)
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 */
}
/* 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)
* @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)
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" */
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 '~':
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;
}
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;
}
}
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;
}
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)
{
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)
{
}
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)
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 */
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; /*!< 悪夢モード時の真夜中太古の呪い発生処理フラグ */
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 */