OSDN Git Service

[Refactor] #38824 get_item() を choose_object() に置換中。 / Replacing get_item() to choose...
[hengband/hengband.git] / src / birth.c
index fbac11e..fef599c 100644 (file)
@@ -13,7 +13,7 @@
 
 #include "angband.h"
 #include "history.h"
-#include "monster-hook.h"
+#include "monsterrace-hook.h"
 #include "store.h"
 
 /*!
@@ -1592,7 +1592,7 @@ static void birth_put_stats(void)
 {
        int i, j, m, p;
        int col;
-       byte attr;
+       TERM_COLOR attr;
        char buf[80];
 
 
@@ -1891,17 +1891,11 @@ void determine_random_questor(quest_type *q_ptr)
                r_ptr = &r_info[r_idx];
 
                if (!(r_ptr->flags1 & RF1_UNIQUE)) continue;
-
                if (r_ptr->flags1 & RF1_QUESTOR) continue;
-
                if (r_ptr->rarity > 100) continue;
-
                if (r_ptr->flags7 & RF7_FRIENDLY) continue;
-
                if (r_ptr->flags7 & RF7_AQUATIC) continue;
-
                if (r_ptr->flags8 & RF8_WILD_ONLY) continue;
-
                if (no_questor_or_bounty_uniques(r_idx)) continue;
 
                /*
@@ -1911,7 +1905,7 @@ void determine_random_questor(quest_type *q_ptr)
                if (r_ptr->level > (q_ptr->level + (q_ptr->level / 20))) break;
        }
 
-       q_ptr->r_idx = (s16b)r_idx;
+       q_ptr->r_idx = r_idx;
 }
 
 /*!
@@ -1934,8 +1928,8 @@ static void init_dungeon_quests(void)
        /* Generate quests */
        for (i = MIN_RANDOM_QUEST + number_of_quests - 1; i >= MIN_RANDOM_QUEST; i--)
        {
-               quest_type      *q_ptr = &quest[i];
-               monster_race    *quest_r_ptr;
+               quest_type *q_ptr = &quest[i];
+               monster_race *quest_r_ptr;
 
                q_ptr->status = QUEST_STATUS_TAKEN;
                determine_random_questor(q_ptr);
@@ -2018,11 +2012,8 @@ static void wield_all(void)
                if (slot == INVEN_LITE) continue; /* Does not wield toaches because buys a lantern soon */
                if (inventory[slot].k_idx) continue; 
  
-               /* Get local object */ 
                i_ptr = &object_type_body; 
                object_copy(i_ptr, o_ptr); 
-               /* Modify quantity */ 
                i_ptr->number = 1; 
  
                /* Decrease the item (from the pack) */ 
@@ -2039,14 +2030,9 @@ static void wield_all(void)
                        floor_item_optimize(0 - item); 
                } 
  
-               /* Get the wield slot */ 
                o_ptr = &inventory[slot]; 
-               /* Wear the new stuff */ 
-               object_copy(o_ptr, i_ptr); 
-               /* Increase the weight */ 
-               p_ptr->total_weight += i_ptr->weight; 
+               object_copy(o_ptr, i_ptr); 
+               p_ptr->total_weight += i_ptr->weight; 
  
                /* Increment the equip counter by hand */ 
                equip_cnt++;
@@ -2258,22 +2244,6 @@ static byte player_init[MAX_CLASS][3][2] =
 };
 
 /*!
- * @brief バルログが死体を食べられるモンスターかの判定 / Hook function for human corpses
- * @param r_idx モンスターID
- * @return 死体を食べられるならTRUEを返す。
- */
-static bool monster_hook_human(MONRACE_IDX r_idx)
-{
-       monster_race *r_ptr = &r_info[r_idx];
-
-       if (r_ptr->flags1 & (RF1_UNIQUE)) return FALSE;
-
-       if (my_strchr("pht", r_ptr->d_char)) return TRUE;
-
-       return FALSE;
-}
-
-/*!
  * @brief 初期所持アイテムの処理 / Add an outfit object
  * @details アイテムを既知のものとした上でwield_all()関数により装備させる。
  * @param o_ptr 処理したいオブジェクト構造体の参照ポインタ
@@ -2329,8 +2299,11 @@ void player_outfit(void)
                {
                        object_prep(q_ptr, lookup_kind(TV_CORPSE, SV_CORPSE));
                        q_ptr->pval = get_mon_num(2);
-                       q_ptr->number = 1;
-                       add_outfit(q_ptr);
+                       if(q_ptr->pval)
+                       {
+                               q_ptr->number = 1;
+                               add_outfit(q_ptr);
+                       }
                }
                break;
 
@@ -2379,7 +2352,7 @@ void player_outfit(void)
                /* Hack -- Give the player scrolls of DARKNESS! */
                object_prep(q_ptr, lookup_kind(TV_SCROLL, SV_SCROLL_DARKNESS));
 
