*/
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)
+ const auto &base_item = k_info[this->k_idx];
+ const auto flavor = base_item.flavor;
+ return ((flavor != 0)
+ ? (k_info[flavor].x_attr)
+ : ((!this->k_idx || (this->tval != ItemKindType::CORPSE) || (this->sval != SV_CORPSE) || (base_item.x_attr != TERM_DARK))
+ ? (base_item.x_attr)
: (r_info[i2enum<MonsterRaceId>(this->pval)].x_attr)));
}
*/
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;
+ const auto &base_item = k_info[this->k_idx];
+ const auto flavor = base_item.flavor;
+ return flavor ? k_info[flavor].x_char : base_item.x_char;
}