From 670ffa9928e96390a59124a2a0bddb06023c6096 Mon Sep 17 00:00:00 2001 From: iks Date: Tue, 20 Apr 2021 12:57:17 +0900 Subject: [PATCH] =?utf8?q?[Refactor]=20=E3=83=AC=E3=82=A4=E3=82=B7?= =?utf8?q?=E3=83=A3=E3=83=AB=E3=83=91=E3=83=AF=E3=83=BC=E5=90=8D=E7=A7=B0?= =?utf8?q?=E3=82=92std::string=E3=81=AB=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- src/cmd-action/cmd-racial.cpp | 5 ++- src/mind/mind-elementalist.cpp | 16 +++---- src/racial/class-racial-switcher.cpp | 72 +++++++++++++++---------------- src/racial/class-racial-switcher.h | 2 +- src/racial/mutation-racial-selector.cpp | 66 ++++++++++++++-------------- src/racial/race-racial-command-setter.cpp | 72 +++++++++++++++---------------- src/racial/racial-util.cpp | 4 -- src/racial/racial-util.h | 56 +++++++++++++----------- 8 files changed, 148 insertions(+), 145 deletions(-) diff --git a/src/cmd-action/cmd-racial.cpp b/src/cmd-action/cmd-racial.cpp index 633c4c087..820df096e 100644 --- a/src/cmd-action/cmd-racial.cpp +++ b/src/cmd-action/cmd-racial.cpp @@ -21,6 +21,7 @@ #include "status/action-setter.h" #include "term/screen-processor.h" #include "util/int-char-converter.h" +#include static bool input_racial_power_selection(player_type *creature_ptr, rc_type *rc_ptr) { @@ -119,7 +120,7 @@ static void select_racial_power(player_type *creature_ptr, rc_type *rc_ptr) } strcat(dummy, - format("%-23.23s %2d %4d %3d%%", rc_ptr->power_desc[ctr].racial_name, rc_ptr->power_desc[ctr].min_level, rc_ptr->power_desc[ctr].cost, + format("%-23.23s %2d %4d %3d%%", rc_ptr->power_desc[ctr].racial_name.c_str(), rc_ptr->power_desc[ctr].min_level, rc_ptr->power_desc[ctr].cost, 100 - racial_chance(creature_ptr, &rc_ptr->power_desc[ctr]))); prt(dummy, y1, x1); ctr++; @@ -173,7 +174,7 @@ static bool ask_invoke_racial_power(rc_type *rc_ptr) return TRUE; char tmp_val[160]; - (void)strnfmt(tmp_val, 78, _("%sを使いますか? ", "Use %s? "), rc_ptr->power_desc[rc_ptr->command_code].racial_name); + (void)strnfmt(tmp_val, 78, _("%sを使いますか? ", "Use %s? "), rc_ptr->power_desc[rc_ptr->command_code].racial_name.c_str()); return get_check(tmp_val); } diff --git a/src/mind/mind-elementalist.cpp b/src/mind/mind-elementalist.cpp index c052901d6..f83f66a24 100644 --- a/src/mind/mind-elementalist.cpp +++ b/src/mind/mind-elementalist.cpp @@ -1246,7 +1246,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) auto realm = static_cast(creature_ptr->element); switch (realm) { case ElementRealm::FIRE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ライト・エリア", "Light area")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ライト・エリア", "Light area"); rc_ptr->power_desc[rc_ptr->num].min_level = 3; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1254,7 +1254,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::ICE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("周辺フリーズ", "Sleep monsters")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("周辺フリーズ", "Sleep monsters"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1262,7 +1262,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::SKY: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("魔力充填", "Recharging")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("魔力充填", "Recharging"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1270,7 +1270,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::SEA: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("岩石溶解", "Stone to mud")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("岩石溶解", "Stone to mud"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1278,7 +1278,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::DARKNESS: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("闇の扉(半径%d)", "Door to darkness(rad %d)"), 15 + plev / 2); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("闇の扉(半径%d)", "Door to darkness(rad %d)"), 15 + plev / 2); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 5 + plev / 7; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1286,7 +1286,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::CHAOS: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("現実変容", "Alter reality")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("現実変容", "Alter reality"); rc_ptr->power_desc[rc_ptr->num].min_level = 35; rc_ptr->power_desc[rc_ptr->num].cost = 30; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1294,7 +1294,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::EARTH: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("地震", "Earthquake")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("地震", "Earthquake"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -1302,7 +1302,7 @@ void switch_element_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case ElementRealm::DEATH: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("増殖阻止", "Sterilization")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("増殖阻止", "Sterilization"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; diff --git a/src/racial/class-racial-switcher.cpp b/src/racial/class-racial-switcher.cpp index 95929b983..88ff03171 100644 --- a/src/racial/class-racial-switcher.cpp +++ b/src/racial/class-racial-switcher.cpp @@ -8,7 +8,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) { switch (creature_ptr->pclass) { case CLASS_WARRIOR: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("剣の舞い", "Sword Dancing")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("剣の舞い", "Sword Dancing"); rc_ptr->power_desc[rc_ptr->num].min_level = 40; rc_ptr->power_desc[rc_ptr->num].cost = 75; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -17,7 +17,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_HIGH_MAGE: if (creature_ptr->realm1 == REALM_HEX) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("詠唱をやめる", "Stop spell casting")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("詠唱をやめる", "Stop spell casting"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -28,7 +28,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) /* Fall through */ case CLASS_MAGE: case CLASS_SORCERER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("魔力食い", "Eat Magic")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("魔力食い", "Eat Magic"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 1; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -37,14 +37,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_PRIEST: if (is_good_realm(creature_ptr->realm1)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("武器祝福", "Bless Weapon")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("武器祝福", "Bless Weapon"); rc_ptr->power_desc[rc_ptr->num].min_level = 35; rc_ptr->power_desc[rc_ptr->num].cost = 70; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; rc_ptr->power_desc[rc_ptr->num].fail = 50; rc_ptr->power_desc[rc_ptr->num++].number = -3; } else { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("召魂", "Evocation")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("召魂", "Evocation"); rc_ptr->power_desc[rc_ptr->num].min_level = 42; rc_ptr->power_desc[rc_ptr->num].cost = 40; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -54,7 +54,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_ROGUE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ヒット&アウェイ", "Hit and Away")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ヒット&アウェイ", "Hit and Away"); rc_ptr->power_desc[rc_ptr->num].min_level = 8; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -63,7 +63,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_RANGER: case CLASS_SNIPER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("モンスター調査", "Probe Monster")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("モンスター調査", "Probe Monster"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 20; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -72,14 +72,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_PALADIN: if (is_good_realm(creature_ptr->realm1)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ホーリー・ランス", "Holy Lance")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ホーリー・ランス", "Holy Lance"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 30; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; rc_ptr->power_desc[rc_ptr->num].fail = 30; rc_ptr->power_desc[rc_ptr->num++].number = -3; } else { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ヘル・ランス", "Hell Lance")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ヘル・ランス", "Hell Lance"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 30; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -89,14 +89,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_WARRIOR_MAGE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("変換: HP→MP", "Convert HP to SP")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("変換: HP→MP", "Convert HP to SP"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; rc_ptr->power_desc[rc_ptr->num].fail = 10; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("変換: MP→HP", "Convert SP to HP")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("変換: MP→HP", "Convert SP to HP"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -104,7 +104,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_CHAOS_WARRIOR: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("幻惑の光", "Confusing Light")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("幻惑の光", "Confusing Light"); rc_ptr->power_desc[rc_ptr->num].min_level = 40; rc_ptr->power_desc[rc_ptr->num].cost = 50; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -112,14 +112,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_MONK: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("構える", "Assume a Stance")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("構える", "Assume a Stance"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; rc_ptr->power_desc[rc_ptr->num].fail = 0; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("百裂拳", "Double Attack")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("百裂拳", "Double Attack"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 30; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -128,7 +128,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) break; case CLASS_MINDCRAFTER: case CLASS_FORCETRAINER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("明鏡止水", "Clear Mind")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("明鏡止水", "Clear Mind"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -136,14 +136,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_TOURIST: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("写真撮影", "Take a Photograph")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("写真撮影", "Take a Photograph"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; rc_ptr->power_desc[rc_ptr->num].fail = 0; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("真・鑑定", "Identify True")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("真・鑑定", "Identify True"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 20; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -151,7 +151,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_IMITATOR: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("倍返し", "Double Revenge")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("倍返し", "Double Revenge"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 100; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -159,14 +159,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_BEASTMASTER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("生物支配", "Dominate a Living Thing")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("生物支配", "Dominate a Living Thing"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = (creature_ptr->lev + 3) / 4; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; rc_ptr->power_desc[rc_ptr->num].fail = 10; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("真・生物支配", "Dominate Living Things")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("真・生物支配", "Dominate Living Things"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = (creature_ptr->lev + 20) / 2; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -174,7 +174,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_ARCHER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("弾/矢の製造", "Create Ammo")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("弾/矢の製造", "Create Ammo"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -182,14 +182,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_MAGIC_EATER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("魔力の取り込み", "Absorb Magic")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("魔力の取り込み", "Absorb Magic"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; rc_ptr->power_desc[rc_ptr->num].fail = 0; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("強力発動", "Powerful Activation")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("強力発動", "Powerful Activation"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 10 + (rc_ptr->lvl - 10) / 2; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -197,7 +197,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_BARD: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("歌を止める", "Stop Singing")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("歌を止める", "Stop Singing"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -205,7 +205,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_RED_MAGE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("連続魔", "Double Magic")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("連続魔", "Double Magic"); rc_ptr->power_desc[rc_ptr->num].min_level = 48; rc_ptr->power_desc[rc_ptr->num].cost = 20; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -213,14 +213,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_SAMURAI: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("気合いため", "Concentration")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("気合いため", "Concentration"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; rc_ptr->power_desc[rc_ptr->num].fail = 0; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("型", "Assume a Stance")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("型", "Assume a Stance"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -228,7 +228,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_BLUE_MAGE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ラーニング", "Learning")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ラーニング", "Learning"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -236,7 +236,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_CAVALRY: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("荒馬ならし", "Rodeo")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("荒馬ならし", "Rodeo"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -244,7 +244,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_BERSERKER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("帰還", "Recall")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("帰還", "Recall"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -252,14 +252,14 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_MIRROR_MASTER: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("鏡割り", "Break Mirrors")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("鏡割り", "Break Mirrors"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; rc_ptr->power_desc[rc_ptr->num].fail = 0; rc_ptr->power_desc[rc_ptr->num++].number = -3; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("静水", "Mirror Concentration")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("静水", "Mirror Concentration"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -267,7 +267,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -4; break; case CLASS_SMITH: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("目利き", "Judgment")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("目利き", "Judgment"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -275,7 +275,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_NINJA: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("速駆け", "Quick Walk")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("速駆け", "Quick Walk"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -283,7 +283,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -3; break; case CLASS_ELEMENTALIST: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("明鏡止水", "Clear Mind")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("明鏡止水", "Clear Mind"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 0; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -293,7 +293,7 @@ void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr) switch_element_racial(creature_ptr, rc_ptr); break; default: - strcpy(rc_ptr->power_desc[0].racial_name, _("(なし)", "(none)")); + rc_ptr->power_desc[0].racial_name = _("(なし)", "(none)"); break; } } diff --git a/src/racial/class-racial-switcher.h b/src/racial/class-racial-switcher.h index 6aeadcc53..67526aeba 100644 --- a/src/racial/class-racial-switcher.h +++ b/src/racial/class-racial-switcher.h @@ -2,5 +2,5 @@ #include "system/angband.h" -typedef struct rc_type rc_type; +struct rc_type; void switch_class_racial(player_type *creature_ptr, rc_type *rc_ptr); diff --git a/src/racial/mutation-racial-selector.cpp b/src/racial/mutation-racial-selector.cpp index 3d8346bac..512d4db99 100644 --- a/src/racial/mutation-racial-selector.cpp +++ b/src/racial/mutation-racial-selector.cpp @@ -5,7 +5,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) { if (creature_ptr->muta.has(MUTA::SPIT_ACID)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("酸の唾", "Spit Acid")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("酸の唾", "Spit Acid"); rc_ptr->power_desc[rc_ptr->num].min_level = 9; rc_ptr->power_desc[rc_ptr->num].cost = 9; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -14,7 +14,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::BR_FIRE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("炎のブレス", "Fire Breath")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("炎のブレス", "Fire Breath"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = rc_ptr->lvl; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -23,7 +23,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::HYPN_GAZE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("催眠睨み", "Hypnotic Gaze")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("催眠睨み", "Hypnotic Gaze"); rc_ptr->power_desc[rc_ptr->num].min_level = 12; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -32,7 +32,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::TELEKINES)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("念動力", "Telekinesis")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("念動力", "Telekinesis"); rc_ptr->power_desc[rc_ptr->num].min_level = 9; rc_ptr->power_desc[rc_ptr->num].cost = 9; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -41,7 +41,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::VTELEPORT)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("テレポート", "Teleport")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("テレポート", "Teleport"); rc_ptr->power_desc[rc_ptr->num].min_level = 7; rc_ptr->power_desc[rc_ptr->num].cost = 7; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -50,7 +50,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::MIND_BLST)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("精神攻撃", "Mind Blast")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("精神攻撃", "Mind Blast"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 3; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -59,7 +59,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::RADIATION)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("放射能", "Emit Radiation")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("放射能", "Emit Radiation"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -68,16 +68,16 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::VAMPIRISM)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("吸血", "Vampiric Drain")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("吸血", "Vampiric Drain"); rc_ptr->power_desc[rc_ptr->num].min_level = 2; - rc_ptr->power_desc[rc_ptr->num].cost = (1 + (rc_ptr->lvl / 3)); + rc_ptr->power_desc[rc_ptr->num].cost = 1 + (rc_ptr->lvl / 3); rc_ptr->power_desc[rc_ptr->num].stat = A_CON; rc_ptr->power_desc[rc_ptr->num].fail = 9; rc_ptr->power_desc[rc_ptr->num++].number = static_cast(MUTA::VAMPIRISM); } if (creature_ptr->muta.has(MUTA::SMELL_MET)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("金属嗅覚", "Smell Metal")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("金属嗅覚", "Smell Metal"); rc_ptr->power_desc[rc_ptr->num].min_level = 3; rc_ptr->power_desc[rc_ptr->num].cost = 2; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -86,7 +86,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::SMELL_MON)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("敵臭嗅覚", "Smell Monsters")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("敵臭嗅覚", "Smell Monsters"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 4; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -95,7 +95,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::BLINK)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ショート・テレポート", "Blink")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ショート・テレポート", "Blink"); rc_ptr->power_desc[rc_ptr->num].min_level = 3; rc_ptr->power_desc[rc_ptr->num].cost = 3; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -104,7 +104,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::EAT_ROCK)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("岩食い", "Eat Rock")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("岩食い", "Eat Rock"); rc_ptr->power_desc[rc_ptr->num].min_level = 8; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -113,7 +113,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::SWAP_POS)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("位置交換", "Swap Position")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("位置交換", "Swap Position"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -122,7 +122,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::SHRIEK)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("叫び", "Shriek")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("叫び", "Shriek"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 14; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -131,7 +131,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::ILLUMINE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("照明", "Illuminate")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("照明", "Illuminate"); rc_ptr->power_desc[rc_ptr->num].min_level = 3; rc_ptr->power_desc[rc_ptr->num].cost = 2; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -140,7 +140,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::DET_CURSE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("呪い感知", "Detect Curses")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("呪い感知", "Detect Curses"); rc_ptr->power_desc[rc_ptr->num].min_level = 7; rc_ptr->power_desc[rc_ptr->num].cost = 14; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -149,7 +149,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::BERSERK)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("狂戦士化", "Berserk")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("狂戦士化", "Berserk"); rc_ptr->power_desc[rc_ptr->num].min_level = 8; rc_ptr->power_desc[rc_ptr->num].cost = 8; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -158,7 +158,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::POLYMORPH)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("変身", "Polymorph")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("変身", "Polymorph"); rc_ptr->power_desc[rc_ptr->num].min_level = 18; rc_ptr->power_desc[rc_ptr->num].cost = 20; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -167,7 +167,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::MIDAS_TCH)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ミダスの手", "Midas Touch")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ミダスの手", "Midas Touch"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -176,7 +176,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::GROW_MOLD)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("カビ発生", "Grow Mold")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("カビ発生", "Grow Mold"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 6; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -185,7 +185,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::RESIST)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("エレメント耐性", "Resist Elements")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("エレメント耐性", "Resist Elements"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -194,7 +194,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::EARTHQUAKE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("地震", "Earthquake")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("地震", "Earthquake"); rc_ptr->power_desc[rc_ptr->num].min_level = 12; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -203,7 +203,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::EAT_MAGIC)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("魔力食い", "Eat Magic")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("魔力食い", "Eat Magic"); rc_ptr->power_desc[rc_ptr->num].min_level = 17; rc_ptr->power_desc[rc_ptr->num].cost = 1; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -212,7 +212,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::WEIGH_MAG)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("魔力感知", "Weigh Magic")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("魔力感知", "Weigh Magic"); rc_ptr->power_desc[rc_ptr->num].min_level = 6; rc_ptr->power_desc[rc_ptr->num].cost = 6; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -221,7 +221,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::STERILITY)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("増殖阻止", "Sterilize")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("増殖阻止", "Sterilize"); rc_ptr->power_desc[rc_ptr->num].min_level = 12; rc_ptr->power_desc[rc_ptr->num].cost = 23; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -230,7 +230,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::HIT_AND_AWAY)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ヒット&アウェイ", "Panic Hit")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ヒット&アウェイ", "Panic Hit"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -239,7 +239,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::DAZZLE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("眩惑", "Dazzle")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("眩惑", "Dazzle"); rc_ptr->power_desc[rc_ptr->num].min_level = 7; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -248,7 +248,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::LASER_EYE)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("レーザー・アイ", "Laser Eye")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("レーザー・アイ", "Laser Eye"); rc_ptr->power_desc[rc_ptr->num].min_level = 7; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -257,7 +257,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::RECALL)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("帰還", "Recall")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("帰還", "Recall"); rc_ptr->power_desc[rc_ptr->num].min_level = 17; rc_ptr->power_desc[rc_ptr->num].cost = 50; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -266,7 +266,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::BANISH)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("邪悪消滅", "Banish Evil")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("邪悪消滅", "Banish Evil"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 25; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -275,7 +275,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::COLD_TOUCH)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("凍結の手", "Cold Touch")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("凍結の手", "Cold Touch"); rc_ptr->power_desc[rc_ptr->num].min_level = 2; rc_ptr->power_desc[rc_ptr->num].cost = 2; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -284,7 +284,7 @@ void select_mutation_racial(player_type *creature_ptr, rc_type *rc_ptr) } if (creature_ptr->muta.has(MUTA::LAUNCHER)) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("アイテム投げ", "Throw Object")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("アイテム投げ", "Throw Object"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = rc_ptr->lvl; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; diff --git a/src/racial/race-racial-command-setter.cpp b/src/racial/race-racial-command-setter.cpp index ccae7f301..0a9f2e157 100644 --- a/src/racial/race-racial-command-setter.cpp +++ b/src/racial/race-racial-command-setter.cpp @@ -7,7 +7,7 @@ void set_mimic_racial_command(player_type *creature_ptr, rc_type *rc_ptr) switch (creature_ptr->mimic_form) { case MIMIC_DEMON: case MIMIC_DEMON_LORD: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("地獄/火炎のブレス (ダメージ %d)", "Nether or Fire Breath (dam %d)"), rc_ptr->lvl * 3); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("地獄/火炎のブレス (ダメージ %d)", "Nether or Fire Breath (dam %d)"), rc_ptr->lvl * 3); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 10 + rc_ptr->lvl / 3; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -15,7 +15,7 @@ void set_mimic_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case MIMIC_VAMPIRE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("吸血", "Vampiric Drain")); + rc_ptr->power_desc[rc_ptr->num].racial_name, _("吸血", "Vampiric Drain"); rc_ptr->power_desc[rc_ptr->num].min_level = 2; rc_ptr->power_desc[rc_ptr->num].cost = 1 + (rc_ptr->lvl / 3); rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -29,7 +29,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) { switch (creature_ptr->prace) { case RACE_DWARF: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ドアと罠 感知", "Detect Doors+Traps")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ドアと罠 感知", "Detect Doors+Traps"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -37,7 +37,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_NIBELUNG: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ドアと罠 感知", "Detect Doors+Traps")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ドアと罠 感知", "Detect Doors+Traps"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -45,7 +45,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_HOBBIT: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("食糧生成", "Create Food")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("食糧生成", "Create Food"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -53,7 +53,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_GNOME: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ショート・テレポート", "Blink")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ショート・テレポート", "Blink"); rc_ptr->power_desc[rc_ptr->num].min_level = 5; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -61,7 +61,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_HALF_ORC: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("恐怖除去", "Remove Fear")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("恐怖除去", "Remove Fear"); rc_ptr->power_desc[rc_ptr->num].min_level = 3; rc_ptr->power_desc[rc_ptr->num].cost = 5; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -69,7 +69,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_HALF_TROLL: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("狂戦士化", "Berserk")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("狂戦士化", "Berserk"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -77,7 +77,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_BARBARIAN: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("狂戦士化", "Berserk")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("狂戦士化", "Berserk"); rc_ptr->power_desc[rc_ptr->num].min_level = 8; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -85,14 +85,14 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_AMBERITE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("シャドウ・シフト", "Shadow Shifting")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("シャドウ・シフト", "Shadow Shifting"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 50; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; rc_ptr->power_desc[rc_ptr->num].fail = 50; rc_ptr->power_desc[rc_ptr->num++].number = -1; - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("パターン・ウォーク", "Pattern Mindwalking")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("パターン・ウォーク", "Pattern Mindwalking"); rc_ptr->power_desc[rc_ptr->num].min_level = 40; rc_ptr->power_desc[rc_ptr->num].cost = 75; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -100,7 +100,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -2; break; case RACE_HALF_OGRE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("爆発のルーン", "Explosive Rune")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("爆発のルーン", "Explosive Rune"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 35; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -108,7 +108,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_HALF_GIANT: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("岩石溶解", "Stone to Mud")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("岩石溶解", "Stone to Mud"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -116,7 +116,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_HALF_TITAN: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("スキャン・モンスター", "Probing")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("スキャン・モンスター", "Probing"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 10; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -124,7 +124,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_CYCLOPS: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("岩石投げ(ダメージ %d)", "Throw Boulder (dam %d)"), (3 * rc_ptr->lvl) / 2); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("岩石投げ(ダメージ %d)", "Throw Boulder (dam %d)"), (3 * rc_ptr->lvl) / 2); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_STR; @@ -132,7 +132,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_YEEK: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("モンスター恐慌", "Scare Monster")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("モンスター恐慌", "Scare Monster"); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -140,7 +140,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_SPECTRE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("モンスター恐慌", "Scare Monster")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("モンスター恐慌", "Scare Monster"); rc_ptr->power_desc[rc_ptr->num].min_level = 4; rc_ptr->power_desc[rc_ptr->num].cost = 6; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -148,7 +148,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_KLACKON: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("酸の唾 (ダメージ %d)", "Spit Acid (dam %d)"), rc_ptr->lvl); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("酸の唾 (ダメージ %d)", "Spit Acid (dam %d)"), rc_ptr->lvl); rc_ptr->power_desc[rc_ptr->num].min_level = 9; rc_ptr->power_desc[rc_ptr->num].cost = 9; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -156,7 +156,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_KOBOLD: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("毒のダーツ (ダメージ %d)", "Poison Dart (dam %d)"), rc_ptr->lvl); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("毒のダーツ (ダメージ %d)", "Poison Dart (dam %d)"), rc_ptr->lvl); rc_ptr->power_desc[rc_ptr->num].min_level = 12; rc_ptr->power_desc[rc_ptr->num].cost = 8; rc_ptr->power_desc[rc_ptr->num].stat = A_DEX; @@ -164,8 +164,8 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_DARK_ELF: - sprintf( - rc_ptr->power_desc[rc_ptr->num].racial_name, _("マジック・ミサイル (ダメージ %dd%d)", "Magic Missile (dm %dd%d)"), 3 + ((rc_ptr->lvl - 1) / 5), 4); + rc_ptr->power_desc[rc_ptr->num].racial_name + = format(_("マジック・ミサイル (ダメージ %dd%d)", "Magic Missile (dm %dd%d)"), 3 + ((rc_ptr->lvl - 1) / 5), 4); rc_ptr->power_desc[rc_ptr->num].min_level = 2; rc_ptr->power_desc[rc_ptr->num].cost = 2; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -173,7 +173,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_DRACONIAN: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ブレス (ダメージ %d)", "Breath Weapon (dam %d)"), rc_ptr->lvl * 2); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("ブレス (ダメージ %d)", "Breath Weapon (dam %d)"), rc_ptr->lvl * 2); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = rc_ptr->lvl; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -181,7 +181,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_MIND_FLAYER: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("精神攻撃 (ダメージ %d)", "Mind Blast (dam %d)"), rc_ptr->lvl); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("精神攻撃 (ダメージ %d)", "Mind Blast (dam %d)"), rc_ptr->lvl); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -189,7 +189,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_IMP: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ファイア・ボルト/ボール (ダメージ %d)", "Fire Bolt/Ball (dam %d)"), rc_ptr->lvl); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("ファイア・ボルト/ボール (ダメージ %d)", "Fire Bolt/Ball (dam %d)"), rc_ptr->lvl); rc_ptr->power_desc[rc_ptr->num].min_level = 9; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -197,7 +197,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_GOLEM: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("肌石化 (期間 1d20+30)", "Stone Skin (dur 1d20+30)")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("肌石化 (期間 1d20+30)", "Stone Skin (dur 1d20+30)"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -206,7 +206,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) break; case RACE_SKELETON: case RACE_ZOMBIE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("経験値復活", "Restore Experience")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("経験値復活", "Restore Experience"); rc_ptr->power_desc[rc_ptr->num].min_level = 30; rc_ptr->power_desc[rc_ptr->num].cost = 30; rc_ptr->power_desc[rc_ptr->num].stat = A_WIS; @@ -214,7 +214,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_VAMPIRE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("吸血", "Vampiric Drain")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("吸血", "Vampiric Drain"); rc_ptr->power_desc[rc_ptr->num].min_level = 2; rc_ptr->power_desc[rc_ptr->num].cost = 1 + (rc_ptr->lvl / 3); rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -222,7 +222,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_SPRITE: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("眠り粉", "Sleeping Dust")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("眠り粉", "Sleeping Dust"); rc_ptr->power_desc[rc_ptr->num].min_level = 12; rc_ptr->power_desc[rc_ptr->num].cost = 12; rc_ptr->power_desc[rc_ptr->num].stat = A_INT; @@ -230,7 +230,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_BALROG: - sprintf(rc_ptr->power_desc[rc_ptr->num].racial_name, _("地獄/火炎のブレス (ダメージ %d)", "Nether or Fire Breath (dam %d)"), rc_ptr->lvl * 3); + rc_ptr->power_desc[rc_ptr->num].racial_name = format(_("地獄/火炎のブレス (ダメージ %d)", "Nether or Fire Breath (dam %d)"), rc_ptr->lvl * 3); rc_ptr->power_desc[rc_ptr->num].min_level = 15; rc_ptr->power_desc[rc_ptr->num].cost = 10 + rc_ptr->lvl / 3; rc_ptr->power_desc[rc_ptr->num].stat = A_CON; @@ -238,7 +238,7 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->power_desc[rc_ptr->num++].number = -1; break; case RACE_KUTAR: - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("横に伸びる", "Expand Horizontally (dur 30+1d20)")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("横に伸びる", "Expand Horizontally (dur 30+1d20)"); rc_ptr->power_desc[rc_ptr->num].min_level = 20; rc_ptr->power_desc[rc_ptr->num].cost = 15; rc_ptr->power_desc[rc_ptr->num].stat = A_CHR; @@ -247,27 +247,27 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) break; case RACE_ANDROID: if (creature_ptr->lev < 10) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("レイガン", "Ray Gun")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("レイガン", "Ray Gun"); rc_ptr->power_desc[rc_ptr->num].min_level = 1; rc_ptr->power_desc[rc_ptr->num].cost = 7; rc_ptr->power_desc[rc_ptr->num].fail = 8; } else if (creature_ptr->lev < 25) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ブラスター", "Blaster")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ブラスター", "Blaster"); rc_ptr->power_desc[rc_ptr->num].min_level = 10; rc_ptr->power_desc[rc_ptr->num].cost = 13; rc_ptr->power_desc[rc_ptr->num].fail = 10; } else if (creature_ptr->lev < 35) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("バズーカ", "Bazooka")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("バズーカ", "Bazooka"); rc_ptr->power_desc[rc_ptr->num].min_level = 25; rc_ptr->power_desc[rc_ptr->num].cost = 26; rc_ptr->power_desc[rc_ptr->num].fail = 12; } else if (creature_ptr->lev < 45) { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ビームキャノン", "Beam Cannon")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ビームキャノン", "Beam Cannon"); rc_ptr->power_desc[rc_ptr->num].min_level = 35; rc_ptr->power_desc[rc_ptr->num].cost = 40; rc_ptr->power_desc[rc_ptr->num].fail = 15; } else { - strcpy(rc_ptr->power_desc[rc_ptr->num].racial_name, _("ロケット", "Rocket")); + rc_ptr->power_desc[rc_ptr->num].racial_name = _("ロケット", "Rocket"); rc_ptr->power_desc[rc_ptr->num].min_level = 45; rc_ptr->power_desc[rc_ptr->num].cost = 60; rc_ptr->power_desc[rc_ptr->num].fail = 18; @@ -278,4 +278,4 @@ void set_race_racial_command(player_type *creature_ptr, rc_type *rc_ptr) default: break; } -} \ No newline at end of file +} diff --git a/src/racial/racial-util.cpp b/src/racial/racial-util.cpp index e49591c58..91f86d144 100644 --- a/src/racial/racial-util.cpp +++ b/src/racial/racial-util.cpp @@ -10,10 +10,6 @@ rc_type *initialize_rc_type(player_type *creature_ptr, rc_type *rc_ptr) rc_ptr->cast = FALSE; rc_ptr->is_warrior = (creature_ptr->pclass == CLASS_WARRIOR || creature_ptr->pclass == CLASS_BERSERKER); rc_ptr->menu_line = use_menu ? 1 : 0; - for (int i = 0; i < MAX_RACIAL_POWERS; i++) { - strcpy(rc_ptr->power_desc[i].racial_name, ""); - rc_ptr->power_desc[i].number = 0; - } return rc_ptr; } diff --git a/src/racial/racial-util.h b/src/racial/racial-util.h index cc750739b..5b3acf21d 100644 --- a/src/racial/racial-util.h +++ b/src/racial/racial-util.h @@ -1,34 +1,40 @@ #pragma once #include "system/angband.h" +#include +#include #define MAX_RACIAL_POWERS 36 -/* Racial Power Info / レイシャル・パワー情報の構造体定義 */ -typedef struct rpi_type { - GAME_TEXT racial_name[MAX_NLEN]; - PLAYER_LEVEL min_level; //!<体得レベル - int cost; - int stat; - PERCENTAGE fail; - int number; - int racial_cost; -} rpi_type; +/*! + * レイシャル/クラスパワー定義構造体 + */ +struct rpi_type { + std::string racial_name{}; + PLAYER_LEVEL min_level{}; //!<体得レベル + int cost{}; + int stat{}; + PERCENTAGE fail{}; + int number{}; + int racial_cost{}; +}; -// Racial Command. -typedef struct rc_type { - rpi_type power_desc[MAX_RACIAL_POWERS]; - int num; - COMMAND_CODE command_code; - int ask; - PLAYER_LEVEL lvl; - bool flag; - bool redraw; - bool cast; - bool is_warrior; - char choice; - char out_val[160]; - int menu_line; -} rc_type; +/*! + * レイシャル/クラスパワー管理構造体 + */ +struct rc_type { + std::array power_desc{}; + int num{}; + COMMAND_CODE command_code{}; + int ask{}; + PLAYER_LEVEL lvl{}; + bool flag{}; + bool redraw{}; + bool cast{}; + bool is_warrior{}; + char choice{}; + char out_val[160]{}; + int menu_line{}; +}; rc_type *initialize_rc_type(player_type *creature_ptr, rc_type *rc_ptr); -- 2.11.0