-               q_ptr->number = (byte)rand_range(2, 5);
+               q_ptr->number = rand_range(2, 5);
 
                add_outfit(q_ptr);
        }
@@ -2387,7 +2360,7 @@ void player_outfit(void)
        {
                /* Hack -- Give the player some torches */
                object_prep(q_ptr, lookup_kind(TV_LITE, SV_LITE_TORCH));
-               q_ptr->number = (byte)rand_range(3, 7);
+               q_ptr->number = rand_range(3, 7);
                q_ptr->xtra4 = rand_range(3, 7) * 500;
 
                add_outfit(q_ptr);
@@ -2444,33 +2417,33 @@ void player_outfit(void)
                {
                        /* Hack -- Give the player some arrows */
                        object_prep(q_ptr, lookup_kind(TV_SHOT, SV_AMMO_LIGHT));
-                       q_ptr->number = (byte)rand_range(15, 20);
+                       q_ptr->number = rand_range(15, 20);
 
                        add_outfit(q_ptr);
                }
 
                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_BISCUIT));
-               q_ptr->number = (byte)rand_range(2, 4);
+               q_ptr->number = rand_range(2, 4);
 
                add_outfit(q_ptr);
 
                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_WAYBREAD));
-               q_ptr->number = (byte)rand_range(2, 4);
+               q_ptr->number = rand_range(2, 4);
 
                add_outfit(q_ptr);
 
                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_JERKY));
-               q_ptr->number = (byte)rand_range(1, 3);
+               q_ptr->number = rand_range(1, 3);
 
                add_outfit(q_ptr);
 
                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_ALE));
-               q_ptr->number = (byte)rand_range(2, 4);
+               q_ptr->number = rand_range(2, 4);
 
                add_outfit(q_ptr);
 
                object_prep(q_ptr, lookup_kind(TV_FOOD, SV_FOOD_PINT_OF_WINE));
-               q_ptr->number = (byte)rand_range(2, 4);
+               q_ptr->number = rand_range(2, 4);
 
                add_outfit(q_ptr);
        }
@@ -2478,7 +2451,7 @@ void player_outfit(void)
        {
                /* Hack -- Give the player some arrows */
                object_prep(q_ptr, lookup_kind(TV_SPIKE, 0));
-               q_ptr->number = (byte)rand_range(15, 20);
+               q_ptr->number = rand_range(15, 20);
 
                add_outfit(q_ptr);
        }
@@ -2486,7 +2459,7 @@ void player_outfit(void)
        {
                /* Hack -- Give the player some bolts */
                object_prep(q_ptr, lookup_kind(TV_BOLT, SV_AMMO_NORMAL));
-               q_ptr->number = (byte)rand_range(15, 20);
+               q_ptr->number = rand_range(15, 20);
 
                add_outfit(q_ptr);
        }
@@ -2514,12 +2487,11 @@ void player_outfit(void)
                        /* Barbarians do not need a ring of resist fear */
                        sv = SV_RING_SUSTAIN_STR;
 
-               else if (tv == TV_RING && sv == SV_RING_SUSTAIN_INT &&
-                   p_ptr->prace == RACE_MIND_FLAYER)
-                 {
+               else if (tv == TV_RING && sv == SV_RING_SUSTAIN_INT && p_ptr->prace == RACE_MIND_FLAYER)
+               {
                        tv = TV_POTION;
                        sv = SV_POTION_RESTORE_MANA;
-                 }
+               }
                q_ptr = &forge;
 
                /* Hack -- Give the player an object */
@@ -2552,11 +2524,10 @@ static bool get_player_race(void)
        char    p2 = ')';
        char    buf[80], cur[80];
 
-
        /* Extra info */
        clear_from(10);
        put_str(_("注意:《種族》によってキャラクターの先天的な資質やボーナスが変化します。",
-       "Note: Your 'race' determines various intrinsic factors and bonuses."), 23, 5);
+               "Note: Your 'race' determines various intrinsic factors and bonuses."), 23, 5);
 
        /* Dump races */
        for (n = 0; n < MAX_RACES; n++)
@@ -2570,16 +2541,12 @@ static bool get_player_race(void)
                        sym[n] = I2A(n);
                else
                        sym[n] = ('A' + n - 26);
-#ifdef JP
                sprintf(buf, "%c%c%s", sym[n], p2, str);
-#else
-               sprintf(buf, "%c%c %s", sym[n], p2, str);
-#endif
-               put_str(buf, 12 + (n/5), 1 + 16 * (n%5));
+               put_str(buf, 12 + (n / 5), 1 + 16 * (n % 5));
 
        }
 
-       sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random");
+       sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
 
        /* Choose */
        k = -1;
