static TERM_COLOR birth_class_color(PlayerClassType cs)
{
- if (cs < PlayerClassType::MAX) {
- if (is_retired_class(cs)) {
- return TERM_L_DARK;
- }
- if (is_winner_class(cs)) {
- return TERM_SLATE;
- }
+ if (cs >= PlayerClassType::MAX) {
+ return TERM_WHITE;
+ }
+
+ if (is_retired_class(cs)) {
+ return TERM_L_DARK;
}
- return TERM_WHITE;
+
+ return w_ptr->is_winner_class(cs) ? TERM_SLATE : TERM_WHITE;
}
static std::string birth_class_label(int cs, concptr sym)
{
- const char p2 = ')';
+ constexpr auto p2 = ')';
std::stringstream ss;
-
if (cs < 0 || cs >= PLAYER_CLASS_TYPE_MAX) {
ss << '*' << p2 << _("ランダム", "Random");
+ return ss.str();
+ }
+
+ ss << sym[cs] << p2;
+ if (!(rp_ptr->choice & (1UL << cs))) {
+ ss << '(' << class_info[cs].title << ')';
} else {
- ss << sym[cs] << p2;
- if (!(rp_ptr->choice & (1UL << cs))) {
- ss << '(' << class_info[cs].title << ')';
- } else {
- ss << class_info[cs].title;
- }
+ ss << class_info[cs].title;
}
+
return ss.str();
}
/*!
* @brief 勝利したクラスか判定する
*/
-bool is_winner_class(PlayerClassType c)
+bool AngbandWorld::is_winner_class(PlayerClassType c) const
{
if (c == PlayerClassType::MAX) {
return false;
}
- return w_ptr->sf_winner.has(c);
+
+ return this->sf_winner.has(c);
}
/*!
void update_playtime();
void add_winner_class(PlayerClassType c);
void add_retired_class(PlayerClassType c);
+ bool is_winner_class(PlayerClassType c) const;
private:
bool is_out_arena = false; // アリーナ外部にいる時だけtrue.
extern AngbandWorld *w_ptr;
-bool is_winner_class(PlayerClassType c);
bool is_retired_class(PlayerClassType c);