From: Habu Date: Tue, 18 Jun 2024 13:58:42 +0000 (+0900) Subject: [Refactor] カオスパトロンの名称の日英切り替えにLocalizedStringクラスを使用する X-Git-Tag: 3.0.1.16-Beta^2~37^2~1 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=7e3eecb6bd7f4d8bf7270dab78f8d823f8eb16dd;p=hengbandforosx%2Fhengbandosx.git [Refactor] カオスパトロンの名称の日英切り替えにLocalizedStringクラスを使用する --- diff --git a/src/player/patron.cpp b/src/player/patron.cpp index 85ef256be..7e36b818d 100644 --- a/src/player/patron.cpp +++ b/src/player/patron.cpp @@ -37,97 +37,90 @@ std::vector patron_list = { - Patron(N("スローター", "Slortar"), + Patron({ "スローター", "Slortar" }, { REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL, REW_AUGM_ABL }, A_CON), - Patron(N("マベロード", "Mabelode"), + Patron({ "マベロード", "Mabelode" }, { REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_H_SUMMON, REW_SUMMON_M, REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_WND, REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_ABL, REW_SER_UNDE, REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GOOD_OBS }, A_CON), - Patron(N("チャードロス", "Chardros"), + Patron({ "チャードロス", "Chardros" }, { REW_WRATH, REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_H_SUMMON, REW_SUMMON_M, REW_IGNORE, REW_IGNORE, REW_DESTRUCT, REW_SER_UNDE, REW_GENOCIDE, REW_MASS_GEN, REW_MASS_GEN, REW_DISPEL_C, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL }, A_STR), - Patron(N("ハイオンハーン", "Hionhurn"), + Patron({ "ハイオンハーン", "Hionhurn" }, { REW_WRATH, REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_IGNORE, REW_IGNORE, REW_SER_UNDE, REW_DESTRUCT, REW_GENOCIDE, REW_MASS_GEN, REW_MASS_GEN, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL, REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_AUGM_ABL, REW_AUGM_ABL }, A_STR), - Patron(N("キシオムバーグ", "Xiombarg"), + Patron({ "キシオムバーグ", "Xiombarg" }, { REW_TY_CURSE, REW_TY_CURSE, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_POLY_WND, REW_GENOCIDE, REW_DISPEL_C, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS, REW_GAIN_ABL, REW_CHAOS_WP, REW_GAIN_EXP, REW_AUGM_ABL, REW_GOOD_OBS }, A_STR), - Patron(N("ピアレー", "Pyaray"), + Patron({ "ピアレー", "Pyaray" }, { REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_H_SUMMON, REW_H_SUMMON, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_POLY_SLF, REW_POLY_SLF, REW_SER_DEMO, REW_HEAL_FUL, REW_GAIN_ABL, REW_GAIN_ABL, REW_CHAOS_WP, REW_DO_HAVOC, REW_GOOD_OBJ, REW_GREA_OBJ, REW_GREA_OBS }, A_INT), - Patron(N("バラン", "Balaan"), + Patron({ "バラン", "Balaan" }, { REW_TY_CURSE, REW_HURT_LOT, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_SUMMON_M, REW_LOSE_EXP, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_SER_UNDE, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_GAIN_EXP, REW_CHAOS_WP, REW_GOOD_OBJ, REW_GOOD_OBS, REW_GREA_OBS, REW_AUGM_ABL }, A_STR), - Patron(N("アリオッチ", "Arioch"), + Patron({ "アリオッチ", "Arioch" }, { REW_WRATH, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_EXP, REW_H_SUMMON, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_MASS_GEN, REW_SER_DEMO, REW_HEAL_FUL, REW_CHAOS_WP, REW_CHAOS_WP, REW_GOOD_OBJ, REW_GAIN_EXP, REW_GREA_OBJ, REW_AUGM_ABL }, A_INT), - Patron(N("イーカー", "Eequor"), + Patron({ "イーカー", "Eequor" }, { REW_WRATH, REW_TY_CURSE, REW_PISS_OFF, REW_CURSE_WP, REW_RUIN_ABL, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_SER_MONS, REW_HEAL_FUL, REW_GAIN_EXP, REW_GAIN_ABL, REW_CHAOS_WP, REW_GOOD_OBS, REW_GREA_OBJ, REW_AUGM_ABL }, A_CON), - Patron(N("ナージャン", "Narjhan"), + Patron({ "ナージャン", "Narjhan" }, { REW_WRATH, REW_CURSE_AR, REW_CURSE_WP, REW_CURSE_WP, REW_CURSE_AR, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_HEAL_FUL, REW_GAIN_EXP, REW_AUGM_ABL, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GREA_OBS }, A_CHR), - Patron(N("バロ", "Balo"), + Patron({ "バロ", "Balo" }, { REW_WRATH, REW_SER_DEMO, REW_CURSE_WP, REW_CURSE_AR, REW_LOSE_EXP, REW_GAIN_ABL, REW_LOSE_ABL, REW_POLY_WND, REW_POLY_SLF, REW_IGNORE, REW_DESTRUCT, REW_MASS_GEN, REW_CHAOS_WP, REW_GREA_OBJ, REW_HURT_LOT, REW_AUGM_ABL, REW_RUIN_ABL, REW_H_SUMMON, REW_GREA_OBS, REW_AUGM_ABL }, A_RANDOM), - Patron(N("コーン", "Khorne"), + Patron({ "コーン", "Khorne" }, { REW_WRATH, REW_HURT_LOT, REW_HURT_LOT, REW_H_SUMMON, REW_H_SUMMON, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_SER_MONS, REW_SER_DEMO, REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GOOD_OBS, REW_GOOD_OBS, REW_GREA_OBJ, REW_GREA_OBS }, A_STR), - Patron(N("スラーネッシュ", "Slaanesh"), + Patron({ "スラーネッシュ", "Slaanesh" }, { REW_WRATH, REW_PISS_OFF, REW_PISS_OFF, REW_RUIN_ABL, REW_LOSE_ABL, REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_POLY_WND, REW_SER_DEMO, REW_POLY_SLF, REW_HEAL_FUL, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_EXP, REW_GAIN_EXP, REW_CHAOS_WP, REW_GAIN_ABL, REW_GREA_OBJ, REW_AUGM_ABL }, A_CHR), - Patron(N("ナーグル", "Nurgle"), + Patron({ "ナーグル", "Nurgle" }, { REW_WRATH, REW_PISS_OFF, REW_HURT_LOT, REW_RUIN_ABL, REW_LOSE_ABL, REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_GOOD_OBJ, REW_GAIN_ABL, REW_GAIN_ABL, REW_SER_UNDE, REW_CHAOS_WP, REW_GREA_OBJ, REW_AUGM_ABL }, A_CON), - Patron(N("ティーンチ", "Tzeentch"), + Patron({ "ティーンチ", "Tzeentch" }, { REW_WRATH, REW_CURSE_WP, REW_CURSE_AR, REW_RUIN_ABL, REW_LOSE_ABL, REW_LOSE_EXP, REW_IGNORE, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_SLF, REW_POLY_WND, REW_HEAL_FUL, REW_CHAOS_WP, REW_GREA_OBJ, REW_GAIN_ABL, REW_GAIN_ABL, REW_GAIN_EXP, REW_GAIN_EXP, REW_AUGM_ABL }, A_INT), - Patron(N("カイン", "Khaine"), + Patron({ "カイン", "Khaine" }, { REW_WRATH, REW_HURT_LOT, REW_PISS_OFF, REW_LOSE_ABL, REW_LOSE_EXP, REW_IGNORE, REW_IGNORE, REW_DISPEL_C, REW_DO_HAVOC, REW_DO_HAVOC, REW_POLY_SLF, REW_POLY_SLF, REW_GAIN_EXP, REW_GAIN_ABL, REW_GAIN_ABL, REW_SER_MONS, REW_GOOD_OBJ, REW_CHAOS_WP, REW_GREA_OBJ, REW_GOOD_OBS }, A_STR), }; -#ifdef JP -Patron::Patron(const char *name, const char *ename, std::vector reward_table, const player_ability_type boost_stat) -#else -Patron::Patron(const char *name, std::vector reward_table, player_ability_type boost_stat) -#endif - : name(name) -#ifdef JP - , ename(ename) -#endif +Patron::Patron(LocalizedString &&name, std::vector reward_table, const player_ability_type boost_stat) + : name(std::move(name)) , reward_table(std::move(reward_table)) , boost_stat(boost_stat) { @@ -173,8 +166,7 @@ void Patron::gain_level_reward(PlayerType *player_ptr_, int chosen_reward) } type--; - std::string wrath_reason = _(this->name, "the Wrath of "); - wrath_reason.append(_("の怒り", this->name)); + const auto wrath_reason = format(_("%sの怒り", "the Wrath of %s"), this->name.data()); effect = this->reward_table[type]; diff --git a/src/player/patron.h b/src/player/patron.h index 34cf72fc5..6e306a145 100644 --- a/src/player/patron.h +++ b/src/player/patron.h @@ -1,5 +1,6 @@ #pragma once +#include "locale/localized-string.h" #include "system/angband.h" #include #include @@ -54,13 +55,8 @@ enum player_ability_type : int; */ class Patron { public: - std::string name; //!< パトロン名 -#ifdef JP - std::string ename; //!< PatronName - Patron(const char *name, const char *ename, std::vector reward_table, const player_ability_type boost_stat); -#else - Patron(const char *name, std::vector reward_table, const player_ability_type boost_stat); -#endif + LocalizedString name; //!< パトロン名 + Patron(LocalizedString &&name, std::vector reward_table, const player_ability_type boost_stat); // @note C4458 クラスメンバーの隠蔽 への対応として末尾に「_」を付ける. void gain_level_reward(PlayerType *player_ptr_, int chosen_reward);