@@ -2594,11 +2561,7 @@ static bool get_player_race(void)
                        put_str("                                   ", 3, 40);
                        if(cs == MAX_RACES)
                        {
-#ifdef JP
-                               sprintf(cur, "%c%c%s", '*', p2, "ランダム");
-#else
-                               sprintf(cur, "%c%c %s", '*', p2, "Random");
-#endif
+                               sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
                                put_str("                                   ", 4, 40);
                                put_str("                                   ", 5, 40);
                        }
@@ -2606,17 +2569,11 @@ static bool get_player_race(void)
                        {
                                rp_ptr = &race_info[cs];
                                str = rp_ptr->title;
-#ifdef JP
                                sprintf(cur, "%c%c%s", sym[cs], p2, str);
                                c_put_str(TERM_L_BLUE, rp_ptr->title, 3, 40);
-                               put_str("の種族修正", 3, 40+strlen(rp_ptr->title));
-                               put_str("腕力 知能 賢さ 器用 耐久 魅力 経験 ", 4, 40);
-#else
-                               sprintf(cur, "%c%c %s", sym[cs], p2, str);
-                               c_put_str(TERM_L_BLUE, rp_ptr->title, 3, 40);
-                               put_str(": Race modification", 3, 40+strlen(rp_ptr->title));
-                               put_str("Str  Int  Wis  Dex  Con  Chr   EXP ", 4, 40);
-#endif
+                               put_str(_("腕力 知能 賢さ 器用 耐久 魅力 経験 ", "Str  Int  Wis  Dex  Con  Chr   EXP "), 4, 40);
+                               put_str(_("の種族修正", ": Race modification"), 3, 40 + strlen(rp_ptr->title));
+
                                sprintf(buf, "%+3d  %+3d  %+3d  %+3d  %+3d  %+3d %+4d%% ",
                                        rp_ptr->r_adj[0], rp_ptr->r_adj[1], rp_ptr->r_adj[2], rp_ptr->r_adj[3],
                                        rp_ptr->r_adj[4], rp_ptr->r_adj[5], (rp_ptr->r_exp - 100));
@@ -2750,26 +2707,14 @@ static bool get_player_class(void)
 
                /* Display */
                if (!(rp_ptr->choice & (1L << n)))
-#ifdef JP
                        sprintf(buf, "%c%c(%s)", sym[n], p2, str);
-#else
-                       sprintf(buf, "%c%c (%s)", sym[n], p2, str);
-#endif
                else
-#ifdef JP
                        sprintf(buf, "%c%c%s", sym[n], p2, str);
-#else
-                       sprintf(buf, "%c%c %s", sym[n], p2, str);
-#endif
 
                put_str(buf, 13+ (n/4), 2 + 19 * (n%4));
        }
 
-#ifdef JP
-       sprintf(cur, "%c%c%s", '*', p2, "ランダム");
-#else
-       sprintf(cur, "%c%c %s", '*', p2, "Random");
-#endif
+       sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
 
        /* Get a class */
        k = -1;
@@ -2784,11 +2729,7 @@ static bool get_player_class(void)
                        put_str("                                   ", 3, 40);
                        if(cs == MAX_CLASS_CHOICE)
                        {
-#ifdef JP
-                               sprintf(cur, "%c%c%s", '*', p2, "ランダム");
-#else
-                               sprintf(cur, "%c%c %s", '*', p2, "Random");
-#endif
+                               sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
                                put_str("                                   ", 4, 40);
                                put_str("                                   ", 5, 40);
                        }
@@ -2798,32 +2739,19 @@ static bool get_player_class(void)
                                mp_ptr = &m_info[cs];
                                str = cp_ptr->title;
                                if (!(rp_ptr->choice & (1L << cs)))
-#ifdef JP
                                        sprintf(cur, "%c%c(%s)", sym[cs], p2, str);
-#else
-                                       sprintf(cur, "%c%c (%s)", sym[cs], p2, str);
-#endif
                                else
-#ifdef JP
                                        sprintf(cur, "%c%c%s", sym[cs], p2, str);
-#else
-                                       sprintf(cur, "%c%c %s", sym[cs], p2, str);
-#endif
-#ifdef JP
-                                       c_put_str(TERM_L_BLUE, cp_ptr->title, 3, 40);
-                                       put_str("の職業修正", 3, 40+strlen(cp_ptr->title));
-                                       put_str("腕力 知能 賢さ 器用 耐久 魅力 経験 ", 4, 40);
-#else
+
                                        c_put_str(TERM_L_BLUE, cp_ptr->title, 3, 40);
-                                       put_str(": Class modification", 3, 40+strlen(cp_ptr->title));
-                                       put_str("Str  Int  Wis  Dex  Con  Chr   EXP ", 4, 40);
-#endif
+                                       put_str(_("の職業修正", ": Class modification"), 3, 40+strlen(cp_ptr->title));
+                                       put_str(_("腕力 知能 賢さ 器用 耐久 魅力 経験 ", "Str  Int  Wis  Dex  Con  Chr   EXP "), 4, 40);
                                        sprintf(buf, "%+3d  %+3d  %+3d  %+3d  %+3d  %+3d %+4d%% ",
                                                cp_ptr->c_adj[0], cp_ptr->c_adj[1], cp_ptr->c_adj[2], cp_ptr->c_adj[3],
                                                cp_ptr->c_adj[4], cp_ptr->c_adj[5], cp_ptr->c_exp);
                                        c_put_str(TERM_L_BLUE, buf, 5, 40);
                        }
