return false;
}
- auto i = lookup_kind({ a_ref.tval, a_ref.sval });
+ auto i = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
if (i == 0) {
return true;
}
* @note INSTA_ART型固定アーティファクトのベースアイテムもチェック対象とする。
* ベースアイテムの生成階層が足りない場合1/(不足階層*5)を満たさないと除外される。
*/
- const auto k_idx = lookup_kind({ a_ref.tval, a_ref.sval });
+ const auto k_idx = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
if (baseitems_info[k_idx].level > floor_ptr->object_level) {
int d = (baseitems_info[k_idx].level - floor_ptr->object_level) * 5;
if (!one_in_(d)) {
static bool weakening_artifact(ObjectType *o_ptr)
{
- const auto k_idx = lookup_kind({ o_ptr->tval, o_ptr->sval });
+ const auto k_idx = lookup_baseitem_id({ o_ptr->tval, o_ptr->sval });
auto *k_ptr = &baseitems_info[k_idx];
auto flgs = object_flags(o_ptr);
/* Demon can drain vitality from humanoid corpse */
get_mon_num_prep(player_ptr, monster_hook_human, nullptr);
for (int i = rand_range(3, 4); i > 0; i--) {
- q_ptr->prep(lookup_kind({ ItemKindType::CORPSE, SV_CORPSE }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::CORPSE, SV_CORPSE }));
q_ptr->pval = enum2i(get_mon_num(player_ptr, 0, 2, 0));
if (q_ptr->pval) {
q_ptr->number = 1;
case PlayerRaceType::ZOMBIE:
case PlayerRaceType::SPECTRE:
/* Staff (of Nothing) */
- q_ptr->prep(lookup_kind({ ItemKindType::STAFF, SV_STAFF_NOTHING }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::STAFF, SV_STAFF_NOTHING }));
q_ptr->number = 1;
add_outfit(player_ptr, q_ptr);
break;
case PlayerRaceType::ENT:
/* Potions of Water */
- q_ptr->prep(lookup_kind({ ItemKindType::POTION, SV_POTION_WATER }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::POTION, SV_POTION_WATER }));
q_ptr->number = (ITEM_NUMBER)rand_range(15, 23);
add_outfit(player_ptr, q_ptr);
break;
case PlayerRaceType::ANDROID:
/* Flasks of oil */
- q_ptr->prep(lookup_kind({ ItemKindType::FLASK }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FLASK }));
ItemMagicApplier(player_ptr, q_ptr, 1, AM_NO_FIXED_ART).execute();
q_ptr->number = (ITEM_NUMBER)rand_range(7, 12);
add_outfit(player_ptr, q_ptr);
break;
default:
/* Food rations */
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_RATION }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_RATION }));
q_ptr->number = (ITEM_NUMBER)rand_range(3, 7);
add_outfit(player_ptr, q_ptr);
}
PlayerClass pc(player_ptr);
PlayerRace pr(player_ptr);
if (pr.equals(PlayerRaceType::VAMPIRE) && !pc.equals(PlayerClassType::NINJA)) {
- q_ptr->prep(lookup_kind({ ItemKindType::SCROLL, SV_SCROLL_DARKNESS }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_DARKNESS }));
q_ptr->number = (ITEM_NUMBER)rand_range(2, 5);
add_outfit(player_ptr, q_ptr);
} else if (!pc.equals(PlayerClassType::NINJA)) {
- q_ptr->prep(lookup_kind({ ItemKindType::LITE, SV_LITE_TORCH }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::LITE, SV_LITE_TORCH }));
q_ptr->number = (ITEM_NUMBER)rand_range(3, 7);
q_ptr->fuel = rand_range(3, 7) * 500;
q_ptr = &forge;
if (pr.equals(PlayerRaceType::MERFOLK)) {
- q_ptr->prep(lookup_kind({ ItemKindType::RING, SV_RING_LEVITATION_FALL }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::RING, SV_RING_LEVITATION_FALL }));
q_ptr->number = 1;
add_outfit(player_ptr, q_ptr);
}
if (pc.equals(PlayerClassType::RANGER) || pc.equals(PlayerClassType::CAVALRY)) {
- q_ptr->prep(lookup_kind({ ItemKindType::ARROW, SV_AMMO_NORMAL }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::ARROW, SV_AMMO_NORMAL }));
q_ptr->number = (byte)rand_range(15, 20);
add_outfit(player_ptr, q_ptr);
}
if (pc.equals(PlayerClassType::RANGER)) {
- q_ptr->prep(lookup_kind({ ItemKindType::BOW, SV_SHORT_BOW }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::BOW, SV_SHORT_BOW }));
add_outfit(player_ptr, q_ptr);
} else if (pc.equals(PlayerClassType::ARCHER)) {
- q_ptr->prep(lookup_kind({ ItemKindType::ARROW, SV_AMMO_NORMAL }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::ARROW, SV_AMMO_NORMAL }));
q_ptr->number = (ITEM_NUMBER)rand_range(15, 20);
add_outfit(player_ptr, q_ptr);
} else if (pc.equals(PlayerClassType::HIGH_MAGE) || pc.equals(PlayerClassType::ELEMENTALIST)) {
- q_ptr->prep(lookup_kind({ ItemKindType::WAND, SV_WAND_MAGIC_MISSILE }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::WAND, SV_WAND_MAGIC_MISSILE }));
q_ptr->number = 1;
q_ptr->pval = (PARAMETER_VALUE)rand_range(25, 30);
add_outfit(player_ptr, q_ptr);
} else if (pc.equals(PlayerClassType::SORCERER)) {
for (auto book_tval = enum2i(ItemKindType::LIFE_BOOK); book_tval <= enum2i(ItemKindType::LIFE_BOOK) + MAX_MAGIC - 1; book_tval++) {
- q_ptr->prep(lookup_kind({ i2enum<ItemKindType>(book_tval), 0 }));
+ q_ptr->prep(lookup_baseitem_id({ i2enum<ItemKindType>(book_tval), 0 }));
q_ptr->number = 1;
add_outfit(player_ptr, q_ptr);
}
} else if (pc.equals(PlayerClassType::TOURIST)) {
if (player_ptr->ppersonality != PERSONALITY_SEXY) {
- q_ptr->prep(lookup_kind({ ItemKindType::SHOT, SV_AMMO_LIGHT }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SHOT, SV_AMMO_LIGHT }));
q_ptr->number = rand_range(15, 20);
add_outfit(player_ptr, q_ptr);
}
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_BISCUIT }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_BISCUIT }));
q_ptr->number = rand_range(2, 4);
add_outfit(player_ptr, q_ptr);
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_WAYBREAD }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_WAYBREAD }));
q_ptr->number = rand_range(2, 4);
add_outfit(player_ptr, q_ptr);
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_JERKY }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_JERKY }));
q_ptr->number = rand_range(1, 3);
add_outfit(player_ptr, q_ptr);
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_PINT_OF_ALE }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_PINT_OF_ALE }));
q_ptr->number = rand_range(2, 4);
add_outfit(player_ptr, q_ptr);
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_PINT_OF_WINE }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_PINT_OF_WINE }));
q_ptr->number = rand_range(2, 4);
add_outfit(player_ptr, q_ptr);
} else if (pc.equals(PlayerClassType::NINJA)) {
- q_ptr->prep(lookup_kind({ ItemKindType::SPIKE, 0 }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SPIKE, 0 }));
q_ptr->number = rand_range(15, 20);
add_outfit(player_ptr, q_ptr);
} else if (pc.equals(PlayerClassType::SNIPER)) {
- q_ptr->prep(lookup_kind({ ItemKindType::BOLT, SV_AMMO_NORMAL }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::BOLT, SV_AMMO_NORMAL }));
q_ptr->number = rand_range(15, 20);
add_outfit(player_ptr, q_ptr);
}
}
q_ptr = &forge;
- q_ptr->prep(lookup_kind({ tv, sv }));
+ q_ptr->prep(lookup_baseitem_id({ tv, sv }));
/* Only assassins get a poisoned weapon */
if (((tv == ItemKindType::SWORD) || (tv == ItemKindType::HAFTED)) && (pc.equals(PlayerClassType::ROGUE) && (player_ptr->realm1 == REALM_DEATH))) {
add_outfit(player_ptr, q_ptr);
}
- baseitems_info[lookup_kind({ ItemKindType::POTION, SV_POTION_WATER })].aware = true;
+ baseitems_info[lookup_baseitem_id({ ItemKindType::POTION, SV_POTION_WATER })].aware = true;
}
auto *q_ptr = &forge;
msg_print(_("食べ物がアゴを素通りして落ちた!", "The food falls through your jaws!"));
- q_ptr->prep(lookup_kind({ o_ptr->tval, o_ptr->sval }));
+ q_ptr->prep(lookup_baseitem_id({ o_ptr->tval, o_ptr->sval }));
/* Drop the object from heaven */
(void)drop_near(player_ptr, q_ptr, -1, player_ptr->y, player_ptr->x);
/* Verify the spell */
switch (tval) {
case ItemKindType::ROD:
- if (item.charge <= baseitems_info[lookup_kind({ ItemKindType::ROD, sval })].pval * (item.count - 1) * EATER_ROD_CHARGE) {
+ if (item.charge <= baseitems_info[lookup_baseitem_id({ ItemKindType::ROD, sval })].pval * (item.count - 1) * EATER_ROD_CHARGE) {
return BaseitemKey(tval, sval);
}
break;
continue;
}
- k_idx = lookup_kind({ tval, ctr });
+ k_idx = lookup_baseitem_id({ tval, ctr });
if (use_menu) {
if (ctr == (menu_line - 1)) {
if (!only_browse) {
auto &item = item_group[i];
if (tval == ItemKindType::ROD) {
- if (item.charge > baseitems_info[lookup_kind({ tval, i })].pval * (item.count - 1) * EATER_ROD_CHARGE) {
+ if (item.charge > baseitems_info[lookup_baseitem_id({ tval, i })].pval * (item.count - 1) * EATER_ROD_CHARGE) {
msg_print(_("その魔法はまだ充填している最中だ。", "The magic is still charging."));
msg_print(nullptr);
continue;
term_erase(7, 21, 255);
term_erase(7, 20, 255);
- shape_buffer(baseitems_info[lookup_kind({ tval, i })].text.data(), 62, temp, sizeof(temp));
+ shape_buffer(baseitems_info[lookup_baseitem_id({ tval, i })].text.data(), 62, temp, sizeof(temp));
for (j = 0, line = 21; temp[j]; j += 1 + strlen(&temp[j])) {
prt(&temp[j], line, 10);
line++;
}
auto &baseitem = result.value();
- auto k_idx = lookup_kind(baseitem);
+ auto k_idx = lookup_baseitem_id(baseitem);
auto level = (baseitem.tval() == ItemKindType::ROD ? baseitems_info[k_idx].level * 5 / 6 - 5 : baseitems_info[k_idx].level);
auto chance = level * 4 / 5 + 20;
chance -= 3 * (adj_mag_stat[player_ptr->stat_index[mp_ptr->spell_stat]] - 1);
ObjectType *q_ptr;
ObjectType forge;
q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::STATUE, SV_PHOTO }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::STATUE, SV_PHOTO }));
q_ptr->pval = em_ptr->photo;
q_ptr->ident |= (IDENT_FULL_KNOWN);
(void)drop_near(player_ptr, q_ptr, -1, player_ptr->y, player_ptr->x);
return;
}
- const auto k_idx = lookup_kind({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
+ const auto k_idx = lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
ObjectType forge;
auto *q_ptr = &forge;
q_ptr->prep(k_idx);
if (a_idx != FixedArtifactId::NONE) {
const auto &a_ref = artifacts_info.at(a_idx);
if (a_ref.gen_flags.has_not(ItemGenerationTraitType::INSTA_ART)) {
- letter[index].object = lookup_kind({ a_ref.tval, a_ref.sval });
+ letter[index].object = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
}
}
}
continue;
}
- auto k_idx = lookup_kind({ tval, i });
+ auto k_idx = lookup_baseitem_id({ tval, i });
if (!k_idx) {
continue;
}
const auto &a_ref = artifacts_info.at(a_idx);
GAME_TEXT base_name[MAX_NLEN];
strcpy(base_name, _("未知の伝説のアイテム", "Unknown Artifact"));
- const auto z = lookup_kind({ a_ref.tval, a_ref.sval });
+ const auto z = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
if (z != 0) {
ObjectType forge;
ObjectType *q_ptr;
const auto &a_ref = artifacts_info.at(q_ref.reward_artifact_idx);
ObjectType forge;
auto *o_ptr = &forge;
- auto k_idx = lookup_kind({ a_ref.tval, a_ref.sval });
+ auto k_idx = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
o_ptr->prep(k_idx);
o_ptr->fixed_artifact_idx = q_ref.reward_artifact_idx;
o_ptr->ident = IDENT_STORE;
}
if (h_older_than(0, 4, 10) && (o_ptr->ego_idx == EgoType::TWILIGHT)) {
- o_ptr->k_idx = lookup_kind({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
+ o_ptr->k_idx = lookup_baseitem_id({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
}
if (h_older_than(0, 4, 9)) {
msg_format(_("これで合計 %d ポイント獲得しました。", "You earned %d point%s total."), num, (num > 1 ? "s" : ""));
- (&forge)->prep(lookup_kind(prize_list[num - 1]));
+ (&forge)->prep(lookup_baseitem_id(prize_list[num - 1]));
ItemMagicApplier(player_ptr, &forge, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART).execute();
object_aware(player_ptr, &forge);
auto tval = (one_in_(5) ? mo_ptr->tval : ItemKindType::SWORD);
while (true) {
BaseItemInfo *ck_ptr;
- k_idx = lookup_kind({ tval });
+ k_idx = lookup_baseitem_id({ tval });
ck_ptr = &baseitems_info[k_idx];
if (tval == ItemKindType::SWORD) {
}
for (const auto &baseitem : store_regular_sale_table.at(sst)) {
- auto k_idx = lookup_kind(baseitem);
+ auto k_idx = lookup_baseitem_id(baseitem);
store_ptr->regular.push_back(k_idx);
}
for (const auto &baseitem : store_sale_table.at(sst)) {
- auto k_idx = lookup_kind(baseitem);
+ auto k_idx = lookup_baseitem_id(baseitem);
store_ptr->table.push_back(k_idx);
}
}
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, player_ptr->lev) + 1 }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SHOT, (OBJECT_SUBTYPE_VALUE)m_bonus(1, player_ptr->lev) + 1 }));
q_ptr->number = (byte)rand_range(15, 30);
object_aware(player_ptr, q_ptr);
object_known(q_ptr);
ObjectType forge;
q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::ARROW, static_cast<short>(m_bonus(1, player_ptr->lev) + 1) }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::ARROW, static_cast<short>(m_bonus(1, player_ptr->lev) + 1) }));
q_ptr->number = (byte)rand_range(5, 10);
object_aware(player_ptr, q_ptr);
object_known(q_ptr);
ObjectType forge;
q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::BOLT, static_cast<short>(m_bonus(1, player_ptr->lev) + 1) }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::BOLT, static_cast<short>(m_bonus(1, player_ptr->lev) + 1) }));
q_ptr->number = (byte)rand_range(4, 8);
object_aware(player_ptr, q_ptr);
object_known(q_ptr);
dummy2 = SV_BLADE_OF_CHAOS;
}
- q_ptr->prep(lookup_kind({ dummy, dummy2 }));
+ q_ptr->prep(lookup_baseitem_id({ dummy, dummy2 }));
q_ptr->to_h = 3 + randint1(player_ptr->current_floor_ptr->dun_level) % 10;
q_ptr->to_d = 3 + randint1(player_ptr->current_floor_ptr->dun_level) % 10;
one_resistance(q_ptr);
{
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_RATION }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_RATION }));
(void)drop_near(player_ptr, q_ptr, -1, player_ptr->y, player_ptr->x);
msg_print(_("食事を料理して作った。", "You cook some food."));
return true;
teleport_player(player_ptr, 10 + randint1(90), TELEPORT_SPONTANEOUS);
q_ptr->wipe();
const int sv_wooden_statue = 0;
- q_ptr->prep(lookup_kind({ ItemKindType::STATUE, sv_wooden_statue }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::STATUE, sv_wooden_statue }));
q_ptr->pval = enum2i(MonsterRaceId::NINJA);
(void)drop_near(player_ptr, q_ptr, -1, y, x);
if (tval > ItemKindType::NONE) {
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind(arena.key));
+ q_ptr->prep(lookup_baseitem_id(arena.key));
ItemMagicApplier(player_ptr, q_ptr, floor_ptr->object_level, AM_NO_FIXED_ART).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
}
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::CORPSE, (corpse ? SV_CORPSE : SV_SKELETON) }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::CORPSE, (corpse ? SV_CORPSE : SV_SKELETON) }));
ItemMagicApplier(player_ptr, q_ptr, floor_ptr->object_level, AM_NO_FIXED_ART).execute();
q_ptr->pval = enum2i(md_ptr->m_ptr->r_idx);
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
{
const auto &dungeon = dungeons_info[player_ptr->dungeon_idx];
const auto has_reward = dungeon.final_object > 0;
- const auto k_idx = has_reward ? dungeon.final_object : lookup_kind({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
+ const auto k_idx = has_reward ? dungeon.final_object : lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
if (dungeon.final_artifact == FixedArtifactId::NONE) {
return k_idx;
}
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::SWORD, SV_BLADE_OF_CHAOS }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SWORD, SV_BLADE_OF_CHAOS }));
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART | md_ptr->mo_mode).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
}
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::HAFTED, SV_GROND }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::HAFTED, SV_GROND }));
q_ptr->fixed_artifact_idx = FixedArtifactId::GROND;
ItemMagicApplier(player_ptr, q_ptr, -1, AM_GOOD | AM_GREAT).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::CROWN, SV_CHAOS }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::CROWN, SV_CHAOS }));
q_ptr->fixed_artifact_idx = FixedArtifactId::CHAOS;
ItemMagicApplier(player_ptr, q_ptr, -1, AM_GOOD | AM_GREAT).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::SWORD, randint1(2) }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::SWORD, randint1(2) }));
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
}
ObjectType forge;
auto *q_ptr = &forge;
- q_ptr->prep(lookup_kind({ ItemKindType::CHEST, SV_CHEST_KANDUME }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::CHEST, SV_CHEST_KANDUME }));
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
}
return;
}
- this->o_ptr->k_idx = lookup_kind({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
+ this->o_ptr->k_idx = lookup_baseitem_id({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
this->o_ptr->sval = SV_TWILIGHT_ROBE;
this->o_ptr->ac = 0;
this->o_ptr->to_a = 0;
* @details 存在しないことはリファクタリング成果により考えにくく、自作の不存在例外を投げればいいはず.
* 但し呼び出し側全部の処理を保証するのが面倒なので旧処理のままとする.
*/
-static short lookup_kind(ItemKindType tval, int sval)
+static short exe_lookup(ItemKindType tval, int sval)
{
static const auto &cache = create_baseitem_index_chache();
const auto itr = cache.find({ tval, sval });
* @details 「tvalが不存在」という状況は事実上ないが、辞書探索のお作法として「有無チェック」を入れておく.
* 万が一tvalがキャッシュになかったらベースアイテムID 0を返す.
*/
-short lookup_kind(const BaseitemKey &key)
+short lookup_baseitem_id(const BaseitemKey &key)
{
const auto sval = key.sval();
if (sval.has_value()) {
- return lookup_kind(key.tval(), sval.value());
+ return exe_lookup(key.tval(), sval.value());
}
static const auto &cache = create_baseitems_cache();
const auto &svals = itr->second;
const auto sval_indice = randint0(svals.size());
- return lookup_kind(key.tval(), svals.at(sval_indice));
+ return exe_lookup(key.tval(), svals.at(sval_indice));
}
bool kind_is_good(KIND_OBJECT_IDX k_idx);
class BaseitemKey;
-short lookup_kind(const BaseitemKey &key);
+short lookup_baseitem_id(const BaseitemKey &key);
msg_print(_("食料を生成した。", "A food ration is produced."));
/* Create the food ration */
- q_ptr->prep(lookup_kind({ ItemKindType::FOOD, SV_FOOD_RATION }));
+ q_ptr->prep(lookup_baseitem_id({ ItemKindType::FOOD, SV_FOOD_RATION }));
/* Drop the object from heaven */
(void)drop_near(player_ptr, q_ptr, -1, player_ptr->y, player_ptr->x);
while (num > 0) {
auto am_ptr = pt.pick_one_at_random();
- const auto k_idx = lookup_kind(am_ptr->key);
+ const auto k_idx = lookup_baseitem_id(am_ptr->key);
if (k_idx == 0) {
continue;
}
auto sval = 0;
for (auto &item : magic_eater_data->get_item_group(ItemKindType::ROD)) {
- const auto k_idx = lookup_kind({ ItemKindType::ROD, sval });
+ const auto k_idx = lookup_baseitem_id({ ItemKindType::ROD, sval });
item.charge -= ((item.count < 10) ? EATER_ROD_CHARGE * 3 : item.count * EATER_ROD_CHARGE / 3) * baseitems_info[k_idx].pval;
item.charge = std::max(item.charge, 0);
++sval;
if (category == "ARTIFACT") {
const auto &artifact_name = tokens[1];
const auto &[a_idx, a_ptr] = get_artifact_definition(artifact_name);
- const auto k_idx = lookup_kind({ a_ptr->tval, a_ptr->sval });
+ const auto k_idx = lookup_baseitem_id({ a_ptr->tval, a_ptr->sval });
ObjectType forge;
auto *q_ptr = &forge;
q_ptr->prep(k_idx);
return false;
}
- const auto i = lookup_kind({ a_ref.tval, a_ref.sval });
+ const auto i = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
if (i == 0) {
return false;
}
continue;
}
- const auto k_idx = lookup_kind({ a_ref.tval, a_ref.sval });
+ const auto k_idx = lookup_baseitem_id({ a_ref.tval, a_ref.sval });
if (!k_idx) {
continue;
}
{
const auto &a_ref = artifacts_info.at(a_idx);
ObjectType obj;
- obj.prep(lookup_kind({ a_ref.tval, a_ref.sval }));
+ obj.prep(lookup_baseitem_id({ a_ref.tval, a_ref.sval }));
obj.fixed_artifact_idx = a_idx;
object_known(&obj);
char buf[MAX_NLEN];
if (magic_ptr->spell_book != ItemKindType::NONE) {
ObjectType book;
auto o_ptr = &book;
- o_ptr->prep(lookup_kind({ magic_ptr->spell_book, 0 }));
+ o_ptr->prep(lookup_baseitem_id({ magic_ptr->spell_book, 0 }));
describe_flavor(&dummy_p, title, o_ptr, OD_NAME_ONLY);
book_name = title;
char *s = angband_strchr(book_name, '[');