OSDN Git Service

Leon氏の勧めに従って、Vanillaのコードと同様に各ソースファイルの頭の
[hengband/hengband.git] / src / racial.c
index 820afbd..789cf4c 100644 (file)
@@ -1,15 +1,15 @@
 /* File: racial.c */
 
-/* Purpose: Racial powers (and mutations) */
-
 /*
- * Copyright (c) 1989 James E. Wilson, Robert A. Koeneke
+ * Copyright (c) 1997 Ben Harrison, James E. Wilson, Robert A. Koeneke
  *
- * This software may be copied and distributed for educational, research, and
- * not for profit purposes provided that this copyright and statement are
- * included in all such copies.
+ * This software may be copied and distributed for educational, research,
+ * and not for profit purposes provided that this copyright and statement
+ * are included in all such copies.  Other copyrights may also apply.
  */
 
+/* Purpose: Racial powers (and mutations) */
+
 #include "angband.h"
 
 /*
@@ -298,7 +298,7 @@ bool gain_magic(void)
 q = "¤É¤Î¥¢¥¤¥Æ¥à¤ÎËâÎϤò¼è¤ê¹þ¤ß¤Þ¤¹¤«? ";
 s = "ËâÎϤò¼è¤ê¹þ¤á¤ë¥¢¥¤¥Æ¥à¤¬¤Ê¤¤¡£";
 #else
-       q = "Gain power which item? ";
+       q = "Gain power of which item? ";
        s = "You have nothing to gain power.";
 #endif
 
@@ -316,15 +316,34 @@ s = "
                o_ptr = &o_list[0 - item];
        }
 
+       if (o_ptr->tval == TV_STAFF && o_ptr->sval == SV_STAFF_NOTHING)
+       {
+#ifdef JP
+               msg_print("¤³¤Î¾ó¤Ë¤Ïȯư¤Î°Ù¤ÎǽÎϤϲ¿¤âÈ÷¤ï¤Ã¤Æ¤¤¤Ê¤¤¤è¤¦¤À¡£");
+#else
+               msg_print("This staff doesn't have any magical ability.");
+#endif
+               return FALSE;
+       }
+
+
        if (!object_known_p(o_ptr))
        {
+#ifdef JP
                msg_print("´ÕÄꤵ¤ì¤Æ¤¤¤Ê¤¤¤È¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+               msg_print("You need to identify before absorbing.");
+#endif
                return FALSE;
        }
 
        if (o_ptr->timeout)
        {
+#ifdef JP
                msg_print("½¼Å¶Ãæ¤Î¥¢¥¤¥Æ¥à¤Ï¼è¤ê¹þ¤á¤Ê¤¤¡£");
+#else
+               msg_print("This item is still charging.");
+#endif
                return FALSE;
        }
 
@@ -349,7 +368,7 @@ s = "
                        if (p_ptr->magic_num2[o_ptr->sval + ext])
                        {
                                gain_num *= 256;
-                               gain_num = (gain_num/3 + rand_int(gain_num/3)) / 256;
+                               gain_num = (gain_num/3 + randint0(gain_num/3)) / 256;
                                if (gain_num < 1) gain_num = 1;
                        }
                        p_ptr->magic_num2[o_ptr->sval + ext] += gain_num;
@@ -450,7 +469,7 @@ static bool choose_kamae(void)
 #ifdef JP
                                msg_print("¤â¤È¤â¤È¹½¤¨¤Æ¤¤¤Ê¤¤¡£");
 #else
-                               msg_print("You are not assuming a posture.");
+                               msg_print("You are not assuming a posture.");
 #endif
                        screen_load();
                        return TRUE;
@@ -768,17 +787,17 @@ if (!get_check("
                if (use_hp)
                {
 #ifdef JP
-                       take_hit(DAMAGE_USELIFE, (cost / 2) + randint(cost / 2),
+                       take_hit(DAMAGE_USELIFE, (cost / 2) + randint1(cost / 2),
                                 "²áÅ٤ν¸Ãæ", -1);
 #else
-                       take_hit(DAMAGE_USELIFE, (cost / 2) + randint(cost / 2),
+                       take_hit(DAMAGE_USELIFE, (cost / 2) + randint1(cost / 2),
                                 "concentrating too hard", -1);
 #endif
 
                }
                else
                {
-                       p_ptr->csp -= (cost / 2) + randint(cost / 2);
+                       p_ptr->csp -= (cost / 2) + randint1(cost / 2);
                }
        }
 
@@ -790,8 +809,8 @@ if (!get_check("
        p_ptr->window |= (PW_PLAYER | PW_SPELL);
 
        /* Success? */
-       if (randint(p_ptr->stat_cur[use_stat]) >=
-           ((difficulty / 2) + randint(difficulty / 2)))
+       if (randint1(p_ptr->stat_cur[use_stat]) >=
+           ((difficulty / 2) + randint1(difficulty / 2)))
        {
                return TRUE;
        }