-                       c_put_str(TERM_YELLOW, cur, 13 + (cs/4), 2 + 19 * (cs%4));
+                       c_put_str(TERM_YELLOW, cur, 13 + (cs / 4), 2 + 19 * (cs % 4));
                        os = cs;
                }
 
@@ -2906,7 +2834,6 @@ static bool get_player_class(void)
        cp_ptr = &class_info[p_ptr->pclass];
        mp_ptr = &m_info[p_ptr->pclass];
 
-
        /* Display */
        c_put_str(TERM_L_BLUE, cp_ptr->title, 5, 15);
 
@@ -2920,22 +2847,18 @@ static bool get_player_class(void)
  */
 static bool get_player_seikaku(void)
 {
-       int     k, n, os, cs;
-       char    c;
-       char    sym[MAX_SEIKAKU];
-       char    p2 = ')';
-       char    buf[80], cur[80];
-       char    tmp[64];
-       cptr    str;
-
+       int k;
+       int n, os, cs;
+       char c;
+       char sym[MAX_SEIKAKU];
+       char p2 = ')';
+       char buf[80], cur[80];
+       char tmp[64];
+       cptr str;
 
        /* Extra info */
        clear_from(10);
-#ifdef JP
-       put_str("注意:《性格》によってキャラクターの能力やボーナスが変化します。", 23, 5);
-#else
-       put_str("Note: Your personality determines various intrinsic abilities and bonuses.", 23, 5);
-#endif
+       put_str(_("注意:《性格》によってキャラクターの能力やボーナスが変化します。", "Note: Your personality determines various intrinsic abilities and bonuses."), 23, 5);
 
        /* Dump seikakus */
        for (n = 0; n < MAX_SEIKAKU; n++)
@@ -2951,20 +2874,11 @@ static bool get_player_seikaku(void)
                        sym[n] = ('A' + n - 26);
 
                /* Display */
-               /* Display */
-#ifdef JP
                sprintf(buf, "%c%c%s", I2A(n), p2, str);
-#else
-               sprintf(buf, "%c%c %s", I2A(n), p2, str);
-#endif
                put_str(buf, 12 + (n/4), 2 + 18 * (n%4));
        }
 
-#ifdef JP
-       sprintf(cur, "%c%c%s", '*', p2, "ランダム");
-#else
-       sprintf(cur, "%c%c %s", '*', p2, "Random");
-#endif
+       sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
 
        /* Get a seikaku */
        k = -1;
@@ -2979,11 +2893,7 @@ static bool get_player_seikaku(void)
                        put_str("                                   ", 3, 40);
                        if(cs == MAX_SEIKAKU)
                        {
-#ifdef JP
-                               sprintf(cur, "%c%c%s", '*', p2, "ランダム");
-#else
-                               sprintf(cur, "%c%c %s", '*', p2, "Random");
-#endif
+                               sprintf(cur, "%c%c%s", '*', p2, _("ランダム", "Random"));
                                put_str("                                   ", 4, 40);
                                put_str("                                   ", 5, 40);
                        }
@@ -2991,24 +2901,14 @@ static bool get_player_seikaku(void)
                        {
                                ap_ptr = &seikaku_info[cs];
                                str = ap_ptr->title;
-#ifdef JP
-                                       sprintf(cur, "%c%c%s", sym[cs], p2, str);
-#else
-                                       sprintf(cur, "%c%c %s", sym[cs], p2, str);
-#endif
-#ifdef JP
-                                       c_put_str(TERM_L_BLUE, ap_ptr->title, 3, 40);
-                                       put_str("の性格修正", 3, 40+strlen(ap_ptr->title));
-                                       put_str("腕力 知能 賢さ 器用 耐久 魅力      ", 4, 40);
-#else
-                                       c_put_str(TERM_L_BLUE, ap_ptr->title, 3, 40);
-                                       put_str(": Personality modification", 3, 40+strlen(ap_ptr->title));
-                                       put_str("Str  Int  Wis  Dex  Con  Chr       ", 4, 40);
-#endif
-                                       sprintf(buf, "%+3d  %+3d  %+3d  %+3d  %+3d  %+3d       ",
-                                               ap_ptr->a_adj[0], ap_ptr->a_adj[1], ap_ptr->a_adj[2], ap_ptr->a_adj[3],
-                                               ap_ptr->a_adj[4], ap_ptr->a_adj[5]);
-                                       c_put_str(TERM_L_BLUE, buf, 5, 40);
+                               sprintf(cur, "%c%c%s", sym[cs], p2, str);
+                               c_put_str(TERM_L_BLUE, ap_ptr->title, 3, 40);
+                               put_str(_("の性格修正", ": Personality modification"), 3, 40+strlen(ap_ptr->title));
+                               put_str(_("腕力 知能 賢さ 器用 耐久 魅力      ", "Str  Int  Wis  Dex  Con  Chr       "), 4, 40);
+                               sprintf(buf, "%+3d  %+3d  %+3d  %+3d  %+3d  %+3d       ",
+                                       ap_ptr->a_adj[0], ap_ptr->a_adj[1], ap_ptr->a_adj[2], ap_ptr->a_adj[3],
+                                       ap_ptr->a_adj[4], ap_ptr->a_adj[5]);
+                               c_put_str(TERM_L_BLUE, buf, 5, 40);
                        }
                        c_put_str(TERM_YELLOW, cur, 12 + (cs/4), 2 + 18 * (cs%4));
                        os = cs;
