static bool weakening_artifact(ItemEntity *o_ptr)
{
const auto bi_id = lookup_baseitem_id(o_ptr->bi_key);
- auto *k_ptr = &baseitems_info[bi_id];
+ const auto &baseitem = baseitems_info[bi_id];
auto flgs = object_flags(o_ptr);
if (flgs.has(TR_KILL_EVIL)) {
return true;
}
- if (k_ptr->dd < o_ptr->dd) {
+ if (baseitem.dd < o_ptr->dd) {
o_ptr->dd--;
return true;
}
- if (k_ptr->ds < o_ptr->ds) {
+ if (baseitem.ds < o_ptr->ds) {
o_ptr->ds--;
return true;
}
}
if (o_ptr->is_melee_weapon()) {
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
-
- if ((o_ptr->dd != k_ptr->dd) || (o_ptr->ds != k_ptr->ds)) {
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ if ((o_ptr->dd != baseitem.dd) || (o_ptr->ds != baseitem.ds)) {
ADD_FLG(FLG_BOOSTED);
}
}
}
if (IS_FLG(FLG_BOOSTED)) {
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
if (!o_ptr->is_melee_weapon()) {
return false;
}
- if ((o_ptr->dd == k_ptr->dd) && (o_ptr->ds == k_ptr->ds)) {
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ if ((o_ptr->dd == baseitem.dd) && (o_ptr->ds == baseitem.ds)) {
return false;
}
}
case '5': {
static concptr choice_msg = _("アイテムの[色/文字]を変更します", "Change object attr/chars");
- static IDX k = 0;
+ static short k = 0;
prt(format(_("コマンド: %s", "Command: %s"), choice_msg), 15, 0);
while (true) {
- auto *k_ptr = &baseitems_info[k];
+ auto &baseitem = baseitems_info[k];
int c;
IDX t;
- TERM_COLOR da = k_ptr->d_attr;
- auto dc = k_ptr->d_char;
- TERM_COLOR ca = k_ptr->x_attr;
- auto cc = k_ptr->x_char;
+ TERM_COLOR da = baseitem.d_attr;
+ auto dc = baseitem.d_char;
+ TERM_COLOR ca = baseitem.x_attr;
+ auto cc = baseitem.x_char;
term_putstr(5, 17, -1, TERM_WHITE,
format(
- _("アイテム = %d, 名前 = %-40.40s", "Object = %d, Name = %-40.40s"), k, (!k_ptr->flavor ? k_ptr->name : k_ptr->flavor_name).data()));
+ _("アイテム = %d, 名前 = %-40.40s", "Object = %d, Name = %-40.40s"), k, (!baseitem.flavor ? baseitem.name : baseitem.flavor_name).data()));
term_putstr(10, 19, -1, TERM_WHITE, format(_("初期値 色 / 文字 = %3d / %3d", "Default attr/char = %3d / %3d"), da, dc));
term_putstr(40, 19, -1, TERM_WHITE, empty_symbol);
term_queue_bigchar(43, 19, da, dc, 0, 0);
switch (c) {
case 'n': {
- IDX prev_k = k;
+ short prev_k = k;
do {
- if (!cmd_visuals_aux(i, &k, static_cast<IDX>(baseitems_info.size()))) {
+ if (!cmd_visuals_aux(i, &k, static_cast<short>(baseitems_info.size()))) {
k = prev_k;
break;
}
break;
case 'a':
- t = (int)k_ptr->x_attr;
+ t = (int)baseitem.x_attr;
(void)cmd_visuals_aux(i, &t, 256);
- k_ptr->x_attr = (byte)t;
+ baseitem.x_attr = (byte)t;
need_redraw = true;
break;
case 'c':
- t = (int)k_ptr->x_char;
+ t = (int)baseitem.x_char;
(void)cmd_visuals_aux(i, &t, 256);
- k_ptr->x_char = (byte)t;
+ baseitem.x_char = (byte)t;
need_redraw = true;
break;
case 'v':
char *prev_ptr = short_flavor;
auto flgs = object_flags(o_ptr);
if (!all) {
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
- flgs.reset(k_ptr->flags);
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ flgs.reset(baseitem.flags);
if (o_ptr->is_fixed_artifact()) {
const auto &a_ref = artifacts_info.at(o_ptr->fixed_artifact_idx);
*/
static bool object_easy_know(int i)
{
- auto *k_ptr = &baseitems_info[i];
- switch (k_ptr->bi_key.tval()) {
+ const auto &baseitem = baseitems_info[i];
+ switch (baseitem.bi_key.tval()) {
case ItemKindType::LIFE_BOOK:
case ItemKindType::SORCERY_BOOK:
case ItemKindType::NATURE_BOOK:
{
const auto state_backup = w_ptr->rng.get_state();
w_ptr->rng.set_state(w_ptr->seed_flavor);
- for (auto &k_ref : baseitems_info) {
- if (k_ref.flavor_name.empty()) {
+ for (auto &baseitem : baseitems_info) {
+ if (baseitem.flavor_name.empty()) {
continue;
}
- k_ref.flavor = k_ref.idx;
+ baseitem.flavor = baseitem.idx;
}
shuffle_flavors(ItemKindType::RING);
shuffle_flavors(ItemKindType::POTION);
shuffle_flavors(ItemKindType::SCROLL);
w_ptr->rng.set_state(state_backup);
- for (auto &k_ref : baseitems_info) {
- if (k_ref.idx == 0 || k_ref.name.empty()) {
+ for (auto &baseitem : baseitems_info) {
+ if (baseitem.idx == 0 || baseitem.name.empty()) {
continue;
}
- if (!k_ref.flavor) {
- k_ref.aware = true;
+ if (!baseitem.flavor) {
+ baseitem.aware = true;
}
- k_ref.easy_know = object_easy_know(k_ref.idx);
+ baseitem.easy_know = object_easy_know(baseitem.idx);
}
}
*/
std::string strip_name(short bi_id)
{
- auto k_ptr = &baseitems_info[bi_id];
- auto tok = str_split(k_ptr->name, ' ');
+ const auto &baseitem = baseitems_info[bi_id];
+ auto tok = str_split(baseitem.name, ' ');
std::stringstream name;
for (const auto &s : tok) {
if (s == "" || s == "~" || s == "&" || s == "#") {
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->bi_id];
int delta = 0;
if (!o_ptr->is_valid() || (o_ptr->is_known() && o_ptr->marked.has(OmType::TOUCHED)) || ((o_ptr->ident & IDENT_SENSE) != 0)) {
continue;
delta += 15 * base;
}
- if (!o_ptr->is_cursed() && !o_ptr->is_broken() && k_ptr->level > floor_ptr->dun_level) {
- delta += (k_ptr->level - floor_ptr->dun_level) * base;
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ if (!o_ptr->is_cursed() && !o_ptr->is_broken() && baseitem.level > floor_ptr->dun_level) {
+ delta += (baseitem.level - floor_ptr->dun_level) * base;
}
rating += rating_boost(delta);
/*!
* @brief テキストトークンを走査してフラグを一つ得る(ベースアイテム用) /
* Grab one flag in an BaseitemInfo from a textual string
- * @param k_ptr 保管先のベースアイテム構造体参照ポインタ
+ * @param bii_ptr 保管先のベースアイテム構造体参照ポインタ
* @param what 参照元の文字列ポインタ
* @return 見つけたらtrue
*/
-static bool grab_one_baseitem_flag(BaseitemInfo *k_ptr, std::string_view what)
+static bool grab_one_baseitem_flag(BaseitemInfo *bii_ptr, std::string_view what)
{
- if (TrFlags::grab_one_flag(k_ptr->flags, baseitem_flags, what)) {
+ if (TrFlags::grab_one_flag(bii_ptr->flags, baseitem_flags, what)) {
return true;
}
- if (EnumClassFlagGroup<ItemGenerationTraitType>::grab_one_flag(k_ptr->gen_flags, baseitem_geneneration_flags, what)) {
+ if (EnumClassFlagGroup<ItemGenerationTraitType>::grab_one_flag(bii_ptr->gen_flags, baseitem_geneneration_flags, what)) {
return true;
}
errr parse_baseitems_info(std::string_view buf, angband_header *head)
{
(void)head;
- static BaseitemInfo *k_ptr = nullptr;
+ static BaseitemInfo *bii_ptr = nullptr;
const auto &tokens = str_split(buf, ':', false, 10);
if (tokens[0] == "N") {
}
error_idx = i;
- k_ptr = &baseitems_info[i];
- k_ptr->idx = static_cast<short>(i);
+ bii_ptr = &baseitems_info[i];
+ bii_ptr->idx = static_cast<short>(i);
#ifdef JP
- k_ptr->name = tokens[2];
+ bii_ptr->name = tokens[2];
#endif
if (tokens.size() > 3) {
- k_ptr->flavor_name = tokens[3];
+ bii_ptr->flavor_name = tokens[3];
}
- } else if (!k_ptr) {
+ } else if (!bii_ptr) {
return PARSE_ERROR_MISSING_RECORD_HEADER;
} else if (tokens[0] == "E") {
// E:name_en
if (tokens.size() < 2 || tokens[1].size() == 0) {
return PARSE_ERROR_TOO_FEW_ARGUMENTS;
}
- k_ptr->name = tokens[1];
+ bii_ptr->name = tokens[1];
if (tokens.size() > 2) {
- k_ptr->flavor_name = tokens[2];
+ bii_ptr->flavor_name = tokens[2];
}
#endif
} else if (tokens[0] == "D") {
if (tokens[1][0] == '$') {
return PARSE_ERROR_NONE;
}
- k_ptr->text.append(buf.substr(2));
+ bii_ptr->text.append(buf.substr(2));
#else
if (tokens[1][0] != '$') {
return PARSE_ERROR_NONE;
}
- append_english_text(k_ptr->text, buf.substr(3));
+ append_english_text(bii_ptr->text, buf.substr(3));
#endif
} else if (tokens[0] == "G") {
// G:color:symbol
return PARSE_ERROR_GENERIC;
}
- k_ptr->d_attr = a;
- k_ptr->d_char = tokens[1][0];
+ bii_ptr->d_attr = a;
+ bii_ptr->d_char = tokens[1][0];
} else if (tokens[0] == "I") {
// I:tval:sval:pval
if (tokens.size() < 4) {
constexpr auto base = 10;
const auto tval = i2enum<ItemKindType>(std::stoi(tokens[1], nullptr, base));
const auto sval = std::stoi(tokens[2], nullptr, base);
- k_ptr->bi_key = { tval, sval };
- info_set_value(k_ptr->pval, tokens[3]);
+ bii_ptr->bi_key = { tval, sval };
+ info_set_value(bii_ptr->pval, tokens[3]);
} else if (tokens[0] == "W") {
// W:level:weight:cost
if (tokens.size() < 4) {
return PARSE_ERROR_TOO_FEW_ARGUMENTS;
}
- info_set_value(k_ptr->level, tokens[1]);
- info_set_value(k_ptr->weight, tokens[2]);
- info_set_value(k_ptr->cost, tokens[3]);
+ info_set_value(bii_ptr->level, tokens[1]);
+ info_set_value(bii_ptr->weight, tokens[2]);
+ info_set_value(bii_ptr->cost, tokens[3]);
} else if (tokens[0] == "A") {
// A:level/chance(:level/chance:level/chance:level/chance)
if (tokens.size() < 2 || tokens.size() > 5) {
if (rarity.size() != 2 || rarity[0].size() == 0 || rarity[1].size() == 0) {
return PARSE_ERROR_NON_SEQUENTIAL_RECORDS;
}
- info_set_value(k_ptr->locale[i], rarity[0]);
- info_set_value(k_ptr->chance[i], rarity[1]);
+ info_set_value(bii_ptr->locale[i], rarity[0]);
+ info_set_value(bii_ptr->chance[i], rarity[1]);
i++;
}
} else if (tokens[0] == "P") {
return PARSE_ERROR_NON_SEQUENTIAL_RECORDS;
}
- info_set_value(k_ptr->ac, tokens[1]);
- info_set_value(k_ptr->dd, dice[0]);
- info_set_value(k_ptr->ds, dice[1]);
- info_set_value(k_ptr->to_h, tokens[3]);
- info_set_value(k_ptr->to_d, tokens[4]);
- info_set_value(k_ptr->to_a, tokens[5]);
+ info_set_value(bii_ptr->ac, tokens[1]);
+ info_set_value(bii_ptr->dd, dice[0]);
+ info_set_value(bii_ptr->ds, dice[1]);
+ info_set_value(bii_ptr->to_h, tokens[3]);
+ info_set_value(bii_ptr->to_d, tokens[4]);
+ info_set_value(bii_ptr->to_a, tokens[5]);
} else if (tokens[0] == "U") {
// U:activation_flag
if (tokens.size() < 2 || tokens[1].size() == 0) {
return PARSE_ERROR_INVALID_FLAG;
}
- k_ptr->act_idx = n;
+ bii_ptr->act_idx = n;
} else if (tokens[0] == "F") {
// F:flags
if (tokens.size() < 2 || tokens[1].size() == 0) {
if (f.size() == 0) {
continue;
}
- if (!grab_one_baseitem_flag(k_ptr, f)) {
+ if (!grab_one_baseitem_flag(bii_ptr, f)) {
return PARSE_ERROR_INVALID_FLAG;
}
}
*/
for (changed = false, i = 0; i < INVEN_PACK; i++) {
auto *o_ptr = &player_ptr->inventory_list[i];
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
if (!o_ptr->bi_id) {
continue;
}
if ((o_ptr->bi_key.tval() == ItemKindType::ROD) && (o_ptr->timeout)) {
- TIME_EFFECT temp = (o_ptr->timeout + (k_ptr->pval - 1)) / k_ptr->pval;
+ TIME_EFFECT temp = (o_ptr->timeout + (baseitem.pval - 1)) / baseitem.pval;
if (temp > o_ptr->number) {
temp = (TIME_EFFECT)o_ptr->number;
}
if (!(o_ptr->timeout)) {
recharged_notice(player_ptr, o_ptr);
changed = true;
- } else if (o_ptr->timeout % k_ptr->pval) {
+ } else if (o_ptr->timeout % baseitem.pval) {
changed = true;
}
}
return 1;
}
- BaseitemInfo *k_ptr;
int i = (int)strtol(zz[0], nullptr, 0);
TERM_COLOR n1 = (TERM_COLOR)strtol(zz[1], nullptr, 0);
auto n2 = static_cast<char>(strtol(zz[2], nullptr, 0));
return 1;
}
- k_ptr = &baseitems_info[i];
+ auto *bii_ptr = &baseitems_info[i];
if (n1 || (!(n2 & 0x80) && n2)) {
- k_ptr->x_attr = n1;
+ bii_ptr->x_attr = n1;
} /* Allow TERM_DARK text */
if (n2) {
- k_ptr->x_char = n2;
+ bii_ptr->x_char = n2;
}
return 0;
int i;
for (i = 0; i < per_page && (object_idx[object_top + i] >= 0); i++) {
TERM_COLOR a;
- BaseitemInfo *flavor_k_ptr;
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) {
- flavor_k_ptr = &baseitems_info[k_ptr->flavor];
- } else {
- flavor_k_ptr = k_ptr;
- }
+ const auto &baseitem = baseitems_info[bi_id];
+ TERM_COLOR attr = ((baseitem.aware || visual_only) ? TERM_WHITE : TERM_SLATE);
+ byte cursor = ((baseitem.aware || visual_only) ? TERM_L_BLUE : TERM_BLUE);
+ const auto &flavor_baseitem = !visual_only && baseitem.flavor ? baseitems_info[baseitem.flavor] : baseitems_info[bi_id];
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(bi_id);
+ const auto is_flavor_only = (baseitem.flavor != 0) && (visual_only || !baseitem.aware);
+ const auto o_name = is_flavor_only ? flavor_baseitem.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);
+ c_prt(attr, format("%02x/%02x", flavor_baseitem.x_attr, flavor_baseitem.x_char), row + i, (w_ptr->wizard || visual_only) ? 64 : 68);
}
if (w_ptr->wizard || visual_only) {
c_prt(attr, format("%d", bi_id), row + i, 70);
}
- a = flavor_k_ptr->x_attr;
- auto c = flavor_k_ptr->x_char;
+ a = flavor_baseitem.x_attr;
+ auto c = flavor_baseitem.x_char;
term_queue_bigchar(use_bigtile ? 76 : 77, row + i, a, c, 0, 0);
}
object_old = -1;
object_cnt = 0;
} else {
- auto *k_ptr = &baseitems_info[direct_k_idx];
- BaseitemInfo *flavor_k_ptr;
-
- if (!visual_only && k_ptr->flavor) {
- flavor_k_ptr = &baseitems_info[k_ptr->flavor];
- } else {
- flavor_k_ptr = k_ptr;
- }
-
+ auto &baseitem = baseitems_info[direct_k_idx];
+ auto &flavor_baseitem = !visual_only && baseitem.flavor ? baseitems_info[baseitem.flavor] : baseitem;
object_idx[0] = direct_k_idx;
object_old = direct_k_idx;
object_cnt = 1;
object_idx[1] = -1;
(void)visual_mode_command(
- 'v', &visual_list, browser_rows - 1, wid - (max + 3), &attr_top, &char_left, &flavor_k_ptr->x_attr, &flavor_k_ptr->x_char, need_redraw);
+ 'v', &visual_list, browser_rows - 1, wid - (max + 3), &attr_top, &char_left, &flavor_baseitem.x_attr, &flavor_baseitem.x_char, need_redraw);
}
grp_idx[grp_cnt] = -1;
bool redraw = true;
int column = 0;
while (!flag) {
- BaseitemInfo *k_ptr, *flavor_k_ptr;
-
if (redraw) {
clear_from(0);
display_visual_list(max + 3, 7, browser_rows - 1, wid - (max + 3), attr_top, char_left);
}
- k_ptr = &baseitems_info[object_idx[object_cur]];
-
- if (!visual_only && k_ptr->flavor) {
- flavor_k_ptr = &baseitems_info[k_ptr->flavor];
- } else {
- flavor_k_ptr = k_ptr;
- }
+ auto &baseitem = baseitems_info[object_idx[object_cur]];
+ auto &flavor_baseitem = !visual_only && baseitem.flavor ? baseitems_info[baseitem.flavor] : baseitem;
#ifdef JP
prt(format("<方向>%s%s%s, ESC", (!visual_list && !visual_only) ? ", 'r'で詳細を見る" : "", visual_list ? ", ENTERで決定" : ", 'v'でシンボル変更",
}
if (visual_list) {
- place_visual_list_cursor(max + 3, 7, flavor_k_ptr->x_attr, flavor_k_ptr->x_char, attr_top, char_left);
+ place_visual_list_cursor(max + 3, 7, flavor_baseitem.x_attr, flavor_baseitem.x_char, attr_top, char_left);
} else if (!column) {
term_gotoxy(0, 6 + (grp_cur - grp_top));
} else {
char ch = inkey();
if (visual_mode_command(
- ch, &visual_list, browser_rows - 1, wid - (max + 3), &attr_top, &char_left, &flavor_k_ptr->x_attr, &flavor_k_ptr->x_char, need_redraw)) {
+ ch, &visual_list, browser_rows - 1, wid - (max + 3), &attr_top, &char_left, &flavor_baseitem.x_attr, &flavor_baseitem.x_char, need_redraw)) {
if (direct_k_idx >= 0) {
switch (ch) {
case '\n':
auto loading_max_k_idx = rd_u16b();
BaseitemInfo dummy;
for (auto i = 0U; i < loading_max_k_idx; i++) {
- auto *k_ptr = i < baseitems_info.size() ? &baseitems_info[i] : &dummy;
+ auto *bii_ptr = i < baseitems_info.size() ? &baseitems_info[i] : &dummy;
auto tmp8u = rd_byte();
- k_ptr->aware = any_bits(tmp8u, 0x01);
- k_ptr->tried = any_bits(tmp8u, 0x02);
+ bii_ptr->aware = any_bits(tmp8u, 0x01);
+ bii_ptr->tried = any_bits(tmp8u, 0x02);
}
load_note(_("アイテムの記録をロードしました", "Loaded Object Memory"));
return;
}
- const auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
if (!baseitems_info[this->o_ptr->bi_id].cost) {
set_bits(this->o_ptr->ident, IDENT_BROKEN);
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::CURSED)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::CURSED)) {
this->o_ptr->curse_flags.set(CurseTraitType::CURSED);
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::HEAVY_CURSE)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::HEAVY_CURSE)) {
this->o_ptr->curse_flags.set(CurseTraitType::HEAVY_CURSE);
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::PERMA_CURSE)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::PERMA_CURSE)) {
this->o_ptr->curse_flags.set(CurseTraitType::PERMA_CURSE);
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE0)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE0)) {
this->o_ptr->curse_flags.set(get_curse(0, this->o_ptr));
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE1)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE1)) {
this->o_ptr->curse_flags.set(get_curse(1, this->o_ptr));
}
- if (k_ptr->gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE2)) {
+ if (baseitem.gen_flags.has(ItemGenerationTraitType::RANDOM_CURSE2)) {
this->o_ptr->curse_flags.set(get_curse(2, this->o_ptr));
}
}
void AmuletEnchanter::give_ego_index()
{
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
switch (randint1(21)) {
case 1:
case 2:
- if (k_ptr->flags.has(TR_SLOW_DIGEST)) {
+ if (baseitem.flags.has(TR_SLOW_DIGEST)) {
break;
}
break;
case 5:
case 6:
- if (k_ptr->flags.has(TR_SEE_INVIS)) {
+ if (baseitem.flags.has(TR_SEE_INVIS)) {
break;
}
break;
case 7:
case 8:
- if (k_ptr->flags.has(TR_HOLD_EXP)) {
+ if (baseitem.flags.has(TR_HOLD_EXP)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_HOLD_EXP;
break;
case 9:
- if (k_ptr->flags.has(TR_LEVITATION)) {
+ if (baseitem.flags.has(TR_LEVITATION)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_AC;
break;
case 12:
- if (k_ptr->flags.has(TR_RES_FIRE)) {
+ if (baseitem.flags.has(TR_RES_FIRE)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_RES_FIRE;
break;
case 13:
- if (k_ptr->flags.has(TR_RES_COLD)) {
+ if (baseitem.flags.has(TR_RES_COLD)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_RES_COLD;
break;
case 14:
- if (k_ptr->flags.has(TR_RES_ELEC)) {
+ if (baseitem.flags.has(TR_RES_ELEC)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_RES_ELEC;
break;
case 15:
- if (k_ptr->flags.has(TR_RES_ACID)) {
+ if (baseitem.flags.has(TR_RES_ACID)) {
break;
}
}
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
switch (randint1(5)) {
case 1:
- if (k_ptr->flags.has(TR_DRAIN_EXP)) {
+ if (baseitem.flags.has(TR_DRAIN_EXP)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_FOOL;
break;
case 3:
- if (k_ptr->flags.has(TR_AGGRAVATE)) {
+ if (baseitem.flags.has(TR_AGGRAVATE)) {
break;
}
this->o_ptr->ego_idx = EgoType::AMU_AGGRAVATE;
break;
case 4:
- if (k_ptr->flags.has(TR_TY_CURSE)) {
+ if (baseitem.flags.has(TR_TY_CURSE)) {
break;
}
*/
void OtherItemsEnchanter::enchant_wand_staff()
{
- auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
- this->o_ptr->pval = k_ptr->pval / 2 + randint1((k_ptr->pval + 1) / 2);
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
+ this->o_ptr->pval = baseitem.pval / 2 + randint1((baseitem.pval + 1) / 2);
}
/*
{
while (!this->o_ptr->is_ego()) {
int tmp = m_bonus(10, this->level);
- auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
switch (randint1(28)) {
case 1:
case 2:
break;
case 3:
case 4:
- if (k_ptr->flags.has(TR_REGEN)) {
+ if (baseitem.flags.has(TR_REGEN)) {
break;
}
break;
case 5:
case 6:
- if (k_ptr->flags.has(TR_LITE_1)) {
+ if (baseitem.flags.has(TR_LITE_1)) {
break;
}
break;
case 7:
case 8:
- if (k_ptr->flags.has(TR_TELEPORT)) {
+ if (baseitem.flags.has(TR_TELEPORT)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_SLAY;
break;
case 14:
- if ((k_ptr->flags.has(TR_STR)) || this->o_ptr->to_h || this->o_ptr->to_d) {
+ if ((baseitem.flags.has(TR_STR)) || this->o_ptr->to_h || this->o_ptr->to_d) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_WIZARD;
break;
case 15:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_HERO;
break;
case 16:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_MAGIC_MIS;
break;
case 17:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
- if (k_ptr->flags.has_not(TR_RES_FIRE) && (k_ptr->flags.has(TR_RES_COLD) || k_ptr->flags.has(TR_RES_ELEC) || k_ptr->flags.has(TR_RES_ACID))) {
+ if (baseitem.flags.has_not(TR_RES_FIRE) && (baseitem.flags.has(TR_RES_COLD) || baseitem.flags.has(TR_RES_ELEC) || baseitem.flags.has(TR_RES_ACID))) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_FIRE_BOLT;
break;
case 18:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
- if (k_ptr->flags.has_not(TR_RES_COLD) && (k_ptr->flags.has(TR_RES_FIRE) || k_ptr->flags.has(TR_RES_ELEC) || k_ptr->flags.has(TR_RES_ACID))) {
+ if (baseitem.flags.has_not(TR_RES_COLD) && (baseitem.flags.has(TR_RES_FIRE) || baseitem.flags.has(TR_RES_ELEC) || baseitem.flags.has(TR_RES_ACID))) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_COLD_BOLT;
break;
case 19:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
- if (k_ptr->flags.has_not(TR_RES_ELEC) && (k_ptr->flags.has(TR_RES_COLD) || k_ptr->flags.has(TR_RES_FIRE) || k_ptr->flags.has(TR_RES_ACID))) {
+ if (baseitem.flags.has_not(TR_RES_ELEC) && (baseitem.flags.has(TR_RES_COLD) || baseitem.flags.has(TR_RES_FIRE) || baseitem.flags.has(TR_RES_ACID))) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_ELEC_BOLT;
break;
case 20:
- if (k_ptr->flags.has(TR_ACTIVATE)) {
+ if (baseitem.flags.has(TR_ACTIVATE)) {
break;
}
- if (k_ptr->flags.has_not(TR_RES_ACID) && (k_ptr->flags.has(TR_RES_COLD) || k_ptr->flags.has(TR_RES_ELEC) || k_ptr->flags.has(TR_RES_FIRE))) {
+ if (baseitem.flags.has_not(TR_RES_ACID) && (baseitem.flags.has(TR_RES_COLD) || baseitem.flags.has(TR_RES_ELEC) || baseitem.flags.has(TR_RES_FIRE))) {
break;
}
}
while (!this->o_ptr->is_ego()) {
- auto *k_ptr = &baseitems_info[this->o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[this->o_ptr->bi_id];
switch (randint1(5)) {
case 1:
- if (k_ptr->flags.has(TR_DRAIN_EXP)) {
+ if (baseitem.flags.has(TR_DRAIN_EXP)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_DRAIN_EXP;
this->o_ptr->ego_idx = EgoType::RING_NO_MELEE;
break;
case 3:
- if (k_ptr->flags.has(TR_AGGRAVATE)) {
+ if (baseitem.flags.has(TR_AGGRAVATE)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_AGGRAVATE;
break;
case 4:
- if (k_ptr->flags.has(TR_TY_CURSE)) {
+ if (baseitem.flags.has(TR_TY_CURSE)) {
break;
}
this->o_ptr->ego_idx = EgoType::RING_TY_CURSE;
return;
}
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
if ((o_ptr->number == 1) && (o_ptr->timeout)) {
if (flush_failure) {
flush();
msg_print(_("このロッドはまだ魔力を充填している最中だ。", "The rod is still charging."));
return;
- } else if ((o_ptr->number > 1) && (o_ptr->timeout > k_ptr->pval * (o_ptr->number - 1))) {
+ } else if ((o_ptr->number > 1) && (o_ptr->timeout > baseitem.pval * (o_ptr->number - 1))) {
if (flush_failure) {
flush();
}
sound(SOUND_ZAP);
auto ident = rod_effect(this->player_ptr, o_ptr->bi_key.sval().value(), dir, &use_charge, false);
if (use_charge) {
- o_ptr->timeout += k_ptr->pval;
+ o_ptr->timeout += baseitem.pval;
}
this->player_ptr->update |= PU_COMBINE | PU_REORDER;
*/
TrFlags object_flags(const ItemEntity *o_ptr)
{
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
-
- /* Base object */
- auto flgs = k_ptr->flags;
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ auto flgs = baseitem.flags;
if (o_ptr->is_fixed_artifact()) {
flgs = artifacts_info.at(o_ptr->fixed_artifact_idx).flags;
}
object_flags_lite(o_ptr, flgs);
-
- /* Random artifact ! */
flgs.set(o_ptr->art_flags);
-
if (auto effect = Smith::object_effect(o_ptr); effect.has_value()) {
auto tr_flags = Smith::get_effect_tr_flags(effect.value());
flgs.set(tr_flags);
}
+
if (Smith::object_activation(o_ptr).has_value()) {
flgs.set(TR_ACTIVATE);
}
TrFlags object_flags_known(const ItemEntity *o_ptr)
{
bool spoil = false;
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
TrFlags flgs{};
if (!o_ptr->is_aware()) {
return flgs;
}
- /* Base object */
- flgs = k_ptr->flags;
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ flgs = baseitem.flags;
if (!o_ptr->is_known()) {
return flgs;
PRICE flag_cost(const ItemEntity *o_ptr, int plusses)
{
PRICE total = 0;
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
auto flgs = object_flags(o_ptr);
-
- /*
- * Exclude fixed flags of the base item.
- * pval bonuses of base item will be treated later.
- */
- flgs.reset(k_ptr->flags);
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
+ flgs.reset(baseitem.flags);
if (o_ptr->is_fixed_artifact()) {
const auto &a_ref = artifacts_info.at(o_ptr->fixed_artifact_idx);
*/
PRICE object_value_real(const ItemEntity *o_ptr)
{
- auto *k_ptr = &baseitems_info[o_ptr->bi_id];
+ const auto &baseitem = baseitems_info[o_ptr->bi_id];
if (!baseitems_info[o_ptr->bi_id].cost) {
return 0;
/* Pay extra for charges, depending on standard number of
* charges. Handle new-style wands correctly. -LM-
*/
- value += (value * o_ptr->pval / o_ptr->number / (k_ptr->pval * 2));
+ value += (value * o_ptr->pval / o_ptr->number / (baseitem.pval * 2));
break;
}
case ItemKindType::STAFF: {
/* Pay extra for charges, depending on standard number of
* charges. -LM-
*/
- value += (value * o_ptr->pval / (k_ptr->pval * 2));
+ value += (value * o_ptr->pval / (baseitem.pval * 2));
break;
}
case ItemKindType::RING:
return 0;
}
- value += (((o_ptr->to_h - k_ptr->to_h) + (o_ptr->to_d - k_ptr->to_d)) * 200L + (o_ptr->to_a) * 100L);
+ value += (((o_ptr->to_h - baseitem.to_h) + (o_ptr->to_d - baseitem.to_d)) * 200L + (o_ptr->to_a) * 100L);
break;
}
case ItemKindType::BOW:
}
value += ((o_ptr->to_h + o_ptr->to_d + o_ptr->to_a) * 100L);
- value += (o_ptr->dd - k_ptr->dd) * o_ptr->ds * 250L;
- value += (o_ptr->ds - k_ptr->ds) * o_ptr->dd * 250L;
+ value += (o_ptr->dd - baseitem.dd) * o_ptr->ds * 250L;
+ value += (o_ptr->ds - baseitem.ds) * o_ptr->dd * 250L;
break;
}
case ItemKindType::SHOT:
}
value += ((o_ptr->to_h + o_ptr->to_d) * 5L);
- value += (o_ptr->dd - k_ptr->dd) * o_ptr->ds * 5L;
- value += (o_ptr->ds - k_ptr->ds) * o_ptr->dd * 5L;
+ value += (o_ptr->dd - baseitem.dd) * o_ptr->ds * 5L;
+ value += (o_ptr->ds - baseitem.ds) * o_ptr->dd * 5L;
break;
}
case ItemKindType::FIGURINE: {
void wr_perception(short bi_id)
{
byte tmp8u = 0;
- auto *k_ptr = &baseitems_info[bi_id];
- if (k_ptr->aware) {
+ const auto &baseitem = baseitems_info[bi_id];
+ if (baseitem.aware) {
tmp8u |= 0x01;
}
- if (k_ptr->tried) {
+ if (baseitem.tried) {
tmp8u |= 0x02;
}
static void image_object(TERM_COLOR *ap, char *cp)
{
if (use_graphics) {
- auto *k_ptr = &baseitems_info[randint1(baseitems_info.size() - 1)];
- *cp = k_ptr->x_char;
- *ap = k_ptr->x_attr;
+ const auto &baseitem = baseitems_info[randint1(baseitems_info.size() - 1)];
+ *cp = baseitem.x_char;
+ *ap = baseitem.x_attr;
return;
}
continue;
}
- auto k_ptr = &baseitems_info[o_ptr->bi_id];
- k_ptr->aware = true; //!< @note 記録には残さないためTRUEを立てるのみ
+ auto &baseitem = baseitems_info[o_ptr->bi_id];
+ baseitem.aware = true; //!< @note 記録には残さないためTRUEを立てるのみ
set_bits(o_ptr->ident, IDENT_KNOWN | IDENT_FULL_KNOWN);
o_ptr->marked.set(OmType::TOUCHED);
}