@@ -826,7 +845,7 @@ static bool cmd_racial_power_aux(s32b command)
 
                                for (i = 0; i < 6; i++)
                                {
-                                       dir = rand_int(8);
+                                       dir = randint0(8);
                                        y = py + ddy_ddd[dir];
                                        x = px + ddx_ddd[dir];
                                        c_ptr = &cave[y][x];
@@ -861,7 +880,7 @@ msg_print("
                }
                case CLASS_PRIEST:
                {
-                       if (p_ptr->realm1 == REALM_LIFE)
+                       if (is_good_realm(p_ptr->realm1))
                        {
                                if (racial_aux(35, 70, A_WIS, 50))
                                {
@@ -891,7 +910,7 @@ msg_print("
                                if (cave[y][x].m_idx)
                                {
                                        py_attack(y, x, 0);
-                                       if (rand_int(p_ptr->skill_dis) < 7)
+                                       if (randint0(p_ptr->skill_dis) < 7)
 #ifdef JP
 msg_print("¤¦¤Þ¤¯Æ¨¤²¤é¤ì¤Ê¤«¤Ã¤¿¡£");
 #else
@@ -928,7 +947,7 @@ msg_print("Ũ
                }
                case CLASS_PALADIN:
                {
-                       if (p_ptr->realm1 == REALM_LIFE)
+                       if (is_good_realm(p_ptr->realm1))
                        {
                                if (racial_aux(30, 30, A_WIS, 20))
                                {
@@ -952,14 +971,14 @@ msg_print("Ũ
                        {
                                if (racial_aux(25, 0, A_INT, 10))
                                {
-                                       if (take_hit(DAMAGE_USELIFE, p_ptr->lev, 
+                                       int gain_sp;
 #ifdef JP
-"£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1))
+                                       if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "£È£Ð¤«¤é£Í£Ð¤Ø¤Î̵ËŤÊÊÑ´¹", -1)))
 #else
-"thoughtless convertion from HP to SP", -1))
+                                       if ((gain_sp = take_hit(DAMAGE_USELIFE, p_ptr->lev, "thoughtless convertion from HP to SP", -1)))
 #endif
                                        {
-                                               p_ptr->csp += p_ptr->lev / 5;
+                                               p_ptr->csp += gain_sp / 5;
                                                if (p_ptr->csp > p_ptr->msp)
                                                {
                                                        p_ptr->csp = p_ptr->msp;
@@ -1052,16 +1071,24 @@ msg_print("
                                        if (cave[y][x].m_idx)
                                        {
                                                if (one_in_(2))
+#ifdef JP
 msg_print("¤¢¡¼¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¤¿¡ª¡ª¡ª");
+#else
+msg_print("Ahhhtatatatatatatatatatatatatatataatatatatattaaaaa!!!!");
+#endif
                                                else
+#ifdef JP
 msg_print("¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¥ª¥é¡ª¡ª¡ª");
+#else
+msg_print("Oraoraoraoraoraoraoraoraoraoraoraoraoraoraoraoraora!!!!");
+#endif
                                                py_attack(y, x, 0);
                                                if (cave[y][x].m_idx)
                                                {
                                                        handle_stuff();
                                                        py_attack(y, x, 0);
                                                }
-                                               p_ptr->energy -= 100;
+                                               p_ptr->energy_need += ENERGY_NEED();
                                        }
                                        else
                                        {
@@ -1183,7 +1210,7 @@ msg_print("
                }
                case CLASS_RED_MAGE:
                {
-                       if (racial_aux(48, 60, A_INT, 25))
+                       if (racial_aux(48, 20, A_INT, 0))
                        {
                                handle_stuff();
                                do_cmd_cast();
@@ -1280,27 +1307,47 @@ msg_print("
 
                                if (p_ptr->riding)
                                {
+#ifdef JP
                                        msg_print("º£¤Ï¾èÇÏÃæ¤À¡£");
+#else
+                                       msg_print("You ARE riding.");
+#endif
                                        return FALSE;
                                }
                                if (!do_riding(TRUE)) return TRUE;
                                m_ptr = &m_list[p_ptr->riding];
                                r_ptr = &r_info[m_ptr->r_idx];
                                monster_desc(m_name, m_ptr, 0);
+#ifdef JP
                                msg_format("%s¤Ë¾è¤Ã¤¿¡£",m_name);
+#else
+                               msg_format("You ride on %s.",m_name);
+#endif
                                if (is_pet(m_ptr)) break;
                                rlev = r_ptr->level;
                                if (r_ptr->flags1 & RF1_UNIQUE) rlev = rlev * 3 / 2;
                                if (rlev > 60) rlev = 60+(rlev-60)/2;
-                               if ((randint(skill_exp[GINOU_RIDING]/120+p_ptr->lev*2/3) > rlev) && one_in_(2) && !p_ptr->inside_arena && !p_ptr->inside_battle && !(r_ptr->flags7 & (RF7_GUARDIAN)) && !(r_ptr->flags1 & (RF1_QUESTOR)) && (rlev < p_ptr->lev*3/2+rand_int(p_ptr->lev/5)))
+                               if ((randint1(p_ptr->skill_exp[GINOU_RIDING]/120+p_ptr->lev*2/3) > rlev) && one_in_(2) && !p_ptr->inside_arena && !p_ptr->inside_battle && !(r_ptr->flags7 & (RF7_GUARDIAN)) && !(r_ptr->flags1 & (RF1_QUESTOR)) && (rlev < p_ptr->lev*3/2+randint0(p_ptr->lev/5)))
                                {
+#ifdef JP
                                        msg_format("%s¤ò¼ê¤Ê¤º¤±¤¿¡£",m_name);
+#else
+                                       msg_format("You tame %s.",m_name);
+#endif
                                        set_pet(m_ptr);
                                }
                                else
                                {
+#ifdef JP
                                        msg_format("%s¤Ë¿¶¤êÍî¤È¤µ¤ì¤¿¡ª",m_name);
+#else
+                                       msg_format("You have thrown off by %s.",m_name);
+#endif
                                        rakuba(1,TRUE);
+
+                                       /* Paranoia */
+                                       /* ÍîÇϽèÍý¤Ë¼ºÇÔ¤·¤Æ¤â¤È¤Ë¤«¤¯¾èÇϲò½ü */
+                                       p_ptr->riding = 0;
                                }
                        }
                        break;
@@ -1309,13 +1356,6 @@ msg_print("
                {
                        if (command == -3)
                        {
-                               if (racial_aux(5, 5, A_DEX, 10))
-                               {
-                                       (void)set_food(PY_FOOD_MAX - 1);
-                               }
-                       }
-                       else if (command == -4)
-                       {
                                if (racial_aux(10, 10, A_DEX, 20))
                                {
                                        if (!word_of_recall()) return FALSE;
@@ -1346,9 +1386,9 @@ msg_print("
                            int x,y;
                              for( x=0 ; x < cur_wid ;x++){
                                for( y=0 ; y < cur_hgt ;y++){
-                                 if( cave[y][x].feat == FEAT_MIRROR){
-                                   cave_set_feat( y , x , FEAT_FLOOR );
-                                   project(0,2,y,x, p_ptr->lev /2 +5 ,GF_SHARDS,(PROJECT_GRID|PROJECT_ITEM|PROJECT_KILL|PROJECT_JUMP|PROJECT_NO_REF|PROJECT_NO_HANGEKI),-1);
+                                 if( is_mirror_grid(&cave[y][x])) {
+                                   remove_mirror(y,x);
+                                   project(0,2,y,x, p_ptr->lev /2 +5 ,GF_SHARDS,(PROJECT_GRID|PROJECT_ITEM|PROJECT_KILL|PROJECT_JUMP|PROJECT_NO_HANGEKI),-1);
                                  }
                                }
                              }
@@ -1366,7 +1406,7 @@ msg_print("
                                  return FALSE;
                          }
                          if (racial_aux(30, 0, A_INT, 20)){
-                               if( cave[py][px].feat == FEAT_MIRROR)
+                               if( is_mirror_grid(&cave[py][px]))
                                {
 #ifdef JP
 msg_print("¾¯¤·Æ¬¤¬¥Ï¥Ã¥­¥ê¤·¤¿¡£");
@@ -1429,6 +1469,15 @@ msg_format("
                        }
                        break;
                case MIMIC_VAMPIRE:
+                       if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
+                       {
+#ifdef JP
+                               msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£");
+#else
+                               msg_print("Something prevent you from attacking.");
+#endif
+                               return FALSE;
+                       }
                        if (racial_aux(2, (1 + (plev / 3)), A_CON, 9))
                        {
                                int y, x, dummy = 0;
@@ -1457,7 +1506,7 @@ msg_print("
                                msg_print("You grin and bare your fangs...");
 #endif
 
-                               dummy = plev + randint(plev) * MAX(1, plev / 10);   /* Dmg */
+                               dummy = plev + randint1(plev) * MAX(1, plev / 10);   /* Dmg */
                                if (drain_life(dir, dummy))
                                {
                                        if (p_ptr->food < PY_FOOD_FULL)
@@ -1505,7 +1554,7 @@ msg_print("
                                msg_print("You examine your surroundings.");
 #endif
 
-                               (void)detect_traps(DETECT_RAD_DEFAULT);
+                               (void)detect_traps(DETECT_RAD_DEFAULT, TRUE);
                                (void)detect_doors(DETECT_RAD_DEFAULT);
                                (void)detect_stairs(DETECT_RAD_DEFAULT);
                        }
@@ -1523,10 +1572,6 @@ msg_print("
                                /* Create the food ration */
                                object_prep(q_ptr, 21);
 
-#ifdef USE_SCRIPT
-                               q_ptr->python = object_create_callback(q_ptr);
-#endif /* USE_SCRIPT */
-
                                /* Drop the object from heaven */
                                (void)drop_near(q_ptr, -1, py, px);
 #ifdef JP
@@ -1577,7 +1622,7 @@ msg_print("
 
                                (void)set_afraid(0);
 
-                               (void)set_shero(10 + randint(plev), FALSE);
+                               (void)set_shero(10 + randint1(plev), FALSE);
                                (void)hp_player(30);
                        }
                        break;
@@ -1613,30 +1658,12 @@ msg_print("
                        {
                                if (racial_aux(30, 50, A_INT, 50))
                                {
-                                       /* No effect in arena or quest */
-                                       if (p_ptr->inside_arena || p_ptr->inside_quest)
-                                       {
 #ifdef JP
-msg_print("¸ú²Ì¤¬¤Ê¤«¤Ã¤¿¡£");
+                                       msg_print("¤¢¤Ê¤¿¤ÏÊ⤭¼þ¤ê»Ï¤á¤¿¡£");
 #else
-                                               msg_print("There is no effect.");
+                                       msg_print("You start walking around. ");
 #endif
-
-                                       }
-                                       else
-                                       {
-#ifdef JP
-msg_print("¤¢¤Ê¤¿¤ÏÊ⤭¼þ¤ê»Ï¤á¤¿¡£¼þ°Ï¤¬ÊѲ½¤·¤Æ¤¤¤ë¡£");
-#else
-                                               msg_print("You start walking around. Your surroundings change.");
-#endif
-
-
-                                               if (autosave_l) do_cmd_save_game(TRUE);
-
-                                               /* Leaving */
-                                               p_ptr->leaving = TRUE;
-                                       }
+                                       alter_reality();
                                }
                        }
                        break;
@@ -1652,7 +1679,7 @@ msg_print("
 
                                (void)set_afraid(0);
 
-                               (void)set_shero(10 + randint(plev), FALSE);
+                               (void)set_shero(10 + randint1(plev), FALSE);
                                (void)hp_player(30);
                        }
                        break;
@@ -1765,7 +1792,7 @@ msg_print("
                                msg_print("You examine your surroundings.");
 #endif
 
-                               (void)detect_traps(DETECT_RAD_DEFAULT);
+                               (void)detect_traps(DETECT_RAD_DEFAULT, TRUE);
                                (void)detect_doors(DETECT_RAD_DEFAULT);
                                (void)detect_stairs(DETECT_RAD_DEFAULT);
                        }
@@ -1789,7 +1816,7 @@ msg_print("
                case RACE_DRACONIAN:
                        if (racial_aux(1, plev, A_CON, 12))
                        {
-                               int  Type = ((randint(3) == 1) ? GF_COLD : GF_FIRE);
+                               int  Type = (one_in_(3) ? GF_COLD : GF_FIRE);
 #ifdef JP
 cptr Type_desc = ((Type == GF_COLD) ? "Î䵤" : "±ê");
 #else
@@ -1797,7 +1824,7 @@ cptr Type_desc = ((Type == GF_COLD) ? "
 #endif
 
 
-                               if (randint(100) < plev)
+                               if (randint1(100) < plev)
                                {
                                        switch (p_ptr->pclass)
                                        {
@@ -1808,7 +1835,7 @@ cptr Type_desc = ((Type == GF_COLD) ? "
                                                case CLASS_IMITATOR:
                                                case CLASS_ARCHER:
                                                case CLASS_SMITH:
-                                                       if (randint(3) == 1)
+                                                       if (one_in_(3))
                                                        {
                                                                Type = GF_MISSILE;
 #ifdef JP
@@ -1837,7 +1864,7 @@ Type_desc = "
                                                case CLASS_RED_MAGE:
                                                case CLASS_BLUE_MAGE:
                                                case CLASS_MIRROR_MASTER:
-                                                       if (randint(3) == 1)
+                                                       if (one_in_(3))
                                                        {
                                                                Type = GF_MANA;
 #ifdef JP
@@ -1859,7 +1886,7 @@ Type_desc = "
                                                        }
                                                        break;
                                                case CLASS_CHAOS_WARRIOR:
-                                                       if (randint(3) != 1)
+                                                       if (!one_in_(3))
                                                        {
                                                                Type = GF_CONFUSION;
 #ifdef JP
@@ -1883,7 +1910,7 @@ Type_desc = "
                                                case CLASS_MONK:
                                                case CLASS_SAMURAI:
                                                case CLASS_FORCETRAINER:
-                                                       if (randint(3) != 1)
+                                                       if (!one_in_(3))
                                                        {
                                                                Type = GF_CONFUSION;
 #ifdef JP
@@ -1905,7 +1932,7 @@ Type_desc = "
                                                        }
                                                        break;
                                                case CLASS_MINDCRAFTER:
-                                                       if (randint(3) != 1)
+                                                       if (!one_in_(3))
                                                        {
                                                                Type = GF_CONFUSION;
 #ifdef JP
@@ -1928,7 +1955,7 @@ Type_desc = "
                                                        break;
                                                case CLASS_PRIEST:
                                                case CLASS_PALADIN:
-                                                       if (randint(3) == 1)
+                                                       if (one_in_(3))
                                                        {
                                                                Type = GF_HELL_FIRE;
 #ifdef JP
@@ -1951,7 +1978,7 @@ Type_desc = "
                                                        break;
                                                case CLASS_ROGUE:
                                                case CLASS_NINJA:
-                                                       if (randint(3) == 1)
+                                                       if (one_in_(3))
                                                        {
                                                                Type = GF_DARK;
 #ifdef JP
@@ -1973,7 +2000,7 @@ Type_desc = "
                                                        }
                                                        break;
                                                case CLASS_BARD:
-                                                       if (randint(3) != 1)
+                                                       if (!one_in_(3))
                                                        {
                                                                Type = GF_SOUND;
 #ifdef JP
@@ -2056,7 +2083,7 @@ msg_print("
                case RACE_GOLEM:
                        if (racial_aux(20, 15, A_CON, 8))
                        {
-                               (void)set_shield(randint(20) + 30, FALSE);
+                               (void)set_shield(randint1(20) + 30, FALSE);
                        }
                        break;
 
@@ -2075,6 +2102,15 @@ msg_print("
                        break;
 
                case RACE_VAMPIRE:
+                       if (d_info[dungeon_type].flags1 & DF1_NO_MELEE)
+                       {
+#ifdef JP
+                               msg_print("¤Ê¤¼¤«¹¶·â¤¹¤ë¤³¤È¤¬¤Ç¤­¤Ê¤¤¡£");
+#else
+                               msg_print("Something prevent you from attacking.");
+#endif
+                               return FALSE;
+                       }
                        if (racial_aux(2, (1 + (plev / 3)), A_CON, 9))
                        {
                                int y, x, dummy = 0;
@@ -2103,7 +2139,7 @@ msg_print("
                                msg_print("You grin and bare your fangs...");
 #endif
 
-                               dummy = plev + randint(plev) * MAX(1, plev / 10);   /* Dmg */
+                               dummy = plev + randint1(plev) * MAX(1, plev / 10);   /* Dmg */
                                if (drain_life(dir, dummy))
                                {
                                        if (p_ptr->food < PY_FOOD_FULL)
@@ -2183,7 +2219,7 @@ msg_format("
                case RACE_KUTA:
                        if (racial_aux(20, 15, A_CHR, 8))
                        {
-                               (void)set_tsubureru(randint(20) + 30, FALSE);
+                               (void)set_tsubureru(randint1(20) + 30, FALSE);
                        }
                        break;
 
@@ -2329,7 +2365,7 @@ msg_print("
 #ifdef JP
 strcpy(power_desc[num].name, "·õ¤ÎÉñ¤¤");
 #else
-               strcpy(power_desc[num].name, "Whirl Strike");
+               strcpy(power_desc[num].name, "Sword Dancing");
 #endif
 
                power_desc[num].level = 40;
@@ -2345,7 +2381,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ËâÎÏ¿©¤¤");
 #else
-               strcpy(power_desc[num].name, "eat magic");
+               strcpy(power_desc[num].name, "Eat Magic");
 #endif
 
                power_desc[num].level = 25;
@@ -2356,12 +2392,12 @@ strcpy(power_desc[num].name, "
        }
        case CLASS_PRIEST:
        {
-               if (p_ptr->realm1 == REALM_LIFE)
+               if (is_good_realm(p_ptr->realm1))
                {
 #ifdef JP
 strcpy(power_desc[num].name, "Éð´ï½ËÊ¡");
 #else
-                       strcpy(power_desc[num].name, "bless weapon");
+                       strcpy(power_desc[num].name, "Bless Weapon");
 #endif
 
                        power_desc[num].level = 35;
@@ -2389,7 +2425,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ò¥Ã¥È¡õ¥¢¥¦¥§¥¤");
 #else
-               strcpy(power_desc[num].name, "hit and away");
+               strcpy(power_desc[num].name, "Hit and Away");
 #endif
 
                power_desc[num].level = 8;
@@ -2403,7 +2439,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥â¥ó¥¹¥¿¡¼Ä´ºº");
 #else
-               strcpy(power_desc[num].name, "probe monster");
+               strcpy(power_desc[num].name, "Probe Monster");
 #endif
 
                power_desc[num].level = 15;
@@ -2414,12 +2450,12 @@ strcpy(power_desc[num].name, "
        }
        case CLASS_PALADIN:
        {
-               if (p_ptr->realm1 == REALM_LIFE)
+               if (is_good_realm(p_ptr->realm1))
                {
 #ifdef JP
 strcpy(power_desc[num].name, "¥Û¡¼¥ê¡¼¡¦¥é¥ó¥¹");
 #else
-                       strcpy(power_desc[num].name, "holy lance");
+                       strcpy(power_desc[num].name, "Holy Lance");
 #endif
 
                        power_desc[num].level = 30;
@@ -2432,7 +2468,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ø¥ë¡¦¥é¥ó¥¹");
 #else
-                       strcpy(power_desc[num].name, "hell lance");
+                       strcpy(power_desc[num].name, "Hell Lance");
 #endif
 
                        power_desc[num].level = 30;
@@ -2447,7 +2483,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÊÑ´¹: £È£Ð¢ª£Í£Ð");
 #else
-               strcpy(power_desc[num].name, "convert HP to SP");
+               strcpy(power_desc[num].name, "Convert HP to SP");
 #endif
 
                power_desc[num].level = 25;
@@ -2457,7 +2493,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÊÑ´¹: £Í£Ð¢ª£È£Ð");
 #else
-               strcpy(power_desc[num].name, "convert SP to HP");
+               strcpy(power_desc[num].name, "Convert SP to HP");
 #endif
 
                power_desc[num].level = 25;
@@ -2485,12 +2521,12 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¹½¤¨¤ë");
 #else
-               strcpy(power_desc[num].name, "asuume a posture");
+               strcpy(power_desc[num].name, "Assume a Posture");
 #endif
 
                power_desc[num].level = 25;
                power_desc[num].cost = 0;
-               power_desc[num].fail = 100 - racial_chance(20, A_DEX, 0);
+               power_desc[num].fail = 100 - racial_chance(25, A_DEX, 0);
                power_desc[num++].number = -3;
 #ifdef JP
 strcpy(power_desc[num].name, "É´Îö·ý");
@@ -2500,7 +2536,7 @@ strcpy(power_desc[num].name, "ɴ
 
                power_desc[num].level = 30;
                power_desc[num].cost = 30;
-               power_desc[num].fail = 100 - racial_chance(20, A_STR, 20);
+               power_desc[num].fail = 100 - racial_chance(30, A_STR, 20);
                power_desc[num++].number = -4;
                break;
        }
@@ -2524,7 +2560,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¼Ì¿¿»£±Æ");
 #else
-               strcpy(power_desc[num].name, "take a photograph");
+               strcpy(power_desc[num].name, "Take a Photograph");
 #endif
 
                power_desc[num].level = 1;
@@ -2562,7 +2598,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "À¸Êª»ÙÇÛ");
 #else
-               strcpy(power_desc[num].name, "dominate a living thing");
+               strcpy(power_desc[num].name, "Dominate a Living Thing");
 #endif
 
                power_desc[num].level = 1;
@@ -2572,7 +2608,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¿¿¡¦À¸Êª»ÙÇÛ");
 #else
-               strcpy(power_desc[num].name, "dominate living things");
+               strcpy(power_desc[num].name, "Dominate Living Things");
 #endif
 
                power_desc[num].level = 30;
@@ -2586,7 +2622,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÃÆ/Ìð¤ÎÀ½Â¤");
 #else
-               strcpy(power_desc[num].name, "create ammo");
+               strcpy(power_desc[num].name, "Create Ammo");
 #endif
 
                power_desc[num].level = 1;
@@ -2600,7 +2636,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ËâÎϤμè¤ê¹þ¤ß");
 #else
-               strcpy(power_desc[num].name, "absorb magic");
+               strcpy(power_desc[num].name, "Absorb Magic");
 #endif
 
                power_desc[num].level = 1;
@@ -2614,7 +2650,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "²Î¤ò»ß¤á¤ë");
 #else
-               strcpy(power_desc[num].name, "stop singing");
+               strcpy(power_desc[num].name, "Stop Singing");
 #endif
 
                power_desc[num].level = 1;
@@ -2632,8 +2668,8 @@ strcpy(power_desc[num].name, "Ϣ³
 #endif
 
                power_desc[num].level = 48;
-               power_desc[num].cost = 60;
-               power_desc[num].fail = 100 - racial_chance(48, A_INT, 25);
+               power_desc[num].cost = 20;
+               power_desc[num].fail = 100 - racial_chance(48, A_INT, 0);
                power_desc[num++].number = -3;
                break;
        }
@@ -2652,7 +2688,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "·¿");
 #else
-               strcpy(power_desc[num].name, "assume a posture");
+               strcpy(power_desc[num].name, "Assume a Posture");
 #endif
 
                power_desc[num].level = 25;
@@ -2692,16 +2728,6 @@ strcpy(power_desc[num].name, "
        case CLASS_BERSERKER:
        {
 #ifdef JP
-strcpy(power_desc[num].name, "¶õÊ¢½¼Â­");
-#else
-               strcpy(power_desc[num].name, "satisfy hunger");
-#endif
-
-               power_desc[num].level = 5;
-               power_desc[num].cost = 5;
-               power_desc[num].fail = 100 - racial_chance(5, A_DEX, 10);
-               power_desc[num++].number = -3;
-#ifdef JP
 strcpy(power_desc[num].name, "µ¢´Ô");
 #else
                strcpy(power_desc[num].name, "Recall");
@@ -2710,7 +2736,7 @@ strcpy(power_desc[num].name, "
                power_desc[num].level = 10;
                power_desc[num].cost = 10;
                power_desc[num].fail = 100 - racial_chance(10, A_DEX, 20);
-               power_desc[num++].number = -4;
+               power_desc[num++].number = -3;
                break;
        }
        case CLASS_MIRROR_MASTER:
@@ -2718,7 +2744,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶À³ä¤ê");
 #else
-               strcpy(power_desc[num].name, "break mirrors");
+               strcpy(power_desc[num].name, "Break Mirrors");
 #endif
 
                power_desc[num].level = 1;
@@ -2728,7 +2754,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÀÅ¿å");
 #else
-               strcpy(power_desc[num].name, "Clear mind");
+               strcpy(power_desc[num].name, "Mirror Concentration");
 #endif
 
                power_desc[num].level = 30;
@@ -2783,7 +2809,7 @@ strcpy(power_desc[0].name, "(
 #ifdef JP
 sprintf(power_desc[num].name, "ÃϹö/²Ð±ê¤Î¥Ö¥ì¥¹ (¥À¥á¡¼¥¸ %d)", lvl * 3);
 #else
-                       sprintf(power_desc[num].name, "nether or fire breath (dam %d)", lvl * 3);
+                       sprintf(power_desc[num].name, "Nether or Fire Breath (dam %d)", lvl * 3);
 #endif
 
                        power_desc[num].level = 15;
@@ -2795,7 +2821,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "À¸Ì¿Îϵۼý");
 #else
-                       strcpy(power_desc[num].name, "drain life");
+                       strcpy(power_desc[num].name, "Drain Life");
 #endif
 
                        power_desc[num].level = 2;
@@ -2813,7 +2839,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥É¥¢¤Èæ« ´¶ÃÎ");
 #else
-                       strcpy(power_desc[num].name, "detect doors+traps");
+                       strcpy(power_desc[num].name, "Detect Doors+Traps");
 #endif
 
                        power_desc[num].level = 5;
@@ -2825,7 +2851,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥É¥¢¤Èæ« ´¶ÃÎ");
 #else
-                       strcpy(power_desc[num].name, "detect doors+traps");
+                       strcpy(power_desc[num].name, "Detect Doors+Traps");
 #endif
 
                        power_desc[num].level = 10;
@@ -2837,7 +2863,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¿©ÎÈÀ¸À®");
 #else
-                       strcpy(power_desc[num].name, "create food");
+                       strcpy(power_desc[num].name, "Create Food");
 #endif
 
                        power_desc[num].level = 15;
@@ -2861,7 +2887,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶²Éݽüµî");
 #else
-                       strcpy(power_desc[num].name, "remove fear");
+                       strcpy(power_desc[num].name, "Remove Fear");
 #endif
 
                        power_desc[num].level = 3;
@@ -2873,7 +2899,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶¸Àï»Î²½");
 #else
-                       strcpy(power_desc[num].name, "berserk");
+                       strcpy(power_desc[num].name, "Berserk");
 #endif
 
                        power_desc[num].level = 10;
@@ -2885,7 +2911,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶¸Àï»Î²½");
 #else
-                       strcpy(power_desc[num].name, "berserk");
+                       strcpy(power_desc[num].name, "Berserk");
 #endif
 
                        power_desc[num].level = 8;
@@ -2919,7 +2945,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Çúȯ¤Î¥ë¡¼¥ó");
 #else
-                       strcpy(power_desc[num].name, "explosive rune");
+                       strcpy(power_desc[num].name, "Explosive Rune");
 #endif
 
                        power_desc[num].level = 25;
@@ -2931,7 +2957,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "´äÀÐÍϲò");
 #else
-                       strcpy(power_desc[num].name, "stone to mud");
+                       strcpy(power_desc[num].name, "Stone to Mud");
 #endif
 
                        power_desc[num].level = 20;
@@ -2943,7 +2969,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥¹¥­¥ã¥ó¡¦¥â¥ó¥¹¥¿¡¼");
 #else
-                       strcpy(power_desc[num].name, "probing");
+                       strcpy(power_desc[num].name, "Probing");
 #endif
 
                        power_desc[num].level = 15;
@@ -2955,7 +2981,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "´äÀÐÅꤲ¡Ê¥À¥á¡¼¥¸ %d¡Ë", (3 * lvl) / 2);
 #else
-                       sprintf(power_desc[num].name, "throw boulder (dam %d)", (3 * lvl) / 2);
+                       sprintf(power_desc[num].name, "Throw Boulder (dam %d)", (3 * lvl) / 2);
 #endif
 
                        power_desc[num].level = 20;
@@ -2967,7 +2993,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥â¥ó¥¹¥¿¡¼¶²¹²");
 #else
-                       strcpy(power_desc[num].name, "scare monster");
+                       strcpy(power_desc[num].name, "Scare Monster");
 #endif
 
                        power_desc[num].level = 15;
@@ -2979,7 +3005,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥â¥ó¥¹¥¿¡¼¶²¹²");
 #else
-                       strcpy(power_desc[num].name, "scare monster");
+                       strcpy(power_desc[num].name, "Scare Monster");
 #endif
 
                        power_desc[num].level = 4;
@@ -2991,7 +3017,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "»À¤ÎÂà(¥À¥á¡¼¥¸ %d)", lvl);
 #else
-                       sprintf(power_desc[num].name, "spit acid (dam %d)", lvl);
+                       sprintf(power_desc[num].name, "Spit Acid (dam %d)", lvl);
 #endif
 
                        power_desc[num].level = 9;
@@ -3003,7 +3029,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "ÆǤΥÀ¡¼¥Ä (¥À¥á¡¼¥¸ %d)", lvl);
 #else
-                       sprintf(power_desc[num].name, "poison dart (dam %d)", lvl);
+                       sprintf(power_desc[num].name, "Poison Dart (dam %d)", lvl);
 #endif
 
                        power_desc[num].level = 12;
@@ -3015,7 +3041,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë (¥À¥á¡¼¥¸ %dd%d)", 3 + ((lvl - 1) / 5), 4);
 #else
-                       sprintf(power_desc[num].name, "magic missile (dm %dd%d)", 3 + ((lvl - 1) / 5), 4);
+                       sprintf(power_desc[num].name, "Magic Missile (dm %dd%d)", 3 + ((lvl - 1) / 5), 4);
 #endif
 
                        power_desc[num].level = 2;
@@ -3027,7 +3053,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "¥Ö¥ì¥¹ (¥À¥á¡¼¥¸ %d)", lvl * 2);
 #else
-                       sprintf(power_desc[num].name, "breath weapon (dam %d)", lvl * 2);
+                       sprintf(power_desc[num].name, "Breath Weapon (dam %d)", lvl * 2);
 #endif
 
                        power_desc[num].level = 1;
@@ -3039,7 +3065,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "Àº¿À¹¶·â (¥À¥á¡¼¥¸ %d)", lvl);
 #else
-                       sprintf(power_desc[num].name, "mind blast (dam %d)", lvl);
+                       sprintf(power_desc[num].name, "Mind Blast (dam %d)", lvl);
 #endif
 
                        power_desc[num].level = 15;
@@ -3051,7 +3077,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 sprintf(power_desc[num].name, "¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È/¥Ü¡¼¥ë (¥À¥á¡¼¥¸ %d)", lvl);
 #else
-                       sprintf(power_desc[num].name, "fire bolt/ball (dam %d)", lvl);
+                       sprintf(power_desc[num].name, "Fire Bolt/Ball (dam %d)", lvl);
 #endif
 
                        power_desc[num].level = 9;
@@ -3063,7 +3089,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "È©Àв½ (´ü´Ö 1d20+30)");
 #else
-                       strcpy(power_desc[num].name, "stone skin (dur 1d20+30)");
+                       strcpy(power_desc[num].name, "Stone Skin (dur 1d20+30)");
 #endif
 
                        power_desc[num].level = 20;
@@ -3076,7 +3102,7 @@ strcpy(power_desc[num].name, "ȩ
 #ifdef JP
 strcpy(power_desc[num].name, "·Ð¸³ÃÍÉü³è");
 #else
-                       strcpy(power_desc[num].name, "restore life");
+                       strcpy(power_desc[num].name, "Restore Life");
 #endif
 
                        power_desc[num].level = 30;
@@ -3088,7 +3114,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "À¸Ì¿Îϵۼý");
 #else
-                       strcpy(power_desc[num].name, "drain life");
+                       strcpy(power_desc[num].name, "Drain Life");
 #endif
 
                        power_desc[num].level = 2;
@@ -3100,7 +3126,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "̲¤êÊ´");
 #else
-                       strcpy(power_desc[num].name, "sleeping dust");
+                       strcpy(power_desc[num].name, "Sleeping Dust");
 #endif
 
                        power_desc[num].level = 12;
@@ -3112,7 +3138,7 @@ strcpy(power_desc[num].name, "̲
 #ifdef JP
 sprintf(power_desc[num].name, "ÃϹö/²Ð±ê¤Î¥Ö¥ì¥¹ (¥À¥á¡¼¥¸ %d)", lvl * 3);
 #else
-                       sprintf(power_desc[num].name, "nether or fire breath (dam %d)", lvl * 3);
+                       sprintf(power_desc[num].name, "Nether or Fire Breath (dam %d)", lvl * 3);
 #endif
 
                        power_desc[num].level = 15;
@@ -3124,7 +3150,7 @@ sprintf(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "²£¤Ë¿­¤Ó¤ë");
 #else
-                       strcpy(power_desc[num].name, "expand horizontally (dur 30+1d20)");
+                       strcpy(power_desc[num].name, "Expand Horizontally (dur 30+1d20)");
 #endif
 
                        power_desc[num].level = 20;
@@ -3138,7 +3164,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥ì¥¤¥¬¥ó");
 #else
-                               strcpy(power_desc[num].name, "ray gun");
+                               strcpy(power_desc[num].name, "Ray Gun");
 #endif
 
                                power_desc[num].level = 1;
@@ -3150,7 +3176,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ö¥é¥¹¥¿¡¼");
 #else
-                               strcpy(power_desc[num].name, "blaster");
+                               strcpy(power_desc[num].name, "Blaster");
 #endif
 
                                power_desc[num].level = 10;
@@ -3162,7 +3188,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ð¥º¡¼¥«");
 #else
-                               strcpy(power_desc[num].name, "bazooka");
+                               strcpy(power_desc[num].name, "Bazooka");
 #endif
 
                                power_desc[num].level = 25;
@@ -3174,7 +3200,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ó¡¼¥à¥­¥ã¥Î¥ó");
 #else
-                               strcpy(power_desc[num].name, "beam cannon");
+                               strcpy(power_desc[num].name, "Beam Cannon");
 #endif
 
                                power_desc[num].level = 35;
@@ -3186,7 +3212,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥í¥±¥Ã¥È");
 #else
-                               strcpy(power_desc[num].name, "rocket");
+                               strcpy(power_desc[num].name, "Rocket");
 #endif
 
                                power_desc[num].level = 45;
@@ -3209,7 +3235,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "»À¤ÎÂÃ");
 #else
-                       strcpy(power_desc[num].name, "spit acid");
+                       strcpy(power_desc[num].name, "Spit Acid");
 #endif
 
                        power_desc[num].level = 9;
@@ -3223,7 +3249,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "±ê¤Î¥Ö¥ì¥¹");
 #else
-                       strcpy(power_desc[num].name, "fire breath");
+                       strcpy(power_desc[num].name, "Fire Breath");
 #endif
 
                        power_desc[num].level = 20;
@@ -3237,7 +3263,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ºÅ̲âˤß");
 #else
-                       strcpy(power_desc[num].name, "hypnotic gaze");
+                       strcpy(power_desc[num].name, "Hypnotic Gaze");
 #endif
 
                        power_desc[num].level = 12;
@@ -3251,7 +3277,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Ç°Æ°ÎÏ");
 #else
-                       strcpy(power_desc[num].name, "telekinesis");
+                       strcpy(power_desc[num].name, "Telekinesis");
 #endif
 
                        power_desc[num].level = 9;
@@ -3265,7 +3291,7 @@ strcpy(power_desc[num].name, "ǰư
 #ifdef JP
 strcpy(power_desc[num].name, "¥Æ¥ì¥Ý¡¼¥È");
 #else
-                       strcpy(power_desc[num].name, "teleport");
+                       strcpy(power_desc[num].name, "Teleport");
 #endif
 
                        power_desc[num].level = 7;
@@ -3279,7 +3305,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Àº¿À¹¶·â");
 #else
-                       strcpy(power_desc[num].name, "mind blast");
+                       strcpy(power_desc[num].name, "Mind Blast");
 #endif
 
                        power_desc[num].level = 5;
@@ -3293,7 +3319,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Êü¼Íǽ");
 #else
-                       strcpy(power_desc[num].name, "emit radiation");
+                       strcpy(power_desc[num].name, "Emit Radiation");
 #endif
 
                        power_desc[num].level = 15;
@@ -3307,7 +3333,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "µÛ·ì¥É¥ì¥¤¥ó");
 #else
-                       strcpy(power_desc[num].name, "vampiric drain");
+                       strcpy(power_desc[num].name, "Vampiric Drain");
 #endif
 
                        power_desc[num].level = 2;
@@ -3321,7 +3347,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶â°Ó̳Ð");
 #else
-                       strcpy(power_desc[num].name, "smell metal");
+                       strcpy(power_desc[num].name, "Smell Metal");
 #endif
 
                        power_desc[num].level = 3;
@@ -3335,7 +3361,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Ũ½­Ó̳Ð");
 #else
-                       strcpy(power_desc[num].name, "smell monsters");
+                       strcpy(power_desc[num].name, "Smell Monsters");
 #endif
 
                        power_desc[num].level = 5;
@@ -3349,7 +3375,7 @@ strcpy(power_desc[num].name, "Ũ
 #ifdef JP
 strcpy(power_desc[num].name, "¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È");
 #else
-                       strcpy(power_desc[num].name, "blink");
+                       strcpy(power_desc[num].name, "Blink");
 #endif
 
                        power_desc[num].level = 3;
@@ -3363,7 +3389,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "´ä¿©¤¤");
 #else
-                       strcpy(power_desc[num].name, "eat rock");
+                       strcpy(power_desc[num].name, "Eat Rock");
 #endif
 
                        power_desc[num].level = 8;
@@ -3377,7 +3403,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "°ÌÃÖ¸ò´¹");
 #else
-                       strcpy(power_desc[num].name, "swap position");
+                       strcpy(power_desc[num].name, "Swap Position");
 #endif
 
                        power_desc[num].level = 15;
@@ -3391,7 +3417,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶«¤Ó");
 #else
-                       strcpy(power_desc[num].name, "shriek");
+                       strcpy(power_desc[num].name, "Shriek");
 #endif
 
                        power_desc[num].level = 20;
@@ -3405,7 +3431,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¾ÈÌÀ");
 #else
-                       strcpy(power_desc[num].name, "illuminate");
+                       strcpy(power_desc[num].name, "Illuminate");
 #endif
 
                        power_desc[num].level = 3;
@@ -3419,7 +3445,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¼ö¤¤´¶ÃÎ");
 #else
-                       strcpy(power_desc[num].name, "detect curses");
+                       strcpy(power_desc[num].name, "Detect Curses");
 #endif
 
                        power_desc[num].level = 7;
@@ -3433,7 +3459,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¶¸Àï»Î²½");
 #else
-                       strcpy(power_desc[num].name, "berserk");
+                       strcpy(power_desc[num].name, "Berserk");
 #endif
 
                        power_desc[num].level = 8;
@@ -3447,7 +3473,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÊÑ¿È");
 #else
-                       strcpy(power_desc[num].name, "polymorph");
+                       strcpy(power_desc[num].name, "Polymorph");
 #endif
 
                        power_desc[num].level = 18;
@@ -3461,7 +3487,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥ß¥À¥¹¤Î¼ê");
 #else
-                       strcpy(power_desc[num].name, "midas touch");
+                       strcpy(power_desc[num].name, "Midas Touch");
 #endif
 
                        power_desc[num].level = 10;
@@ -3475,7 +3501,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥«¥ÓȯÀ¸");
 #else
-                       strcpy(power_desc[num].name, "grow mold");
+                       strcpy(power_desc[num].name, "Grow Mold");
 #endif
 
                        power_desc[num].level = 1;
@@ -3489,7 +3515,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥¨¥ì¥á¥ó¥ÈÂÑÀ­");
 #else
-                       strcpy(power_desc[num].name, "resist elements");
+                       strcpy(power_desc[num].name, "Resist Elements");
 #endif
 
                        power_desc[num].level = 10;
@@ -3503,7 +3529,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ÃÏ¿Ì");
 #else
-                       strcpy(power_desc[num].name, "earthquake");
+                       strcpy(power_desc[num].name, "Earthquake");
 #endif
 
                        power_desc[num].level = 12;
@@ -3517,7 +3543,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ËâÎÏ¿©¤¤");
 #else
-                       strcpy(power_desc[num].name, "eat magic");
+                       strcpy(power_desc[num].name, "Eat Magic");
 #endif
 
                        power_desc[num].level = 17;
@@ -3531,7 +3557,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "ËâÎÏ´¶ÃÎ");
 #else
-                       strcpy(power_desc[num].name, "weigh magic");
+                       strcpy(power_desc[num].name, "Weigh Magic");
 #endif
 
                        power_desc[num].level = 6;
@@ -3545,7 +3571,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Áý¿£ÁË»ß");
 #else
-                       strcpy(power_desc[num].name, "sterilize");
+                       strcpy(power_desc[num].name, "Sterilize");
 #endif
 
                        power_desc[num].level = 12;
@@ -3559,7 +3585,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥Ò¥Ã¥È¡õ¥¢¥¦¥§¥¤");
 #else
-                       strcpy(power_desc[num].name, "panic hit");
+                       strcpy(power_desc[num].name, "Panic Hit");
 #endif
 
                        power_desc[num].level = 10;
@@ -3573,7 +3599,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "âÁÏÇ");
 #else
-                       strcpy(power_desc[num].name, "dazzle");
+                       strcpy(power_desc[num].name, "Dazzle");
 #endif
 
                        power_desc[num].level = 7;
@@ -3587,7 +3613,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥ì¡¼¥¶¡¼¡¦¥¢¥¤");
 #else
-                       strcpy(power_desc[num].name, "laser eye");
+                       strcpy(power_desc[num].name, "Laser Eye");
 #endif
 
                        power_desc[num].level = 7;
@@ -3601,7 +3627,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "µ¢´Ô");
 #else
-                       strcpy(power_desc[num].name, "recall");
+                       strcpy(power_desc[num].name, "Recall");
 #endif
 
                        power_desc[num].level = 17;
@@ -3615,7 +3641,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¼Ù°­¾ÃÌÇ");
 #else
-                       strcpy(power_desc[num].name, "banish evil");
+                       strcpy(power_desc[num].name, "Banish Evil");
 #endif
 
                        power_desc[num].level = 25;
@@ -3629,7 +3655,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "Åà·ë¤Î¼ê");
 #else
-                       strcpy(power_desc[num].name, "cold touch");
+                       strcpy(power_desc[num].name, "Cold Touch");
 #endif
 
                        power_desc[num].level = 2;
@@ -3643,7 +3669,7 @@ strcpy(power_desc[num].name, "
 #ifdef JP
 strcpy(power_desc[num].name, "¥¢¥¤¥Æ¥àÅꤲ");
 #else
-                       strcpy(power_desc[num].name, "throw object");
+                       strcpy(power_desc[num].name, "Throw Object");
 #endif
 
                        power_desc[num].level = 1;
@@ -3675,9 +3701,9 @@ if (!repeat_pull(&i) || i<0 || i>=num) {
        if (use_menu) screen_save();
         /* Get a spell from the user */
 
-        choice = (always_show_list || use_menu) ? ESCAPE:1;
-        while (!flag)
-        {
+       choice = (always_show_list || use_menu) ? ESCAPE:1;
+       while (!flag)
+       {
                if( choice==ESCAPE ) choice = ' '; 
                else if( !get_com(out_val, &choice, FALSE) )break;