@@ -3016,11 +2916,7 @@ static bool get_player_seikaku(void)
 
                if (k >= 0) break;
 
-#ifdef JP
-               sprintf(buf, "性格を選んで下さい (%c-%c) ('='初期オプション設定): ", sym[0], sym[MAX_SEIKAKU-1]);
-#else
-               sprintf(buf, "Choose a personality (%c-%c) ('=' for options): ", sym[0], sym[MAX_SEIKAKU-1]);
-#endif
+               sprintf(buf, _("性格を選んで下さい (%c-%c) ('='初期オプション設定): ", "Choose a personality (%c-%c) ('=' for options): "), sym[0], sym[MAX_SEIKAKU-1]);
 
                put_str(buf, 10, 10);
                c = inkey();
@@ -3128,19 +3024,14 @@ static bool get_player_seikaku(void)
                else if (c == '=')
                {
                        screen_save();
-#ifdef JP
-                       do_cmd_options_aux(OPT_PAGE_BIRTH, "初期オプション((*)はスコアに影響)");
-#else
-                       do_cmd_options_aux(OPT_PAGE_BIRTH, "Birth Option((*)s effect score)");
-#endif
-
+                       do_cmd_options_aux(OPT_PAGE_BIRTH, _("初期オプション((*)はスコアに影響)", "Birth Option((*)s effect score)"));
                        screen_load();
                }
                else if (c !='2' && c !='4' && c !='6' && c !='8') bell();
        }
 
        /* Set seikaku */
-       p_ptr->pseikaku = (byte_hack)k;
+       p_ptr->pseikaku = (CHARACTER_IDX)k;
        ap_ptr = &seikaku_info[p_ptr->pseikaku];
 #ifdef JP
        strcpy(tmp, ap_ptr->title);
@@ -3152,8 +3043,6 @@ static bool get_player_seikaku(void)
 #endif
        strcat(tmp,p_ptr->name);
 
-
-       /* Display */
        c_put_str(TERM_L_BLUE, tmp, 1, 34);
 
        return TRUE;
@@ -3176,19 +3065,10 @@ static bool get_stat_limits(void)
        clear_from(10);
 
        /* Extra infomation */
-#ifdef JP
-       put_str("最低限得たい能力値を設定して下さい。", 10, 10);
-       put_str("2/8で項目選択、4/6で値の増減、Enterで次へ", 11, 10);
-#else
-       put_str("Set minimum stats.", 10, 10);
-       put_str("2/8 for Select, 4/6 for Change value, Enter for Goto next", 11, 10);
-#endif
+       put_str(_("最低限得たい能力値を設定して下さい。", "Set minimum stats."), 10, 10);
+       put_str(_("2/8で項目選択、4/6で値の増減、Enterで次へ", "2/8 for Select, 4/6 for Change value, Enter for Goto next"), 11, 10);
        
-#ifdef JP
-       put_str("         基本値  種族 職業 性格     合計値  最大値", 13, 10);
-#else
-       put_str("           Base   Rac  Cla  Per      Total  Maximum", 13, 10);
-#endif
+       put_str(_("         基本値  種族 職業 性格     合計値  最大値", "           Base   Rac  Cla  Per      Total  Maximum"), 13, 10);
 
        /* Output the maximum stats */
        for (i = 0; i < 6; i++)
@@ -3415,17 +3295,11 @@ static bool get_chara_limits(void)
                _("社会的地位", "social class")
        };
 
-       /* Clean up */
        clear_from(10);
        
        /* Prompt for the minimum stats */
