From cc2e38ac41e079c67e9a3b8f01e3b6686daf36fe Mon Sep 17 00:00:00 2001 From: Hourier <66951241+Hourier@users.noreply.github.com> Date: Fri, 16 Sep 2022 20:37:40 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20#2640=20object=5Fchar()=20=E3=82=92?= =?utf8?q?ObjectType::get=5Fsymbol()=20=E3=81=AB=E3=80=81object=5Fattr()?= =?utf8?q?=20=E3=82=92ObjectType::get=5Fcolor()=20=E3=81=AB=E5=A4=89?= =?utf8?q?=E3=81=88=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/combat/shoot.cpp | 4 ++-- src/object-use/throw-execution.cpp | 8 ++++---- src/object/object-info.cpp | 14 -------------- src/object/object-info.h | 1 - src/object/object-kind.cpp | 10 ---------- src/object/object-kind.h | 3 --- src/system/object-type-definition.cpp | 25 +++++++++++++++++++++++++ src/system/object-type-definition.h | 2 ++ src/view/display-inventory.cpp | 8 ++++---- src/view/display-map.cpp | 4 ++-- src/view/display-player.cpp | 6 +++--- src/view/display-store.cpp | 4 ++-- src/window/display-sub-windows.cpp | 4 ++-- src/window/main-window-equipments.cpp | 4 ++-- 14 files changed, 48 insertions(+), 49 deletions(-) diff --git a/src/combat/shoot.cpp b/src/combat/shoot.cpp index 27746189e..2298bdf09 100644 --- a/src/combat/shoot.cpp +++ b/src/combat/shoot.cpp @@ -689,8 +689,8 @@ void exe_fire(PlayerType *player_ptr, INVENTORY_IDX item, ObjectType *j_ptr, SPE /* The player can see the (on screen) missile */ if (panel_contains(ny, nx) && player_can_see_bold(player_ptr, ny, nx)) { - auto c = object_char(q_ptr); - TERM_COLOR a = object_attr(q_ptr); + const auto a = q_ptr->get_color(); + const auto c = q_ptr->get_symbol(); /* Draw, Hilite, Fresh, Pause, Erase */ if (delay_factor > 0) { diff --git a/src/object-use/throw-execution.cpp b/src/object-use/throw-execution.cpp index 56ba706a5..52a89f621 100644 --- a/src/object-use/throw-execution.cpp +++ b/src/object-use/throw-execution.cpp @@ -402,8 +402,8 @@ void ObjectThrowEntity::check_racial_target_seen() return; } - auto c = object_char(this->q_ptr); - auto a = object_attr(this->q_ptr); + const auto c = this->q_ptr->get_symbol(); + const auto a = this->q_ptr->get_color(); print_rel(this->player_ptr, c, a, this->ny[this->cur_dis], this->nx[this->cur_dis]); move_cursor_relative(this->ny[this->cur_dis], this->nx[this->cur_dis]); term_fresh(); @@ -518,8 +518,8 @@ void ObjectThrowEntity::process_boomerang_throw() continue; } - auto c = object_char(this->q_ptr); - auto a = object_attr(this->q_ptr); + const auto c = this->q_ptr->get_symbol(); + const auto a = this->q_ptr->get_color(); if (this->msec <= 0) { continue; } diff --git a/src/object/object-info.cpp b/src/object/object-info.cpp index e263a39bd..9758b35ef 100644 --- a/src/object/object-info.cpp +++ b/src/object/object-info.cpp @@ -315,17 +315,3 @@ ObjectType *ref_item(PlayerType *player_ptr, INVENTORY_IDX item) auto *floor_ptr = player_ptr->current_floor_ptr; return item >= 0 ? &player_ptr->inventory_list[item] : &(floor_ptr->o_list[0 - item]); } - -/* - * Return the "attr" for a given item. - * Use "flavor" if available. - * Default to user definitions. - */ -TERM_COLOR object_attr(ObjectType *o_ptr) -{ - return ((k_info[o_ptr->k_idx].flavor) - ? (k_info[k_info[o_ptr->k_idx].flavor].x_attr) - : ((!o_ptr->k_idx || (o_ptr->tval != ItemKindType::CORPSE) || (o_ptr->sval != SV_CORPSE) || (k_info[o_ptr->k_idx].x_attr != TERM_DARK)) - ? (k_info[o_ptr->k_idx].x_attr) - : (r_info[i2enum(o_ptr->pval)].x_attr))); -} diff --git a/src/object/object-info.h b/src/object/object-info.h index 7023eb533..3fa39a29a 100644 --- a/src/object/object-info.h +++ b/src/object/object-info.h @@ -12,4 +12,3 @@ char index_to_label(int i); int16_t wield_slot(PlayerType *player_ptr, const ObjectType *o_ptr); bool check_book_realm(PlayerType *player_ptr, const ItemKindType book_tval, const OBJECT_SUBTYPE_VALUE book_sval); ObjectType *ref_item(PlayerType *player_ptr, INVENTORY_IDX item); -TERM_COLOR object_attr(ObjectType *o_ptr); diff --git a/src/object/object-kind.cpp b/src/object/object-kind.cpp index 7e2fd6081..944df19e3 100644 --- a/src/object/object-kind.cpp +++ b/src/object/object-kind.cpp @@ -14,13 +14,3 @@ * The object kind arrays */ std::vector k_info; - -/* - * Return the "char" for a given item. - * Use "flavor" if available. - * Default to user definitions. - */ -char object_char(ObjectType *o_ptr) -{ - return k_info[o_ptr->k_idx].flavor ? k_info[k_info[o_ptr->k_idx].flavor].x_char : k_info[o_ptr->k_idx].x_char; -} diff --git a/src/object/object-kind.h b/src/object/object-kind.h index 9cec2b3d2..d6d86c918 100644 --- a/src/object/object-kind.h +++ b/src/object/object-kind.h @@ -62,6 +62,3 @@ struct object_kind { }; extern std::vector k_info; - -class ObjectType; -char object_char(ObjectType *o_ptr); diff --git a/src/system/object-type-definition.cpp b/src/system/object-type-definition.cpp index 357873169..b6a834167 100644 --- a/src/system/object-type-definition.cpp +++ b/src/system/object-type-definition.cpp @@ -24,6 +24,7 @@ #include "sv-definition/sv-weapon-types.h" #include "system/monster-race-definition.h" #include "system/player-type-definition.h" +#include "term/term-color-types.h" #include "util/bit-flags-calculator.h" #include "util/string-processor.h" @@ -646,3 +647,27 @@ bool ObjectType::can_pile(const ObjectType *j_ptr) const return true; } + +/* + * Return the "attr" for a given item. + * Use "flavor" if available. + * Default to user definitions. + */ +TERM_COLOR ObjectType::get_color() const +{ + return ((k_info[this->k_idx].flavor) + ? (k_info[k_info[this->k_idx].flavor].x_attr) + : ((!this->k_idx || (this->tval != ItemKindType::CORPSE) || (this->sval != SV_CORPSE) || (k_info[this->k_idx].x_attr != TERM_DARK)) + ? (k_info[this->k_idx].x_attr) + : (r_info[i2enum(this->pval)].x_attr))); +} + +/* + * Return the "char" for a given item. + * Use "flavor" if available. + * Default to user definitions. + */ +char ObjectType::get_symbol() const +{ + return k_info[this->k_idx].flavor ? k_info[k_info[this->k_idx].flavor].x_char : k_info[this->k_idx].x_char; +} diff --git a/src/system/object-type-definition.h b/src/system/object-type-definition.h index 92516d33a..677423a91 100644 --- a/src/system/object-type-definition.h +++ b/src/system/object-type-definition.h @@ -115,4 +115,6 @@ public: bool is_fuel() const; bool is_glove_same_temper(const ObjectType *j_ptr) const; bool can_pile(const ObjectType *j_ptr) const; + TERM_COLOR get_color() const; + char get_symbol() const; }; diff --git a/src/view/display-inventory.cpp b/src/view/display-inventory.cpp index 4b5c88fe5..e969f6022 100644 --- a/src/view/display-inventory.cpp +++ b/src/view/display-inventory.cpp @@ -107,8 +107,8 @@ COMMAND_CODE show_inventory(PlayerType *player_ptr, int target_item, BIT_FLAGS m put_str(tmp_val, j + 1, col); cur_col = col + 3; if (show_item_graph) { - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); + const auto a = o_ptr->get_color(); + const auto c = o_ptr->get_symbol(); term_queue_bigchar(cur_col, j + 1, a, c, 0, 0); if (use_bigtile) { cur_col++; @@ -183,8 +183,8 @@ void display_inventory(PlayerType *player_ptr, const ItemTester &item_tester) } if (show_item_graph) { - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); + const auto a = o_ptr->get_color(); + const auto c = o_ptr->get_symbol(); term_queue_bigchar(cur_col, i, a, c, 0, 0); if (use_bigtile) { cur_col++; diff --git a/src/view/display-map.cpp b/src/view/display-map.cpp index 251c3f7c6..342b0ace6 100644 --- a/src/view/display-map.cpp +++ b/src/view/display-map.cpp @@ -284,8 +284,8 @@ void map_info(PlayerType *player_ptr, POSITION y, POSITION x, TERM_COLOR *ap, ch } } - (*cp) = object_char(o_ptr); - (*ap) = object_attr(o_ptr); + *cp = o_ptr->get_symbol(); + *ap = o_ptr->get_color(); feat_priority = 20; if (is_hallucinated) { image_object(ap, cp); diff --git a/src/view/display-player.cpp b/src/view/display-player.cpp index 78819147b..9a8ef769b 100644 --- a/src/view/display-player.cpp +++ b/src/view/display-player.cpp @@ -361,9 +361,9 @@ void display_player_equippy(PlayerType *player_ptr, TERM_LEN y, TERM_LEN x, BIT_ ObjectType *o_ptr; o_ptr = &player_ptr->inventory_list[i]; - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); - + auto a = o_ptr->get_color(); + auto c = o_ptr->get_symbol(); + if (!equippy_chars || !o_ptr->k_idx) { c = ' '; a = TERM_DARK; diff --git a/src/view/display-store.cpp b/src/view/display-store.cpp index 37d66f363..8ca8a890c 100644 --- a/src/view/display-store.cpp +++ b/src/view/display-store.cpp @@ -53,8 +53,8 @@ void display_entry(PlayerType *player_ptr, int pos, StoreSaleType store_num) int cur_col = 3; if (show_item_graph) { - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); + const auto a = o_ptr->get_color(); + const auto c = o_ptr->get_symbol(); term_queue_bigchar(cur_col, i + 6, a, c, 0, 0); if (use_bigtile) { diff --git a/src/window/display-sub-windows.cpp b/src/window/display-sub-windows.cpp index e3fbc2c37..ac0113ad1 100644 --- a/src/window/display-sub-windows.cpp +++ b/src/window/display-sub-windows.cpp @@ -281,8 +281,8 @@ static void display_equipment(PlayerType *player_ptr, const ItemTester &item_tes } if (show_item_graph) { - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); + const auto a = o_ptr->get_color(); + const auto c = o_ptr->get_symbol(); term_queue_bigchar(cur_col, cur_row, a, c, 0, 0); if (use_bigtile) { cur_col++; diff --git a/src/window/main-window-equipments.cpp b/src/window/main-window-equipments.cpp index 0b4c25e72..8c24d9f09 100644 --- a/src/window/main-window-equipments.cpp +++ b/src/window/main-window-equipments.cpp @@ -102,8 +102,8 @@ COMMAND_CODE show_equipment(PlayerType *player_ptr, int target_item, BIT_FLAGS m put_str(tmp_val, j + 1, col); int cur_col = col + 3; if (show_item_graph) { - TERM_COLOR a = object_attr(o_ptr); - auto c = object_char(o_ptr); + const auto a = o_ptr->get_color(); + const auto c = o_ptr->get_symbol(); term_queue_bigchar(cur_col, j + 1, a, c, 0, 0); if (use_bigtile) { cur_col++; -- 2.11.0