case PlayerMutationType::DET_CURSE:
for (int i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if ((o_ptr->k_idx == 0) || !o_ptr->is_cursed()) {
+ if ((o_ptr->bi_id == 0) || !o_ptr->is_cursed()) {
continue;
}
}
o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
describe_flavor(player_ptr, o_name, o_ptr, 0);
}
return egos_info[o_ptr->ego_idx].act_idx;
}
- if (!o_ptr->is_random_artifact() && baseitems_info[o_ptr->k_idx].flags.has(TR_ACTIVATE)) {
- return baseitems_info[o_ptr->k_idx].act_idx;
+ if (!o_ptr->is_random_artifact() && baseitems_info[o_ptr->bi_id].flags.has(TR_ACTIVATE)) {
+ return baseitems_info[o_ptr->bi_id].act_idx;
}
return o_ptr->activation_id;
static bool weakening_artifact(ItemEntity *o_ptr)
{
- const auto k_idx = lookup_baseitem_id({ o_ptr->tval, o_ptr->sval });
- auto *k_ptr = &baseitems_info[k_idx];
+ const auto bi_id = lookup_baseitem_id({ o_ptr->tval, o_ptr->sval });
+ auto *k_ptr = &baseitems_info[bi_id];
auto flgs = object_flags(o_ptr);
if (flgs.has(TR_KILL_EVIL)) {
o_ptr->artifact_bias = 0;
o_ptr->fixed_artifact_idx = FixedArtifactId::NONE;
o_ptr->ego_idx = EgoType::NONE;
- o_ptr->art_flags |= baseitems_info[o_ptr->k_idx].flags;
+ o_ptr->art_flags |= baseitems_info[o_ptr->bi_id].flags;
bool has_pval = o_ptr->pval != 0;
decide_warrior_bias(player_ptr, o_ptr, a_scroll);
}
if (o_ptr->is_melee_weapon()) {
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
if ((o_ptr->dd != k_ptr->dd) || (o_ptr->ds != k_ptr->ds)) {
ADD_FLG(FLG_BOOSTED);
*/
bool get_destroyed_object_for_search(PlayerType *player_ptr, ItemEntity **o_handle, concptr *search_strp)
{
- if (!autopick_last_destroyed_object.k_idx) {
+ if (!autopick_last_destroyed_object.bi_id) {
return false;
}
}
if (IS_FLG(FLG_BOOSTED)) {
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
if (!o_ptr->is_melee_weapon()) {
return false;
}
ItemEntity *o_ptr;
o_ptr = ref_item(player_ptr, item);
- if (o_ptr->k_idx == 0 || !(o_ptr->marked & OM_AUTODESTROY)) {
+ if (o_ptr->bi_id == 0 || !(o_ptr->marked & OM_AUTODESTROY)) {
return;
}
for (INVENTORY_IDX item = INVEN_PACK - 1; item >= 0; item--) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[item];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (slot == INVEN_LITE) {
continue;
}
- if (player_ptr->inventory_list[slot].k_idx) {
+ if (player_ptr->inventory_list[slot].bi_id) {
continue;
}
{
for (INVENTORY_IDX i = 0; i < INVEN_PACK; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
use_realm = tval2realm(o_ptr->tval);
/* Track the object kind */
- object_kind_track(player_ptr, o_ptr->k_idx);
+ object_kind_track(player_ptr, o_ptr->bi_id);
handle_stuff(player_ptr);
/* Extract spells */
}
/* Track the object kind */
- object_kind_track(player_ptr, o_ptr->k_idx);
+ object_kind_track(player_ptr, o_ptr->bi_id);
handle_stuff(player_ptr);
/* Mage -- Learn a selected spell */
}
/* Track the object kind */
- object_kind_track(player_ptr, o_ptr->k_idx);
+ object_kind_track(player_ptr, o_ptr->bi_id);
handle_stuff(player_ptr);
if (is_every_magic) {
update_playtime();
init_autopick();
- if (autopick_last_destroyed_object.k_idx) {
+ if (autopick_last_destroyed_object.bi_id) {
autopick_entry_from_object(player_ptr, entry, &autopick_last_destroyed_object);
tb->last_destroyed = autopick_line_from_entry_kill(entry);
}
PlayerEnergy(player_ptr).set_player_turn_energy(100);
/* Object level */
- int lev = baseitems_info[o_ptr->k_idx].level;
+ int lev = baseitems_info[o_ptr->bi_id].level;
/* Identity not known yet */
int ident = exe_eat_food_type_object(player_ptr, o_ptr);
}
} else if (has_melee_weapon(player_ptr, INVEN_SUB_HAND)) {
slot = INVEN_MAIN_HAND;
- } else if (o_ptr_mh->k_idx && o_ptr_sh->k_idx &&
+ } else if (o_ptr_mh->bi_id && o_ptr_sh->bi_id &&
((o_ptr->tval == ItemKindType::CAPTURE) || (!o_ptr_mh->is_melee_weapon() && !o_ptr_sh->is_melee_weapon()))) {
q = _("どちらの手に装備しますか?", "Equip which hand? ");
s = _("おっと。", "Oops.");
if (!get_check(_("二刀流で戦いますか?", "Dual wielding? "))) {
slot = INVEN_MAIN_HAND;
}
- } else if (!o_ptr_mh->k_idx && has_melee_weapon(player_ptr, INVEN_SUB_HAND)) {
+ } else if (!o_ptr_mh->bi_id && has_melee_weapon(player_ptr, INVEN_SUB_HAND)) {
if (!get_check(_("二刀流で戦いますか?", "Dual wielding? "))) {
slot = INVEN_SUB_HAND;
}
- } else if (o_ptr_mh->k_idx && o_ptr_sh->k_idx) {
+ } else if (o_ptr_mh->bi_id && o_ptr_sh->bi_id) {
q = _("どちらの手に装備しますか?", "Equip which hand? ");
s = _("おっと。", "Oops.");
if (!choose_object(player_ptr, &slot, q, s, (USE_EQUIP), FuncItemTester(&ItemEntity::is_wieldable_in_etheir_hand))) {
break;
case ItemKindType::RING:
- if (player_ptr->inventory_list[INVEN_SUB_RING].k_idx && player_ptr->inventory_list[INVEN_MAIN_RING].k_idx) {
+ if (player_ptr->inventory_list[INVEN_SUB_RING].bi_id && player_ptr->inventory_list[INVEN_MAIN_RING].bi_id) {
q = _("どちらの指輪と取り替えますか?", "Replace which ring? ");
} else {
q = _("どちらの手に装備しますか?", "Equip which hand? ");
}
o_ptr = &player_ptr->inventory_list[slot];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
(void)inven_takeoff(player_ptr, slot, 255);
}
byte y, x = 0;
OBJECT_SUBTYPE_VALUE ctr;
PERCENTAGE chance;
- short k_idx;
+ short bi_id;
char dummy[80];
POSITION x1, y1;
DEPTH level;
continue;
}
- k_idx = lookup_baseitem_id({ tval, ctr });
+ bi_id = lookup_baseitem_id({ tval, ctr });
if (use_menu) {
if (ctr == (menu_line - 1)) {
}
x1 = ((ctr < ITEM_GROUP_SIZE / 2) ? x : x + 40);
y1 = ((ctr < ITEM_GROUP_SIZE / 2) ? y + ctr : y + ctr - ITEM_GROUP_SIZE / 2);
- level = (tval == ItemKindType::ROD ? baseitems_info[k_idx].level * 5 / 6 - 5 : baseitems_info[k_idx].level);
+ level = (tval == ItemKindType::ROD ? baseitems_info[bi_id].level * 5 / 6 - 5 : baseitems_info[bi_id].level);
chance = level * 4 / 5 + 20;
chance -= 3 * (adj_mag_stat[player_ptr->stat_index[mp_ptr->spell_stat]] - 1);
level /= 2;
col = TERM_WHITE;
- if (k_idx) {
+ if (bi_id) {
if (tval == ItemKindType::ROD) {
strcat(dummy,
- format(_(" %-22.22s 充填:%2d/%2d%3d%%", " %-22.22s (%2d/%2d) %3d%%"), baseitems_info[k_idx].name.data(),
- item.charge ? (item.charge - 1) / (EATER_ROD_CHARGE * baseitems_info[k_idx].pval) + 1 : 0,
+ format(_(" %-22.22s 充填:%2d/%2d%3d%%", " %-22.22s (%2d/%2d) %3d%%"), baseitems_info[bi_id].name.data(),
+ item.charge ? (item.charge - 1) / (EATER_ROD_CHARGE * baseitems_info[bi_id].pval) + 1 : 0,
item.count, chance));
- if (item.charge > baseitems_info[k_idx].pval * (item.count - 1) * EATER_ROD_CHARGE) {
+ if (item.charge > baseitems_info[bi_id].pval * (item.count - 1) * EATER_ROD_CHARGE) {
col = TERM_RED;
}
} else {
strcat(dummy,
- format(" %-22.22s %2d/%2d %3d%%", baseitems_info[k_idx].name.data(), (int16_t)(item.charge / EATER_CHARGE),
+ format(" %-22.22s %2d/%2d %3d%%", baseitems_info[bi_id].name.data(), (int16_t)(item.charge / EATER_CHARGE),
item.count, chance));
if (item.charge < EATER_CHARGE) {
col = TERM_RED;
}
auto &baseitem = result.value();
- 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 bi_id = lookup_baseitem_id(baseitem);
+ auto level = (baseitem.tval() == ItemKindType::ROD ? baseitems_info[bi_id].level * 5 / 6 - 5 : baseitems_info[bi_id].level);
auto chance = level * 4 / 5 + 20;
chance -= 3 * (adj_mag_stat[player_ptr->stat_index[mp_ptr->spell_stat]] - 1);
level /= 2;
energy.set_player_turn_energy(100);
if (tval == ItemKindType::ROD) {
- item.charge += baseitems_info[k_idx].pval * EATER_ROD_CHARGE;
+ item.charge += baseitems_info[bi_id].pval * EATER_ROD_CHARGE;
} else {
item.charge -= EATER_CHARGE;
}
return;
}
- if (o_armed_ptr->k_idx) {
+ if (o_armed_ptr->bi_id) {
int basedam = ((o_armed_ptr->dd + player_ptr->to_dd[0]) * (o_armed_ptr->ds + player_ptr->to_ds[0] + 1));
dam = basedam / 2 + o_armed_ptr->to_d + player_ptr->to_d[0];
}
o_armed_ptr = &player_ptr->inventory_list[INVEN_BODY];
- if ((o_armed_ptr->k_idx) && o_armed_ptr->is_cursed()) {
+ if ((o_armed_ptr->bi_id) && o_armed_ptr->is_cursed()) {
dam *= 2;
}
/* Some cursed armours gives an extra effect */
for (int j = 0; j < TABLE_SIZE; j++) {
o_armed_ptr = &player_ptr->inventory_list[table[j].slot];
- if ((o_armed_ptr->k_idx) && o_armed_ptr->is_cursed() && o_armed_ptr->is_armour()) {
+ if ((o_armed_ptr->bi_id) && o_armed_ptr->is_cursed() && o_armed_ptr->is_armour()) {
project(player_ptr, 0, 0, monap_ptr->m_ptr->fy, monap_ptr->m_ptr->fx, (player_ptr->lev * 2), table[j].type, flg);
}
}
for (OBJECT_IDX i = 1; i < floor_ptr->o_max; i++) {
o_ptr = &floor_ptr->o_list[i];
- if (!o_ptr->is_valid() || (baseitems_info[o_ptr->k_idx].level > cur_lev)) {
+ if (!o_ptr->is_valid() || (baseitems_info[o_ptr->bi_id].level > cur_lev)) {
continue;
}
for (OBJECT_IDX i = floor_ptr->o_max - 1; i >= 1; i--) {
o_ptr = &floor_ptr->o_list[i];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
continue;
}
/*
* Track the given object kind
*/
-void object_kind_track(PlayerType *player_ptr, short k_idx)
+void object_kind_track(PlayerType *player_ptr, short bi_id)
{
- player_ptr->baseitem_info_idx = k_idx;
+ player_ptr->baseitem_info_idx = bi_id;
player_ptr->window_flags |= (PW_OBJECT);
}
class PlayerType;
void handle_stuff(PlayerType *player_ptr);
void monster_race_track(PlayerType *player_ptr, MonsterRaceId r_idx);
-void object_kind_track(PlayerType *player_ptr, short k_idx);
+void object_kind_track(PlayerType *player_ptr, short bi_id);
void health_track(PlayerType *player_ptr, MONSTER_IDX m_idx);
bool update_player(PlayerType *player_ptr);
msg_format(_("%sは%s", "The %s%s"), o_name, note_kill);
}
- short k_idx = o_ptr->k_idx;
+ short bi_id = o_ptr->bi_id;
bool is_potion = o_ptr->is_potion();
delete_object_idx(player_ptr, this_o_idx);
if (is_potion) {
- (void)potion_smash_effect(player_ptr, who, y, x, k_idx);
+ (void)potion_smash_effect(player_ptr, who, y, x, bi_id);
// 薬の破壊効果によりリストの次のアイテムが破壊された可能性があるのでリストの最初から処理をやり直す
// 処理済みのアイテムは processed_list に登録されており、スキップされる
flavor_type tmp_flavor;
flavor_type *flavor_ptr = initialize_flavor_type(&tmp_flavor, buf, o_ptr, mode);
describe_named_item(player_ptr, flavor_ptr);
- if (flavor_ptr->mode & OD_NAME_ONLY || o_ptr->k_idx == 0) {
+ if (flavor_ptr->mode & OD_NAME_ONLY || o_ptr->bi_id == 0) {
angband_strcpy(flavor_ptr->buf, flavor_ptr->tmp_val, MAX_NLEN);
return;
}
describe_named_item_tval(flavor_ptr);
if (!(mode & OD_DEBUG)) {
flavor_ptr->bow_ptr = &player_ptr->inventory_list[INVEN_BOW];
- if ((flavor_ptr->bow_ptr->k_idx != 0) && (flavor_ptr->o_ptr->tval == bow_tval_ammo(flavor_ptr->bow_ptr))) {
+ if ((flavor_ptr->bow_ptr->bi_id != 0) && (flavor_ptr->o_ptr->tval == bow_tval_ammo(flavor_ptr->bow_ptr))) {
describe_bow_power(player_ptr, flavor_ptr);
} else if (PlayerClass(player_ptr).equals(PlayerClassType::NINJA) && (flavor_ptr->o_ptr->tval == ItemKindType::SPIKE)) {
describe_spike_power(player_ptr, flavor_ptr);
flavor_ptr->buf = buf;
flavor_ptr->o_ptr = o_ptr;
flavor_ptr->mode = mode;
- flavor_ptr->kindname = baseitems_info[o_ptr->k_idx].name.data();
+ flavor_ptr->kindname = baseitems_info[o_ptr->bi_id].name.data();
flavor_ptr->basenm = flavor_ptr->kindname;
flavor_ptr->modstr = "";
flavor_ptr->aware = false;
flavor_ptr->b2 = ']';
flavor_ptr->c1 = '{';
flavor_ptr->c2 = '}';
- flavor_ptr->k_ptr = &baseitems_info[o_ptr->k_idx];
+ flavor_ptr->k_ptr = &baseitems_info[o_ptr->bi_id];
flavor_ptr->flavor_k_ptr = &baseitems_info[flavor_ptr->k_ptr->flavor];
return flavor_ptr;
}
char *prev_ptr = short_flavor;
auto flgs = object_flags(o_ptr);
if (!all) {
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
flgs.reset(k_ptr->flags);
if (o_ptr->is_fixed_artifact()) {
/*!
* @brief nameバッファ内からベースアイテム名を返す / Strip an "object name" into a buffer
* @param buf ベースアイテム格納先の参照ポインタ
- * @param k_idx ベースアイテムID
+ * @param bi_id ベースアイテムID
*/
-std::string strip_name(short k_idx)
+std::string strip_name(short bi_id)
{
- auto k_ptr = &baseitems_info[k_idx];
+ auto k_ptr = &baseitems_info[bi_id];
auto tok = str_split(k_ptr->name, ' ');
std::stringstream name;
for (const auto &s : tok) {
void get_table_sindarin_aux(char *out_string);
void get_table_sindarin(char *out_string);
void flavor_init(void);
-std::string strip_name(short k_idx);
+std::string strip_name(short bi_id);
return;
}
- const auto k_idx = lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
+ const auto bi_id = lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
ItemEntity forge;
auto *q_ptr = &forge;
- q_ptr->prep(k_idx);
+ q_ptr->prep(bi_id);
drop_here(player_ptr->current_floor_ptr, q_ptr, *qtwg_ptr->y, *qtwg_ptr->x);
}
for (MONSTER_IDX i = 1; i < floor_ptr->o_max; i++) {
auto *o_ptr = &floor_ptr->o_list[i];
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
int delta = 0;
if (!o_ptr->is_valid() || (o_ptr->is_known() && ((o_ptr->marked & OM_TOUCHED) != 0)) || ((o_ptr->ident & IDENT_SENSE) != 0)) {
continue;
get_obj_index_prep();
}
- auto k_idx = get_obj_index(player_ptr, base, mode);
+ auto bi_id = get_obj_index(player_ptr, base, mode);
if (get_obj_index_hook) {
get_obj_index_hook = nullptr;
get_obj_index_prep();
}
- if (k_idx == 0) {
+ if (bi_id == 0) {
return false;
}
- j_ptr->prep(k_idx);
+ j_ptr->prep(bi_id);
}
ItemMagicApplier(player_ptr, j_ptr, floor_ptr->object_level, mode).execute();
void floor_item_optimize(PlayerType *player_ptr, INVENTORY_IDX item)
{
auto *o_ptr = &player_ptr->current_floor_ptr->o_list[item];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return;
}
if (o_ptr->number) {
for (int i = 0; i < INVEN_TOTAL; i++) {
MonsterRaceInfo *r_ptr;
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (o_ptr->tval != ItemKindType::CAPTURE) {
int i_keep = 0, count = 0;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
/* Scan through the slots backwards */
for (i = 0; i < INVEN_PACK; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
/* Potions smash open */
if (o_ptr->is_potion()) {
- (void)potion_smash_effect(player_ptr, 0, player_ptr->y, player_ptr->x, o_ptr->k_idx);
+ (void)potion_smash_effect(player_ptr, 0, player_ptr->y, player_ptr->x, o_ptr->bi_id);
}
/* Reduce the charges of rods/wands */
void inven_item_optimize(PlayerType *player_ptr, INVENTORY_IDX item)
{
auto *o_ptr = &player_ptr->inventory_list[item];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return;
}
if (o_ptr->number) {
for (int i = INVEN_PACK; i > 0; i--) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int j = 0; j < i; j++) {
ItemEntity *j_ptr;
j_ptr = &player_ptr->inventory_list[j];
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
continue;
}
}
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
ItemEntity *j_ptr;
for (j = 0; j < INVEN_PACK; j++) {
j_ptr = &player_ptr->inventory_list[j];
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
continue;
}
for (j = 0; j <= INVEN_PACK; j++) {
j_ptr = &player_ptr->inventory_list[j];
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
break;
}
}
for (int j = 0; j < INVEN_PACK; j++) {
auto *j_ptr = &player_ptr->inventory_list[j];
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
continue;
}
for (COMMAND_CODE i = start; i <= end; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if ((o_ptr->k_idx == 0) || (o_ptr->inscription == 0)) {
+ if ((o_ptr->bi_id == 0) || (o_ptr->inscription == 0)) {
continue;
}
for (COMMAND_CODE i = start; i <= end; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if ((o_ptr->k_idx == 0) || (o_ptr->inscription == 0)) {
+ if ((o_ptr->bi_id == 0) || (o_ptr->inscription == 0)) {
continue;
}
return is_ring_slot(i) ? i : -1;
}
- if (!player_ptr->inventory_list[i].k_idx) {
+ if (!player_ptr->inventory_list[i].bi_id) {
return -1;
}
{
INVENTORY_IDX i = (INVENTORY_IDX)(islower(c) ? A2I(c) : -1);
- if ((i < 0) || (i > INVEN_PACK) || (player_ptr->inventory_list[i].k_idx == 0)) {
+ if ((i < 0) || (i > INVEN_PACK) || (player_ptr->inventory_list[i].bi_id == 0)) {
return -1;
}
*/
void pack_overflow(PlayerType *player_ptr)
{
- if (player_ptr->inventory_list[INVEN_PACK].k_idx == 0) {
+ if (player_ptr->inventory_list[INVEN_PACK].bi_id == 0) {
return;
}
GAME_TEXT o_name[MAX_NLEN];
ItemEntity *o_ptr;
update_creature(player_ptr);
- if (!player_ptr->inventory_list[INVEN_PACK].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_PACK].bi_id) {
return;
}
for (changed = false, i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
*/
for (changed = false, i = 0; i < INVEN_PACK; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
- if (!o_ptr->k_idx) {
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
+ if (!o_ptr->bi_id) {
continue;
}
fprintf(fff, _(" [キャラクタの持ち物]\n\n", " [Character Inventory]\n\n"));
for (int i = 0; i < INVEN_PACK; i++) {
- if (!player_ptr->inventory_list[i].k_idx) {
+ if (!player_ptr->inventory_list[i].bi_id) {
break;
}
describe_flavor(player_ptr, o_name, &player_ptr->inventory_list[i], 0);
continue;
}
- auto k_idx = lookup_baseitem_id({ tval, i });
- if (!k_idx) {
+ auto bi_id = lookup_baseitem_id({ tval, i });
+ if (!bi_id) {
continue;
}
char buf[128];
- snprintf(buf, sizeof(buf), "%23s (%2d)", baseitems_info[k_idx].name.data(), item.count);
+ snprintf(buf, sizeof(buf), "%23s (%2d)", baseitems_info[bi_id].name.data(), item.count);
desc_list.emplace_back(buf);
}
auto caret_command = this->get_caret_command();
for (auto i = enum2i(INVEN_MAIN_HAND); i < INVEN_TOTAL; i++) {
auto &o_ref = this->player_ptr->inventory_list[i];
- if ((o_ref.k_idx == 0) || (o_ref.inscription == 0)) {
+ if ((o_ref.bi_id == 0) || (o_ref.inscription == 0)) {
continue;
}
*/
static bool check_item_knowledge(ItemEntity *o_ptr, ItemKindType tval)
{
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return false;
}
if (o_ptr->tval != tval) {
for (auto i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (!o_ptr->is_fixed_artifact()) {
for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++) {
TERM_COLOR a;
BaseitemInfo *flavor_k_ptr;
- short k_idx = object_idx[object_top + i];
- auto *k_ptr = &baseitems_info[k_idx];
+ short bi_id = object_idx[object_top + i];
+ auto *k_ptr = &baseitems_info[bi_id];
TERM_COLOR attr = ((k_ptr->aware || visual_only) ? TERM_WHITE : TERM_SLATE);
byte cursor = ((k_ptr->aware || visual_only) ? TERM_L_BLUE : TERM_BLUE);
if (!visual_only && k_ptr->flavor) {
attr = ((i + object_top == object_cur) ? cursor : attr);
const auto is_flavor_only = (k_ptr->flavor != 0) && (visual_only || !k_ptr->aware);
- const auto o_name = is_flavor_only ? flavor_k_ptr->flavor_name : strip_name(k_idx);
+ const auto o_name = is_flavor_only ? flavor_k_ptr->flavor_name : strip_name(bi_id);
c_prt(attr, o_name.data(), row + i, col);
if (per_page == 1) {
c_prt(attr, format("%02x/%02x", flavor_k_ptr->x_attr, flavor_k_ptr->x_char), row + i, (w_ptr->wizard || visual_only) ? 64 : 68);
}
if (w_ptr->wizard || visual_only) {
- c_prt(attr, format("%d", k_idx), row + i, 70);
+ c_prt(attr, format("%d", bi_id), row + i, 70);
}
a = flavor_k_ptr->x_attr;
/*
* Describe fake object
*/
-static void desc_obj_fake(PlayerType *player_ptr, short k_idx)
+static void desc_obj_fake(PlayerType *player_ptr, short bi_id)
{
ItemEntity *o_ptr;
ItemEntity ObjectType_body;
o_ptr = &ObjectType_body;
o_ptr->wipe();
- o_ptr->prep(k_idx);
+ o_ptr->prep(bi_id);
o_ptr->ident |= IDENT_KNOWN;
handle_stuff(player_ptr);
if (q_ref.reward_artifact_idx != FixedArtifactId::NONE) {
const auto &a_ref = artifacts_info.at(q_ref.reward_artifact_idx);
ItemEntity item;
- auto k_idx = lookup_baseitem_id(a_ref.bi_key);
- item.prep(k_idx);
+ auto bi_id = lookup_baseitem_id(a_ref.bi_key);
+ item.prep(bi_id);
item.fixed_artifact_idx = q_ref.reward_artifact_idx;
item.ident = IDENT_STORE;
describe_flavor(player_ptr, name, &item, OD_NAME_ONLY);
ItemEntity item;
item_loader->rd_item(&item);
- if (!item.k_idx) {
+ if (!item.bi_id) {
return 53;
}
}
auto flags = rd_u32b();
- o_ptr->k_idx = rd_s16b();
+ o_ptr->bi_id = rd_s16b();
o_ptr->iy = rd_byte();
o_ptr->ix = rd_byte();
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
o_ptr->tval = k_ptr->bi_key.tval();
o_ptr->sval = k_ptr->bi_key.sval().value();
o_ptr->pval = any_bits(flags, SaveDataItemFlagType::PVAL) ? rd_s16b() : 0;
*/
void rd_item_old(ItemEntity *o_ptr)
{
- o_ptr->k_idx = rd_s16b();
+ o_ptr->bi_id = rd_s16b();
o_ptr->iy = rd_byte();
o_ptr->ix = rd_byte();
strip_bytes(tmp32s);
}
- if ((o_ptr->k_idx >= 445) && (o_ptr->k_idx <= 479)) {
+ if ((o_ptr->bi_id >= 445) && (o_ptr->bi_id <= 479)) {
return;
}
if (h_older_than(0, 4, 10) && (o_ptr->ego_idx == EgoType::TWILIGHT)) {
- o_ptr->k_idx = lookup_baseitem_id({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
+ o_ptr->bi_id = lookup_baseitem_id({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
}
if (h_older_than(0, 4, 9)) {
}
}
- auto dd_bonus = o_ptr->dd - baseitems_info[o_ptr->k_idx].dd;
- auto ds_bonus = o_ptr->ds - baseitems_info[o_ptr->k_idx].ds;
- dd_bonus += mo_ptr->dd - baseitems_info[mo_ptr->k_idx].dd;
- ds_bonus += mo_ptr->ds - baseitems_info[mo_ptr->k_idx].ds;
+ auto dd_bonus = o_ptr->dd - baseitems_info[o_ptr->bi_id].dd;
+ auto ds_bonus = o_ptr->ds - baseitems_info[o_ptr->bi_id].ds;
+ dd_bonus += mo_ptr->dd - baseitems_info[mo_ptr->bi_id].dd;
+ ds_bonus += mo_ptr->ds - baseitems_info[mo_ptr->bi_id].ds;
const auto &k_ref = baseitems_info[bi_id];
- o_ptr->k_idx = bi_id;
+ o_ptr->bi_id = bi_id;
o_ptr->weight = k_ref.weight;
o_ptr->tval = k_ref.bi_key.tval();
o_ptr->sval = k_ref.bi_key.sval().value();
}
for (const auto &baseitem : store_regular_sale_table.at(sst)) {
- auto k_idx = lookup_baseitem_id(baseitem);
- store_ptr->regular.push_back(k_idx);
+ auto bi_id = lookup_baseitem_id(baseitem);
+ store_ptr->regular.push_back(bi_id);
}
for (const auto &baseitem : store_sale_table.at(sst)) {
- auto k_idx = lookup_baseitem_id(baseitem);
- store_ptr->table.push_back(k_idx);
+ auto bi_id = lookup_baseitem_id(baseitem);
+ store_ptr->table.push_back(bi_id);
}
}
}
}
BaseitemInfo *k_ptr;
- k_ptr = &baseitems_info[o_ptr->k_idx];
+ k_ptr = &baseitems_info[o_ptr->bi_id];
/*
* We don't want to give the player free info about
return;
}
- DEPTH lev = baseitems_info[o_ptr->k_idx].level;
+ DEPTH lev = baseitems_info[o_ptr->bi_id].level;
PRICE price;
if (o_ptr->tval == ItemKindType::ROD) {
if (o_ptr->timeout > 0) {
return;
}
} else if (o_ptr->tval == ItemKindType::STAFF) {
- price = (baseitems_info[o_ptr->k_idx].cost / 10) * o_ptr->number;
+ price = (baseitems_info[o_ptr->bi_id].cost / 10) * o_ptr->number;
price = std::max(10, price);
} else {
- price = (baseitems_info[o_ptr->k_idx].cost / 10);
+ price = (baseitems_info[o_ptr->bi_id].cost / 10);
price = std::max(10, price);
}
total_cost += 50;
}
- DEPTH lev = baseitems_info[o_ptr->k_idx].level;
+ DEPTH lev = baseitems_info[o_ptr->bi_id].level;
BaseitemInfo *k_ptr;
- k_ptr = &baseitems_info[o_ptr->k_idx];
+ k_ptr = &baseitems_info[o_ptr->bi_id];
switch (o_ptr->tval) {
case ItemKindType::ROD:
break;
case ItemKindType::STAFF:
- price = (baseitems_info[o_ptr->k_idx].cost / 10) * o_ptr->number;
+ price = (baseitems_info[o_ptr->bi_id].cost / 10) * o_ptr->number;
price = std::max(10, price);
price = (k_ptr->pval - o_ptr->pval) * price;
break;
case ItemKindType::WAND:
- price = (baseitems_info[o_ptr->k_idx].cost / 10);
+ price = (baseitems_info[o_ptr->bi_id].cost / 10);
price = std::max(10, price);
price = (o_ptr->number * k_ptr->pval - o_ptr->pval) * price;
break;
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
BaseitemInfo *k_ptr;
- k_ptr = &baseitems_info[o_ptr->k_idx];
+ k_ptr = &baseitems_info[o_ptr->bi_id];
if ((o_ptr->tval < ItemKindType::STAFF) || (o_ptr->tval > ItemKindType::ROD)) {
continue;
}
BaseitemInfo *k_ptr;
- k_ptr = &baseitems_info[o_ptr->k_idx];
- DEPTH lev = baseitems_info[o_ptr->k_idx].level;
+ k_ptr = &baseitems_info[o_ptr->bi_id];
+ DEPTH lev = baseitems_info[o_ptr->bi_id].level;
int recharge_strength = 0;
bool is_eating_successful = true;
for (int i = 0; i < max_draining_item; i++) {
INVENTORY_IDX i_idx = (INVENTORY_IDX)randint0(INVEN_PACK);
monap_ptr->o_ptr = &player_ptr->inventory_list[i_idx];
- if (monap_ptr->o_ptr->k_idx == 0) {
+ if (monap_ptr->o_ptr->bi_id == 0) {
continue;
}
OBJECT_IDX o_idx;
INVENTORY_IDX i_idx = (INVENTORY_IDX)randint0(INVEN_PACK);
monap_ptr->o_ptr = &player_ptr->inventory_list[i_idx];
- if (!monap_ptr->o_ptr->k_idx) {
+ if (!monap_ptr->o_ptr->bi_id) {
continue;
}
for (int i = 0; i < 10; i++) {
INVENTORY_IDX i_idx = (INVENTORY_IDX)randint0(INVEN_PACK);
monap_ptr->o_ptr = &player_ptr->inventory_list[i_idx];
- if (!monap_ptr->o_ptr->k_idx) {
+ if (!monap_ptr->o_ptr->bi_id) {
continue;
}
}
bool is_magic_mastery = has_magic_mastery(player_ptr) != 0;
- BaseitemInfo *kind_ptr = &baseitems_info[monap_ptr->o_ptr->k_idx];
+ BaseitemInfo *kind_ptr = &baseitems_info[monap_ptr->o_ptr->bi_id];
PARAMETER_VALUE pval = kind_ptr->pval;
DEPTH level = monap_ptr->rlev;
auto drain = is_magic_mastery ? std::min<short>(pval, pval * level / 400 + pval * randint1(level) / 400) : pval;
{
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_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
+ const auto bi_id = has_reward ? dungeon.final_object : lookup_baseitem_id({ ItemKindType::SCROLL, SV_SCROLL_ACQUIREMENT });
if (dungeon.final_artifact == FixedArtifactId::NONE) {
- return k_idx;
+ return bi_id;
}
const auto a_idx = dungeon.final_artifact;
auto &a_ref = artifacts_info.at(a_idx);
if (a_ref.is_generated) {
- return k_idx;
+ return bi_id;
}
if (create_named_art(player_ptr, a_idx, md_ptr->md_y, md_ptr->md_x)) {
}
}
- return dungeon.final_object ? k_idx : 0;
+ return dungeon.final_object ? bi_id : 0;
}
static void drop_artifacts(PlayerType *player_ptr, monster_death_type *md_ptr)
return;
}
- short k_idx = drop_dungeon_final_artifact(player_ptr, md_ptr);
- if (k_idx != 0) {
+ short bi_id = drop_dungeon_final_artifact(player_ptr, md_ptr);
+ if (bi_id != 0) {
ItemEntity forge;
auto *q_ptr = &forge;
- q_ptr->prep(k_idx);
+ q_ptr->prep(bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->object_level, AM_NO_FIXED_ART | AM_GOOD).execute();
(void)drop_near(player_ptr, q_ptr, -1, md_ptr->md_y, md_ptr->md_x);
}
* 最初のアイテム生成でいきなり☆が生成された場合を除き、中途半端な☆ (例:呪われている)は生成しない.
* このルーチンで★は生成されないので、★生成フラグのキャンセルも不要
*/
-static void on_dead_random_artifact(PlayerType *player_ptr, monster_death_type *md_ptr, bool (*object_hook_pf)(short k_idx))
+static void on_dead_random_artifact(PlayerType *player_ptr, monster_death_type *md_ptr, bool (*object_hook_pf)(short bi_id))
{
ItemEntity forge;
auto *q_ptr = &forge;
msg_print(_("どこからか声が聞こえる…「ハロー! そして…グッドバイ!」", "Heard a voice from somewhere... 'Hello! And... good bye!'"));
}
-static void drop_specific_item_on_dead(PlayerType *player_ptr, monster_death_type *md_ptr, bool (*object_hook_pf)(short k_idx))
+static void drop_specific_item_on_dead(PlayerType *player_ptr, monster_death_type *md_ptr, bool (*object_hook_pf)(short bi_id))
{
ItemEntity forge;
auto *q_ptr = &forge;
ae_type *initialize_ae_type(PlayerType *player_ptr, ae_type *ae_ptr, const INVENTORY_IDX item)
{
ae_ptr->o_ptr = ref_item(player_ptr, item);
- ae_ptr->lev = baseitems_info[ae_ptr->o_ptr->k_idx].level;
+ ae_ptr->lev = baseitems_info[ae_ptr->o_ptr->bi_id].level;
return ae_ptr;
}
*/
void ItemMagicApplier::apply_cursed()
{
- if (this->o_ptr->k_idx == 0) {
+ if (this->o_ptr->bi_id == 0) {
return;
}
- const auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
- if (!baseitems_info[this->o_ptr->k_idx].cost) {
+ const auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ if (!baseitems_info[this->o_ptr->bi_id].cost) {
set_bits(this->o_ptr->ident, IDENT_BROKEN);
}
*/
void make_weight_ligten(ItemEntity *o_ptr)
{
- o_ptr->weight = (2 * baseitems_info[o_ptr->k_idx].weight / 3);
+ o_ptr->weight = (2 * baseitems_info[o_ptr->bi_id].weight / 3);
}
/*!
*/
void make_weight_heavy(ItemEntity *o_ptr)
{
- o_ptr->weight = (4 * baseitems_info[o_ptr->k_idx].weight / 3);
+ o_ptr->weight = (4 * baseitems_info[o_ptr->bi_id].weight / 3);
}
/*!
}
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND + randint0(12)];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return;
}
auto oflgs = object_flags(o_ptr);
void AmuletEnchanter::give_ego_index()
{
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
switch (randint1(21)) {
case 1:
case 2:
}
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
switch (randint1(5)) {
case 1:
if (k_ptr->flags.has(TR_DRAIN_EXP)) {
this->enchant_wand_staff();
break;
case ItemKindType::ROD:
- this->o_ptr->pval = baseitems_info[this->o_ptr->k_idx].pval;
+ this->o_ptr->pval = baseitems_info[this->o_ptr->bi_id].pval;
break;
case ItemKindType::CAPTURE:
this->o_ptr->pval = 0;
*/
void OtherItemsEnchanter::enchant_wand_staff()
{
- auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
this->o_ptr->pval = k_ptr->pval / 2 + randint1((k_ptr->pval + 1) / 2);
}
*/
void OtherItemsEnchanter::generate_chest()
{
- auto obj_level = baseitems_info[this->o_ptr->k_idx].level;
+ auto obj_level = baseitems_info[this->o_ptr->bi_id].level;
if (obj_level <= 0) {
return;
}
{
while (!this->o_ptr->is_ego()) {
int tmp = m_bonus(10, this->level);
- auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
switch (randint1(28)) {
case 1:
case 2:
}
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
switch (randint1(5)) {
case 1:
if (k_ptr->flags.has(TR_DRAIN_EXP)) {
return;
}
- this->o_ptr->k_idx = lookup_baseitem_id({ ItemKindType::SOFT_ARMOR, SV_TWILIGHT_ROBE });
+ this->o_ptr->bi_id = 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;
auto ident = QuaffEffects(this->player_ptr).influence(o_ref);
if (PlayerRace(this->player_ptr).equals(PlayerRaceType::SKELETON)) {
msg_print(_("液体の一部はあなたのアゴを素通りして落ちた!", "Some of the fluid falls through your jaws!"));
- (void)potion_smash_effect(this->player_ptr, 0, this->player_ptr->y, this->player_ptr->x, o_ref.k_idx);
+ (void)potion_smash_effect(this->player_ptr, 0, this->player_ptr->y, this->player_ptr->x, o_ref.bi_id);
}
this->player_ptr->update |= PU_COMBINE | PU_REORDER;
object_tried(&o_ref);
if (ident && !o_ref.is_aware()) {
object_aware(this->player_ptr, &o_ref);
- gain_exp(this->player_ptr, (baseitems_info[o_ref.k_idx].level + (this->player_ptr->lev >> 1)) / this->player_ptr->lev);
+ gain_exp(this->player_ptr, (baseitems_info[o_ref.bi_id].level + (this->player_ptr->lev >> 1)) / this->player_ptr->lev);
}
this->player_ptr->window_flags |= (PW_INVEN | PW_EQUIP | PW_PLAYER);
}
object_aware(this->player_ptr, o_ptr);
- auto lev = baseitems_info[o_ptr->k_idx].level;
+ auto lev = baseitems_info[o_ptr->bi_id].level;
gain_exp(this->player_ptr, (lev + (this->player_ptr->lev >> 1)) / this->player_ptr->lev);
}
}
msg_format(_("%sは砕け散った!", "The %s shatters!"), this->o_name);
- if (!potion_smash_effect(this->player_ptr, 0, this->y, this->x, this->q_ptr->k_idx)) {
+ if (!potion_smash_effect(this->player_ptr, 0, this->y, this->x, this->q_ptr->bi_id)) {
this->do_drop = false;
return;
}
return;
}
- auto lev = baseitems_info[o_ptr->k_idx].level;
+ auto lev = baseitems_info[o_ptr->bi_id].level;
if (lev > 50) {
lev = 50 + (lev - 50) / 2;
}
return;
}
- auto lev = baseitems_info[o_ptr->k_idx].level;
+ auto lev = baseitems_info[o_ptr->bi_id].level;
auto chance = this->player_ptr->skill_dev;
if (this->player_ptr->effects()->confusion()->is_confused()) {
chance = chance / 2;
return;
}
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
if ((o_ptr->number == 1) && (o_ptr->timeout)) {
if (flush_failure) {
flush();
return;
}
- auto lev = baseitems_info[o_ptr->k_idx].level;
+ auto lev = baseitems_info[o_ptr->bi_id].level;
if (lev > 50) {
lev = 50 + (lev - 50) / 2;
}
* Check an item against the item tester info
* @param o_ptr 判定を行いたいオブジェクト構造体参照ポインタ
* @return アイテムが条件を満たしているならtrueを返す
- * @details 最初にk_idxが無効でないか等の共通の判定を行った後に子クラスで実装される okay_impl 関数の結果を返す
+ * @details 最初にbi_idが無効でないか等の共通の判定を行った後に子クラスで実装される okay_impl 関数の結果を返す
*/
bool ItemTester::okay(const ItemEntity *o_ptr) const
{
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return false;
}
* @param who 薬破損の主体ID(プレイヤー所持アイテムが壊れた場合0、床上のアイテムの場合モンスターID)
* @param y 破壊時のY座標
* @param x 破壊時のX座標
- * @param k_idx 破損した薬のアイテムID
+ * @param bi_id 破損した薬のアイテムID
* @return 薬を浴びたモンスターが起こるならばTRUEを返す
* @details
* <pre>
* o_ptr --- pointer to the potion object.
* </pre>
*/
-bool potion_smash_effect(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, short k_idx)
+bool potion_smash_effect(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, short bi_id)
{
int radius = 2;
AttributeType dt = AttributeType::NONE;
int dam = 0;
bool angry = false;
- const auto &k_ref = baseitems_info[k_idx];
+ const auto &k_ref = baseitems_info[bi_id];
switch (k_ref.bi_key.sval().value()) {
case SV_POTION_SALT_WATER:
case SV_POTION_SLIME_MOLD:
class ItemEntity;
class PlayerType;
-bool potion_smash_effect(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, short k_idx);
+bool potion_smash_effect(PlayerType *player_ptr, MONSTER_IDX who, POSITION y, POSITION x, short bi_id);
PERCENTAGE breakage_chance(PlayerType *player_ptr, ItemEntity *o_ptr, bool has_archer_bonus, SPELL_IDX snipe_type);
class ObjectBreaker {
*/
TrFlags object_flags(const ItemEntity *o_ptr)
{
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
/* Base object */
auto flgs = k_ptr->flags;
TrFlags object_flags_known(const ItemEntity *o_ptr)
{
bool spoil = false;
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
TrFlags flgs{};
if (!o_ptr->is_aware()) {
case ItemKindType::HAFTED:
case ItemKindType::POLEARM:
case ItemKindType::SWORD: {
- if (!player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id) {
return INVEN_MAIN_HAND;
}
- if (player_ptr->inventory_list[INVEN_SUB_HAND].k_idx) {
+ if (player_ptr->inventory_list[INVEN_SUB_HAND].bi_id) {
return INVEN_MAIN_HAND;
}
return INVEN_SUB_HAND;
case ItemKindType::CAPTURE:
case ItemKindType::CARD:
case ItemKindType::SHIELD: {
- if (!player_ptr->inventory_list[INVEN_SUB_HAND].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_SUB_HAND].bi_id) {
return INVEN_SUB_HAND;
}
- if (player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx) {
+ if (player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id) {
return INVEN_SUB_HAND;
}
return INVEN_MAIN_HAND;
return INVEN_BOW;
}
case ItemKindType::RING: {
- if (!player_ptr->inventory_list[INVEN_MAIN_RING].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_MAIN_RING].bi_id) {
return INVEN_MAIN_RING;
}
{
const int max_stack_size = 99;
int max_num = max_stack_size;
- if (o_ptr->k_idx != j_ptr->k_idx) {
+ if (o_ptr->bi_id != j_ptr->bi_id) {
return 0;
}
break;
}
case ItemKindType::ROD: {
- max_num = std::min(max_num, MAX_SHORT / baseitems_info[o_ptr->k_idx].pval);
+ max_num = std::min(max_num, MAX_SHORT / baseitems_info[o_ptr->bi_id].pval);
break;
}
case ItemKindType::GLOVES:
PRICE flag_cost(const ItemEntity *o_ptr, int plusses)
{
PRICE total = 0;
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
auto flgs = object_flags(o_ptr);
/*
*/
PRICE object_value_real(const ItemEntity *o_ptr)
{
- auto *k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto *k_ptr = &baseitems_info[o_ptr->bi_id];
- if (!baseitems_info[o_ptr->k_idx].cost) {
+ if (!baseitems_info[o_ptr->bi_id].cost) {
return 0;
}
- PRICE value = baseitems_info[o_ptr->k_idx].cost;
+ PRICE value = baseitems_info[o_ptr->bi_id].cost;
auto flgs = object_flags(o_ptr);
if (o_ptr->is_fixed_artifact()) {
const auto &a_ref = artifacts_info.at(o_ptr->fixed_artifact_idx);
int trivial_info = 0;
auto flgs = object_flags(o_ptr);
- const auto item_text = o_ptr->is_fixed_artifact() ? artifacts_info.at(o_ptr->fixed_artifact_idx).text.data() : baseitems_info[o_ptr->k_idx].text.data();
+ const auto item_text = o_ptr->is_fixed_artifact() ? artifacts_info.at(o_ptr->fixed_artifact_idx).text.data() : baseitems_info[o_ptr->bi_id].text.data();
shape_buffer(item_text, 77 - 15, temp, sizeof(temp));
int i = 0;
{
const bool is_already_awared = o_ptr->is_aware();
- baseitems_info[o_ptr->k_idx].aware = true;
+ baseitems_info[o_ptr->bi_id].aware = true;
// 以下、playrecordに記録しない場合はreturnする
if (!record_ident) {
}
// アーティファクト専用ベースアイテムは記録しない
- if (baseitems_info[o_ptr->k_idx].gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
+ if (baseitems_info[o_ptr->bi_id].gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
return;
}
*/
void object_tried(const ItemEntity *o_ptr)
{
- baseitems_info[o_ptr->k_idx].tried = true;
+ baseitems_info[o_ptr->bi_id].tried = true;
}
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) {
bool okay = false;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
{
auto *r_ptr = &monraces_info[pa_ptr->m_ptr->r_idx];
auto *o_ptr = &player_ptr->inventory_list[enum2i(INVEN_MAIN_HAND) + pa_ptr->hand];
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
get_bare_knuckle_exp(player_ptr, pa_ptr);
return;
}
return;
}
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
process_weapon_attack(player_ptr, pa_ptr, do_quake, vorpal_cut, vorpal_chance);
}
}
if (heavy_armor(this->player_ptr)) {
flags.set(TR_SPEED);
} else {
- if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].k_idx || can_attack_with_sub_hand(this->player_ptr))) {
+ if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].bi_id || can_attack_with_sub_hand(this->player_ptr))) {
flags.set(TR_SPEED);
}
if (plev > 24 && !this->player_ptr->is_icky_wield[0] && !this->player_ptr->is_icky_wield[1]) {
{
for (int k = INVEN_MAIN_HAND; k < INVEN_TOTAL; k++) {
auto *o_ptr = &player_ptr->inventory_list[k];
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
continue;
}
bool has_melee_weapon(PlayerType *player_ptr, int slot)
{
const auto o_ptr = &player_ptr->inventory_list[slot];
- return o_ptr->k_idx && o_ptr->is_melee_weapon();
+ return o_ptr->bi_id && o_ptr->is_melee_weapon();
}
/*!
BIT_FLAGS16 empty_hands(PlayerType *player_ptr, bool riding_control)
{
BIT_FLAGS16 status = EMPTY_HAND_NONE;
- if (!player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id) {
status |= EMPTY_HAND_MAIN;
}
- if (!player_ptr->inventory_list[INVEN_SUB_HAND].k_idx) {
+ if (!player_ptr->inventory_list[INVEN_SUB_HAND].bi_id) {
status |= EMPTY_HAND_SUB;
}
void set_weapon_effect_info(PlayerType *player_ptr, self_info_type *self_ptr)
{
auto *o_ptr = &player_ptr->inventory_list[INVEN_MAIN_HAND];
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return;
}
if (pc.equals(PlayerClassType::NINJA)) {
if (heavy_armor(this->player_ptr)) {
bonus -= (this->player_ptr->lev) / 10;
- } else if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].k_idx || can_attack_with_sub_hand(this->player_ptr))) {
+ } else if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].bi_id || can_attack_with_sub_hand(this->player_ptr))) {
bonus += 3;
if (!(PlayerRace(this->player_ptr).equals(PlayerRaceType::KLACKON) || PlayerRace(this->player_ptr).equals(PlayerRaceType::SPRITE) || (this->player_ptr->ppersonality == PERSONALITY_MUNCHKIN))) {
bonus += (this->player_ptr->lev) / 10;
BIT_FLAGS flags = 0;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
BIT_FLAGS flags = 0;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
auto o_flags = object_flags(o_ptr);
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
int16_t bonus = 0;
if (heavy_armor(this->player_ptr)) {
bonus -= (this->player_ptr->lev) / 10;
- } else if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].k_idx || can_attack_with_sub_hand(this->player_ptr))) {
+ } else if ((!this->player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id || can_attack_with_main_hand(this->player_ptr)) && (!this->player_ptr->inventory_list[INVEN_SUB_HAND].bi_id || can_attack_with_sub_hand(this->player_ptr))) {
bonus += (this->player_ptr->lev) / 10;
}
case REW_CURSE_AR:
- if (!this->player_ptr->inventory_list[INVEN_BODY].k_idx) {
+ if (!this->player_ptr->inventory_list[INVEN_BODY].bi_id) {
break;
}
msg_format(_("%sの声が響き渡った:", "The voice of %s booms out:"), this->name.data());
(void)curse_weapon_object(player_ptr, false, &this->player_ptr->inventory_list[slot]);
reward = format(_("%sが破壊された。", "destroying %s"), o_name);
} else {
- if (!this->player_ptr->inventory_list[INVEN_BODY].k_idx) {
+ if (!this->player_ptr->inventory_list[INVEN_BODY].bi_id) {
break;
}
describe_flavor(player_ptr, o_name, &this->player_ptr->inventory_list[INVEN_BODY], OD_NAME_ONLY);
break;
}
- if ((o_ptr == nullptr) || (o_ptr->k_idx == 0) || !o_ptr->is_armour()) {
+ if ((o_ptr == nullptr) || (o_ptr->bi_id == 0) || !o_ptr->is_armour()) {
return false;
}
BIT_FLAGS result = 0L;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
auto flgs = object_flags(o_ptr);
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
BIT_FLAGS result = 0L;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
BIT_FLAGS result = 0L;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
ItemEntity *o_ptr;
for (int i = 0; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
weight += o_ptr->weight * o_ptr->number;
update_ability_scores(player_ptr);
o_ptr = &player_ptr->inventory_list[INVEN_BOW];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
player_ptr->tval_ammo = bow_tval_ammo(o_ptr);
player_ptr->num_fire = calc_num_fire(player_ptr, o_ptr);
}
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[INVEN_ARMS];
auto flgs = object_flags(o_ptr);
- if (o_ptr->k_idx && flgs.has_not(TR_FREE_ACT) && flgs.has_not(TR_DEC_MANA) && flgs.has_not(TR_EASY_SPELL) && !((flgs.has(TR_MAGIC_MASTERY)) && (o_ptr->pval > 0)) && !((flgs.has(TR_DEX)) && (o_ptr->pval > 0))) {
+ if (o_ptr->bi_id && flgs.has_not(TR_FREE_ACT) && flgs.has_not(TR_DEC_MANA) && flgs.has_not(TR_EASY_SPELL) && !((flgs.has(TR_MAGIC_MASTERY)) && (o_ptr->pval > 0)) && !((flgs.has(TR_DEX)) && (o_ptr->pval > 0))) {
player_ptr->cumber_glove = true;
msp = (3 * msp) / 4;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *q_ptr;
q_ptr = &player_ptr->inventory_list[i];
- if (!q_ptr->k_idx) {
+ if (!q_ptr->bi_id) {
continue;
}
}
int num = 0;
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return (int16_t)num;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
auto flgs = object_flags(o_ptr);
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
auto flgs = object_flags(o_ptr);
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
auto flgs = object_flags(o_ptr);
pow = 0;
- if (PlayerRace(player_ptr).equals(PlayerRaceType::ENT) && !player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx) {
+ if (PlayerRace(player_ptr).equals(PlayerRaceType::ENT) && !player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id) {
pow += player_ptr->lev * 10;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
auto flgs = object_flags(o_ptr);
auto flgs = object_flags(o_ptr);
PlayerClass pc(player_ptr);
if (has_melee_weapon(player_ptr, INVEN_MAIN_HAND + i)) {
- if (o_ptr->k_idx && !player_ptr->heavy_wield[i]) {
+ if (o_ptr->bi_id && !player_ptr->heavy_wield[i]) {
int str_index, dex_index;
int num = 0, wgt = 0, mul = 0, div = 0;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
ac += o_ptr->ac;
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
auto flags = object_flags(o_ptr);
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (is_real_value || o_ptr->is_known()) {
}
if (pc.is_martial_arts_pro() && !heavy_armor(player_ptr)) {
- if (!(player_ptr->inventory_list[INVEN_BODY].k_idx)) {
+ if (!(player_ptr->inventory_list[INVEN_BODY].bi_id)) {
ac += (player_ptr->lev * 3) / 2;
}
- if (!(player_ptr->inventory_list[INVEN_OUTER].k_idx) && (player_ptr->lev > 15)) {
+ if (!(player_ptr->inventory_list[INVEN_OUTER].bi_id) && (player_ptr->lev > 15)) {
ac += ((player_ptr->lev - 13) / 3);
}
- if (!(player_ptr->inventory_list[INVEN_SUB_HAND].k_idx) && (player_ptr->lev > 10)) {
+ if (!(player_ptr->inventory_list[INVEN_SUB_HAND].bi_id) && (player_ptr->lev > 10)) {
ac += ((player_ptr->lev - 8) / 3);
}
- if (!(player_ptr->inventory_list[INVEN_HEAD].k_idx) && (player_ptr->lev > 4)) {
+ if (!(player_ptr->inventory_list[INVEN_HEAD].bi_id) && (player_ptr->lev > 4)) {
ac += (player_ptr->lev - 2) / 3;
}
- if (!(player_ptr->inventory_list[INVEN_ARMS].k_idx)) {
+ if (!(player_ptr->inventory_list[INVEN_ARMS].bi_id)) {
ac += (player_ptr->lev / 2);
}
- if (!(player_ptr->inventory_list[INVEN_FEET].k_idx)) {
+ if (!(player_ptr->inventory_list[INVEN_FEET].bi_id)) {
ac += (player_ptr->lev / 3);
}
}
for (int i = INVEN_MAIN_HAND; i <= INVEN_FEET; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (!o_ptr->is_armour()) {
}
if (pc.equals(PlayerClassType::NINJA)) {
- if ((!player_ptr->inventory_list[INVEN_MAIN_HAND].k_idx || can_attack_with_main_hand(player_ptr)) && (!player_ptr->inventory_list[INVEN_SUB_HAND].k_idx || can_attack_with_sub_hand(player_ptr))) {
+ if ((!player_ptr->inventory_list[INVEN_MAIN_HAND].bi_id || can_attack_with_main_hand(player_ptr)) && (!player_ptr->inventory_list[INVEN_SUB_HAND].bi_id || can_attack_with_sub_hand(player_ptr))) {
ac += player_ptr->lev / 2 + 5;
}
}
if (player_ptr->old_heavy_shoot != heavy_shoot) {
if (heavy_shoot) {
msg_print(_("こんな重い弓を装備しているのは大変だ。", "You have trouble wielding such a heavy bow."));
- } else if (player_ptr->inventory_list[INVEN_BOW].k_idx) {
+ } else if (player_ptr->inventory_list[INVEN_BOW].bi_id) {
msg_print(_("この弓なら装備していても辛くない。", "You have no trouble wielding your bow."));
} else {
msg_print(_("重い弓を装備からはずして体が楽になった。", "You feel relieved to put down your heavy bow."));
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
int bonus_to_d = 0;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
+ if (!o_ptr->bi_id || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
continue;
}
auto *o_ptr = &player_ptr->inventory_list[i];
/* Ignore empty hands, handed weapons, bows and capture balls */
- if (!o_ptr->k_idx || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
+ if (!o_ptr->bi_id || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
continue;
}
{
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[INVEN_BOW];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
if (o_ptr->curse_flags.has(CurseTraitType::LOW_MELEE)) {
if (o_ptr->curse_flags.has(CurseTraitType::HEAVY_CURSE)) {
pow -= 15;
pow += 2 * (calc_bow_weight_limit(player_ptr) - o_ptr->weight / 10);
}
- if (o_ptr->k_idx) {
- if (o_ptr->k_idx && !is_heavy_shoot(player_ptr, &player_ptr->inventory_list[INVEN_BOW])) {
+ if (o_ptr->bi_id) {
+ if (o_ptr->bi_id && !is_heavy_shoot(player_ptr, &player_ptr->inventory_list[INVEN_BOW])) {
if (PlayerClass(player_ptr).equals(PlayerClassType::SNIPER) && (player_ptr->tval_ammo == ItemKindType::BOLT)) {
pow += (10 + (player_ptr->lev / 5));
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
int bonus_to_h;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
+ if (!o_ptr->bi_id || o_ptr->tval == ItemKindType::CAPTURE || (i == INVEN_MAIN_HAND && has_melee_weapon(player_ptr, i)) || (i == INVEN_SUB_HAND && has_melee_weapon(player_ptr, i)) || i == INVEN_BOW) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
ItemEntity *o_ptr;
for (int i = 0; i < INVEN_PACK; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (o_ptr->k_idx && check_book_realm(player_ptr, o_ptr->tval, o_ptr->sval)) {
+ if (o_ptr->bi_id && check_book_realm(player_ptr, o_ptr->tval, o_ptr->sval)) {
return false;
}
}
auto *floor_ptr = player_ptr->current_floor_ptr;
for (const auto this_o_idx : floor_ptr->grid_array[player_ptr->y][player_ptr->x].o_idx_list) {
o_ptr = &floor_ptr->o_list[this_o_idx];
- if (o_ptr->k_idx && any_bits(o_ptr->marked, OM_FOUND) && check_book_realm(player_ptr, o_ptr->tval, o_ptr->sval)) {
+ if (o_ptr->bi_id && any_bits(o_ptr->marked, OM_FOUND) && check_book_realm(player_ptr, o_ptr->tval, o_ptr->sval)) {
return false;
}
}
ItemEntity *o_ptr;
for (int i = 0; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
store_ptr = &town_info[i].store[enum2i(StoreSaleType::HOME)];
for (int j = 0; j < store_ptr->stock_num; j++) {
o_ptr = &store_ptr->stock[j];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
ItemEntity forge;
auto *q_ptr = &forge;
uint32_t value, exp;
- DEPTH level = std::max(baseitems_info[o_ptr->k_idx].level - 8, 1);
+ DEPTH level = std::max(baseitems_info[o_ptr->bi_id].level - 8, 1);
if ((i == INVEN_MAIN_RING) || (i == INVEN_SUB_RING) || (i == INVEN_NECK) || (i == INVEN_LITE)) {
continue;
}
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (cast) {
auto *o_ptr = &player_ptr->inventory_list[INVEN_OUTER];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
msg_print(_("クロークを身につけていない!", "You are not wearing a cloak."));
return nullptr;
} else if (!o_ptr->is_cursed()) {
if (continuation) {
auto *o_ptr = &player_ptr->inventory_list[INVEN_OUTER];
- if ((!o_ptr->k_idx) || (!o_ptr->is_cursed())) {
+ if ((!o_ptr->bi_id) || (!o_ptr->is_cursed())) {
exe_spell(player_ptr, REALM_HEX, spell, SpellProcessType::STOP);
SpellHex spell_hex(player_ptr);
spell_hex.reset_casting_flag(spell);
BIT_FLAGS flags = 0x00000000;
write_item_flags(o_ptr, &flags);
- wr_s16b(o_ptr->k_idx);
+ wr_s16b(o_ptr->bi_id);
wr_byte((byte)o_ptr->iy);
wr_byte((byte)o_ptr->ix);
if (any_bits(flags, SaveDataItemFlagType::PVAL)) {
/*!
* @brief セーブデータにアイテムの鑑定情報を書き込む / Write an "perception" record
- * @param k_idx ベースアイテムのID
+ * @param bi_id ベースアイテムのID
*/
-void wr_perception(short k_idx)
+void wr_perception(short bi_id)
{
byte tmp8u = 0;
- auto *k_ptr = &baseitems_info[k_idx];
+ auto *k_ptr = &baseitems_info[bi_id];
if (k_ptr->aware) {
tmp8u |= 0x01;
}
class ItemEntity;
void wr_item(ItemEntity *o_ptr);
-void wr_perception(short k_idx);
+void wr_perception(short bi_id);
tmp16u = static_cast<uint16_t>(baseitems_info.size());
wr_u16b(tmp16u);
- for (short k_idx = 0; k_idx < tmp16u; k_idx++) {
- wr_perception(k_idx);
+ for (short bi_id = 0; bi_id < tmp16u; bi_id++) {
+ wr_perception(bi_id);
}
tmp16u = max_towns;
for (int i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
// アイテムをエッセンス抽出後の状態にする
const ItemEntity old_o = *o_ptr;
- o_ptr->prep(o_ptr->k_idx);
+ o_ptr->prep(o_ptr->bi_id);
o_ptr->iy = old_o.iy;
o_ptr->ix = old_o.ix;
}
/* Dispel player. */
- if ((trap.has(ChestTrapType::RUNES_OF_EVIL)) && o_ptr->k_idx) {
+ if ((trap.has(ChestTrapType::RUNES_OF_EVIL)) && o_ptr->bi_id) {
msg_print(_("恐ろしい声が響いた: 「暗闇が汝をつつまん!」", "Hideous voices bid: 'Let the darkness have thee!'"));
for (auto count = 4 + randint0(3); count > 0; count--) {
if (randint1(100 + o_ptr->pval * 2) <= this->player_ptr->skill_sav) {
}
/* Explode */
- if ((trap.has(ChestTrapType::EXPLODE)) && o_ptr->k_idx) {
+ if ((trap.has(ChestTrapType::EXPLODE)) && o_ptr->bi_id) {
msg_print(_("突然、箱が爆発した!", "There is a sudden explosion!"));
msg_print(_("箱の中の物はすべて粉々に砕け散った!", "Everything inside the chest is destroyed!"));
o_ptr->pval = 0;
take_hit(this->player_ptr, DAMAGE_ATTACK, damroll(5, 8), _("爆発する箱", "an exploding chest"));
}
/* Scatter contents. */
- if ((trap.has(ChestTrapType::SCATTER)) && o_ptr->k_idx) {
+ if ((trap.has(ChestTrapType::SCATTER)) && o_ptr->bi_id) {
msg_print(_("宝箱の中身はダンジョンじゅうに散乱した!", "The contents of the chest scatter all over the dungeon!"));
this->chest_death(true, y, x, o_idx);
o_ptr->pval = 0;
o_ptr = &player_ptr->inventory_list[i];
auto flgs = object_flags(o_ptr);
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
}
BaseitemInfo *k_ptr;
- k_ptr = &baseitems_info[o_ptr->k_idx];
- DEPTH lev = baseitems_info[o_ptr->k_idx].level;
+ k_ptr = &baseitems_info[o_ptr->bi_id];
+ DEPTH lev = baseitems_info[o_ptr->bi_id].level;
TIME_EFFECT recharge_amount;
int recharge_strength;
int cnt = 0;
for (int i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
if (!o_ptr->is_cursed()) {
byte marked = o_ptr->marked;
uint16_t inscription = o_ptr->inscription;
- o_ptr->prep(o_ptr->k_idx);
+ o_ptr->prep(o_ptr->bi_id);
o_ptr->iy = iy;
o_ptr->ix = ix;
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[t];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return false;
}
{
for (INVENTORY_IDX i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (i = INVEN_MAIN_HAND; i < INVEN_TOTAL; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (o_ptr->k_idx && !o_ptr->is_cursed()) {
+ if (o_ptr->bi_id && !o_ptr->is_cursed()) {
auto flgs = object_flags(o_ptr);
if (flgs.has(TR_TELEPORT)) {
follow = true;
GAME_TEXT o_name[MAX_NLEN];
describe_flavor(player_ptr, o_name, o_ptr, OD_OMIT_PREFIX | OD_NAME_ONLY);
- bool is_pulish_successful = o_ptr->k_idx && !o_ptr->is_artifact() && !o_ptr->is_ego();
+ bool is_pulish_successful = o_ptr->bi_id && !o_ptr->is_artifact() && !o_ptr->is_ego();
is_pulish_successful &= !o_ptr->is_cursed();
is_pulish_successful &= (o_ptr->sval != SV_MIRROR_SHIELD);
if (is_pulish_successful) {
{ { ItemKindType::SCROLL, SV_SCROLL_AMUSEMENT }, 10, AmusementFlagType::NOTHING },
} };
-static std::optional<FixedArtifactId> sweep_amusement_artifact(const bool insta_art, const short k_idx)
+static std::optional<FixedArtifactId> sweep_amusement_artifact(const bool insta_art, const short bi_id)
{
for (const auto &[a_idx, a_ref] : artifacts_info) {
if (a_idx == FixedArtifactId::NONE) {
continue;
}
- if (a_ref.bi_key != baseitems_info[k_idx].bi_key) {
+ if (a_ref.bi_key != baseitems_info[bi_id].bi_key) {
continue;
}
while (num > 0) {
auto am_ptr = pt.pick_one_at_random();
- const auto k_idx = lookup_baseitem_id(am_ptr->key);
- if (k_idx == 0) {
+ const auto bi_id = lookup_baseitem_id(am_ptr->key);
+ if (bi_id == 0) {
continue;
}
- const auto insta_art = baseitems_info[k_idx].gen_flags.has(ItemGenerationTraitType::INSTA_ART);
+ const auto insta_art = baseitems_info[bi_id].gen_flags.has(ItemGenerationTraitType::INSTA_ART);
const auto flag = am_ptr->flag;
const auto fixed_art = flag == AmusementFlagType::FIXED_ART;
std::optional<FixedArtifactId> opt_a_idx(std::nullopt);
if (insta_art || fixed_art) {
- opt_a_idx = sweep_amusement_artifact(insta_art, k_idx);
+ opt_a_idx = sweep_amusement_artifact(insta_art, bi_id);
if (!opt_a_idx.has_value()) {
continue;
}
}
ItemEntity item;
- item.prep(k_idx);
+ item.prep(bi_id);
if (opt_a_idx.has_value()) {
item.fixed_artifact_idx = opt_a_idx.value();
}
ItemEntity *o_ptr;
o_ptr = &player_ptr->inventory_list[INVEN_BODY];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return false;
}
*/
bool curse_weapon_object(PlayerType *player_ptr, bool force, ItemEntity *o_ptr)
{
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
return false;
}
auto special_weapon = (o_ptr->tval == ItemKindType::SWORD) && (o_ptr->sval == SV_POISON_NEEDLE);
special_weapon |= (o_ptr->tval == ItemKindType::POLEARM) && (o_ptr->sval == SV_DEATH_SCYTHE);
special_weapon |= (o_ptr->tval == ItemKindType::SWORD) && (o_ptr->sval == SV_DIAMOND_EDGE);
- const auto is_normal_item = o_ptr->k_idx && !o_ptr->is_artifact() && !o_ptr->is_ego() && !o_ptr->is_cursed() && !special_weapon;
+ const auto is_normal_item = o_ptr->bi_id && !o_ptr->is_artifact() && !o_ptr->is_ego() && !o_ptr->is_cursed() && !special_weapon;
if (!is_normal_item) {
if (flush_failure) {
flush();
auto sval = 0;
for (auto &item : magic_eater_data->get_item_group(ItemKindType::ROD)) {
- 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;
+ const auto bi_id = lookup_baseitem_id({ ItemKindType::ROD, sval });
+ item.charge -= ((item.count < 10) ? EATER_ROD_CHARGE * 3 : item.count * EATER_ROD_CHARGE / 3) * baseitems_info[bi_id].pval;
item.charge = std::max(item.charge, 0);
++sval;
}
chg_virtue(player_ptr, V_ENLIGHTEN, -5);
for (int i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if ((o_ptr->k_idx == 0) || o_ptr->is_fully_known()) {
+ if ((o_ptr->bi_id == 0) || o_ptr->is_fully_known()) {
continue;
}
for (int j = 0; j < town_info[player_ptr->town_num].store[enum2i(sst)].stock_num; j++) {
auto *j_ptr = &town_info[player_ptr->town_num].store[enum2i(sst)].stock[j];
- if (o_ptr->k_idx == j_ptr->k_idx) {
+ if (o_ptr->bi_id == j_ptr->bi_id) {
return true;
}
}
bool need_redraw_store_inv = any_bits(player_ptr->update, PU_BONUS);
w_ptr->character_icky_depth = 1;
handle_stuff(player_ptr);
- if (player_ptr->inventory_list[INVEN_PACK].k_idx) {
+ if (player_ptr->inventory_list[INVEN_PACK].bi_id) {
INVENTORY_IDX item = INVEN_PACK;
auto *o_ptr = &player_ptr->inventory_list[item];
if (store_num != StoreSaleType::HOME) {
for (int j = 0; j < i; j++) {
ItemEntity *j_ptr;
j_ptr = &st_ptr->stock[j];
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
continue;
}
for (int i = 0; i < st_ptr->stock_num; i++) {
ItemEntity *o_ptr;
o_ptr = &st_ptr->stock[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (int i = st_ptr->stock_num - 1; i > 0; i--) {
ItemEntity *o_ptr;
o_ptr = &st_ptr->stock[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
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_baseitem_id(a_ptr->bi_key);
+ const auto bi_id = lookup_baseitem_id(a_ptr->bi_key);
ItemEntity item;
- item.prep(k_idx);
+ item.prep(bi_id);
item.fixed_artifact_idx = a_idx;
item.ident = IDENT_STORE;
describe_flavor(player_ptr, fullname, &item, OD_NAME_ONLY);
{
ItemEntity *o_ptr;
o_ptr = &st_ptr->stock[item];
- if ((o_ptr->k_idx == 0) || (o_ptr->number != 0)) {
+ if ((o_ptr->bi_id == 0) || (o_ptr->number != 0)) {
return;
}
if (o_ptr == j_ptr) {
continue;
}
- if (o_ptr->k_idx != j_ptr->k_idx) {
+ if (o_ptr->bi_id != j_ptr->bi_id) {
continue;
}
if (o_ptr->tval != ItemKindType::STAFF && o_ptr->tval != ItemKindType::WAND) {
return false;
}
- if (o_ptr->k_idx != j_ptr->k_idx) {
+ if (o_ptr->bi_id != j_ptr->bi_id) {
return false;
}
*/
static void store_object_absorb(ItemEntity *o_ptr, ItemEntity *j_ptr)
{
- int max_num = (o_ptr->tval == ItemKindType::ROD) ? std::min(99, MAX_SHORT / baseitems_info[o_ptr->k_idx].pval) : 99;
+ int max_num = (o_ptr->tval == ItemKindType::ROD) ? std::min(99, MAX_SHORT / baseitems_info[o_ptr->bi_id].pval) : 99;
int total = o_ptr->number + j_ptr->number;
int diff = (total > max_num) ? total - max_num : 0;
o_ptr->number = (total > max_num) ? max_num : total;
const owner_type *ow_ptr = &owners.at(store_num)[st_ptr->owner];
for (int tries = 0; tries < 4; tries++) {
- short k_idx;
+ short bi_id;
DEPTH level;
if (store_num == StoreSaleType::BLACK) {
level = 25 + randint0(25);
- k_idx = get_obj_index(player_ptr, level, 0x00000000);
- if (k_idx == 0) {
+ bi_id = get_obj_index(player_ptr, level, 0x00000000);
+ if (bi_id == 0) {
continue;
}
} else if (fix_k_idx > 0) {
- k_idx = fix_k_idx;
+ bi_id = fix_k_idx;
level = rand_range(1, ow_ptr->level);
} else {
- k_idx = st_ptr->table[randint0(st_ptr->table.size())];
+ bi_id = st_ptr->table[randint0(st_ptr->table.size())];
level = rand_range(1, ow_ptr->level);
}
ItemEntity forge;
ItemEntity *q_ptr;
q_ptr = &forge;
- q_ptr->prep(k_idx);
+ q_ptr->prep(bi_id);
ItemMagicApplier(player_ptr, q_ptr, level, AM_NO_FIXED_ART).execute();
if (!store_will_buy(player_ptr, q_ptr, store_num)) {
continue;
typedef int16_t FEAT_IDX; /*!< ゲーム中の地形ID型を定義 */
typedef int16_t FLOOR_IDX; /*!< ゲーム中のフロアID型を定義 */
-// typedef int16_t MonsterRaceId; /*!< @todo MonsterRaceIdに差し替えて消滅させる ゲーム中のモンスター種族ID型を定義 */
-typedef int16_t MONSTER_IDX; /*!< @todo MonsterRaceIdに差し替えて消滅させる ゲーム中のモンスター個体ID型を定義 */
+typedef int16_t MONSTER_IDX; /*!< ゲーム中のモンスター個体ID型を定義 */
typedef int16_t DUNGEON_IDX; /*!< ゲーム中のダンジョンID型を定義 */
typedef int16_t EGO_IDX; /*!< アイテムエゴのID型を定義 */
typedef int16_t QUEST_IDX; /*!< ゲーム中のクエストID型を定義 */
* @var typedef int32_t MANA_POINT
* @brief MPとその増減量の型定義
* @details
- * MANA_POINTã\81¯ã\83\97ã\83¬ã\82¤ã\83¤ã\83¼ã\81®MPã\81®å\90\84å\9c°とその増減量の型である。
+ * MANA_POINTã\81¯ã\83\97ã\83¬ã\82¤ã\83¤ã\83¼ã\81®MPã\81®å\90\84å\80¤とその増減量の型である。
*/
typedef int32_t MANA_POINT; /*!< ゲーム中のMP型を定義 */
/*!
* @brief オブジェクト構造体にベースアイテムを作成する
- * Prepare an object based on an object kind.
* @param player_ptr プレイヤーへの参照ポインタ
- * @param k_idx 新たに作成したいベースアイテム情報のID
+ * @param bi_id 新たに作成したいベースアイテム情報のID
*/
-void ItemEntity::prep(short ko_idx)
+void ItemEntity::prep(short new_bi_id)
{
- auto *k_ptr = &baseitems_info[ko_idx];
+ auto *k_ptr = &baseitems_info[new_bi_id];
auto old_stack_idx = this->stack_idx;
wipe();
this->stack_idx = old_stack_idx;
- this->k_idx = ko_idx;
+ this->bi_id = new_bi_id;
this->tval = k_ptr->bi_key.tval();
this->sval = k_ptr->bi_key.sval().value();
this->pval = k_ptr->pval;
if (k_ptr->act_idx > RandomArtActType::NONE) {
this->activation_id = k_ptr->act_idx;
}
- if (baseitems_info[this->k_idx].cost <= 0) {
+ if (baseitems_info[this->bi_id].cost <= 0) {
this->ident |= (IDENT_BROKEN);
}
bool ItemEntity::is_valid() const
{
- return this->k_idx != 0;
+ return this->bi_id != 0;
}
bool ItemEntity::is_broken() const
*/
bool ItemEntity::is_known() const
{
- return any_bits(this->ident, IDENT_KNOWN) || (baseitems_info[this->k_idx].easy_know && baseitems_info[this->k_idx].aware);
+ return any_bits(this->ident, IDENT_KNOWN) || (baseitems_info[this->bi_id].easy_know && baseitems_info[this->bi_id].aware);
}
bool ItemEntity::is_fully_known() const
*/
bool ItemEntity::is_aware() const
{
- return baseitems_info[this->k_idx].aware;
+ return baseitems_info[this->bi_id].aware;
}
/*
*/
bool ItemEntity::is_tried() const
{
- return baseitems_info[this->k_idx].tried;
+ return baseitems_info[this->bi_id].tried;
}
/*!
*/
bool ItemEntity::is_potion() const
{
- return baseitems_info[this->k_idx].bi_key.tval() == ItemKindType::POTION;
+ return baseitems_info[this->bi_id].bi_key.tval() == ItemKindType::POTION;
}
/*!
*/
TERM_COLOR ItemEntity::get_color() const
{
- const auto &baseitem = baseitems_info[this->k_idx];
+ const auto &baseitem = baseitems_info[this->bi_id];
const auto flavor = baseitem.flavor;
if (flavor != 0) {
return baseitems_info[flavor].x_attr;
}
- auto has_attr = this->k_idx == 0;
+ auto has_attr = this->bi_id == 0;
has_attr |= (this->tval != ItemKindType::CORPSE) || (this->sval != SV_CORPSE);
has_attr |= baseitem.x_attr != TERM_DARK;
if (has_attr) {
*/
char ItemEntity::get_symbol() const
{
- const auto &baseitem = baseitems_info[this->k_idx];
+ const auto &baseitem = baseitems_info[this->bi_id];
const auto flavor = baseitem.flavor;
return flavor ? baseitems_info[flavor].x_char : baseitem.x_char;
}
int ItemEntity::get_baseitem_price() const
{
if (this->is_aware()) {
- return baseitems_info[this->k_idx].cost;
+ return baseitems_info[this->bi_id].cost;
}
switch (this->tval) {
class ItemEntity {
public:
ItemEntity();
- short k_idx{}; /*!< Kind index (zero if "dead") */
+ short bi_id{}; /*!< ベースアイテムID (0は、不具合調査用の無効アイテム または 何も装備していない箇所のアイテム であることを示す) */
POSITION iy{}; /*!< Y-position on map, or zero */
POSITION ix{}; /*!< X-position on map, or zero */
IDX stack_idx{}; /*!< このアイテムを含むアイテムリスト内の位置(降順) */
void wipe();
void copy_from(const ItemEntity *j_ptr);
- void prep(short ko_idx);
+ void prep(short new_bi_id);
bool is_weapon() const;
bool is_weapon_ammo() const;
bool is_weapon_armour_ammo() const;
/*!
* Function hook to restrict "get_obj_index_prep()" function
*/
-bool (*get_obj_index_hook)(short k_idx);
+bool (*get_obj_index_hook)(short bi_id);
OBJECT_SUBTYPE_VALUE coin_type;
extern concptr ANGBAND_GRAF;
extern OBJECT_SUBTYPE_VALUE coin_type;
-extern bool (*get_obj_index_hook)(short k_idx);
+extern bool (*get_obj_index_hook)(short bi_id);
bool object_sort_comp(PlayerType *player_ptr, ItemEntity *o_ptr, int32_t o_value, ItemEntity *j_ptr)
{
int o_type, j_type;
- if (!j_ptr->k_idx) {
+ if (!j_ptr->bi_id) {
return true;
}
int len = wid - col - 1;
for (i = 0; i < INVEN_PACK; i++) {
o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
for (i = 0; i < INVEN_PACK; i++) {
auto o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
z = i + 1;
static void display_shoot_magnification(PlayerType *player_ptr)
{
int tmul = 0;
- if (player_ptr->inventory_list[INVEN_BOW].k_idx) {
+ if (player_ptr->inventory_list[INVEN_BOW].bi_id) {
tmul = bow_tmul(player_ptr->inventory_list[INVEN_BOW].sval);
if (player_ptr->xtra_might) {
tmul++;
const auto &o_ref = player_ptr->inventory_list[i];
auto a = o_ref.get_color();
auto c = o_ref.get_symbol();
- if (!equippy_chars || (o_ref.k_idx == 0)) {
+ if (!equippy_chars || (o_ref.bi_id == 0)) {
c = ' ';
a = TERM_DARK;
}
* @brief 現在アクティブになっているウィンドウにオブジェクトの詳細を表示する /
* Hack -- display an object kind in the current window
* @param player_ptr プレイヤーへの参照ポインタ
- * @param k_idx ベースアイテムの参照ID
+ * @param bi_id ベースアイテムの参照ID
* @details
* Include list of usable spells for readible books
*/
-void display_koff(PlayerType *player_ptr, short k_idx)
+void display_koff(PlayerType *player_ptr, short bi_id)
{
ItemEntity forge;
ItemEntity *q_ptr;
term_erase(0, y, 255);
}
- if (!k_idx) {
+ if (!bi_id) {
return;
}
q_ptr = &forge;
- q_ptr->prep(k_idx);
+ q_ptr->prep(bi_id);
describe_flavor(player_ptr, o_name, q_ptr, (OD_OMIT_PREFIX | OD_NAME_ONLY | OD_STORE));
term_putstr(0, 0, -1, TERM_WHITE, o_name);
class PlayerType;
void inven_item_charges(PlayerType *player_ptr, INVENTORY_IDX item);
void inven_item_describe(PlayerType *player_ptr, INVENTORY_IDX item);
-void display_koff(PlayerType *player_ptr, short k_idx);
+void display_koff(PlayerType *player_ptr, short bi_id);
*/
static void calc_shot_params(PlayerType *player_ptr, ItemEntity *o_ptr, int *shots, int *shot_frac)
{
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return;
}
*/
static bool calc_weapon_one_hand(ItemEntity *o_ptr, int hand, int *damage, int *basedam)
{
- if (o_ptr->k_idx == 0) {
+ if (o_ptr->bi_id == 0) {
return false;
}
break;
case 'X':
for (INVENTORY_IDX i = INVEN_TOTAL - 1; i >= 0; i--) {
- if (player_ptr->inventory_list[i].k_idx) {
+ if (player_ptr->inventory_list[i].bi_id) {
drop_from_inventory(player_ptr, i, 999);
}
}
q_ptr->to_a = 0;
q_ptr->to_h = 0;
q_ptr->to_d = 0;
- *lev = baseitems_info[q_ptr->k_idx].level;
+ *lev = baseitems_info[q_ptr->bi_id].level;
*val = q_ptr->get_price();
if (!buf || !dam || !chance || !wgt) {
return;
strcpy(chance, "");
for (int i = 0; i < 4; i++) {
char chance_aux[20] = "";
- if (baseitems_info[q_ptr->k_idx].chance[i] > 0) {
- sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""), (int)baseitems_info[q_ptr->k_idx].locale[i], 100 / baseitems_info[q_ptr->k_idx].chance[i]);
+ if (baseitems_info[q_ptr->bi_id].chance[i] > 0) {
+ sprintf(chance_aux, "%s%3dF:%+4d", (i != 0 ? "/" : ""), (int)baseitems_info[q_ptr->bi_id].locale[i], 100 / baseitems_info[q_ptr->bi_id].chance[i]);
strcat(chance, chance_aux);
}
}
});
fprintf(spoiler_file, "\n\n%s\n\n", name);
- for (const auto &k_idx : whats) {
+ for (const auto &bi_id : whats) {
DEPTH e;
PRICE v;
char wgt[80];
char chance[80];
char dam[80];
PlayerType dummy;
- kind_info(&dummy, buf, dam, wgt, chance, &e, &v, k_idx);
+ kind_info(&dummy, buf, dam, wgt, chance, &e, &v, bi_id);
fprintf(spoiler_file, " %-35s%8s%7s%5d %-40s%9ld\n", buf, dam, wgt, static_cast<int>(e), chance, static_cast<long>(v));
}
}
{
for (int i = 0; i < INVEN_TOTAL; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- if (!o_ptr->k_idx) {
+ if (!o_ptr->bi_id) {
continue;
}
- auto k_ptr = &baseitems_info[o_ptr->k_idx];
+ auto k_ptr = &baseitems_info[o_ptr->bi_id];
k_ptr->aware = true; //!< @note 記録には残さないためTRUEを立てるのみ
set_bits(o_ptr->ident, IDENT_KNOWN | IDENT_FULL_KNOWN);
set_bits(o_ptr->marked, OM_TOUCHED);
prt(buf, 2, j);
auto line = 4;
- prt(format("kind = %-5d level = %-4d tval = %-5d sval = %-5d", o_ptr->k_idx, baseitems_info[o_ptr->k_idx].level, o_ptr->tval, o_ptr->sval), line, j);
+ prt(format("kind = %-5d level = %-4d tval = %-5d sval = %-5d", o_ptr->bi_id, baseitems_info[o_ptr->bi_id].level, o_ptr->tval, o_ptr->sval), line, j);
prt(format("number = %-3d wgt = %-6d ac = %-5d damage = %dd%d", o_ptr->number, o_ptr->weight, o_ptr->ac, o_ptr->dd, o_ptr->ds), ++line, j);
prt(format("pval = %-5d toac = %-5d tohit = %-4d todam = %-4d", o_ptr->pval, o_ptr->to_a, o_ptr->to_h, o_ptr->to_d), ++line, j);
prt(format("fixed_artifact_idx = %-4d ego_idx = %-4d cost = %ld", o_ptr->fixed_artifact_idx, o_ptr->ego_idx, object_value_real(o_ptr)), ++line, j);
switch (tolower(ch)) {
/* Apply bad magic, but first clear object */
case 'w':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_GREAT | AM_CURSED).execute();
break;
/* Apply bad magic, but first clear object */
case 'c':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_CURSED).execute();
break;
/* Apply normal magic, but first clear object */
case 'n':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART).execute();
break;
/* Apply good magic, but first clear object */
case 'g':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD).execute();
break;
/* Apply great magic, but first clear object */
case 'e':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_NO_FIXED_ART | AM_GOOD | AM_GREAT).execute();
break;
/* Apply special magic, but first clear object */
case 's':
- q_ptr->prep(o_ptr->k_idx);
+ q_ptr->prep(o_ptr->bi_id);
ItemMagicApplier(player_ptr, q_ptr, player_ptr->current_floor_ptr->dun_level, AM_GOOD | AM_GREAT | AM_SPECIAL).execute();
if (!q_ptr->is_artifact()) {
become_random_artifact(player_ptr, q_ptr, false);
}
if (allow_ego && k_ids.size() == 1) {
- short k_idx = k_ids.back();
- o_ptr->prep(k_idx);
+ short bi_id = k_ids.back();
+ o_ptr->prep(bi_id);
for (const auto &[e_idx, e_ref] : egos_info) {
if (e_ref.idx == EgoType::NONE || e_ref.name.empty()) {
}
if (k_ids.size() == 1) {
- const auto k_idx = k_ids.back();
- const auto &k_ref = baseitems_info[k_idx];
+ const auto bi_id = k_ids.back();
+ const auto &k_ref = baseitems_info[bi_id];
auto a_idx = FixedArtifactId::NONE;
if (k_ref.gen_flags.has(ItemGenerationTraitType::INSTA_ART)) {
for (const auto &[a_idx_loop, a_ref_loop] : artifacts_info) {
if (wish_randart) {
if (must || ok_art) {
do {
- o_ptr->prep(k_idx);
+ o_ptr->prep(bi_id);
ItemMagicApplier(player_ptr, o_ptr, k_ref.level, AM_SPECIAL | AM_NO_FIXED_ART).execute();
} while (!o_ptr->art_name || o_ptr->is_ego() || o_ptr->is_cursed());
if (allow_ego && (wish_ego || e_ids.size() > 0)) {
if (must || ok_ego) {
if (e_ids.size() > 0) {
- o_ptr->prep(k_idx);
+ o_ptr->prep(bi_id);
o_ptr->ego_idx = e_ids[0];
apply_ego(o_ptr, player_ptr->current_floor_ptr->base_level);
} else {
int max_roll = 1000;
int i = 0;
for (i = 0; i < max_roll; i++) {
- o_ptr->prep(k_idx);
+ o_ptr->prep(bi_id);
ItemMagicApplier(player_ptr, o_ptr, k_ref.level, AM_GREAT | AM_NO_FIXED_ART).execute();
if (o_ptr->art_name) {
continue;
res = WishResultType::EGO;
} else {
for (int i = 0; i < 100; i++) {
- o_ptr->prep(k_idx);
+ o_ptr->prep(bi_id);
ItemMagicApplier(player_ptr, o_ptr, 0, AM_NO_FIXED_ART).execute();
if (!o_ptr->is_cursed()) {
break;
* @return ベースアイテムID
* @details
* by RAK, heavily modified by -Bernd-
- * This function returns the k_idx of an object type, or zero if failed
+ * This function returns the bi_id of an object type, or zero if failed
* List up to 50 choices in three columns
*/
static short wiz_create_itemtype()
for (OBJECT_IDX i = 1; i < floor_ptr->o_max; i++) {
ItemEntity *o_ptr;
o_ptr = &floor_ptr->o_list[i];
- if (o_ptr->k_idx) {
+ if (o_ptr->bi_id) {
continue;
}
floor_ptr->o_cnt++;