-#ifdef JP
-       put_str("2/4/6/8で項目選択、+/-で値の増減、Enterで次へ", 11, 10);
-       put_str("注意:身長と体重の最大値/最小値ぎりぎりの値は非常に出現確率が低くなります。", 23, 2);
-#else
-       put_str("2/4/6/8 for Select, +/- for Change value, Enter for Goto next", 11, 10);
-       put_str("Caution: Values near minimum or maximum is extremery rare.", 23, 5);
-#endif
+       put_str(_("2/4/6/8で項目選択、+/-で値の増減、Enterで次へ", "2/4/6/8 for Select, +/- for Change value, Enter for Goto next"), 11, 10);
+       put_str(_("注意:身長と体重の最大値/最小値ぎりぎりの値は非常に出現確率が低くなります。", "Caution: Values near minimum or maximum is extremery rare."), 23, 2);
        
        if (p_ptr->psex == SEX_MALE)
        {
@@ -3438,13 +3312,8 @@ static bool get_chara_limits(void)
                min_percent = (int)(rp_ptr->f_b_ht-rp_ptr->f_m_ht*4+1) * 100 / (int)(rp_ptr->f_b_ht);
        }
        
-#ifdef JP
-       put_str("体格/地位の最小値/最大値を設定して下さい。", 10, 10);
-       put_str("  項    目                 最小値  最大値", 13,20);
-#else
-       put_str(" Parameter                    Min     Max", 13,20);
-       put_str("Set minimum/maximum attribute.", 10, 10);
-#endif
+       put_str(_("体格/地位の最小値/最大値を設定して下さい。", "Set minimum/maximum attribute."), 10, 10);
+       put_str(_("  項    目                 最小値  最大値", " Parameter                    Min     Max"), 13,20);
 
        /* Output the maximum stats */
        for (i = 0; i < MAXITEMS; i++)
@@ -3666,12 +3535,7 @@ static bool get_chara_limits(void)
                        break;
                case '=':
                        screen_save();
-#ifdef JP
-                       do_cmd_options_aux(OPT_PAGE_BIRTH, "初期オプション((*)はスコアに影響)");
-#else
-                       do_cmd_options_aux(OPT_PAGE_BIRTH, "Birth Option((*)s effect score)");
-#endif
-
+                       do_cmd_options_aux(OPT_PAGE_BIRTH, _("初期オプション((*)はスコアに影響)", "Birth Option((*)s effect score)"));
                        screen_load();
                        break;
                default:
@@ -3723,11 +3587,7 @@ static bool do_cmd_histpref(void)
        char temp[64 * 4];
        char histbuf[HISTPREF_LIMIT];
 
-#ifdef JP
-       if (!get_check("生い立ち設定ファイルをロードしますか? ")) return FALSE;
-#else
-       if (!get_check("Load background history preference file? ")) return FALSE;
-#endif
+       if (!get_check(_("生い立ち設定ファイルをロードしますか? ", "Load background history preference file? "))) return FALSE;
 
        /* Prepare the buffer */
        histbuf[0] = '\0';
@@ -3753,11 +3613,7 @@ static bool do_cmd_histpref(void)
 
        if (err)
        {
-#ifdef JP
-               msg_print("生い立ち設定ファイルの読み込みに失敗しました。");
-#else
-               msg_print("Failed to load background history preference.");
-#endif
+               msg_print(_("生い立ち設定ファイルの読み込みに失敗しました。", "Failed to load background history preference."));
                msg_print(NULL);
 
                /* Kill the buffer */
@@ -3767,11 +3623,7 @@ static bool do_cmd_histpref(void)
        }
        else if (!histpref_buf[0])
        {
-#ifdef JP
-               msg_print("有効な生い立ち設定はこのファイルにありません。");
-#else
-               msg_print("There does not exist valid background history preference.");
-#endif
+               msg_print(_("有効な生い立ち設定はこのファイルにありません。", "There does not exist valid background history preference."));
                msg_print(NULL);
 
                /* Kill the buffer */
@@ -4057,59 +3909,26 @@ static bool player_birth_aux(void)
 
 
        /*** Intro ***/
-
-       /* Clear screen */
        Term_clear();
 
        /* Title everything */
-#ifdef JP
-       put_str("名前  :", 1,26);
-#else
-       put_str("Name  :", 1,26);
-#endif
-
-#ifdef JP
-       put_str("性別        :", 3, 1);
-#else
-       put_str("Sex         :", 3, 1);
-#endif
-
-#ifdef JP
-       put_str("種族        :", 4, 1);
-#else
-       put_str("Race        :", 4, 1);
-#endif
-
-#ifdef JP
-       put_str("職業        :", 5, 1);
-#else
-       put_str("Class       :", 5, 1);
-#endif
-
+       put_str(_("名前  :", "Name  :"), 1,26);
+       put_str(_("性別        :", "Sex         :"), 3, 1);
+       put_str(_("種族        :", "Race        :"), 4, 1);
+       put_str(_("職業        :", "Class       :"), 5, 1);
 
        /* Dump the default name */
        c_put_str(TERM_L_BLUE, p_ptr->name, 1, 34);
 
-
        /*** Instructions ***/
 
        /* Display some helpful information */
-#ifdef JP
-       put_str("キャラクターを作成します。('S'やり直す, 'Q'終了, '?'ヘルプ)", 8, 10);
-#else
-       put_str("Make your charactor. ('S' Restart, 'Q' Quit, '?' Help)", 8, 10);
-#endif
-
+       put_str(_("キャラクターを作成します。('S'やり直す, 'Q'終了, '?'ヘルプ)", "Make your charactor. ('S' Restart, 'Q' Quit, '?' Help)"), 8, 10);
 
        /*** Player sex ***/
 
        /* Extra info */
-#ifdef JP
-       put_str("注意:《性別》の違いはゲーム上ほとんど影響を及ぼしません。", 23, 5);
-#else
-       put_str("Note: Your 'sex' does not have any significant gameplay effects.", 23, 5);
-#endif
-
+       put_str(_("注意:《性別》の違いはゲーム上ほとんど影響を及ぼしません。", "Note: Your 'sex' does not have any significant gameplay effects."), 23, 5);
 
        /* Prompt for "Sex" */
        for (n = 0; n < MAX_SEXES; n++)
@@ -4566,7 +4385,6 @@ static bool player_birth_aux(void)
                /* Flush input */
                flush();
 
-
                /*** Display ***/
 
                /* Mode */
@@ -4586,13 +4404,9 @@ static bool player_birth_aux(void)
                {
                        /* Calculate the bonuses and hitpoints */
                        p_ptr->update |= (PU_BONUS | PU_HP);
+                       update_creature(p_ptr);
 
-                       update_stuff();
-
-                       /* Fully healed */
                        p_ptr->chp = p_ptr->mhp;
-
-                       /* Fully rested */
                        p_ptr->csp = p_ptr->msp;
 
                        /* Display the player */
@@ -4727,16 +4541,10 @@ static bool ask_quick_start(void)
        /* Doesn't have previous data */
        if (!previous_char.quick_ok) return FALSE;
 
-
-       /* Clear screen */
        Term_clear();
 
        /* Extra info */
-#ifdef JP
-       put_str("クイック・スタートを使うと以前と全く同じキャラクターで始められます。", 11, 5);
-#else
-       put_str("Do you want to use the quick start function(same character as your last one).", 11, 2);
-#endif
+       put_str(_("クイック・スタートを使うと以前と全く同じキャラクターで始められます。", "Do you want to use the quick start function(same character as your last one)."), 11, 2);
 
        /* Choose */
        while (1)
@@ -4781,15 +4589,9 @@ static bool ask_quick_start(void)
        /* Calc hitdie, but don't roll */
        get_extra(FALSE);
 
-       /* Calculate the bonuses and hitpoints */
        p_ptr->update |= (PU_BONUS | PU_HP);
-
-       update_stuff();
-
-       /* Fully healed */
+       update_creature(p_ptr);
        p_ptr->chp = p_ptr->mhp;
-
-       /* Fully rested */
        p_ptr->csp = p_ptr->msp;
 
        /* Process the player name */
@@ -4847,49 +4649,25 @@ void player_birth(void)
        message_add(" ");
        message_add("  ");
 
-#ifdef JP
-       do_cmd_write_nikki(NIKKI_GAMESTART, 1, "-------- 新規ゲーム開始 --------");
-#else
-       do_cmd_write_nikki(NIKKI_GAMESTART, 1, "-------- Start New Game --------");
-#endif
+       do_cmd_write_nikki(NIKKI_GAMESTART, 1, _("-------- 新規ゲーム開始 --------", "-------- Start New Game --------"));
        do_cmd_write_nikki(NIKKI_HIGAWARI, 0, NULL);
 
-#ifdef JP
-       sprintf(buf,"                            性別に%sを選択した。", sex_info[p_ptr->psex].title);
-#else
-       sprintf(buf,"                            choose %s personality.", sex_info[p_ptr->psex].title);
-#endif
+       sprintf(buf,_("                            性別に%sを選択した。", "                            choose %s personality."), sex_info[p_ptr->psex].title);
        do_cmd_write_nikki(NIKKI_BUNSHOU, 1, buf);
 
-#ifdef JP
-       sprintf(buf,"                            種族に%sを選択した。", race_info[p_ptr->prace].title);
-#else
-       sprintf(buf,"                            choose %s race.", race_info[p_ptr->prace].title);
-#endif
+       sprintf(buf,_("                            種族に%sを選択した。", "                            choose %s race."), race_info[p_ptr->prace].title);
        do_cmd_write_nikki(NIKKI_BUNSHOU, 1, buf);
 
-#ifdef JP
-       sprintf(buf,"                            職業に%sを選択した。", class_info[p_ptr->pclass].title);
-#else
-       sprintf(buf,"                            choose %s class.", class_info[p_ptr->pclass].title);
-#endif
+       sprintf(buf,_("                            職業に%sを選択した。", "                            choose %s class."), class_info[p_ptr->pclass].title);
        do_cmd_write_nikki(NIKKI_BUNSHOU, 1, buf);
 
        if (p_ptr->realm1)
        {
-#ifdef JP
-               sprintf(buf,"                            魔法の領域に%s%sを選択した。",realm_names[p_ptr->realm1], p_ptr->realm2 ? format("と%s",realm_names[p_ptr->realm2]) : "");
-#else
-               sprintf(buf,"                            choose %s%s realm.",realm_names[p_ptr->realm1], p_ptr->realm2 ? format(" realm and %s",realm_names[p_ptr->realm2]) : "");
-#endif
+               sprintf(buf,_("                            魔法の領域に%s%sを選択した。", "                            choose %s%s realm."),realm_names[p_ptr->realm1], p_ptr->realm2 ? format("と%s",realm_names[p_ptr->realm2]) : "");
                do_cmd_write_nikki(NIKKI_BUNSHOU, 1, buf);
        }
 
-#ifdef JP
-       sprintf(buf,"                            性格に%sを選択した。", seikaku_info[p_ptr->pseikaku].title);
-#else
-       sprintf(buf,"                            choose %s.", seikaku_info[p_ptr->pseikaku].title);
-#endif
+       sprintf(buf,_("                            性格に%sを選択した。", "                            choose %s."), seikaku_info[p_ptr->pseikaku].title);
        do_cmd_write_nikki(NIKKI_BUNSHOU, 1, buf);
 
        /* Init the shops */
@@ -4932,11 +4710,8 @@ void dump_yourself(FILE *fff)
 
        roff_to_buf(race_jouhou[p_ptr->prace], 78, temp, sizeof(temp));
        fprintf(fff, "\n\n");
-#ifdef JP
-       fprintf(fff, "種族: %s\n", race_info[p_ptr->prace].title);
-#else
-       fprintf(fff, "Race: %s\n", race_info[p_ptr->prace].title);
-#endif
+       fprintf(fff, _("種族: %s\n", "Race: %s\n"), race_info[p_ptr->prace].title);
+
        t = temp;
        for (i = 0; i < 10; i++)
        {
@@ -4947,11 +4722,8 @@ void dump_yourself(FILE *fff)
        }
        roff_to_buf(class_jouhou[p_ptr->pclass], 78, temp, sizeof(temp));
        fprintf(fff, "\n");
-#ifdef JP
-       fprintf(fff, "職業: %s\n", class_info[p_ptr->pclass].title);
-#else
-       fprintf(fff, "Class: %s\n", class_info[p_ptr->pclass].title);
-#endif
+       fprintf(fff, _("職業: %s\n", "Class: %s\n"), class_info[p_ptr->pclass].title);
+
        t = temp;
        for (i = 0; i < 10; i++)
        {
@@ -4962,11 +4734,8 @@ void dump_yourself(FILE *fff)
        }
        roff_to_buf(seikaku_jouhou[p_ptr->pseikaku], 78, temp, sizeof(temp));
        fprintf(fff, "\n");
-#ifdef JP
-       fprintf(fff, "性格: %s\n", seikaku_info[p_ptr->pseikaku].title);
-#else
-       fprintf(fff, "Pesonality: %s\n", seikaku_info[p_ptr->pseikaku].title);
-#endif
+       fprintf(fff, _("性格: %s\n", "Pesonality: %s\n"), seikaku_info[p_ptr->pseikaku].title);
+
        t = temp;
        for (i = 0; i < 6; i++)
        {
@@ -4979,11 +4748,8 @@ void dump_yourself(FILE *fff)
        if (p_ptr->realm1)
        {
                roff_to_buf(realm_jouhou[technic2magic(p_ptr->realm1)-1], 78, temp, sizeof(temp));
-#ifdef JP
-               fprintf(fff, "魔法: %s\n", realm_names[p_ptr->realm1]);
-#else
-               fprintf(fff, "Realm: %s\n", realm_names[p_ptr->realm1]);
-#endif
+               fprintf(fff, _("魔法: %s\n", "Realm: %s\n"), realm_names[p_ptr->realm1]);
+
                t = temp;
                for (i = 0; i < 6; i++)
                {
@@ -4997,11 +4763,8 @@ void dump_yourself(FILE *fff)
        if (p_ptr->realm2)
        {
                roff_to_buf(realm_jouhou[technic2magic(p_ptr->realm2)-1], 78, temp, sizeof(temp));
-#ifdef JP
-               fprintf(fff, "魔法: %s\n", realm_names[p_ptr->realm2]);
-#else
-               fprintf(fff, "Realm: %s\n", realm_names[p_ptr->realm2]);
-#endif
+               fprintf(fff, _("魔法: %s\n", "Realm: %s\n"), realm_names[p_ptr->realm2]);
+
                t = temp;
                for (i = 0; i < 6; i++)
                {