OSDN Git Service

table.c の整理。
[hengband/hengband.git] / src / tables.c
index fc1ef4f..604dae0 100644 (file)
@@ -1119,13 +1119,15 @@ byte adj_chr_chm[] =
  * Rogue         num = 5; mul = 3; div = MAX(40, weapon_weight);
  * Ranger        num = 5; mul = 4; div = MAX(70, weapon_weight);
  * Paladin       num = 5; mul = 4; div = MAX(70, weapon_weight);
- * Kaji          num = 5; mul = 5; div = MAX(150, weapon_weight);
+ * Weaponsmith   num = 5; mul = 5; div = MAX(150, weapon_weight);
  * Warrior-Mage  num = 5; mul = 3; div = MAX(70, weapon_weight);
  * Chaos Warrior num = 5; mul = 4; div = MAX(70, weapon_weight);
  * Monk          num = 5; mul = 3; div = MAX(60, weapon_weight);
  * Tourist       num = 4; mul = 3; div = MAX(100, weapon_weight);
  * Imitator      num = 5; mul = 4; div = MAX(70, weapon_weight);
  * Beastmaster   num = 5; mul = 3; div = MAX(70, weapon_weight);
+ * Cavalry(Ride) num = 5; mul = 4; div = MAX(70, weapon_weight);
+ * Cavalry(Walk) num = 5; mul = 3; div = MAX(100, weapon_weight);
  * Sorcerer      num = 1; mul = 1; div = MAX(1, weapon_weight);
  * Archer        num = 4; mul = 2; div = MAX(70, weapon_weight);
  * Magic eater   num = 4; mul = 2; div = MAX(70, weapon_weight);
@@ -1168,6 +1170,7 @@ arena_type arena_info[MAX_ARENA_MONS + 2] =
 {
        { MON_NOBORTA,       0,         0                             },
        { MON_MORI_TROLL,    0,         0                             },
+       { MON_LION_HEART,    0,         0                             },
        { MON_TIGER,         0,         0                             },
        { MON_DRUID,         0,         0                             },
        { MON_HILL_GIANT,    TV_POTION, SV_POTION_SPEED               },
@@ -2168,151 +2171,66 @@ owner_type owners[MAX_STORES][MAX_OWNERS] =
                { "¥´¥Ö¥ê¥ó¤Î¥Ò¥¹¥È¡¼¥¢",       20000,  250,  150,  10,   5,  RACE_HALF_ORC},
                { "¥Õ¥§¥ì¥ó¥®¿Í¥¯¥¢¡¼¥¯",           30000,  250,  150,  10,   5,  RACE_HUMAN},
                { "¸øÀµ¤Ê¤ë(?)¥È¥Ã¥Ô",                     30000,  250,  150,  10,   5,  RACE_ELF},
+               { "»à¿Í¥ô¥¡¥Ã¥µ",             20000,  250, 150, 10,  5, RACE_ZOMBIE},
+               { "΢ÀÚ¤ê¼Ô¥«¥¤¥ó",          20000,  250, 150, 10,  5, RACE_VAMPIRE},
+               { "¥Ö¥Ü¥Ë¥«¥¹",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
+               { "¥³¡¼¥×¥¹¥é¥¤¥È",           30000,  250, 150, 10,  5, RACE_SPECTRE},
+               { "·ì¤Ëµ²¤¨¤·¥Ñ¥ê¥Ã¥·¥å",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
+               { "¥ô¥¡¥¤¥ë",          20000,  250, 150, 10,  5, RACE_SKELETON},
+               { "¿®Íê¤Î¥×¥ì¥ó¥Æ¥£¥¹",          30000,  250, 150, 10,  5, RACE_SKELETON},
+               { "¿Í´Ö»¦¤·¤Î¥°¥ê¥¨¥é",           30000,  250, 150, 10,  5, RACE_IMP},
+               { "¥¨¥ó¥¸¥§¥ë",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
+               { "¿åËĤì¥Õ¥í¥Ä¥¡¥à",          20000,  250, 150, 10,  5, RACE_ZOMBIE},
+               { "¥Ë¡¼¥ô¥¡¥ë",          30000,  250, 150, 10,  5, RACE_VAMPIRE},
+               { "ÌÀ¤ë¤¤¥¢¥Ê¥¹¥¿¥·¥¢",           30000,  250, 150, 10,  5, RACE_SPECTRE},
+               { "»àÎî½Ñ»Õ¥Á¥ã¥ê¥Æ¥£¡¼", 20000,  250, 150, 10,  5, RACE_DARK_ELF},
+               { "¥Ü¥¯¥µ¡¼¤Î¥×¥°¥Ê¥·¥ª¥¹",          20000,  250, 150, 10,  5, RACE_HALF_ORC},
+               { "¹¬±¿¤Ê¥Õ¥Ã¥È¥½¥¢",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
+               { "¸÷»Ø¤Î¥·¥É¥ê¥¢",           30000,  250, 150, 10,  5, RACE_HUMAN},
+               { "¼êÉʻեꥢ¥½¡¼",                 20000,  250, 150, 10,  5, RACE_HOBBIT},
+               { "¤ä¤ê¤¯¤ê¾å¼ê¤Î¥¸¥ã¥Ê¥Ã¥«",          20000,  250, 150, 10,  5, RACE_GNOME},
+               { "°­ÅÞ¥·¡¼¥Ê",          30000,  250, 150, 10,  5, RACE_GNOME},
+               { "ÂçÄÞ¥¢¥ë¥Ë¥Ã¥­",           30000,  250, 150, 10,  5, RACE_DRACONIAN},
+               { "ÉÏ˳¥Á¥ã¥¨¥¢¥ó¥É",                 20000,  250, 150, 10,  5, RACE_HUMAN},
+               { "»³Â±¥¢¥Õ¥¡¡¼¥É¡¼¥Õ",          20000,  250, 150, 10,  5, RACE_BARBARIAN},
+               { "¶¯Íߥ饶¥¯¥¹¥ë",          30000,  250, 150, 10,  5, RACE_MIND_FLAYER},
+               { "¥Õ¥¡¥é¥ì¥¦¥£¥ó",           30000,  250, 150, 10,  5, RACE_SPRITE},
+               { "¤·¤ï¤·¤ï¥ô¥©¥¹¡¼¥ë",                 20000,  250, 150, 10,  5, RACE_NIBELUNG},
+               { "¥Ï¥ó¥µ¥à¤Ê¥¢¥é¥ª¡¼¥É",          20000,  250, 150, 10,  5, RACE_AMBERITE},
+               { "É餱¸¤¥»¥é¥É¥Õ¥ê¥É",          30000,  250, 150, 10,  5, RACE_HUMAN},
+               { "ÊÒ­¤Î¥¨¥ë¡¼¥í",           30000,  250, 150, 10,  5, RACE_HALF_OGRE},
 #else
                { "Gary Gygaz",                 20000,  250, 150, 10,  5, RACE_HALF_TROLL},
                { "Histor the Goblin",          20000,  250, 150, 10,  5, RACE_HALF_ORC},
                { "Quark the Ferengi",          30000,  250, 150, 10,  5, RACE_DWARF},
                { "Topi the Fair(?)",           30000,  250, 150, 10,  5, RACE_HUMAN},
-#endif
-
-#ifdef JP
-{ "»à¿Í¥ô¥¡¥Ã¥µ",             20000,  250, 150, 10,  5, RACE_ZOMBIE},
-#else
                { "Vhassa the Dead",             20000,  250, 150, 10,  5, RACE_ZOMBIE},
-#endif
-#ifdef JP
-{ "΢ÀÚ¤ê¼Ô¥«¥¤¥ó",          20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#else
                { "Kyn the Treacherous",          20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#endif
-#ifdef JP
-{ "¥Ö¥Ü¥Ë¥«¥¹",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
-#else
                { "Bubonicus",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
-#endif
-#ifdef JP
-{ "¥³¡¼¥×¥¹¥é¥¤¥È",           30000,  250, 150, 10,  5, RACE_SPECTRE},
-#else
                { "Corpselight",           30000,  250, 150, 10,  5, RACE_SPECTRE},
-#endif
-#ifdef JP
-{ "·ì¤Ëµ²¤¨¤·¥Ñ¥ê¥Ã¥·¥å",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#else
                { "Parrish the Bloodthirsty",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#endif
-#ifdef JP
-{ "¥ô¥¡¥¤¥ë",          20000,  250, 150, 10,  5, RACE_SKELETON},
-#else
                { "Vile",          20000,  250, 150, 10,  5, RACE_SKELETON},
-#endif
-#ifdef JP
-{ "¿®Íê¤Î¥×¥ì¥ó¥Æ¥£¥¹",          30000,  250, 150, 10,  5, RACE_SKELETON},
-#else
                { "Prentice the Trusted",          30000,  250, 150, 10,  5, RACE_SKELETON},
-#endif
-#ifdef JP
-{ "¿Í´Ö»¦¤·¤Î¥°¥ê¥¨¥é",           30000,  250, 150, 10,  5, RACE_IMP},
-#else
                { "Griella Humanslayer",           30000,  250, 150, 10,  5, RACE_IMP},
-#endif
-#ifdef JP
-{ "¥¨¥ó¥¸¥§¥ë",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#else
                { "Angel",                 20000,  250, 150, 10,  5, RACE_VAMPIRE},
-#endif
-#ifdef JP
-{ "¿åËĤì¥Õ¥í¥Ä¥¡¥à",          20000,  250, 150, 10,  5, RACE_ZOMBIE},
-#else
                { "Flotsam the Bloated",          20000,  250, 150, 10,  5, RACE_ZOMBIE},
-#endif
-#ifdef JP
-{ "¥Ë¡¼¥ô¥¡¥ë",          30000,  250, 150, 10,  5, RACE_VAMPIRE},
-#else
                { "Nieval",          30000,  250, 150, 10,  5, RACE_VAMPIRE},
-#endif
-#ifdef JP
-{ "ÌÀ¤ë¤¤¥¢¥Ê¥¹¥¿¥·¥¢",           30000,  250, 150, 10,  5, RACE_SPECTRE},
-#else
                { "Anastasia the Luminous",           30000,  250, 150, 10,  5, RACE_SPECTRE},
-#endif
-#ifdef JP
-{ "»àÎî½Ñ»Õ¥Á¥ã¥ê¥Æ¥£¡¼", 20000,  250, 150, 10,  5, RACE_DARK_ELF},
-#else
                { "Charity the Necromancer", 20000,  250, 150, 10,  5, RACE_DARK_ELF},
-#endif
-#ifdef JP
-{ "¥Ü¥¯¥µ¡¼¤Î¥×¥°¥Ê¥·¥ª¥¹",          20000,  250, 150, 10,  5, RACE_HALF_ORC},
-#else
                { "Pugnacious the Pugilist",          20000,  250, 150, 10,  5, RACE_HALF_ORC},
-#endif
-#ifdef JP
-{ "¹¬±¿¤Ê¥Õ¥Ã¥È¥½¥¢",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
-#else
                { "Footsore the Lucky",          30000,  250, 150, 10,  5, RACE_BEASTMAN},
-#endif
-#ifdef JP
-{ "¸÷»Ø¤Î¥·¥É¥ê¥¢",           30000,  250, 150, 10,  5, RACE_HUMAN},
-#else
                { "Sidria Lighfingered",           30000,  250, 150, 10,  5, RACE_HUMAN},
-#endif
-#ifdef JP
-{ "¼êÉʻեꥢ¥½¡¼",                 20000,  250, 150, 10,  5, RACE_HOBBIT},
-#else
                { "Riatho the Juggler",                 20000,  250, 150, 10,  5, RACE_HOBBIT},
-#endif
-#ifdef JP
-{ "¤ä¤ê¤¯¤ê¾å¼ê¤Î¥¸¥ã¥Ê¥Ã¥«",          20000,  250, 150, 10,  5, RACE_GNOME},
-#else
                { "Janaaka the Shifty",          20000,  250, 150, 10,  5, RACE_GNOME},
-#endif
-#ifdef JP
-{ "°­ÅÞ¥·¡¼¥Ê",          30000,  250, 150, 10,  5, RACE_GNOME},
-#else
                { "Cina the Rogue",          30000,  250, 150, 10,  5, RACE_GNOME},
-#endif
-#ifdef JP
-{ "ÂçÄÞ¥¢¥ë¥Ë¥Ã¥­",           30000,  250, 150, 10,  5, RACE_DRACONIAN},
-#else
                { "Arunikki Greatclaw",           30000,  250, 150, 10,  5, RACE_DRACONIAN},
-#endif
-#ifdef JP
-{ "ÉÏ˳¥Á¥ã¥¨¥¢¥ó¥É",                 20000,  250, 150, 10,  5, RACE_HUMAN},
-#else
                { "Chaeand the Poor",                 20000,  250, 150, 10,  5, RACE_HUMAN},
-#endif
-#ifdef JP
-{ "»³Â±¥¢¥Õ¥¡¡¼¥É¡¼¥Õ",          20000,  250, 150, 10,  5, RACE_BARBARIAN},
-#else
                { "Afardorf the Brigand",          20000,  250, 150, 10,  5, RACE_BARBARIAN},
-#endif
-#ifdef JP
-{ "¶¯Íߥ饶¥¯¥¹¥ë",          30000,  250, 150, 10,  5, RACE_MIND_FLAYER},
-#else
                { "Lathaxl the Greedy",          30000,  250, 150, 10,  5, RACE_MIND_FLAYER},
-#endif
-#ifdef JP
-{ "¥Õ¥¡¥é¥ì¥¦¥£¥ó",           30000,  250, 150, 10,  5, RACE_SPRITE},
-#else
                { "Falarewyn",           30000,  250, 150, 10,  5, RACE_SPRITE},
-#endif
-#ifdef JP
-{ "¤·¤ï¤·¤ï¥ô¥©¥¹¡¼¥ë",                 20000,  250, 150, 10,  5, RACE_NIBELUNG},
-#else
                { "Vosur the Wrinkled",                 20000,  250, 150, 10,  5, RACE_NIBELUNG},
-#endif
-#ifdef JP
-{ "¥Ï¥ó¥µ¥à¤Ê¥¢¥é¥ª¡¼¥É",          20000,  250, 150, 10,  5, RACE_AMBERITE},
-#else
                { "Araord the Handsome",          20000,  250, 150, 10,  5, RACE_AMBERITE},
-#endif
-#ifdef JP
-{ "É餱¸¤¥»¥é¥É¥Õ¥ê¥É",          30000,  250, 150, 10,  5, RACE_HUMAN},
-#else
                { "Theradfrid the Loser",          30000,  250, 150, 10,  5, RACE_HUMAN},
-#endif
-#ifdef JP
-{ "ÊÒ­¤Î¥¨¥ë¡¼¥í",           30000,  250, 150, 10,  5, RACE_HALF_OGRE},
-#else
                { "One-Legged Eroolo",           30000,  250, 150, 10,  5, RACE_HALF_OGRE},
 #endif
        },
@@ -2839,7 +2757,7 @@ player_race race_info[MAX_RACES] =
                72,  6, 180, 25,
                66,  4, 150, 20,
                0,
-               0x7FFFFFF,
+               0xFFFFFFF,
        },
        {
 #ifdef JP
@@ -2854,7 +2772,7 @@ player_race race_info[MAX_RACES] =
                66,  6, 130, 15,
                62,  6, 100, 10,
                2,
-               0x677E7FF,
+               0xE77E7FF,
        },
        {
 #ifdef JP
@@ -2869,7 +2787,7 @@ player_race race_info[MAX_RACES] =
                60,  4, 100,  6,
                54,  4, 80,  6,
                3,
-               0x677E75B,
+               0xE77E75B,
 
        },
        {
@@ -2885,7 +2803,7 @@ player_race race_info[MAX_RACES] =
                36,  3, 60,  3,
                33,  3, 50,  3,
                4,
-               0x76FFC0B,
+               0xF6FFC0B,
        },
        {
 #ifdef JP
@@ -2900,7 +2818,7 @@ player_race race_info[MAX_RACES] =
                42,  3, 90,  6,
                39,  3, 75,  3,
                4,
-               0x767D60F,
+               0xF67D60F,
        },
        {
 #ifdef JP
@@ -2930,7 +2848,7 @@ player_race race_info[MAX_RACES] =
                66,  1, 150,  5,
                62,  1, 120,  5,
                3,
-               0x5D8818D,
+               0xDD8818D,
        },
        {
 #ifdef JP
@@ -2960,7 +2878,7 @@ player_race race_info[MAX_RACES] =
                82, 5, 190, 20,
                78,  6, 180, 15,
                0,
-               0x7FFF7FF,
+               0xFFFF7FF,
        },
        {
 #ifdef JP
@@ -2975,7 +2893,7 @@ player_race race_info[MAX_RACES] =
                90, 10, 190, 20,
                82, 10, 180, 15,
                4,
-               0x777E75B,
+               0xF77E75B,
        },
        {
 #ifdef JP
@@ -3020,7 +2938,7 @@ player_race race_info[MAX_RACES] =
                100,10, 255, 65,
                80, 10, 240, 64,
                3,
-               0x0880011,
+               0x8880011,
        },
        {
 #ifdef JP
@@ -3125,7 +3043,7 @@ player_race race_info[MAX_RACES] =
                60,  4, 100,  6,
                54,  4, 80,  6,
                5,
-               0x677C7DF,
+               0xE77C7DF,
        },
        {
 #ifdef JP
@@ -3170,7 +3088,7 @@ player_race race_info[MAX_RACES] =
                68,  1, 150,  5,
                64,  1, 120,  5,
                3,
-               0x6B537CB,
+               0xDB537CB,
        },
        {
 #ifdef JP
@@ -3336,7 +3254,7 @@ player_race race_info[MAX_RACES] =
                82, 5, 190, 20,
                78,  6, 180, 15,
                0,
-               0x7FFF7FF,
+               0xFFFF7FF,
        },
        {
 #ifdef JP
@@ -3350,7 +3268,7 @@ player_race race_info[MAX_RACES] =
                 80,  8, 90, 20,
                 73,  8, 80, 15,
                  4,
-               0x633C7DF,
+               0xE33C7DF,
        },
        {
 #ifdef JP
@@ -3365,7 +3283,7 @@ player_race race_info[MAX_RACES] =
                48,  6, 150, 25,
                44,  4, 130, 20,
                0,
-               0x418B7AD,
+               0xC18B7AD,
        },
        {
 #ifdef JP
@@ -3712,6 +3630,18 @@ player_class class_info[MAX_CLASS] =
                15, 10, 10, 0,  0,  0, 25,18,
                2,  20, 40
        },
+
+       {
+#ifdef JP
+               "¥¹¥Ê¥¤¥Ñ¡¼",
+#endif
+               "Sniper",
+
+               { 2, -1, -1, 2, 1, 0},
+               25, 24, 28, 5, 32, 18, 35,  72,
+               12, 10, 10, 0,  0,  0, 12,  28,
+               2, 20, 40,
+       },
 };
 
 player_seikaku seikaku_info[MAX_SEIKAKU] =
@@ -3984,6 +3914,45 @@ magic_type technic_info[NUM_TECHNIC][32] =
                { 45, 130,   0,   0},
                { 50, 255,   0,   0}
        },
+
+       {
+               /* Hex */
+               {  1,  2, 20,   2},
+               {  1,  2, 20,   2},
+               {  3,  2, 30,   3},
+               {  5,  3, 30,   4},
+               {  7,  3, 40,   6},
+               {  8, 10, 60,   8},
+               {  9,  3, 30,  10},
+               { 10,  5, 40,  12},
+
+               { 12,  8, 40,  15},
+               { 12,  9, 35,  15},
+               { 15, 10, 50,  20},
+               { 20, 12, 45,  35},
+               { 25, 15, 50,  50},
+               { 30, 12, 60,  70},
+               { 35, 10, 60,  80},
+               { 40, 16, 70, 100},
+
+               { 15,  8, 20,  20},
+               { 18, 15, 50,  20},
+               { 22, 10, 65,  35},
+               { 25, 28, 70,  50},
+               { 28, 10, 70,  60},
+               { 30, 20, 60,  60},
+               { 36, 22, 70,  80},
+               { 40, 28, 70, 100},
+
+               {  5,  6, 35,   5},
+               { 22, 24, 70,  40},
+               { 25,  2, 65,  50},
+               { 32, 20, 50,  70},
+               { 35, 35, 70,  80},
+               { 38, 32, 70,  90},
+               { 42, 24, 70, 120},
+               { 46, 45, 80, 200}
+       },
 };
 
 
@@ -4021,24 +3990,25 @@ s32b realm_choices1[MAX_CLASS] =
        (CH_LIFE | CH_SORCERY | CH_NATURE |
         CH_CHAOS | CH_DEATH | CH_TRUMP |
         CH_ARCANE | CH_ENCHANT | CH_DAEMON |
-        CH_CRUSADE),                              /* High-Mage */
+        CH_CRUSADE | CH_HEX),                  /* High-Mage */
        (CH_ARCANE),                            /* Tourist */
-       (CH_NONE),                              /* Imitation */
+       (CH_NONE),                              /* Imitator */
        (CH_TRUMP),                             /* Beastmaster */
        (CH_NONE),                              /* Sorcerer */
        (CH_NONE),                              /* Archer */
        (CH_NONE),                              /* Magic eater */
-       (CH_MUSIC),                             /* Harper */
+       (CH_MUSIC),                             /* Bard */
        (CH_NONE),                              /* Red Mage */
        (CH_HISSATSU),                          /* Samurai */
        (CH_LIFE | CH_NATURE | CH_DEATH |
         CH_ENCHANT | CH_CRUSADE),                 /* ForceTrainer */
        (CH_NONE),                              /* Blue Mage */
-       (CH_NONE),                              /* Kihei */
+       (CH_NONE),                              /* Cavalry */
        (CH_NONE),                              /* Berserker */
-       (CH_NONE),                              /* Kaji */
+       (CH_NONE),                              /* Weaponsmith */
        (CH_NONE),                              /* Mirror-master */
        (CH_NONE),                              /* Ninja */
+       (CH_NONE),                              /* Sniper */
 };
 
 
@@ -4066,21 +4036,22 @@ s32b realm_choices2[MAX_CLASS] =
        (CH_NONE),                              /* Mindcrafter */
        (CH_NONE),                              /* High-Mage */
        (CH_NONE),                              /* Tourist */
-       (CH_NONE),                              /* Imitation */
+       (CH_NONE),                              /* Imitator */
        (CH_NONE),                              /* Beastmanster */
        (CH_NONE),                              /* Sorcerer */
        (CH_NONE),                              /* Archer */
        (CH_NONE),                              /* Magic eater */
-       (CH_NONE),                              /* Harper */
+       (CH_NONE),                              /* Bard */
        (CH_NONE),                              /* Red Mage */
        (CH_NONE),                              /* Samurai */
        (CH_NONE),                              /* ForceTrainer */
        (CH_NONE),                              /* Blue Mage */
-       (CH_NONE),                              /* Kihei */
+       (CH_NONE),                              /* Cavalry */
        (CH_NONE),                              /* Berserker */
-       (CH_NONE),                              /* Kaji */
+       (CH_NONE),                              /* Weaponsmith */
        (CH_NONE),                              /* Mirror-master */
        (CH_NONE),                              /* Ninja */
+       (CH_NONE),                              /* Sniper */
 };
 
 
@@ -4105,6 +4076,7 @@ cptr realm_names[] =
        "ÉÔÌÀ",
        "²Î",
        "Éð·Ý",
+       "¼ö½Ñ",
        "ÉÔÌÀ"
 };
 #endif
@@ -4133,1034 +4105,10 @@ cptr realm_names[]
        "unknown",
        "Music",
        "Kendo",
+       "Hex",
        "unknown"
 };
 
-/*
- * Names of the spells (mage spells then priest spells)
- */
-#ifdef JP
-cptr spell_names[VALID_REALM][32] =
-{
-       /*** Life Spells ***/
-       {
-               /* Common Life Spellbooks */
-"·Ú½ý¤Î¼£Ìþ",
-"½ËÊ¡",
-"·Ú½ý",
-"¸÷¤Î¾¤´­",
-"æ« & ±£¤·Èâ´¶ÃÎ",
-"½Å½ý¤Î¼£Ìþ",
-"²òÆÇ",
-"¶õÊ¢½¼Â­",
-
-"²ò¼ö",
-"½Å½ý",
-"Ã×Ì¿½ý¤Î¼£Ìþ",
-"ÂÑÇ®ÂÑ´¨",
-"¼þÊÕ´¶ÃÎ",
-"¥Ñ¥Ë¥Ã¥¯¡¦¥¢¥ó¥Ç¥Ã¥É",
-"ÂÎÎϲóÉü",
-"·ë³¦¤ÎÌæ¾Ï",
-
-               /* Rare Life Spellbooks */
-"*²ò¼ö*",
-"´Õ¼±",
-"¥¢¥ó¥Ç¥Ã¥ÉÂ໶",
-"Æä¤Î¹ï",
-"Ã×Ì¿½ý",
-"µ¢´Ô¤Î¾Û",
-"¿¿¼Â¤Îº×ÃÅ",
-"¿¿¡¦·ë³¦",
-
-"ÉÔÌÓ²½",
-"Á´´¶ÃÎ",
-"¥¢¥ó¥Ç¥Ã¥É¾ÃÌÇ",
-"ÀéΤ´ã",
-"Á´Éü³è",
-"*ÂÎÎϲóÉü*",
-"À»¤Ê¤ë¥Ó¥¸¥ç¥ó",
-"µæ¶Ë¤ÎÂÑÀ­"
-       },
-
-       /*** Sorcery Spells ***/
-
-       {
-               /* Common Sorcery Spellbooks */
-"¥â¥ó¥¹¥¿¡¼´¶ÃÎ",
-"¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È",
-"櫤ÈÈâ´¶ÃÎ",
-"¥é¥¤¥È¡¦¥¨¥ê¥¢",
-"¥Ñ¥Ë¥Ã¥¯¡¦¥â¥ó¥¹¥¿¡¼",
-"¥Æ¥ì¥Ý¡¼¥È",
-"¥¹¥ê¡¼¥×¡¦¥â¥ó¥¹¥¿¡¼",
-"ËâÎϽ¼Å¶",
-
-"ËâË¡¤ÎÃÏ¿Þ",
-"´ÕÄê",
-"¥¹¥í¥¦¡¦¥â¥ó¥¹¥¿¡¼",
-"¼þÊÕ¥¹¥ê¡¼¥×",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼",
-"¥¹¥Ô¡¼¥É",
-"¿¿¡¦´¶ÃÎ",
-"¿¿¡¦´ÕÄê",
-
-               /* Rare Sorcery Spellbooks */
-"ʪÂΤȺâÊõ´¶ÃÎ",
-"¥Á¥ã¡¼¥à¡¦¥â¥ó¥¹¥¿¡¼",
-"Àº¿À´¶ÃÎ",
-"³¹°ÜÆ°",
-"¼«¸ÊʬÀÏ",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë",
-"µ¢´Ô¤Î¼öʸ",
-"¼¡¸µ¤ÎÈâ",
-
-"Ä´ºº",
-"Çúȯ¤Î¥ë¡¼¥ó",
-"Ç°Æ°ÎÏ",
-"ÀéΤ´ã",
-"̥λ¤Î»ëÀþ",
-"Ï£¶â½Ñ",
-"²øʪÄÉÊü",
-"̵½ý¤Îµå"
-
-       },
-
-       /*** Nature Spells ***/
-
-       {
-               /* Common Nature Spellbooks */
-"¥â¥ó¥¹¥¿¡¼´¶ÃÎ",
-"°ðºÊ",
-"櫤ÈÈâ´¶ÃÎ",
-"¿©ÎÈÀ¸À®",
-"Æü¤Î¸÷",
-"ưʪ½¬¤·",
-"´Ä¶­¤Ø¤ÎÂÑÀ­",
-"½ý¤ÈÆǼ£ÎÅ",
-
-"´äÀÐÍϲò",
-"¥¢¥¤¥¹¡¦¥Ü¥ë¥È",
-"¼«Á³¤Î³ÐÀÃ",
-"¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È",
-"ÂÀÍÛ¸÷Àþ",
-"­¤«¤»",
-"ưʪ¾¤´­",
-"ÌôÁð¼£ÎÅ",
-
-               /* Rare Nature Spellbooks */
-"³¬ÃÊÀ¸À®",
-"È©Àв½",
-"¿¿¡¦ÂÑÀ­",
-"¿¹ÎÓÁϤ",
-"ưʪͧÏÂ",
-"»î¶âÀÐ",
-"ÀФÎÊÉ",
-"Éå¿©ËÉ»ß",
-
-"ÃÏ¿Ì",
-"¥«¥Þ¥¤¥¿¥Á",
-"¥Ö¥ê¥¶¡¼¥É",
-"°ðºÊÍò",
-"±²Ä¬",
-"ÍÛ¸÷¾¤´­",
-"ÀºÎî¤Î¿Ï",
-"¼«Á³¤Î¶¼°Ò"
-
-       },
-
-       /*** Chaos Spells ***/
-
-       {
-               /* Common Chaos Spellbooks */
-"¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë",
-"¥È¥é¥Ã¥×/¥É¥¢Ç˲õ",
-"Á®¸÷",
-"º®Íð¤Î¼ê",
-"ËâÎÏßÚÎö",
-"¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È",
-"ÎϤηý",
-"¥Æ¥ì¥Ý¡¼¥È",
-
-"¥ï¥ó¥À¡¼",
-"¥«¥ª¥¹¡¦¥Ü¥ë¥È",
-"¥½¥Ë¥Ã¥¯¡¦¥Ö¡¼¥à",
-"ÇËÌǤÎÌð",
-"¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥¢¥¦¥§¥¤",
-"Ç˲õ¤Î¸ÀÍÕ",
-"¥í¥°¥ë¥¹È¯Æ°",
-
-               /* Rare Chaos Spellbooks */
-"¾¼ÔÊÑÍÆ",
-"Ï¢º¿°ðºÊ",
-"ËâÎÏÉõÆþ",
-"¸¶»Òʬ²ò",
-"¸½¼ÂÊÑÍÆ",
-"¥Þ¥¸¥Ã¥¯¡¦¥í¥±¥Ã¥È",
-"º®Æ٤οÏ",
-"°­Ë⾤´­",
-
-"½ÅÎϸ÷Àþ",
-"ήÀ±·²",
-"±ë¤Î°ì·â",
-"º®ÆÙ¾¤Íè",
-"¼«¸ÊÊÑÍÆ",
-"ËâÎϤÎÍò",
-"¥í¥°¥ë¥¹¤Î¥Ö¥ì¥¹",
-"µõ̵¾¤Íè"
-
-       },
-
-       /*** Death Spells ***/
-
-       {
-               /* Common Death Spellbooks */
-"̵À¸Ì¿´¶ÃÎ",
-"¼ö»¦ÃÆ",
-"¼Ù°­´¶ÃÎ",
-"°­½­±À",
-"¹õ¤¤Ì²¤ê",
-"ÂÑÆÇ",
-"¶²¹²",
-"¥¢¥ó¥Ç¥Ã¥É½¾Â°",
-
-"¥¨¥ó¥È¥í¥Ô¡¼¤Îµå",
-"ÃϹö¤ÎÌð",
-"»¦Ù¤±À",
-"¥â¥ó¥¹¥¿¡¼¾ÃÌÇ",
-"ÆǤοÏ",
-"µÛ·ì¥É¥ì¥¤¥ó",
-"È¿º²¤Î½Ñ",
-"Ëõ»¦",
-
-               /* Rare Death Spellbooks */
-"¶¸Àï»Î²½",
-"°­Î´­",
-"°Å¹õ¤ÎÌð",
-"¶¸ÍðÀï»Î",
-"µÛ·ì¤Î¿Ï",
-"¿¿¡¦µÛ·ì",
-"»à¤Î¸Àº²",
-"°Å¹õ¤ÎÍò",
-
-"»à¤Î¸÷Àþ",
-"»à¼Ô¾¤´­",
-"»à¼Ô¤ÎÈëÅÁ",
-"µÛ·ìµ´ÊѲ½",
-"À¸Ì¿ÎÏÉü³è",
-"¼þÊÕËõ»¦",
-"ÃϹö¤Î¹å²Ð",
-"Í©Âβ½"
-
-       },
-
-       /*** Trump Spells ***/
-
-       {
-               /* Common Trump Spellbooks */
-"¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È",
-"ÃØéá¤Î¥«¡¼¥É",
-"¥·¥ã¥Ã¥Õ¥ë",
-"¥Õ¥í¥¢¡¦¥ê¥»¥Ã¥È",
-"¥Æ¥ì¥Ý¡¼¥È",
-"´¶ÃΤΥ«¡¼¥É",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼",
-"ưʪ¤Î¥«¡¼¥É",
-
-"°ÜÆ°¤Î¥«¡¼¥É",
-"¥«¥ß¥«¥¼¤Î¥«¡¼¥É",
-"¸¸Î´­",
-"¥¹¥Ô¡¼¥É¡¦¥â¥ó¥¹¥¿¡¼",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë",
-"¼¡¸µ¤ÎÈâ",
-"µ¢´Ô¤Î¼öʸ",
-"²øʪÄÉÊü",
-
-               /* Rare Trump Spellbooks */
-"°ÌÃÖ¸ò´¹¤Î¥«¡¼¥É",
-"¥¢¥ó¥Ç¥Ã¥É¤Î¥«¡¼¥É",
-"à¨ÃîÎà¤Î¥«¡¼¥É",
-"¥â¥ó¥¹¥¿¡¼¤Î¥«¡¼¥É",
-"¥Ï¥¦¥ó¥É¤Î¥«¡¼¥É",
-"¥È¥é¥ó¥×¤Î¿Ï",
-"¿Í´Ö¥È¥é¥ó¥×",
-"¥µ¥¤¥Ð¡¼¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É",
-
-"ͽ¸«¤Î¥«¡¼¥É",
-"Ãμ±¤Î¥«¡¼¥É",
-"²óÉü¥â¥ó¥¹¥¿¡¼",
-"¥É¥é¥´¥ó¤Î¥«¡¼¥É",
-"ð¨ÀФΥ«¡¼¥É",
-"¥Ç¡¼¥â¥ó¤Î¥«¡¼¥É",
-"ÃϹö¤Î¥«¡¼¥É",
-"¸ÅÂå¥É¥é¥´¥ó¤Î¥«¡¼¥É"
-
-       },
-
-       /*** Arcane Spells (_only_ common spells) ***/
-
-       {
-"ÅÅ·â",
-"ËâË¡¤Î»Ü¾û",
-"Æ©ÌÀÂδ¶ÃÎ",
-"¥â¥ó¥¹¥¿¡¼´¶ÃÎ",
-"¥·¥ç¡¼¥È¡¦¥Æ¥ì¥Ý¡¼¥È",
-"¥é¥¤¥È¡¦¥¨¥ê¥¢",
-"櫤ÈÈâ Ç˲õ",
-"·Ú½ý¤Î¼£Ìþ",
-
-"櫤ÈÈâ ´¶ÃÎ",
-"dzÁÇ",
-"ºâÊõ´¶ÃÎ",
-"ËâË¡ ´¶ÃÎ",
-"¥¢¥¤¥Æ¥à´¶ÃÎ",
-"²òÆÇ",
-"ÂÑÎä",
-"ÂѲÐ",
-
-"ÂÑÅÅ",
-"ÂÑ»À",
-"½Å½ý¤Î¼£Ìþ",
-"¥Æ¥ì¥Ý¡¼¥È",
-"´ÕÄê",
-"´äÀÐÍϲò",
-"Á®¸÷",
-"¶õÊ¢½¼Â­",
-
-"Æ©ÌÀ»ëǧ",
-"¥¨¥ì¥á¥ó¥¿¥ë¾¤´­",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥ì¥Ù¥ë",
-"¥Æ¥ì¥Ý¡¼¥È¡¦¥â¥ó¥¹¥¿¡¼",
-"¸µÁǤεå",
-"Á´´¶ÃÎ",
-"µ¢´Ô¤Î¼öʸ",
-"ÀéΤ´ã",
-
-       },
-
-       /*** Craft Spells ***/
-
-       {
-               /* Common Craft Spellbooks */
-"ÀÖ³°Àþ»ëÎÏ",
-"²óÉüÎ϶¯²½",
-"¶õÊ¢½¼Â­",
-"ÂÑÎ䵤",
-"ÂѲбê",
-"»Îµ¤¹âÍÈ",
-"ÂÑÅÅ·â",
-"ÂÑ»À",
-
-"Æ©ÌÀ»ëǧ",
-"²ò¼ö",
-"ÂÑÆÇ",
-"¶¸Àï»Î²½",
-"¼«¸ÊʬÀÏ",
-"Âмٰ­·ë³¦",
-"Ìþ¤·",
-"ËâË¡·õ",
-
-               /* Rare Craft Spellbooks */
-"¥Æ¥ì¥Ñ¥·¡¼",
-"È©Àв½",
-"Á´ÂÑÀ­",
-"¥¹¥Ô¡¼¥É",
-"ÊÉÈ´¤±",
-"½âË᤭",
-"¥´¡¼¥ì¥àÀ½Â¤",
-"ËâË¡¤Î³»",
-
-"ÁõÈ÷̵Îϲ½",
-"¼ö¤¤Ê´ºÕ",
-"´°Á´¤Ê¤ëÃμ±",
-"Éð´ï¶¯²½",
-"Ëɶñ¶¯²½",
-"Éð´ï°À­ÉÕÍ¿",
-"¿Í´Ö¥È¥é¥ó¥×",
-"°À­¤Ø¤ÎÌȱÖ",
-
-       },
-
-       /*** Daemon Spells ***/
-
-       {
-               /* Common Daemon Spellbooks */
-"¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë",
-"̵À¸Ì¿´¶ÃÎ",
-"¼Ù¤Ê¤ë½ËÊ¡",
-"ÂѲбê",
-"¶²¹²",
-"ÃϹö¤ÎÌð",
-"¸ÅÂå¤Î»àÎ´­",
-"ÃϹö¤Î±ë",
-
-"¥Ç¡¼¥â¥ó»ÙÇÛ",
-"¥Ó¥¸¥ç¥ó",
-"ÂÑÃϹö",
-"¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È",
-"¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë",
-"±ê¤Î¿Ï",
-"ÃϹöµå",
-"¥Ç¡¼¥â¥ó¾¤´­",
-
-               /* Rare Daemon Spellbooks */
-"°­Ëâ¤ÎÌÜ",
-"°­Ëâ¤Î¥¯¥í¡¼¥¯",
-"ÍÏ´äή",
-"¥×¥é¥º¥Þµå",
-"°­ËâÊѲ½",
-"ÃϹö¤ÎÇÈÆ°",
-"¥µ¥­¥å¥Ð¥¹¤ÎÀÜÊ­",
-"ÇËÌǤμê",
-
-"»Îµ¤¹âÍÈ",
-"ÉÔÌǤÎÆùÂÎ",
-"¶¸µ¤¤Î±ß´Ä",
-"¥Ú¥Ã¥ÈÇúÇË",
-"¥°¥ì¡¼¥¿¡¼¥Ç¡¼¥â¥ó¾¤´­",
-"ÃϹöÍò",
-"·ì¤Î¼ö¤¤",
-"ËⲦÊѲ½",
-
-       },
-
-       /*** Crusade Spells ***/
-
-       {
-               /* Common Crusade Spellbooks */
-"Ĩȳ",
-"¼Ù°­Â¸ºß´¶ÃÎ",
-"¶²Éݽüµî",
-"°Ò°µ",
-"À»°è",
-"Æþ¸ý",
-"¥¹¥¿¡¼¥À¥¹¥È",
-"¿ÈÂξô²½",
-
-"¼Ù°­Èô¤Ð¤·",
-"À»¤Ê¤ë¸÷µå",
-"°­Ëâʧ¤¤",
-"²ò¼ö",
-"Æ©ÌÀ»ëǧ",
-"Âмٰ­·ë³¦",
-"ºÛ¤­¤ÎÍë",
-"À»¤Ê¤ë¸æ¸ÀÍÕ",
-
-               /* Rare Crusade Spellbooks */
-"³«¤«¤ì¤¿Æ»",
-"ÉõËâ",
-"À»¤Ê¤ë¥ª¡¼¥é",
-"¥¢¥ó¥Ç¥Ã¥É&°­ËâÂ໶",
-"¼Ù°­Â໶",
-"À»¤Ê¤ë¿Ï",
-"¥¹¥¿¡¼¥Ð¡¼¥¹¥È",
-"Å·»È¾¤´­",
-
-"»Îµ¤¹âÍÈ",
-"¼ö¤¤Â໶",
-"¼Ù°­ÄÉÊü",
-"¥Ï¥ë¥Þ¥²¥É¥ó",
-"ÌܤˤÏÌܤò",
-"¿À¤ÎÅܤê",
-"¿À°Ò",
-"À»Àï",
-
-       },
-
-       /*** Music Spells ***/
-
-       /* Ìõ¸ì
-          Song : ²Î, Note : ²»¿§, Pattern : ÀûΧ, 
-          Ballad : ²Î(Íضʢª¡Ö±´¡×¤ÈÌõ¤¹?), Chant : ²ÎÀ¼, */
-       {
-               /******* Apprentice Handbook *******/
-               "ÃÙÆߤβÎ",     /*"Song of Holding"*/
-               "½ËÊ¡¤Î²Î",     /*"Song of Blessing"*/
-               "Êø²õ¤Î²»¿§",   /*"Wracking Note"*/
-               "Û¯Û°¤ÎÀûΧ",   /*"Stun Pattern"*/
-               "À¸Ì¿¤Îή¤ì",   /*"Flow of Life"*/
-               "ÂÀÍۤβÎ",     /*"Song of the Sun"*/
-               "¶²ÉݤβÎ",
-               "À襤¤Î²Î",     /*"Heroic Ballad"*/
-
-               /******* Minstrel's Music *******/
-               "ÎîŪÃγÐ",     /*"Clairaudience"*/
-               "º²¤Î²Î",
-               "Ãμ±¤Î²Î",     /*"Song of Lore"*/
-               "±£ÆۤβÎ",
-               "¸¸±Æ¤ÎÀûΧ",   /*"Illusion Pattern"*/
-               "ÇËÌǤ櫤Ó",   /*"Doomcall"*/
-               "¥Õ¥£¥ê¥¨¥ë¤Î²Î",       /*"Firiel's Song"*/
-               "ι¤ÎÃç´Ö",     /*"Fellowship Chant"*/
-
-               /******* Harps of Rivendell *******/
-               "ʬ²ò²»ÇÈ",
-               "¸µÁÇÂÑÀ­",
-               "¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£",
-               "ÏĤó¤ÀÀ¤³¦",
-               "Â໶¤Î²Î",
-               "¥µ¥ë¥Þ¥ó¤Î´Å¸À",
-               "Íò¤Î²»¿§",
-               "¤â¤¦°ì¤Ä¤ÎÀ¤³¦",
-
-               /******* Lays of Beleriand *******/
-               "Ç˲õ¤ÎÀûΧ",
-               "ÄäÂڤβÎ",
-               "¼é¤ê¤Î²Î",
-               "±Ñͺ¤Î»í",
-               "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±",
-               "ºÆÀ¸¤Î²Î",
-               "¥µ¥¦¥í¥ó¤ÎËâ½Ñ",
-               "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï",
-       },
-
-       /*** Hissatsuwaza ***/
-
-       {
-               "ÈôÈÓ¹Ë",
-               "¸Þ·î±«»Â¤ê",
-               "¥Ö¡¼¥á¥é¥ó",
-               "±ëÎî",
-               "»¦µ¤´¶ÃÎ",
-               "¤ß¤ÍÂǤÁ",
-               "¥«¥¦¥ó¥¿¡¼",
-               "ʧ¤¤È´¤±",
-
-               "¥µ¡¼¥Ú¥ó¥Ä¥¿¥ó",
-               "»ÂËâ·õÆõ¤ÎÂÀÅá",
-               "ÎöÉ÷·õ",
-               "Åá¾¢¤ÎÌÜÍø¤­",
-               "ÇË´ä»Â",
-               "Íð¤ìÀã·î²Ö",
-               "µÞ½êÆͤ­",
-               "Ëâ¿À»Â¤ê",
-
-               "¼Î¤Æ¿È",
-               "Íë·âÏÉÄÞ»Â",
-               "Æþ¿È",
-               "ÀÖή±²",
-               "·ã¿Ì·â",
-               "ÃÏÁö¤ê",
-               "µ¤Ç÷¤Îͺ¶«¤Ó",
-               "̵Áл°ÃÊ",
-
-               "µÛ·ìµ´¤Î²ç",
-               "¸¸ÏÇ",
-               "É´¿Í»Â¤ê",
-               "Å·æÆζÁ®",
-               "Æó½Å¤Î·õ·â",
-               "¸×ÉúÀäÅáÀª",
-               "·Ä±Àµ´Ç¦·õ",
-               "ÀÚÊ¢",
-       },
-};
-
-#else
-
-cptr spell_names[VALID_REALM][32] =
-{
-       /*** Life Spells ***/
-       {
-               /* Common Life Spellbooks */
-               "Cure Light Wounds",
-               "Bless",
-               "Cause Light Wounds",
-               "Call Light",
-               "Detect Doors & Traps",
-               "Cure Medium Wounds",
-               "Cure Poison",   
-               "Satisfy Hunger",
-
-               "Remove Curse",
-               "Cause Medium Wounds",
-               "Cure Critical Wounds",
-               "Resist Heat and Cold",
-               "Sense Surroundings",
-               "Turn Undead",
-               "Healing",
-               "Glyph of Warding",
-
-               /* Rare Life Spellbooks */
-               "Dispel Curse",
-               "Perception",
-               "Dispel Undead",
-               "Day of the Dove",
-               "Cause Critical Wounds",
-               "Word of Recall",
-               "Alter Reality",
-               "Warding True",
-
-               "Sterilization",
-               "Detection",
-               "Annihilate Undead",
-               "Clairvoyance",
-               "Restoration",
-               "Healing True",
-               "Holy Vision",
-               "Ultimate Resistance",
-       },
-
-       /*** Sorcery Spells ***/
-
-       {
-               /* Common Sorcery Spellbooks */
-               "Detect Monsters",
-               "Phase Door",
-               "Detect Doors and Traps",
-               "Light Area",
-               "Confuse Monster",
-               "Teleport",
-               "Sleep Monster",
-               "Recharging",
-
-               "Magic Mapping",
-               "Identify",
-               "Slow Monster",
-               "Mass Sleep",
-               "Teleport Away",
-               "Haste Self",
-               "Detection True",
-               "Identify True",
-
-               /* Rare Sorcery Spellbooks */
-               "Detect items and Treasure",
-               "Charm Monster",
-               "Sense Minds",
-               "Teleport to town",
-               "Self Knowledge",
-               "Teleport Level",
-               "Word of Recall",
-               "Dimension Door",
-
-               "Probing",
-               "Explosive Rune",
-               "Telekinesis",
-               "Clairvoyance",
-               "Charm monsters",
-               "Alchemy",
-               "Banishment",
-               "Globe of Invulnerability",
-       },
-
-       /*** Nature Spells ***/
-
-       {
-               /* Common Nature Spellbooks */
-               "Detect Creatures",
-               "Lightning",
-               "Detect Doors and Traps",
-               "Produce Food",
-               "Daylight",
-               "Animal Taming",
-               "Resist Environment",
-               "Cure Wounds & Poison",
-
-               "Stone to Mud",
-               "Frost Bolt",
-               "Nature Awareness",
-               "Fire Bolt",
-               "Ray of Sunlight",
-               "Entangle",
-               "Summon Animal",
-               "Herbal Healing",
-
-               /* Rare Nature Spellbooks */
-               "Stair Building",
-               "Stone Skin",
-               "Resistance True",
-               "Forest Creation",
-               "Animal Friendship",
-               "Stone Tell",
-               "Wall of Stone",
-               "Protect from Corrosion",
-
-               "Earthquake",
-               "Cyclone",
-               "Blizzard",
-               "Lightning Storm",
-               "Whirlpool",
-               "Call Sunlight",
-               "Elemental Branding",
-               "Nature's Wrath",
-       },
-
-       /*** Chaos Spells ***/
-
-       {
-               /* Common Chaos Spellbooks */
-               "Magic Missile",
-               "Trap / Door Destruction",
-               "Flash of Light",
-               "Touch of Confusion",
-               "Mana Burst",
-               "Fire Bolt",
-               "Fist of Force",
-               "Teleport Self",
-
-               "Wonder",
-               "Chaos Bolt",
-               "Sonic Boom",
-               "Doom Bolt",
-               "Fire Ball",
-               "Teleport Other",
-               "Word of Destruction",
-               "Invoke Logrus",
-
-               /* Rare Chaos Spellbooks */
-               "Polymorph Other",
-               "Chain Lightning",
-               "Arcane Binding",
-               "Disintegrate",
-               "Alter Reality",
-               "Magic Rocket",
-               "Chaos Branding",
-               "Summon Demon",
-
-               "Beam of Gravity",
-               "Meteor Swarm",
-               "Flame Strike",
-               "Call Chaos",
-               "Polymorph Self",
-               "Mana Storm",
-               "Breathe Logrus",
-               "Call the Void",
-       },
-
-       /*** Death Spells ***/
-
-       {
-               /* Common Death Spellbooks */
-               "Detect Unlife",
-               "Malediction",
-               "Detect Evil",
-               "Stinking Cloud",
-               "Black Sleep",
-               "Resist Poison",
-               "Horrify",
-               "Enslave Undead",
-
-               "Orb of Entropy",
-               "Nether Bolt",
-               "Cloud kill",
-               "Genocide One",
-               "Poison Branding",
-               "Vampiric Drain",
-               "Animate dead",
-               "Genocide",
-
-               /* Rare Death Spellbooks */
-               "Berserk",
-               "Invoke Spirits",
-               "Dark Bolt",
-               "Battle Frenzy",
-               "Vampiric Branding",
-               "Vampirism True",
-               "Nether Wave",
-               "Darkness Storm",
-
-               "Death Ray",
-               "Raise the Dead",
-               "Esoteria",
-               "Polymorph Vampire",
-               "Restore Life",
-               "Mass Genocide",
-               "Hellfire",
-               "Wraithform",
-       },
-
-       /*** Trump Spells ***/
-
-       {
-               /* Common Trump Spellbooks */
-               "Phase Door",
-               "Trump Spiders",
-               "Shuffle",
-               "Reset Recall",
-               "Teleport",
-               "Trump Spying",
-               "Teleport Away",
-               "Trump Animals",
-
-               "Trump Reach",
-               "Trump Kamikaze",
-               "Phantasmal Servant",
-               "Haste Monster",
-               "Teleport Level",
-               "Dimension Door",
-               "Word of Recall",
-               "Banish",
-
-               /* Rare Trump Spellbooks */
-               "Swap Position",
-               "Trump Undead",
-               "Trump Reptiles",
-               "Trump Monsters",
-               "Trump Hounds",
-               "Trump Branding",
-               "Living Trump",
-               "Trump Cyberdemon",
-
-               "Trump Divination",
-               "Trump Lore",
-               "Heal Monster",
-               "Trump Dragon",
-               "Trump Meteor",
-               "Trump Demon",
-               "Trump Greater Undead",
-               "Trump Ancient Dragon",
-       },
-
-       /*** Arcane Spells (_only_ common spells) ***/
-
-       {
-               "Zap",
-               "Wizard Lock",
-               "Detect Invisibility",
-               "Detect Monsters",
-               "Blink",
-               "Light Area",
-               "Trap & Door Destruction",
-               "Cure Light Wounds",
-
-               "Detect Doors & Traps",
-               "Phlogiston",
-               "Detect Treasure",
-               "Detect Enchantment",
-               "Detect Objects",
-               "Cure Poison",
-               "Resist Cold",
-               "Resist Fire",
-
-               "Resist Lightning",
-               "Resist Acid",
-               "Cure Medium Wounds",
-               "Teleport",
-               "Identify",
-               "Stone to Mud",
-               "Ray of Light",
-               "Satisfy Hunger",
-
-               "See Invisible",
-               "Conjure Elemental",
-               "Teleport Level",
-               "Teleport Away",
-               "Elemental Ball",
-               "Detection",
-               "Word of Recall",
-               "Clairvoyance",
-       },
-
-       /*** Craft Spells ***/
-
-       {
-               /* Common Craft Spellbooks */
-               "Infravision",
-               "Regeneration",
-               "Satisfy Hunger",
-               "Resist Cold",
-               "Resist Fire",
-               "Heroism",
-               "Resist Lightning",
-               "Resist Acid",
-
-               "See Invisibility",
-               "Remove Curse",
-               "Resist Poison",
-               "Berserk",
-               "Self Knowledge",
-               "Protection from Evil",
-               "Cure",
-               "Mana Branding",
-
-               /* Rare Craft Spellbooks */
-               "Telepathy",
-               "Stone Skin",
-               "Resistance",
-               "Haste Self",
-               "Walk through Wall",
-               "Polish Shield",
-               "Create Golem",
-               "Magical armor",
-
-               "Remove Enchantment",
-               "Remove All Curse",
-               "Knowledge True", /* "Total Knowledge", */
-               "Enchant Weapon",
-               "Enchant Armor",
-               "Brand Weapon",
-               "Living Trump",
-               "Immunity",
-       },
-
-       /*** Daemon Spells ***/
-
-       {
-               /* Common Daemon Spellbooks */
-               "Magic Missile",
-               "Detect Unlife",
-               "Evil Bless",
-               "Resist Fire",
-               "Horrify",
-               "Nether Bolt",
-               "Summon Manes",
-               "Hellish Flame",
-
-               "Dominate Demon",
-               "Vision",
-               "Resist Nether",
-               "Plasma bolt",
-               "Fire Ball",
-               "Fire Branding",
-               "Nether Ball",
-               "Summon Demon",
-
-               /* Rare Daemon Spellbooks */
-               "Devilish Eye",
-               "Devil Cloak",
-               "The Flow of Lava",
-               "Plasma Ball",
-               "Polymorph Demon",
-               "Nather Wave",
-               "Kiss of Succubus",
-               "Doom Hand",
-
-               "Raise the Morale",
-               "Immortal Body",
-               "Insanity Circle",
-               "Explode Pets",
-               "Summon Greater Demon",
-               "Nether Storm",
-               "Bloody Curse",
-               "Polymorph Demonlord",
-       },
-
-       /*** Crusade Spells ***/
-
-       {
-               /* Common Crusade Spellbooks */
-               "Punishment",
-               "Detect Evil",
-               "Remove Fear",
-               "Scare Monster",
-               "Sanctuary",
-               "Portal",
-               "Star Dust",
-               "Purify",
-
-               "Scatter Evil",
-               "Holy Orb",
-               "Exorcism",
-               "Remove Curse",
-               "Sense Unseen",
-               "Protection from Evil",
-               "Judgment Thunder",
-               "Holy Word",
-
-               /* Rare Crusade Spellbooks */
-               "Unbarring Ways",
-               "Arrest",
-               "Holy Aura",
-               "Dispel Undead & Demons",
-               "Dispel Evil",
-               "Holy Blade",
-               "Star Burst",
-               "Summon Angel",
-
-               "Heroism",
-               "Dispel Curse",
-               "Banish Evil",
-               "Armageddon",
-               "An Eye for an Eye",
-               "Wrath of the God",
-               "Divine Intervention",
-               "Crusade",
-       },
-
-       /*** Music Spells ***/
-
-       {
-               /******* Apprentice Handbook *******/
-               "Song of Holding",
-               "Song of Blessing",
-               "Wrecking Note",
-               "Stun Pattern",
-               "Flow of Life",
-               "Song of the Sun",
-               "Song of Fear", /* ¶²ÉݤβΠ*/
-               "Heroic Ballad",
-
-               /******* Minstrel's Music *******/
-               "Clairaudience",
-               "Soul Shriek", /* º²¤Î²Î */
-               "Song of Lore",
-               "Hiding Tune", /* "±£ÆۤβÎ", */
-               "Illusion Pattern",
-               "Doomcall",
-               "Firiel's Song",
-               "Fellowship Chant", /* "ι¤ÎÃç´Ö" */
-
-               /******* Harps of Rivendell *******/
-               "Sound of disintegration", /* Ê¬²ò²»ÇÈ */
-               "Finrod's Resistance", /* ¸µÁÇÂÑÀ­ */
-               "Hobbit Melodies", /* ¥Û¥Ó¥Ã¥È¤Î¥á¥í¥Ç¥£ */
-               "World Contortion", /* ÏĤó¤ÀÀ¤³¦ */
-               "Dispelling chant", /* Â໶¤Î²Î */
-               "The Voice of Saruman", /* ¥µ¥ë¥Þ¥ó¤Î´Å¸À */
-               "Song of the Tempest", /* Íò¤Î²»¿§ */
-               "Ambarkanta", /* ¤â¤¦°ì¤Ä¤ÎÀ¤³¦ */
-
-               /******* Lays of Beleriand *******/
-               "Wrecking Pattern", /* Ç˲õ¤ÎÀûΧ */
-               "Stationary Shriek", /* ÄäÂڤβΠ*/
-               "Endurance", /* ¼é¤ê¤Î²Î */
-               "The Hero's Poem", /* ±Ñͺ¤Î»í */
-               "Relief of Yavanna", /* "¥ä¥ô¥¡¥ó¥Ê¤Î½õ¤±" */
-               "Goddess' rebirth", /* "ºÆÀ¸¤Î²Î" */
-               "Wizardry of Sauron", /* "¥µ¥¦¥í¥ó¤ÎËâ½Ñ", */
-               "Fingolfin's Challenge", /* "¥Õ¥£¥ó¥´¥ë¥Õ¥£¥ó¤ÎÄ©Àï", */
-       },
-
-       /*** Hissatsuwaza ***/
-       {
-               "Tobi-Izuna",
-               "3-Way Attack",
-               "Boomerang",
-               "Burning Strike",
-               "Detect Ferocity",
-               "Strike to Stun",
-               "Counter",
-               "Harainuke",
-
-               "Serpent's Tongue",
-               "Zammaken",
-               "Wind Blast",
-               "Judge",
-               "Rock Smash",
-               "Midare-Setsugekka",
-               "Spot Aiming",
-               "Majingiri",
-
-               "Desperate Attack",
-               "Lightning Eagle",
-               "Rush Attack",
-               "Bloody Maelstrom",
-               "Earthquake Blow",
-               "Crack",
-               "War Cry",
-               "Musou-Sandan",
-
-               "Vampire's Fang",
-               "Moon Dazzling",
-               "Hundred Slaughter",
-               "Dragonic Flash",
-               "Twin Slash",
-               "Kofuku-Zettousei",
-               "Keiun-Kininken",
-               "Harakiri",
-       },
-};
-#endif
 
 /*
  * Each chest has a certain set of traps, determined by pval
@@ -5258,7 +4206,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "±Ñͺ",
                "Ã˼ß",
                "Çì¼ß",
-               "Îμç",
+               "·¯¼ç",
        },
 
        /* Mage */
@@ -5300,9 +4248,9 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "¥Ú¥Æ¥ó»Õ",                     /*ÇîÅÌ¡¢¥Ú¥Æ¥ó»Õ¡¢º¾µ½»Õ */
                "¥í¥¦¥·¡¼¥Õ",
                "¥Ï¥¤¥·¡¼¥Õ",
-               "¥Þ¥¹¥¿¡¼¥·¡¼¥Õ",
+               "¥Þ¥¹¥¿¡¼", /* "¥Þ¥¹¥¿¡¼¥·¡¼¥Õ", */
                "¥¢¥µ¥·¥ó",                                             /* °Å»¦¼Ô */
-               "¥®¥ë¥É¥Þ¥¹¥¿¡¼",
+               "ƬÎÎ", /*"¥®¥ë¥É¥Þ¥¹¥¿¡¼",*/
        },
 
        /* Rangers */
@@ -5330,7 +4278,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "½Åµ³»Î",
                "À»µ³»Î",
                "¾åµéÀ»µ³»Î",
-               "À»µ³»ÎĹ",
+               "À»µ³»ÎÃÄĹ",
        },
 
        /* Warrior-Mage */
@@ -5345,7 +4293,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "ËâÃ˼ß",
                /* "Ëâ¸ø¼ß", */
                "ÀïÆ®Ëâ½Ñ»Î",
-               "¥¦¥£¥¶¡¼¥É¥í¡¼¥É",
+               "Ãμ±¤Î¼é¸î¼Ô", /* "¥¦¥£¥¶¡¼¥É¥í¡¼¥É", */
        },
 
        /* Chaos Warrior */
@@ -5387,7 +4335,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "¥µ¥¤¥­¥Ã¥¯",
                "¥µ¥¤¥ª¥Ë¥Ã¥¯",
                "ĶǽÎϼÔ",
-               "¥Þ¥¤¥ó¥É¥Þ¥¹¥¿¡¼",
+               "Àº¿À¤Î»ÙÇÛ¼Ô", /* "¥Þ¥¤¥ó¥É¥Þ¥¹¥¿¡¼", */
        },
 
        /* High Mage; same as Mage */
@@ -5490,7 +4438,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "Á´¤Æ¤òÃΤë¼Ô",
        },
 
-       /* Harper */
+       /* Bard */
        {
                "¸«½¬¤¤",       /*"Apprentice"*/
                "ºî¶Ê²È",       /*"Songsmith"*/
@@ -5516,7 +4464,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "ËâÃ˼ß",
                /* "Ëâ¸ø¼ß", */
                "ÀïÆ®Ëâ½Ñ»Î",
-               "¥¦¥£¥¶¡¼¥É¥í¡¼¥É",
+               "Ãμ±¤Î¼é¸î¼Ô", /* "¥¦¥£¥¶¡¼¥É¥í¡¼¥É", */
        },
 
        /* Samurai */
@@ -5562,7 +4510,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "ÂçËâÆ»»Õ",
        },
 
-       /* Kihei */
+       /* Cavalry */
        {
                "¿·»²Ê¼",
                "ʼ»Î",
@@ -5590,7 +4538,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "Åܤê¤Î²½¿È",
        },
 
-       /* Kaji */
+       /* Weaponsmith */
        {
                "Ƽ¤òÃ䨤·¼Ô",
                "Å´¤òÃ䨤·¼Ô",
@@ -5630,6 +4578,20 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "°Å»¦¼Ô",
                "»à¤ÎŤ­ÏÓ",
        },
+
+       /* Sniper */
+       {
+               "¿·»²Ê¼",
+               "ʼ»Î",
+               "ÍÃʼ",
+               "¸Å»²Ê¼",
+               "·õ»Î",
+               "Æ®»Î",
+               "±Ñͺ",
+               "Ã˼ß",
+               "Çì¼ß",
+               "Îμç",
+       },
 };
 
 #else
@@ -5851,7 +4813,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "Soldier",
                "Mercenary",
                "Veteran",
-               "Swordsman",
+               "Bowman",
                "Champion",
                "Hero",
                "Baron",
@@ -5873,7 +4835,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "Almighty",
        },
 
-       /* Harper */
+       /* Bard */
        {
                "Apprentice",   /*"Apprentice"*/
                "Songsmith",    /*"Songsmith"*/
@@ -5971,7 +4933,7 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                    "God of Rage",
        },
 
-       /* Kaji */
+       /* Weaponsmith */
        {
                "Copper smith",
                "Iron smith",
@@ -5988,14 +4950,14 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
        /* Mirror Master */
        {
                "Mirrorstarer",
-               "Mirrorpolisher",
+               "Mirrorcleaner",
                "Mirrormaker",
                "Mirrormagician",
-               "Guru of Mirror ",
+               "Mirror Guru",
                "Mirror Mage",
                "Mirror King",
-               "Mirror Emperror",
-               "Avatar of Mirror",
+               "Mirror Emperor",
+               "Mirror Avatar",
                "Ruffnor King",
        },
 
@@ -6012,6 +4974,20 @@ cptr player_title[MAX_CLASS][PY_MAX_LEVEL / 5] =
                "Assassinator",
                "Death Lord",
        },
+
+       /* Sniper */
+       {
+               "Rookie",
+               "Soldier",
+               "Mercenary",
+               "Veteran",
+               "Swordsman",
+               "Champion",
+               "Hero",
+               "Baron",
+               "Duke",
+               "Lord",
+       },
 };
 #endif
 
@@ -6447,1085 +5423,939 @@ option_type option_info[] =
        /*** Input Options ***/
 
 #ifdef JP
-       { &rogue_like_commands,         FALSE, 1, 0, 0,
+       { &rogue_like_commands,         FALSE, OPT_PAGE_INPUT, 0, 0,
        "rogue_like_commands",          "¥í¡¼¥°É÷¥­¡¼ÇÛÃÖ¤ò»ÈÍѤ¹¤ë" },
 #else
-       { &rogue_like_commands,         FALSE, 1, 0, 0,
+       { &rogue_like_commands,         FALSE, OPT_PAGE_INPUT, 0, 0,
        "rogue_like_commands",          "Rogue-like commands" },
 #endif
 
-
 #ifdef JP
-       { &always_pickup,               FALSE, 1, 0, 5,
+       { &always_pickup,               FALSE, OPT_PAGE_INPUT, 0, 5,
        "always_pickup",                "¾ï¤Ë¥¢¥¤¥Æ¥à¤ò½¦¤¦" },
 #else
-       { &always_pickup,               FALSE,  1, 0, 5,
+       { &always_pickup,               FALSE, OPT_PAGE_INPUT, 0, 5,
        "always_pickup",                "Pick things up by default" },
 #endif
 
-
 #ifdef JP
-       { &carry_query_flag,            FALSE, 1, 0, 3,
-       "carry_query_flag",  "¥¢¥¤¥Æ¥à¤ò½¦¤¦Á°¤Ë³Îǧ¤¹¤ë" },
+       { &carry_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 3,
+       "carry_query_flag",             "¥¢¥¤¥Æ¥à¤ò½¦¤¦Á°¤Ë³Îǧ¤¹¤ë" },
 #else
-       { &carry_query_flag,            FALSE, 1, 0, 3,
+       { &carry_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 3,
        "carry_query_flag",             "Prompt before picking things up" },
 #endif
 
-
 #ifdef JP
-       { &quick_messages,              TRUE,  1, 0, 1,
-     "quick_messages",  "¥¯¥¤¥Ã¥¯¡¦¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ¹¤ë" },
+       { &quick_messages,              TRUE,  OPT_PAGE_INPUT, 0, 1,
+       "quick_messages",               "¥¯¥¤¥Ã¥¯¡¦¥á¥Ã¥»¡¼¥¸¤ò»ÈÍѤ¹¤ë" },
 #else
-       { &quick_messages,              TRUE,  1, 0, 1,
+       { &quick_messages,              TRUE,  OPT_PAGE_INPUT, 0, 1,
        "quick_messages",               "Activate quick messages" },
 #endif
 
-
 #ifdef JP
-       { &auto_more,                   FALSE, 1, 2, 6,
+       { &auto_more,                   FALSE, OPT_PAGE_INPUT, 2, 6,
        "auto_more",                    "¥­¡¼ÂÔ¤Á¤·¤Ê¤¤¤ÇϢ³¤Ç¥á¥Ã¥»¡¼¥¸¤òɽ¼¨¤¹¤ë" },
 #else
-       { &auto_more,                   FALSE, 1, 2, 6,
+       { &auto_more,                   FALSE, OPT_PAGE_INPUT, 2, 6,
        "auto_more",                    "Automatically clear '-more-' prompts" },
 #endif
 
-
 #ifdef JP
-       { &command_menu,                TRUE,  1, 2, 7,
+       { &command_menu,                TRUE,  OPT_PAGE_INPUT, 2, 7,
        "command_menu",                 "¥á¥Ë¥å¡¼¤Ë¤è¤ê¥³¥Þ¥ó¥ÉÁªÂò¤òÍ­¸ú¤Ë¤¹¤ë" },
 #else
-       { &command_menu,                TRUE,  1, 2, 7,
+       { &command_menu,                TRUE,  OPT_PAGE_INPUT, 2, 7,
        "command_menu",                 "Enable command selection menu" },
 #endif
 
-
 #ifdef JP
-       { &other_query_flag,            FALSE, 1, 0, 2,
+       { &other_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 2,
        "other_query_flag",             "¾²¾å¤Î¥¢¥¤¥Æ¥à¤ò»ÈÍѤ¹¤ë¤È¤­¤Ë³Îǧ¤¹¤ë" },
 #else
-       { &other_query_flag,            FALSE, 1, 0, 2,
+       { &other_query_flag,            FALSE, OPT_PAGE_INPUT, 0, 2,
        "other_query_flag",             "Prompt for floor item selection" },
 #endif
 
-
 #ifdef JP
-       { &use_old_target,              FALSE, 1, 0, 4,
-     "use_old_target",  "¾ï¤Ë°ÊÁ°¤Î¥¿¡¼¥²¥Ã¥È¤ò»ØÄꤹ¤ë" },
+       { &use_old_target,              FALSE, OPT_PAGE_INPUT, 0, 4,
+       "use_old_target",               "¾ï¤Ë°ÊÁ°¤Î¥¿¡¼¥²¥Ã¥È¤ò»ØÄꤹ¤ë" },
 #else
-       { &use_old_target,              FALSE, 1, 0, 4,
+       { &use_old_target,              FALSE, OPT_PAGE_INPUT, 0, 4,
        "use_old_target",               "Use old target by default" },
 #endif
 
-
 #ifdef JP
-       { &always_repeat,               TRUE,  1, 0, 6,
+       { &always_repeat,               TRUE,  OPT_PAGE_INPUT, 0, 6,
        "always_repeat",                "¥³¥Þ¥ó¥É¼«Æ°·«¤êÊÖ¤·" },
 #else
-       { &always_repeat,               TRUE,  1, 0, 6,
+       { &always_repeat,               TRUE,  OPT_PAGE_INPUT, 0, 6,
        "always_repeat",                "Repeat obvious commands" },
 #endif
 
-
 #ifdef JP
-       { &confirm_destroy,             FALSE, 1, 5, 3,
+       { &confirm_destroy,             FALSE, OPT_PAGE_INPUT, 5, 3,
        "confirm_destroy",              "¡Ö̵²ÁÃ͡פʥ¢¥¤¥Æ¥à¤òÇ˲õ¤¹¤ë»þ³Îǧ¤¹¤ë" },
 #else
-       { &confirm_destroy,             FALSE, 1, 5, 3,
+       { &confirm_destroy,             FALSE, OPT_PAGE_INPUT, 5, 3,
        "confirm_destroy",              "Prompt for destruction of known worthless items" },
 #endif
 
-
 #ifdef JP
-       { &confirm_wear,                TRUE, 1, 5, 4,
+       { &confirm_wear,                TRUE,  OPT_PAGE_INPUT, 5, 4,
        "confirm_wear",                 "¼ö¤ï¤ì¤¿Êª¤òÁõÈ÷¤¹¤ë»þ³Îǧ¤¹¤ë" },
 #else
-       { &confirm_wear,                TRUE, 1, 5, 4,
+       { &confirm_wear,                TRUE,  OPT_PAGE_INPUT, 5, 4,
        "confirm_wear",                 "Confirm to wear/wield known cursed items" },
 #endif
 
-
 #ifdef JP
-       { &confirm_quest,               TRUE, 1, 1, 9,
+       { &confirm_quest,               TRUE,  OPT_PAGE_INPUT, 1, 9,
        "confirm_quest",                "¥¯¥¨¥¹¥È¤òÄü¤á¤Æ³¬ÃʤÇƨ¤²¤ëÁ°¤Ë³Îǧ¤¹¤ë" },
 #else
-       { &confirm_quest,               TRUE, 1, 1, 9,
+       { &confirm_quest,               TRUE,  OPT_PAGE_INPUT, 1, 9,
        "confirm_quest",                "Prompt before exiting a quest level" },
 #endif
 
-
 #ifdef JP
-       { &target_pet,                  FALSE,  1, 2, 5,
+       { &target_pet,                  FALSE, OPT_PAGE_INPUT, 2, 5,
        "target_pet",                   "¥Ú¥Ã¥È¤ò¥¿¡¼¥²¥Ã¥È¤Ë¤¹¤ë" },
 #else
-       { &target_pet,                  FALSE,  1, 2, 5,
+       { &target_pet,                  FALSE, OPT_PAGE_INPUT, 2, 5,
        "target_pet",                   "Allow targetting pets" },
 #endif
 
-
 #ifdef ALLOW_EASY_OPEN
 #ifdef JP
-       { &easy_open,                   TRUE,  1, 5, 7,
+       { &easy_open,                   TRUE,  OPT_PAGE_INPUT, 5, 7,
        "easy_open",                    "¼«Æ°Åª¤Ë¥É¥¢¤ò³«¤±¤ë" },
 #else
-       { &easy_open,                   TRUE,  1, 5, 7,
+       { &easy_open,                   TRUE,  OPT_PAGE_INPUT, 5, 7,
        "easy_open",                    "Automatically open doors" },
 #endif
 #endif /* ALLOW_EASY_OPEN */
 
-
 #ifdef ALLOW_EASY_DISARM
 #ifdef JP
-       { &easy_disarm,                 TRUE,  1, 5, 8,
+       { &easy_disarm,                 TRUE,  OPT_PAGE_INPUT, 5, 8,
        "easy_disarm",                  "¼«Æ°Åª¤Ë櫤ò²ò½ü¤¹¤ë" },
 #else
-       { &easy_disarm,                 TRUE,  1, 5, 8,
+       { &easy_disarm,                 TRUE,  OPT_PAGE_INPUT, 5, 8,
        "easy_disarm",                  "Automatically disarm traps" },
 #endif
 #endif /* ALLOW_EASY_DISARM */
 
-
 #ifdef ALLOW_EASY_FLOOR /* TNB */
 #ifdef JP
-       { &easy_floor,                  FALSE, 1, 5, 9,
+       { &easy_floor,                  FALSE, OPT_PAGE_INPUT, 5, 9,
        "easy_floor",                   "¾²¾å¤Ç½Å¤Ê¤Ã¤¿¥¢¥¤¥Æ¥à¤ò¥ê¥¹¥È¤¹¤ë" },
 #else
-       { &easy_floor,                  FALSE, 1, 5, 9,
+       { &easy_floor,                  FALSE, OPT_PAGE_INPUT, 5, 9,
        "easy_floor",                   "Display floor stacks in a list" },
 #endif
 #endif /* ALLOW_EASY_FLOOR -- TNB */
 
-
 #ifdef JP
-       { &use_command,                 FALSE, 1, 5, 10,
+       { &use_command,                 FALSE, OPT_PAGE_INPUT, 5, 10,
        "use_command",                  "¡Ö»È¤¦(a)¡×¥³¥Þ¥ó¥É¤Ç¥¢¥¤¥Æ¥à¤ò²¿¤Ç¤â»È¤¨¤ë" },
 #else
-       { &use_command,                 FALSE, 1, 5, 10,
+       { &use_command,                 FALSE, OPT_PAGE_INPUT, 5, 10,
        "use_command",                  "Allow unified use command" },
 #endif
 
-
 #ifdef JP
-       { &over_exert,                  FALSE,  1, 0, 29,
+       { &over_exert,                  FALSE, OPT_PAGE_INPUT, 0, 29,
        "over_exert",                   "MP¤¬Â­¤ê¤Ê¤¯¤Æ¤âËâË¡¤ËÄ©À魯¤ë" },
 #else
-       { &over_exert,                  FALSE,  1, 0, 29,
+       { &over_exert,                  FALSE, OPT_PAGE_INPUT, 0, 29,
        "over_exert",                   "Allow casting spells when short of mana" },
 #endif
 
-
-       /*** Output Options ***/
-
 #ifdef JP
-       { &depth_in_feet,               FALSE, 2, 0, 7,
-       "depth_in_feet",                "¥À¥ó¥¸¥ç¥ó¤Î¿¼¤µ¤ò¥Õ¥£¡¼¥È¤Çɽ¼¨¤¹¤ë" },
+       { &numpad_as_cursorkey,         TRUE, OPT_PAGE_INPUT, 2, 31,
+       "numpad_as_cursorkey",          "¥¨¥Ç¥£¥¿Æâ¤Ç¥Æ¥ó¥­¡¼¤ò¥«¡¼¥½¥ë¥­¡¼¤È¤·¤Æ»È¤¦" },
 #else
-       { &depth_in_feet,               FALSE, 2, 0, 7,
-       "depth_in_feet",                "Show dungeon level in feet" },
+       { &numpad_as_cursorkey,         TRUE, OPT_PAGE_INPUT, 2, 31,
+       "numpad_as_cursorkey",          "Use numpad keys as cursor keys in editor mode" },
 #endif
 
+       /*** Map Screen Options ***/
 
 #ifdef JP
-       { &show_labels,                 TRUE,  2, 0, 10,
-       "show_labels",                  "ÁõÈ÷°ìÍ÷¤ÇÁõÈ÷¾ì½ê¤òɽ¼¨¤¹¤ë" },
+       { &center_player,               FALSE, OPT_PAGE_MAPSCREEN, 5, 11,
+       "center_player",                "¾ï¤Ë¥×¥ì¥¤¥ä¡¼¤òÃæ¿´¤ËÃÖ¤¯(*ÃÙ¤¤*)" },
 #else
-       { &show_labels,                 TRUE,  2, 0, 10,
-       "show_labels",                  "Show labels in object listings" },
+       { &center_player,               FALSE, OPT_PAGE_MAPSCREEN, 5, 11,
+       "center_player",                "Center map while walking (*slow*)" },
 #endif
 
-
 #ifdef JP
-       { &show_weights,                TRUE,  2, 0, 11,
-       "show_weights",                 "¥¢¥¤¥Æ¥à°ìÍ÷¤Ç½ÅÎ̤òɽ¼¨¤¹¤ë" },
+       { &center_running,              TRUE,  OPT_PAGE_MAPSCREEN, 5, 12,
+       "center_running",               "Áö¤Ã¤Æ¤¤¤ë»þ¤Ç¤âÃæ¿´¤ËÃÖ¤¯" },
 #else
-       { &show_weights,                TRUE,  2, 0, 11,
-       "show_weights",                 "Show weights in object listings" },
+       { &center_running,              TRUE,  OPT_PAGE_MAPSCREEN, 5, 12,
+       "center_running",               "Centering even while running" },
 #endif
 
-
 #ifdef JP
-       { &show_item_graph,             TRUE,  2, 2, 0,
-       "show_item_graph",              "¥¢¥¤¥Æ¥à¤Î¥·¥ó¥Ü¥ë¤òɽ¼¨¤¹¤ë" },
+       { &view_yellow_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 28,
+       "view_yellow_lite",             "ÌÀ¤«¤ê¤ÎÈϰϤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë" },
 #else
-       { &show_item_graph,             TRUE,  2, 2, 0,
-       "show_item_graph",              "Show items graphics" },
+       { &view_yellow_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 28,
+       "view_yellow_lite",             "Use special colors for torch-lit grids" },
 #endif
 
-
 #ifdef JP
-       { &show_choices,                TRUE,  2, 0, 12,
-       "show_choices",                 "»ý¤Áʪ/ÁõÈ÷¥¦¥£¥ó¥É¥¦¤ËÁªÂò¥¢¥¤¥Æ¥àɽ¼¨" },
+       { &view_bright_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 29,
+       "view_bright_lite",             "»ë³¦¤ÎÈϰϤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë" },
 #else
-       { &show_choices,                TRUE,  2, 0, 12,
-       "show_choices",                 "Show choices in certain sub-windows" },
+       { &view_bright_lite,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 29,
+       "view_bright_lite",             "Use special colors for 'viewable' grids" },
 #endif
 
-
 #ifdef JP
-       { &plain_pickup,                FALSE, 2, 6, 6,
-       "plain_pickup",                 "¡Ö½¦¤Ã¤¿¡×¥á¥Ã¥»¡¼¥¸¤ò´Êά²½¤¹¤ë" },
+       { &view_granite_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 30,
+       "view_granite_lite",            "ÊɤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë(½Å¤¤)" },
 #else
-       { &plain_pickup,                FALSE,99, 6, 6,
-       "plain_pickup",                 "Plain pickup messages(japanese only)" },
+       { &view_granite_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 30,
+       "view_granite_lite",            "Use special colors for wall grids (slow)" },
 #endif
 
-
 #ifdef JP
-       { &player_symbols,              FALSE, 2, 1, 13,
-       "player_symbols",               "¥×¥ì¥¤¥ä¡¼¤òÆÃÊ̤ʵ­¹æ¤Çɽ¼¨¤¹¤ë"},
+       { &view_special_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 31,
+       "view_special_lite",            "¾²¤òÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë(½Å¤¤)" },
 #else
-       { &player_symbols,              FALSE, 2, 1, 13,
-       "player_symbols",               "Use special symbols for the player char"},
+       { &view_special_lite,           TRUE,  OPT_PAGE_MAPSCREEN, 1, 31,
+       "view_special_lite",            "Use special colors for floor grids (slow)" },
 #endif
 
-
 #ifdef JP
-       { &equippy_chars,               TRUE,  2, 1, 12,
-       "equippy_chars",                "¥¹¥Æ¡¼¥¿¥¹¤Ëʸ»ú¤ÇÁõÈ÷¤òɽ¼¨¤¹¤ë" },
+       { &view_perma_grids,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 6,
+       "view_perma_grids",             "ÌÀ¤ë¤¤¾ì½ê¤Ï¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë" },
 #else
-       { &equippy_chars,               TRUE,  2, 1, 12,
-       "equippy_chars",                "Display 'equippy' chars" },
+       { &view_perma_grids,            TRUE,  OPT_PAGE_MAPSCREEN, 1, 6,
+       "view_perma_grids",             "Map remembers all perma-lit grids" },
 #endif
 
-
 #ifdef JP
-       { &display_mutations,              FALSE, 2, 5, 0,
-       "display_mutations",               "'C'¥³¥Þ¥ó¥É¤ÇÆÍÁ³ÊÑ°Û¤òɽ¼¨¤¹¤ë" },
+       { &view_torch_grids,            FALSE, OPT_PAGE_MAPSCREEN, 1, 7,
+       "view_torch_grids",             "ÌÀ¤«¤ê¤Ç¾È¤é¤·¤¿¾ì½ê¤Ï¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë" },
 #else
-       { &display_mutations,              FALSE, 2, 5, 0,
-       "display_mutations",               "Display mutations in 'C'haracter Display" },
+       { &view_torch_grids,            FALSE, OPT_PAGE_MAPSCREEN, 1, 7,
+       "view_torch_grids",             "Map remembers all torch-lit grids" },
 #endif
 
-
 #ifdef JP
-       { &plain_descriptions,          TRUE, 2, 5, 1,
-       "plain_descriptions",           "¥¢¥¤¥Æ¥à¤Îµ­½Ò¤ò´Êά¤Ë¤¹¤ë" },
+       { &view_unsafe_grids,           FALSE, OPT_PAGE_MAPSCREEN, 1, 8,
+       "view_unsafe_grids",            "¥È¥é¥Ã¥×´¶ÃκѤߤǤʤ¤¾ì½ê¤òɽ¼¨¤¹¤ë" },
 #else
-       { &plain_descriptions,          TRUE, 2, 5, 1,
-       "plain_descriptions",           "Plain object descriptions" },
+       { &view_unsafe_grids,           FALSE, OPT_PAGE_MAPSCREEN, 1, 8,
+       "view_unsafe_grids",            "Map marked by detect traps" },
 #endif
 
-
 #ifdef JP
-       { &center_player,               FALSE, 2, 5, 11,
-       "center_player",                "¾ï¤Ë¥×¥ì¥¤¥ä¡¼¤òÃæ¿´¤ËÃÖ¤¯(*ÃÙ¤¤*)" },
+       { &view_reduce_view,            FALSE, OPT_PAGE_MAPSCREEN, 1, 17,
+       "view_reduce_view",             "³¹¤Ç¤Ï»ëÌî¤ò¶¹¤¯¤¹¤ë" },
 #else
-       { &center_player,               FALSE, 2, 5, 11,
-       "center_player",                "Center map while walking (*slow*)" },
+       { &view_reduce_view,            FALSE, OPT_PAGE_MAPSCREEN, 1, 17,
+       "view_reduce_view",             "Reduce view-radius in town" },
 #endif
 
-
 #ifdef JP
-       { &center_running,              TRUE,  2, 5, 12,
-       "center_running",               "Áö¤Ã¤Æ¤¤¤ë»þ¤Ç¤âÃæ¿´¤ËÃÖ¤¯" },
+       { &fresh_before,                TRUE,  OPT_PAGE_MAPSCREEN, 1, 23,
+       "fresh_before",                 "Ϣ³¥³¥Þ¥ó¥ÉÃæ¤Ë²èÌ̤òºÆÉÁ²è¤·Â³¤±¤ë" },
 #else
-       { &center_running,              TRUE,  2, 5, 12,
-       "center_running",               "Centering even while running" },
+       { &fresh_before,                TRUE,  OPT_PAGE_MAPSCREEN, 1, 23,
+       "fresh_before",                 "Flush output while continuous command" },
 #endif
 
-
 #ifdef JP
-       { &view_yellow_lite,            TRUE,  2, 1, 28,
-       "view_yellow_lite",              "ÌÀ¤«¤ê¤ÎÈϰϤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë" },
+       { &fresh_after,                 FALSE, OPT_PAGE_MAPSCREEN, 1, 24,
+       "fresh_after",                  "¥³¥Þ¥ó¥É¸å¤Ë²èÌ̤ò¾ï¤ËºÆÉÁ²è¤·Â³¤±¤ë" },
 #else
-       { &view_yellow_lite,            TRUE,  2, 1, 28,
-       "view_yellow_lite",             "Use special colors for torch-lit grids" },
+       { &fresh_after,                 FALSE, OPT_PAGE_MAPSCREEN, 1, 24,
+       "fresh_after",                  "Flush output after monster's move" },
 #endif
 
-
 #ifdef JP
-       { &view_bright_lite,            TRUE,  2, 1, 29,
-       "view_bright_lite",             "»ë³¦¤ÎÈϰϤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë" },
+       { &fresh_message,               FALSE, OPT_PAGE_MAPSCREEN, 1, 25,
+       "fresh_message",                "¥á¥Ã¥»¡¼¥¸¤Î¸å¤Ë²èÌ̤òºÆÉÁ²è¤¹¤ë" },
 #else
-       { &view_bright_lite,            TRUE,  2, 1, 29,
-       "view_bright_lite",             "Use special colors for 'viewable' grids" },
+       { &fresh_message,               FALSE, OPT_PAGE_MAPSCREEN, 1, 25,
+       "fresh_message",                "Flush output after every message" },
 #endif
 
-
 #ifdef JP
-       { &view_granite_lite,           TRUE,  2, 1, 30,
-       "view_granite_lite",            "ÊɤòÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë(½Å¤¤)" },
+       { &hilite_player,               FALSE, OPT_PAGE_MAPSCREEN, 1, 27,
+       "hilite_player",                "¥×¥ì¥¤¥ä¡¼¤Ë¥«¡¼¥½¥ë¤ò¹ç¤ï¤»¤ë" },
 #else
-       { &view_granite_lite,           TRUE,  2, 1, 30,
-       "view_granite_lite",            "Use special colors for wall grids (slow)" },
+       { &hilite_player,               FALSE, OPT_PAGE_MAPSCREEN, 1, 27,
+       "hilite_player",                "Hilite the player with the cursor" },
 #endif
 
-
 #ifdef JP
-       { &view_special_lite,           TRUE,  2, 1, 31,
-       "view_special_lite",            "¾²¤òÆÃÊ̤ʿ§¤Çɽ¼¨¤¹¤ë(½Å¤¤)" },
+       { &display_path,                FALSE, OPT_PAGE_MAPSCREEN, 2, 8,
+       "display_path",                 "ËâË¡¤äÌð¤Îµ°Àפòɽ¼¨¤¹¤ë" },
 #else
-       { &view_special_lite,           TRUE,  2, 1, 31,
-       "view_special_lite",            "Use special colors for floor grids (slow)" },
+       { &display_path,                FALSE, OPT_PAGE_MAPSCREEN, 2, 8,
+       "display_path",                 "Display actual path before shooting" },
 #endif
 
+       /*** Text Display Options ***/
+
 #ifdef JP
-       { &new_ascii_graphics,          FALSE, 2, 2, 4,
-       "new_ascii_graphics",           "ÃÏ·Á¤ÎÌÀ°Å¤ò¤Ï¤Ã¤­¤ê¤Èɽ¼¨¤¹¤ë" },
+       { &plain_descriptions,          TRUE,  OPT_PAGE_TEXT, 5, 1,
+       "plain_descriptions",           "¥¢¥¤¥Æ¥à¤Îµ­½Ò¤ò´Êά¤Ë¤¹¤ë" },
 #else
-       { &new_ascii_graphics,          FALSE, 2, 2, 4,
-       "new_ascii_graphics",           "Show a clear contrast between light and dark" },
+       { &plain_descriptions,          TRUE,  OPT_PAGE_TEXT, 5, 1,
+       "plain_descriptions",           "Plain object descriptions" },
 #endif
 
 #ifdef JP
-       { &display_path,                FALSE, 2, 2, 8,
-       "display_path",                 "ËâË¡¤äÌð¤Îµ°Àפòɽ¼¨¤¹¤ë" },
+       { &plain_pickup,                FALSE, OPT_PAGE_TEXT, 6, 6,
+       "plain_pickup",                 "¡Ö½¦¤Ã¤¿¡×¥á¥Ã¥»¡¼¥¸¤ò´Êά²½¤¹¤ë" },
 #else
-       { &display_path,                FALSE, 2, 2, 8,
-       "display_path",                 "Display actual path before shooting" },
+       { &plain_pickup,                FALSE, OPT_PAGE_JAPANESE_ONLY, 6, 6,
+       "plain_pickup",                 "Plain pickup messages(japanese only)" },
 #endif
 
-
 #ifdef JP
-       { &always_show_list,            TRUE,  2, 4, 0,
+       { &always_show_list,            TRUE,  OPT_PAGE_TEXT, 4, 0,
        "always_show_list",             "ÁªÂò»þ¤Ë¤Ï¾ï¤Ë°ìÍ÷¤òɽ¼¨¤¹¤ë" },
 #else
-       { &always_show_list,            TRUE,  2, 4, 0,
-       "always_show_list",             "Always show list at first when select items" },
+       { &always_show_list,            TRUE,  OPT_PAGE_TEXT, 4, 0,
+       "always_show_list",             "Always show list when choosing items" },
 #endif
 
-
 #ifdef JP
-       { &change_numeral,              TRUE,  2, 4, 5,
-       "change_numeral",               "¥¢¥¤¥Æ¥à¤Î¼ïÎà¤Ë¤è¤Ã¤Æ¿ô¤¨Êý¤òÊѤ¨¤ë" },
+       { &depth_in_feet,               FALSE, OPT_PAGE_TEXT, 0, 7,
+       "depth_in_feet",                "¥À¥ó¥¸¥ç¥ó¤Î¿¼¤µ¤ò¥Õ¥£¡¼¥È¤Çɽ¼¨¤¹¤ë" },
 #else
-       { &change_numeral,              TRUE,  99, 4, 5,
-       "change_numeral",               "Change a way to counting (japanese only)" },
+       { &depth_in_feet,               FALSE, OPT_PAGE_TEXT, 0, 7,
+       "depth_in_feet",                "Show dungeon level in feet" },
 #endif
 
-
-       /*** Game-Play ***/
-
 #ifdef JP
-       { &auto_scum,                   FALSE, 3, 1, 1,
-       "auto_scum",                    "³¬¤ÎÊ·°Ïµ¤¼«Æ°Áª¤ê¹¥¤ß" },
+       { &show_labels,                 TRUE,  OPT_PAGE_TEXT, 0, 10,
+       "show_labels",                  "ÁõÈ÷°ìÍ÷¤ÇÁõÈ÷¾ì½ê¤òɽ¼¨¤¹¤ë" },
 #else
-       { &auto_scum,                   FALSE, 3, 1, 1,
-       "auto_scum",                    "Auto-scum for good levels" },
+       { &show_labels,                 TRUE,  OPT_PAGE_TEXT, 0, 10,
+       "show_labels",                  "Show labels in object listings" },
 #endif
 
-
 #ifdef JP
-       { &stack_force_notes,           TRUE,  3, 0, 8,
-       "stack_force_notes",            "°Û¤Ê¤ëÌäΥ¢¥¤¥Æ¥à¤ò¤Þ¤È¤á¤ë" },
+       { &show_weights,                TRUE,  OPT_PAGE_TEXT, 0, 11,
+       "show_weights",                 "¥¢¥¤¥Æ¥à°ìÍ÷¤Ç½ÅÎ̤òɽ¼¨¤¹¤ë" },
 #else
-       { &stack_force_notes,           TRUE,  3, 0, 8,
-       "stack_force_notes",            "Merge inscriptions when stacking" },
+       { &show_weights,                TRUE,  OPT_PAGE_TEXT, 0, 11,
+       "show_weights",                 "Show weights in object listings" },
 #endif
 
-
 #ifdef JP
-       { &stack_force_costs,           FALSE, 3, 0, 9,
-       "stack_force_costs",            "°Û¤Ê¤ë³ä°úɽ¼¨¤Î¥¢¥¤¥Æ¥à¤ò¤Þ¤È¤á¤ë" },
+       { &show_item_graph,             TRUE,  OPT_PAGE_TEXT, 2, 0,
+       "show_item_graph",              "¥¢¥¤¥Æ¥à¤Î¥·¥ó¥Ü¥ë¤òɽ¼¨¤¹¤ë" },
 #else
-       { &stack_force_costs,           FALSE, 3, 0, 9,
-       "stack_force_costs",            "Merge discounts when stacking" },
+       { &show_item_graph,             TRUE,  OPT_PAGE_TEXT, 2, 0,
+       "show_item_graph",              "Show items graphics" },
 #endif
 
-
 #ifdef JP
-       { &stack_allow_items,           TRUE,  3, 1, 2,
-       "stack_allow_items",            "Ʊ¼ï¤ÎÉð´ï¤äËɶñ¤ò¤Þ¤È¤á¤ë" },
+       { &equippy_chars,               TRUE,  OPT_PAGE_TEXT, 1, 12,
+       "equippy_chars",                "¥¹¥Æ¡¼¥¿¥¹¤Ëʸ»ú¤ÇÁõÈ÷¤òɽ¼¨¤¹¤ë" },
 #else
-       { &stack_allow_items,           TRUE,  3, 1, 2,
-       "stack_allow_items",            "Allow weapons and armor to stack" },
+       { &equippy_chars,               TRUE,  OPT_PAGE_TEXT, 1, 12,
+       "equippy_chars",                "Display 'equippy' chars" },
 #endif
 
+#ifdef JP
+       { &display_mutations,           FALSE, OPT_PAGE_TEXT, 5, 0,
+       "display_mutations",            "'C'¥³¥Þ¥ó¥É¤ÇÆÍÁ³ÊÑ°Û¤òɽ¼¨¤¹¤ë" },
+#else
+       { &display_mutations,           FALSE, OPT_PAGE_TEXT, 5, 0,
+       "display_mutations",            "Display mutations in 'C'haracter Display" },
+#endif
 
 #ifdef JP
-       { &expand_look,                 TRUE,  3, 1, 4,
-       "expand_look",                  "¡Ö²ó¤ê¤òÄ´¤Ù¤ë¡×¥³¥Þ¥ó¥É¤ò³ÈÄ¥¤¹¤ë" },
+       { &compress_savefile,           FALSE, OPT_PAGE_TEXT, 1, 26,
+       "compress_savefile",            "¥»¡¼¥Ö¡¦¥Õ¥¡¥¤¥ëÃæ¤Î¥á¥Ã¥»¡¼¥¸¤ò°µ½Ì¤¹¤ë" },
 #else
-       { &expand_look,                 TRUE,  3, 1, 4,
-       "expand_look",                  "Expand the power of the look command" },
+       { &compress_savefile,           FALSE, OPT_PAGE_TEXT, 1, 26,
+       "compress_savefile",            "Compress messages in savefiles" },
 #endif
 
+#ifdef JP
+       { &abbrev_extra,                FALSE, OPT_PAGE_TEXT, 2, 10,
+       "abbrev_extra",                 "¥¢¥¤¥Æ¥à¤ËÄɲÃÂÑÀ­/ǽÎϤÎά¾Î¤ò¹ï¤à" },
+#else
+       { &abbrev_extra,                FALSE, OPT_PAGE_TEXT, 2, 10,
+       "abbrev_extra",                 "Describe obj's extra resistances by abbreviation" },
+#endif
 
 #ifdef JP
-       { &expand_list,                 TRUE,  3, 1, 5,
-       "expand_list",                  "¡Ö°ìÍ÷¡×¥³¥Þ¥ó¥É¤ò³ÈÄ¥¤¹¤ë" },
+       { &abbrev_all,                  FALSE, OPT_PAGE_TEXT, 2, 11,
+       "abbrev_all",                   "¥¢¥¤¥Æ¥à¤ËÁ´¤Æ¤ÎÂÑÀ­/ǽÎϤÎά¾Î¤ò¹ï¤à" },
 #else
-       { &expand_list,                 TRUE,  3, 1, 5,
-       "expand_list",                  "Expand the power of the list commands" },
+       { &abbrev_all,                  FALSE, OPT_PAGE_TEXT, 2, 11,
+       "abbrev_all",                   "Describe obj's all resistances by abbreviation" },
 #endif
 
+#ifdef JP
+       { &exp_need,                    FALSE, OPT_PAGE_TEXT, 2, 12,
+       "exp_need",                     "¼¡¤Î¥ì¥Ù¥ë¤ËɬÍפʷи³Ãͤòɽ¼¨¤¹¤ë" },
+#else
+       { &exp_need,                    FALSE, OPT_PAGE_TEXT, 2, 12,
+       "exp_need",                     "Show the experience needed for next level" },
+#endif
 
 #ifdef JP
-       { &view_perma_grids,            TRUE,  3, 1, 6,
-       "view_perma_grids",             "ÌÀ¤ë¤¤¾ì½ê¤Ï¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë" },
+       { &ignore_unview,               FALSE, OPT_PAGE_TEXT, 2, 13,
+       "ignore_unview",                "»ë³¦³°¤Î¥â¥ó¥¹¥¿¡¼¤Î¹ÔÆ°¤òɽ¼¨¤·¤Ê¤¤" },
 #else
-       { &view_perma_grids,            TRUE,  3, 1, 6,
-       "view_perma_grids",             "Map remembers all perma-lit grids" },
+       { &ignore_unview,               FALSE, OPT_PAGE_TEXT, 2, 13,
+       "ignore_unview",                "Ignore whenever any monster does" },
 #endif
 
+       /*** Game-Play ***/
 
 #ifdef JP
-       { &view_torch_grids,            FALSE, 3, 1, 7,
-       "view_torch_grids",             "ÌÀ¤«¤ê¤Ç¾È¤é¤·¤¿¾ì½ê¤Ï¤½¤Î¤Þ¤Þ¤Ë¤¹¤ë" },
+       { &stack_force_notes,           TRUE,  OPT_PAGE_GAMEPLAY, 0, 8,
+       "stack_force_notes",            "°Û¤Ê¤ëÌäΥ¢¥¤¥Æ¥à¤ò¤Þ¤È¤á¤ë" },
 #else
-       { &view_torch_grids,            FALSE, 3, 1, 7,
-       "view_torch_grids",             "Map remembers all torch-lit grids" },
+       { &stack_force_notes,           TRUE,  OPT_PAGE_GAMEPLAY, 0, 8,
+       "stack_force_notes",            "Merge inscriptions when stacking" },
 #endif
 
-
 #ifdef JP
-       { &view_unsafe_grids,            FALSE, 3, 1, 8,
-       "view_unsafe_grids",             "¥È¥é¥Ã¥×´¶ÃκѤߤǤʤ¤¾ì½ê¤òɽ¼¨¤¹¤ë" },
+       { &stack_force_costs,           FALSE, OPT_PAGE_GAMEPLAY, 0, 9,
+       "stack_force_costs",            "°Û¤Ê¤ë³ä°úɽ¼¨¤Î¥¢¥¤¥Æ¥à¤ò¤Þ¤È¤á¤ë" },
 #else
-       { &view_unsafe_grids,            FALSE, 3, 1, 8,
-       "view_unsafe_grids",             "Map marked by detect traps" },
+       { &stack_force_costs,           FALSE, OPT_PAGE_GAMEPLAY, 0, 9,
+       "stack_force_costs",            "Merge discounts when stacking" },
 #endif
 
+#ifdef JP
+       { &expand_list,                 TRUE,  OPT_PAGE_GAMEPLAY, 1, 5,
+       "expand_list",                  "¡Ö°ìÍ÷¡×¥³¥Þ¥ó¥É¤ò³ÈÄ¥¤¹¤ë" },
+#else
+       { &expand_list,                 TRUE,  OPT_PAGE_GAMEPLAY, 1, 5,
+       "expand_list",                  "Expand the power of the list commands" },
+#endif
 
 #ifdef JP
-       { &small_levels,                TRUE,  3, 0, 30,
+       { &small_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 30,
        "small_levels",                 "Èó¾ï¤Ë¾®¤µ¤¤¥Õ¥í¥¢¤ÎÀ¸À®¤ò²Äǽ¤Ë¤¹¤ë" },
 #else
-       { &small_levels,                TRUE,  3, 0, 30,
+       { &small_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 30,
        "small_levels",                 "Allow unusually small dungeon levels" },
 #endif
 
-
 #ifdef JP
-       { &always_small_levels,         FALSE, 3, 2, 3,
+       { &always_small_levels,         FALSE, OPT_PAGE_GAMEPLAY, 2, 3,
        "always_small_levels",          "¾ï¤ËÈó¾ï¤Ë¾®¤µ¤¤¥Õ¥í¥¢¤òÀ¸À®¤¹¤ë" },
 #else
-       { &always_small_levels,         FALSE, 3, 2, 3,
+       { &always_small_levels,         FALSE, OPT_PAGE_GAMEPLAY, 2, 3,
        "always_small_levels",          "Always create unusually small dungeon levels" },
 #endif
 
-
 #ifdef JP
-       { &empty_levels,                TRUE,  3, 0, 31,
+       { &empty_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 31,
        "empty_levels",                 "¶õ¤Ã¤Ý¤Î¡Ö¥¢¥ê¡¼¥Ê¡×¥ì¥Ù¥ë¤ÎÀ¸À®¤ò²Äǽ¤Ë¤¹¤ë" },
 #else
-       { &empty_levels,                TRUE,  3, 0, 31,
+       { &empty_levels,                TRUE,  OPT_PAGE_GAMEPLAY, 0, 31,
        "empty_levels",                 "Allow empty 'arena' levels" },
 #endif
 
-
 #ifdef JP
-       { &bound_walls_perm,            FALSE,  3, 2, 1,
+       { &bound_walls_perm,            FALSE, OPT_PAGE_GAMEPLAY, 2, 1,
        "bound_walls_perm",             "¥À¥ó¥¸¥ç¥ó¤Î³°Êɤò±Êµ×´ä¤Ë¤¹¤ë" },
 #else
-       { &bound_walls_perm,            FALSE,  3, 2, 1,
+       { &bound_walls_perm,            FALSE, OPT_PAGE_GAMEPLAY, 2, 1,
        "bound_walls_perm",             "Boundary walls become 'permanent wall'" },
 #endif
 
-
 #ifdef JP
-       { &last_words,                  TRUE, 3, 0, 28,
+       { &last_words,                  TRUE,  OPT_PAGE_GAMEPLAY, 0, 28,
        "last_words",                   "¥­¥ã¥é¥¯¥¿¡¼¤¬»à¤ó¤À»þ°ä¸À¤ò¤Î¤³¤¹" },
 #else
-       { &last_words,                  TRUE, 3, 0, 28,
+       { &last_words,                  TRUE,  OPT_PAGE_GAMEPLAY, 0, 28,
        "last_words",                   "Leave last words when your character dies" },
 #endif
 
-
 #ifdef WORLD_SCORE
 #ifdef JP
-       { &send_score,                  TRUE,  3, 4, 6,
+       { &send_score,                  TRUE,  OPT_PAGE_GAMEPLAY, 4, 6,
        "send_score",                   "¥¹¥³¥¢¥µ¡¼¥Ð¤Ë¥¹¥³¥¢¤òÁ÷¤ë" },
 #else
-       { &send_score,                  TRUE,  3, 4, 6,
+       { &send_score,                  TRUE,  OPT_PAGE_GAMEPLAY, 4, 6,
        "send_score",                   "Send score dump to the world score server" },
 #endif
 #endif
 
-
 #ifdef JP
-       { &allow_debug_opts,            FALSE, 3, 6, 11,
+       { &allow_debug_opts,            FALSE, OPT_PAGE_GAMEPLAY, 6, 11,
        "allow_debug_opts",             "¥Ç¥Ð¥Ã¥°/º¾µ½¥ª¥×¥·¥ç¥ó¤òµö²Ä¤¹¤ë" },
 #else
-       { &allow_debug_opts,            FALSE, 3, 6, 11,
+       { &allow_debug_opts,            FALSE, OPT_PAGE_GAMEPLAY, 6, 11,
        "allow_debug_opts",             "Allow use of debug/cheat options" },
 #endif
 
-
-
-
        /*** Disturbance ***/
 
 #ifdef JP
-       { &find_ignore_stairs,          FALSE, 4, 0, 16,
+       { &find_ignore_stairs,          FALSE, OPT_PAGE_DISTURBANCE, 0, 16,
        "find_ignore_stairs",           "³¬ÃʤÏÄ̲᤹¤ë" },
 #else
-       { &find_ignore_stairs,          FALSE, 4, 0, 16,
+       { &find_ignore_stairs,          FALSE, OPT_PAGE_DISTURBANCE, 0, 16,
        "find_ignore_stairs",           "Run past stairs" },
 #endif
 
-
 #ifdef JP
-       { &find_ignore_doors,           TRUE,  4, 0, 17,
+       { &find_ignore_doors,           TRUE,  OPT_PAGE_DISTURBANCE, 0, 17,
        "find_ignore_doors",            "¥É¥¢¤ÏÄ̲᤹¤ë" },
 #else
-       { &find_ignore_doors,           TRUE,  4, 0, 17,
+       { &find_ignore_doors,           TRUE,  OPT_PAGE_DISTURBANCE, 0, 17,
        "find_ignore_doors",            "Run through open doors" },
 #endif
 
-
 #ifdef JP
-       { &find_cut,                    FALSE, 4, 0, 18,
+       { &find_cut,                    FALSE, OPT_PAGE_DISTURBANCE, 0, 18,
        "find_cut",                     "¶Ê¤ê³Ñ¤ò¼Ð¤á¤ËºÇûµ÷Î¥¤ÇÄ̲᤹¤ë" },
 #else
-       { &find_cut,                    FALSE, 4, 0, 18,
+       { &find_cut,                    FALSE, OPT_PAGE_DISTURBANCE, 0, 18,
        "find_cut",                     "Run past known corners" },
 #endif
 
+#ifdef JP
+       { &check_abort,                 TRUE,  OPT_PAGE_DISTURBANCE, 1, 18,
+       "check_abort",                  "Ϣ³¥³¥Þ¥ó¥É¤Ï¥­¡¼ÆþÎϤÇÃæÃǤ¹¤ë" },
+#else
+       { &check_abort,                 TRUE,  OPT_PAGE_DISTURBANCE, 1, 18,
+       "check_abort",                  "Check for user abort while continuous command" },
+#endif
 
 #ifdef JP
-       { &find_examine,                TRUE,  4, 0, 19,
-       "find_examine",                 "ÄÌÏ©¤¬°Å¤¤»þ¤Ë¤Ê¤ë¤Ù¤¯¶Ê¤ê³Ñ¤È²¾Äꤷ¤ÆÄ̲᤹¤ë" },
+       { &flush_failure,               TRUE,  OPT_PAGE_DISTURBANCE, 1, 20,
+       "flush_failure",                "ÍÍ¡¹¤Ê¥ß¥¹È¯À¸»þ¤ËÆþÎϤò¥¯¥ê¥¢¤¹¤ë" },
 #else
-       { &find_examine,                TRUE,  4, 0, 19,
-       "find_examine",                 "Run into potential corners" },
+       { &flush_failure,               TRUE,  OPT_PAGE_DISTURBANCE, 1, 20,
+       "flush_failure",                "Flush input on various failures" },
 #endif
 
+#ifdef JP
+       { &flush_disturb,               FALSE, OPT_PAGE_DISTURBANCE, 1, 21,
+       "flush_disturb",                "¾ã³²È¯À¸»þ¤ËÆþÎϤò¥¯¥ê¥¢¤¹¤ë" },
+#else
+       { &flush_disturb,               FALSE, OPT_PAGE_DISTURBANCE, 1, 21,
+       "flush_disturb",                "Flush input whenever disturbed" },
+#endif
 
 #ifdef JP
-       { &disturb_move,                FALSE,  4, 0, 20,
+       { &disturb_move,                FALSE, OPT_PAGE_DISTURBANCE, 0, 20,
        "disturb_move",                 "¤É¤³¤Î¥â¥ó¥¹¥¿¡¼¤¬Æ°¤¤¤Æ¤â¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_move,                FALSE,  4, 0, 20,
+       { &disturb_move,                FALSE, OPT_PAGE_DISTURBANCE, 0, 20,
        "disturb_move",                 "Disturb whenever any monster moves" },
 #endif
 
-
 #ifdef JP
-       { &disturb_high,                FALSE,  4, 1, 3,
-       "disturb_high",                 "¥ì¥Ù¥ë¤Î¹â¤¤¥â¥ó¥¹¥¿¡¼¤¬Æ°¤¤¤¿¤é¹ÔÆ°¤òÃæ»ß¤¹¤ë"},
+       { &disturb_high,                FALSE, OPT_PAGE_DISTURBANCE, 1, 3,
+       "disturb_high",                 "¥ì¥Ù¥ë¤Î¹â¤¤¥â¥ó¥¹¥¿¡¼¤¬Æ°¤¤¤¿¤é¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_high,                FALSE,  4, 1, 3,
+       { &disturb_high,                FALSE, OPT_PAGE_DISTURBANCE, 1, 3,
        "disturb_high",                 "Disturb whenever high-level monster moves" },
 #endif
 
-
 #ifdef JP
-       { &disturb_near,                TRUE,  4, 0, 21,
+       { &disturb_near,                TRUE,  OPT_PAGE_DISTURBANCE, 0, 21,
        "disturb_near",                 "»ë³¦Æâ¤Î¥â¥ó¥¹¥¿¡¼¤¬Æ°¤¤¤¿¤é¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_near,                TRUE,  4, 0, 21,
+       { &disturb_near,                TRUE,  OPT_PAGE_DISTURBANCE, 0, 21,
        "disturb_near",                 "Disturb whenever viewable monster moves" },
 #endif
 
-
 #ifdef JP
-       { &disturb_pets,                FALSE, 4, 5, 6,
+       { &disturb_pets,                FALSE, OPT_PAGE_DISTURBANCE, 5, 6,
        "disturb_pets",                 "»ë³¦Æâ¤Î¥Ú¥Ã¥È¤¬Æ°¤¤¤¿¤é¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_pets,                FALSE, 4, 5, 6,
+       { &disturb_pets,                FALSE, OPT_PAGE_DISTURBANCE, 5, 6,
        "disturb_pets",                 "Disturb when visible pets move" },
 #endif
 
-
 #ifdef JP
-       { &disturb_panel,               TRUE,  4, 0, 22,
+       { &disturb_panel,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 22,
        "disturb_panel",                "²èÌÌ¥¹¥¯¥í¡¼¥ë»þ¤Ë¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_panel,               TRUE,  4, 0, 22,
+       { &disturb_panel,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 22,
        "disturb_panel",                "Disturb whenever map panel changes" },
 #endif
 
-
 #ifdef JP
-       { &disturb_state,               TRUE,  4, 0, 23,
+       { &disturb_state,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 23,
        "disturb_state",                "¼«Ê¬¤Î¥¹¥Æ¡¼¥¿¥¹ÊѲ½»þ¤Ë¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_state,               TRUE,  4, 0, 23,
+       { &disturb_state,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 23,
        "disturb_state",                "Disturb whenever player state changes" },
 #endif
 
-
 #ifdef JP
-       { &disturb_minor,               TRUE,  4, 0, 24,
+       { &disturb_minor,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 24,
        "disturb_minor",                "º³ºÙ¤Ê¤³¤È¤¬µ¯¤­¤Æ¤â¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_minor,               TRUE,  4, 0, 24,
+       { &disturb_minor,               TRUE,  OPT_PAGE_DISTURBANCE, 0, 24,
        "disturb_minor",                "Disturb whenever boring things happen" },
 #endif
 
-
 #ifdef JP
-       { &ring_bell,                   FALSE, 4, 0, 14,
+       { &ring_bell,                   FALSE, OPT_PAGE_DISTURBANCE, 0, 14,
        "ring_bell",                    "¥¨¥é¡¼»þ¤Ë¥Ó¡¼¥×²»¤òÌĤ餹" },
 #else
-       { &ring_bell,                   FALSE, 4, 0, 14,
+       { &ring_bell,                   FALSE, OPT_PAGE_DISTURBANCE, 0, 14,
        "ring_bell",                    "Audible bell (on errors, etc)" },
 #endif
 
-
-#ifdef JP
-       { &alert_hitpoint,              TRUE, 4, 0, 26,
-       "alert_hitpoint",               "Äã¥Ò¥Ã¥È¥Ý¥¤¥ó¥È¤Î·Ù¹ð»þ¤Ë¥Ó¡¼¥×¤òÌĤ餹" },
-#else
-       { &alert_hitpoint,              TRUE, 4, 0, 26,
-       "alert_hitpoint",               "Alert user to critical hitpoints" },
-#endif
-
-
 #ifdef JP
-       { &disturb_trap_detect,         TRUE, 4, 0, 27,
+       { &disturb_trap_detect,         TRUE,  OPT_PAGE_DISTURBANCE, 0, 27,
        "disturb_trap_detect",          "¥È¥é¥Ã¥×´¶ÃÎÈϰϳ°¤Ë½Ð¤ëľÁ°¤Ë¹ÔÆ°¤òÃæ»ß¤¹¤ë" },
 #else
-       { &disturb_trap_detect,         TRUE, 4, 0, 27,
-       "disturb_trap_detect",          "Disturb when leaving trap detected area"},
+       { &disturb_trap_detect,         TRUE,  OPT_PAGE_DISTURBANCE, 0, 27,
+       "disturb_trap_detect",          "Disturb when leaving trap detected area" },
 #endif
 
 #ifdef JP
-       { &alert_trap_detect,           FALSE, 4, 0, 25,
+       { &alert_trap_detect,           FALSE, OPT_PAGE_DISTURBANCE, 0, 25,
        "alert_trap_detect",            "¥È¥é¥Ã¥×´¶ÃÎÈϰϳ°¤Ë½Ð¤ëľÁ°¤Ë·Ù¹ð¤¹¤ë" },
 #else
-       { &alert_trap_detect,           FALSE, 4, 0, 25,
-       "alert_trap_detect",            "Alert when leaving trap detected area"},
-#endif
-
-
-       /*** Efficiency ***/
-
-#ifdef JP
-       { &view_reduce_lite,            FALSE, 5, 1, 16,
-     "view_reduce_lite",  "Áö¤Ã¤Æ¤¤¤ë¤È¤­¤ÏÌÀ¤«¤ê¤ÎȾ·Â¤ò¸º¾¯¤¹¤ë" },
-#else
-       { &view_reduce_lite,            FALSE, 5, 1, 16,
-       "view_reduce_lite",             "Reduce lite-radius when running" },
-#endif
-
-
-#ifdef JP
-       { &view_reduce_view,            FALSE, 5, 1, 17,
-       "view_reduce_view",             "³¹¤Ç¤Ï»ëÌî¤ò¶¹¤¯¤¹¤ë" },
-#else
-       { &view_reduce_view,            FALSE, 5, 1, 17,
-       "view_reduce_view",             "Reduce view-radius in town" },
-#endif
-
-
-#ifdef JP
-       { &check_abort,                 TRUE,  5, 1, 18,
-       "check_abort",                  "Ϣ³¥³¥Þ¥ó¥É¤Ï¥­¡¼ÆþÎϤÇÃæÃǤ¹¤ë" },
-#else
-       { &check_abort,                 TRUE,  5, 1, 18,
-       "check_abort",                  "Check for user abort while continuous command" },
-#endif
-
-
-#ifdef JP
-       { &flush_failure,               TRUE,  5, 1, 20,
-       "flush_failure",                "ÍÍ¡¹¤Ê¥ß¥¹È¯À¸»þ¤ËÆþÎϤò¥¯¥ê¥¢¤¹¤ë" },
-#else
-       { &flush_failure,               TRUE,  5, 1, 20,
-       "flush_failure",                "Flush input on various failures" },
-#endif
-
-
-#ifdef JP
-       { &flush_disturb,               FALSE, 5, 1, 21,
-       "flush_disturb",                "¾ã³²È¯À¸»þ¤ËÆþÎϤò¥¯¥ê¥¢¤¹¤ë" },
-#else
-       { &flush_disturb,               FALSE, 5, 1, 21,
-       "flush_disturb",                "Flush input whenever disturbed" },
-#endif
-
-
-#ifdef JP
-       { &fresh_before,                TRUE,  5, 1, 23,
-       "fresh_before",                 "Ϣ³¥³¥Þ¥ó¥ÉÃæ¤Ë²èÌ̤òºÆÉÁ²è¤·Â³¤±¤ë" },
-#else
-       { &fresh_before,                TRUE,  5, 1, 23,
-       "fresh_before",                 "Flush output while continuous command" },
-#endif
-
-
-#ifdef JP
-       { &fresh_after,                 FALSE, 5, 1, 24,
-       "fresh_after",                  "¥³¥Þ¥ó¥É¸å¤Ë²èÌ̤ò¾ï¤ËºÆÉÁ²è¤·Â³¤±¤ë" },
-#else
-       { &fresh_after,                 FALSE, 5, 1, 24,
-       "fresh_after",                  "Flush output after monster's move" },
-#endif
-
-
-#ifdef JP
-       { &fresh_message,               FALSE, 5, 1, 25,
-       "fresh_message",                "¥á¥Ã¥»¡¼¥¸¤Î¸å¤Ë²èÌ̤òºÆÉÁ²è¤¹¤ë" },
-#else
-       { &fresh_message,               FALSE, 5, 1, 25,
-       "fresh_message",                "Flush output after every message" },
-#endif
-
-
-#ifdef JP
-       { &compress_savefile,           FALSE, 5, 1, 26,
-       "compress_savefile",            "¥»¡¼¥Ö¡¦¥Õ¥¡¥¤¥ëÃæ¤Î¥á¥Ã¥»¡¼¥¸¤ò°µ½Ì¤¹¤ë" },
-#else
-       { &compress_savefile,           FALSE, 5, 1, 26,
-       "compress_savefile",            "Compress messages in savefiles" },
-#endif
-
-
-#ifdef JP
-       { &hilite_player,               FALSE,  5, 1, 27,
-       "hilite_player",                "¥×¥ì¥¤¥ä¡¼¤Ë¥«¡¼¥½¥ë¤ò¹ç¤ï¤»¤ë" },
-#else
-       { &hilite_player,               FALSE,  5, 1, 27,
-       "hilite_player",                "Hilite the player with the cursor" },
+       { &alert_trap_detect,           FALSE, OPT_PAGE_DISTURBANCE, 0, 25,
+       "alert_trap_detect",            "Alert when leaving trap detected area" },
 #endif
 
-
        /*** Birth Options ***/
 
 #ifdef JP
-       { &manual_haggle,               FALSE, 6, 1, 0,
+       { &manual_haggle,               FALSE, OPT_PAGE_BIRTH, 1, 0,
        "manual_haggle",                "Ź¤ÇÃÍÀÚ¤ê¸ò¾Ä¤ò¤¹¤ë" },
 #else
-       { &manual_haggle,               FALSE, 6, 1, 0,
+       { &manual_haggle,               FALSE, OPT_PAGE_BIRTH, 1, 0,
        "manual_haggle",                "Manually haggle in stores" },
 #endif
 
-
 #ifdef JP
-       { &easy_band,                   FALSE, 6, 6, 31,
+       { &easy_band,                   FALSE, OPT_PAGE_BIRTH, 6, 31,
        "easy_band",                    "½é¿´¼ÔÍÑ´Êñ¥â¡¼¥É(*)" },
 #else
-       { &easy_band,                   FALSE, 6, 6, 31,
+       { &easy_band,                   FALSE, OPT_PAGE_BIRTH, 6, 31,
        "easy_band",                    "Easy Mode (*)" },
 #endif
 
-
 #ifdef JP
-       { &smart_learn,                 TRUE,  6, 1, 14,
+       { &smart_learn,                 TRUE,  OPT_PAGE_BIRTH, 1, 14,
        "smart_learn",                  "¥â¥ó¥¹¥¿¡¼¤Ï¼ºÇÔ¤ò³Ø½¬¤¹¤ë(*)" },
 #else
-       { &smart_learn,                 TRUE,  6, 1, 14,
+       { &smart_learn,                 TRUE,  OPT_PAGE_BIRTH, 1, 14,
        "smart_learn",                  "Monsters learn from their mistakes (*)" },
 #endif
 
-
 #ifdef JP
-       { &smart_cheat,                 FALSE, 6, 1, 15,
+       { &smart_cheat,                 FALSE, OPT_PAGE_BIRTH, 1, 15,
        "smart_cheat",                  "¥â¥ó¥¹¥¿¡¼¤Ï¥×¥ì¥¤¥ä¡¼¤Î¼å¤ß¤òÆͤ¯(*)" },
 #else
-       { &smart_cheat,                 FALSE, 6, 1, 15,
+       { &smart_cheat,                 FALSE, OPT_PAGE_BIRTH, 1, 15,
        "smart_cheat",                  "Monsters exploit players weaknesses (*)" },
 #endif
 
-
 #ifdef JP
-       { &vanilla_town,                FALSE, 6, 6, 0,
+       { &vanilla_town,                FALSE, OPT_PAGE_BIRTH, 6, 0,
        "vanilla_town",                 "¸µÁĤγ¹/¥¯¥¨¥¹¥È¤È¹ÓÌî¤Ê¤·" },
 #else
-       { &vanilla_town,                FALSE, 6, 6, 0,
+       { &vanilla_town,                FALSE, OPT_PAGE_BIRTH, 6, 0,
        "vanilla_town",                 "Use 'vanilla' town without quests and wilderness" },
 #endif
 
-
 #ifdef JP
-       { &lite_town,                   FALSE, 6, 6, 1,
+       { &lite_town,                   FALSE, OPT_PAGE_BIRTH, 6, 1,
        "lite_town",                    "¾®µ¬ÌϤʳ¹/¹ÓÌî¤Ê¤·" },
 #else
-       { &lite_town,                   FALSE, 6, 6, 1,
+       { &lite_town,                   FALSE, OPT_PAGE_BIRTH, 6, 1,
        "lite_town",                    "Use 'lite' town without a wilderness" },
 #endif
 
-
 #ifdef JP
-       { &ironman_shops,               FALSE, 6, 6, 2,
-       "ironman_shops",                "¡ÊÅ´¿ÍÍÑ¡ËŹ¤ò»ÈÍѤ·¤Ê¤¤(*)" },
+       { &ironman_shops,               FALSE, OPT_PAGE_BIRTH, 6, 2,
+       "ironman_shops",                "(Å´¿ÍÍÑ)Ź¤ò»ÈÍѤ·¤Ê¤¤(*)" },
 #else
-       { &ironman_shops,               FALSE, 6, 6, 2,
+       { &ironman_shops,               FALSE, OPT_PAGE_BIRTH, 6, 2,
        "ironman_shops",                "Stores are permanently closed (*)" },
 #endif
 
-
 #ifdef JP
-       { &ironman_small_levels,        FALSE, 6, 6, 3,
-       "ironman_small_levels",         "¡ÊÅ´¿ÍÍѡ˾ï¤ËÈó¾ï¤Ë¾®¤µ¤¤¥Õ¥í¥¢¤òÀ¸À®(*)" },
+       { &ironman_small_levels,        FALSE, OPT_PAGE_BIRTH, 6, 3,
+       "ironman_small_levels",         "(Å´¿ÍÍÑ)¾ï¤ËÈó¾ï¤Ë¾®¤µ¤¤¥Õ¥í¥¢¤òÀ¸À®(*)" },
 #else
-       { &ironman_small_levels,        FALSE, 6, 6, 3,
+       { &ironman_small_levels,        FALSE, OPT_PAGE_BIRTH, 6, 3,
        "ironman_small_levels",         "Always create unusually small dungeon levels (*)" },
 #endif
 
-
 #ifdef JP
-       { &ironman_downward,            FALSE, 6, 6, 4,
-       "ironman_downward",             "¡ÊÅ´¿ÍÍѡ˵¢´Ô¤È¾å¤ê³¬Ãʤʤ·(*)" },
+       { &ironman_downward,            FALSE, OPT_PAGE_BIRTH, 6, 4,
+       "ironman_downward",             "(Å´¿ÍÍÑ)µ¢´Ô¤È¾å¤ê³¬Ãʤʤ·(*)" },
 #else
-       { &ironman_downward,            FALSE, 6, 6, 4,
+       { &ironman_downward,            FALSE, OPT_PAGE_BIRTH, 6, 4,
        "ironman_downward",             "Disable recall and use of up stairs (*)" },
 #endif
 
-
-#ifdef JP
-       { &ironman_autoscum,            FALSE, 6, 6, 5,
-       "ironman_autoscum",             "¡ÊÅ´¿ÍÍѡ˾ï¤Ë³¬¤ÎÊ·°Ïµ¤¤ò¼«Æ°Áª¤ê¹¥¤ß¤¹¤ë" },
-#else
-       { &ironman_autoscum,            FALSE, 6, 6, 5,
-       "ironman_autoscum",             "Permanently enable the autoscummer" },
-#endif
-
-
 #ifdef JP
-       { &ironman_empty_levels,         FALSE, 6, 6, 8,
-       "ironman_empty_levels",          "¡ÊÅ´¿ÍÍѡ˾ï¤Ë¶õ¤Ã¤Ý¤Î¥¢¥ê¡¼¥Ê¥ì¥Ù¥ë¤òÀ¸À®(*)" },
+       { &ironman_empty_levels,        FALSE, OPT_PAGE_BIRTH, 6, 8,
+       "ironman_empty_levels",         "(Å´¿ÍÍÑ)¾ï¤Ë¶õ¤Ã¤Ý¤Î¥¢¥ê¡¼¥Ê¥ì¥Ù¥ë¤òÀ¸À®(*)" },
 #else
-       { &ironman_empty_levels,        FALSE, 6, 6, 8,
+       { &ironman_empty_levels,        FALSE, OPT_PAGE_BIRTH, 6, 8,
        "ironman_empty_levels",         "Always create empty 'arena' levels (*)" },
 #endif
 
-
 #ifdef JP
-       { &ironman_rooms,                FALSE, 6, 6, 12,
-       "ironman_rooms",                 "¡ÊÅ´¿ÍÍѡ˾ï¤ËÉáÄ̤Ǥʤ¤Éô²°¤òÀ¸À®¤¹¤ë(*)" },
+       { &ironman_rooms,               FALSE, OPT_PAGE_BIRTH, 6, 12,
+       "ironman_rooms",                "(Å´¿ÍÍÑ)¾ï¤ËÉáÄ̤Ǥʤ¤Éô²°¤òÀ¸À®¤¹¤ë(*)" },
 #else
-       { &ironman_rooms,               FALSE, 6, 6, 12,
+       { &ironman_rooms,               FALSE, OPT_PAGE_BIRTH, 6, 12,
        "ironman_rooms",                "Always generate very unusual rooms (*)" },
 #endif
 
-
 #ifdef JP
-       { &ironman_nightmare,           FALSE, 6, 6, 18,
-       "ironman_nightmare",            "¡ÊÅ´¿ÍÍÑ¡Ë°­Ì´¥â¡¼¥É(¤³¤ì¤ÏÁ´¤¯ÉÔ¾òÍý¤Ç¤¹¡ª)(*)" },
+       { &ironman_nightmare,           FALSE, OPT_PAGE_BIRTH, 6, 18,
+       "ironman_nightmare",            "(Å´¿ÍÍÑ)°­Ì´¥â¡¼¥É(¤³¤ì¤ÏÁ´¤¯ÉÔ¾òÍý¤Ç¤¹¡ª)(*)" },
 #else
-       { &ironman_nightmare,           FALSE, 6, 6, 18,
-       "ironman_nightmare",            "Nightmare mode(it isn't even remotely fair!)(*)" },
+       { &ironman_nightmare,           FALSE, OPT_PAGE_BIRTH, 6, 18,
+       "ironman_nightmare",            "Nightmare mode(it isn't even remotely fair!)(*)" },
 #endif
 
 #ifdef JP
-       { &left_hander,                 FALSE, 6, 6, 13,
+       { &left_hander,                 FALSE, OPT_PAGE_BIRTH, 6, 13,
        "left_hander",                  "º¸Íø¤­¤Ç¤¢¤ë" },
 #else
-       { &left_hander,                 FALSE, 6, 6, 13,
+       { &left_hander,                 FALSE, OPT_PAGE_BIRTH, 6, 13,
        "left_hander",                  "Left-Hander" },
 #endif
 
-
 #ifdef JP
-       { &preserve_mode,               TRUE,  6, 6, 14,
+       { &preserve_mode,               TRUE,  OPT_PAGE_BIRTH, 6, 14,
        "preserve_mode",                "ÅÁÀâ¤Î¥¢¥¤¥Æ¥à¤ò¼è¤êƨ¤·¤Æ¤âºÆÀ¸À®¤µ¤ì¤ë(*)" },
 #else
-       { &preserve_mode,               TRUE,  6, 6, 14,
+       { &preserve_mode,               TRUE,  OPT_PAGE_BIRTH, 6, 14,
        "preserve_mode",                "Preserve artifacts (*)" },
 #endif
 
-
 #ifdef JP
-       { &autoroller,                  TRUE,  6, 6, 15,
+       { &autoroller,                  TRUE,  OPT_PAGE_BIRTH, 6, 15,
        "autoroller",                   "ǽÎÏÃͤ˥ª¡¼¥È¥í¡¼¥é¡¼»ÈÍÑ(*)" },
 #else
-       { &autoroller,                  TRUE,  6, 6, 15,
+       { &autoroller,                  TRUE,  OPT_PAGE_BIRTH, 6, 15,
        "autoroller",                   "Allow use of autoroller for stats (*)" },
 #endif
 
-
 #ifdef JP
-       { &autochara,                   FALSE, 6, 6, 16,
+       { &autochara,                   FALSE, OPT_PAGE_BIRTH, 6, 16,
        "autochara",                   "ÂγÊ/Ãϰ̤˥ª¡¼¥È¥í¡¼¥é¡¼»ÈÍÑ" },
 #else
-       { &autochara,                   FALSE, 6, 6, 16,
+       { &autochara,                   FALSE, OPT_PAGE_BIRTH, 6, 16,
        "autochara",                    "Autoroll for weight, height and social status" },
 #endif
 
-
 #ifdef JP
-       { &powerup_home,                TRUE,  6, 4, 3,
+       { &powerup_home,                TRUE,  OPT_PAGE_BIRTH, 4, 3,
        "powerup_home",                 "²æ¤¬²È¤ò³ÈÄ¥¤¹¤ë(*)" },
-
 #else
-       { &powerup_home,                TRUE,  6, 4, 3,
+       { &powerup_home,                TRUE,  OPT_PAGE_BIRTH, 4, 3,
        "powerup_home",                 "Increase capacity of your home (*)" },
 #endif
 
-
        /*** Easy Object Auto-Destroyer ***/
 
 #ifdef JP
-       { &destroy_items,               FALSE, 7, 7, 0,
+       { &destroy_items,               FALSE, OPT_PAGE_AUTODESTROY, 7, 0,
        "destroy_items",                "¥¢¥¤¥Æ¥à¤Î´Ê°×¼«Æ°Ç˲õ¤ò»ÈÍѤ¹¤ë" },
 #else
-       { &destroy_items,               FALSE, 7, 7, 0,
+       { &destroy_items,               FALSE, OPT_PAGE_AUTODESTROY, 7, 0,
        "destroy_items",                "Use easy auto-destroyer" },
 #endif
 
 #ifdef JP
-       { &destroy_feeling,               FALSE, 7, 7, 8,
-       "destroy_feeling",                "´Ê°×´ÕÄꤷ¤¿¤È¤­¼«Æ°Ç˲õ¤òŬÍѤ¹¤ë" },
+       { &destroy_feeling,             FALSE, OPT_PAGE_AUTODESTROY, 7, 8,
+       "destroy_feeling",              "´Ê°×´ÕÄꤷ¤¿¤È¤­¼«Æ°Ç˲õ¤òŬÍѤ¹¤ë" },
 #else
-       { &destroy_feeling,               FALSE, 7, 7, 8,
-       "destroy_feeling",                "Apply auto-destroy as sense feeling" },
+       { &destroy_feeling,             FALSE, OPT_PAGE_AUTODESTROY, 7, 8,
+       "destroy_feeling",              "Apply auto-destroy as sense feeling" },
 #endif
 
 #ifdef JP
-       { &destroy_identify,               FALSE, 7, 7, 9,
-       "destroy_identify",                "´ÕÄꤷ¤¿¤È¤­¼«Æ°Ç˲õ¤òŬÍѤ¹¤ë" },
+       { &destroy_identify,            FALSE, OPT_PAGE_AUTODESTROY, 7, 9,
+       "destroy_identify",             "´ÕÄꤷ¤¿¤È¤­¼«Æ°Ç˲õ¤òŬÍѤ¹¤ë" },
 #else
-       { &destroy_identify,               FALSE, 7, 7, 9,
-       "destroy_identify",                "Apply auto-destroy as identify an item" },
+       { &destroy_identify,            FALSE, OPT_PAGE_AUTODESTROY, 7, 9,
+       "destroy_identify",             "Apply auto-destroy as identify an item" },
 #endif
 
 #ifdef JP
-       { &leave_worth,                 TRUE, 7, 7, 2,
+       { &leave_worth,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 2,
        "leave_worth",                  "²ÁÃͤ¬¤¢¤ë¥¢¥¤¥Æ¥à¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_worth,                 TRUE, 7, 7, 2,
+       { &leave_worth,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 2,
        "leave_worth",                  "Auto-destroyer leaves known worthy items" },
 #endif
 
 #ifdef JP
-       { &leave_equip,                 FALSE, 7, 7, 3,
+       { &leave_equip,                 FALSE, OPT_PAGE_AUTODESTROY, 7, 3,
        "leave_equip",                  "Éð´ï/Ëɶñ¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_equip,                 FALSE, 7, 7, 3,
+       { &leave_equip,                 FALSE, OPT_PAGE_AUTODESTROY, 7, 3,
        "leave_equip",                  "Auto-destroyer leaves weapons and armour" },
 #endif
 
 #ifdef JP
-       { &leave_chest,                 TRUE, 7, 7, 7,
+       { &leave_chest,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 7,
        "leave_chest",                  "³«Éõ¤µ¤ì¤Æ¤¤¤Ê¤¤È¢¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_chest,                 TRUE, 7, 7, 7,
+       { &leave_chest,                 TRUE,  OPT_PAGE_AUTODESTROY, 7, 7,
        "leave_chest",                  "Auto-destroyer leaves closed chests" },
 #endif
 
 #ifdef JP
-       { &leave_wanted,                TRUE, 7, 7, 4,
+       { &leave_wanted,                TRUE,  OPT_PAGE_AUTODESTROY, 7, 4,
        "leave_wanted",                 "¾Þ¶â¼ó¤Î»àÂÎ/¹ü¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_wanted,                TRUE, 7, 7, 4,
+       { &leave_wanted,                TRUE,  OPT_PAGE_AUTODESTROY, 7, 4,
        "leave_wanted",                 "Auto-destroyer leaves wanted corpses" },
 #endif
 
 #ifdef JP
-       { &leave_corpse,                FALSE, 7, 7, 5,
+       { &leave_corpse,                FALSE, OPT_PAGE_AUTODESTROY, 7, 5,
        "leave_corpse",                 "»àÂÎ/¹ü¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_corpse,                FALSE, 7, 7, 5,
+       { &leave_corpse,                FALSE, OPT_PAGE_AUTODESTROY, 7, 5,
        "leave_corpse",                 "Auto-destroyer leaves corpses and skeletons" },
 #endif
 
 #ifdef JP
-       { &leave_junk,                  FALSE, 7, 7, 6,
+       { &leave_junk,                  FALSE, OPT_PAGE_AUTODESTROY, 7, 6,
        "leave_junk",                   "¤¬¤é¤¯¤¿¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_junk,                  FALSE, 7, 7, 6,
+       { &leave_junk,                  FALSE, OPT_PAGE_AUTODESTROY, 7, 6,
        "leave_junk",                   "Auto-destroyer leaves junk" },
 #endif
 
 #ifdef JP
-       { &leave_special,               TRUE, 7, 7, 1,
+       { &leave_special,               TRUE,  OPT_PAGE_AUTODESTROY, 7, 1,
        "leave_special",                "¼ï²/¿¦¶È¤ÇÆÃÊ̤ËɬÍפʥ¢¥¤¥Æ¥à¤Ï²õ¤µ¤Ê¤¤" },
 #else
-       { &leave_special,               TRUE, 7, 7, 1,
+       { &leave_special,               TRUE,  OPT_PAGE_AUTODESTROY, 7, 1,
        "leave_special",                "Auto-destroyer leaves items your race/class needs" },
 #endif
 
-
        /*** Play-record Options ***/
 
 #ifdef JP
-       { &record_fix_art,              TRUE, 10, 4, 11,
+       { &record_fix_art,              TRUE,  OPT_PAGE_PLAYRECORD, 4, 11,
        "record_fix_art",               "¸ÇÄꥢ¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤ÎÆþ¼ê¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_fix_art,              TRUE, 10, 4, 11,
+       { &record_fix_art,              TRUE,  OPT_PAGE_PLAYRECORD, 4, 11,
        "record_fix_art",               "Record fixed artifacts" },
 #endif
 
 #ifdef JP
-       { &record_rand_art,             TRUE, 10, 4, 12,
+       { &record_rand_art,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 12,
        "record_rand_art",              "¥é¥ó¥À¥à¥¢¡¼¥Æ¥£¥Õ¥¡¥¯¥È¤ÎÆþ¼ê¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_rand_art,             TRUE, 10, 4, 12,
+       { &record_rand_art,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 12,
        "record_rand_art",              "Record random artifacts" },
 #endif
 
 #ifdef JP
-       { &record_destroy_uniq,         TRUE, 10, 4, 13,
+       { &record_destroy_uniq,         TRUE,  OPT_PAGE_PLAYRECORD, 4, 13,
        "record_destroy_uniq",          "¥æ¥Ë¡¼¥¯¥â¥ó¥¹¥¿¡¼¤òÅݤ·¤¿¤È¤­¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_destroy_uniq,         TRUE, 10, 4, 13,
+       { &record_destroy_uniq,         TRUE,  OPT_PAGE_PLAYRECORD, 4, 13,
        "record_destroy_uniq",          "Record when destroy unique monster" },
 #endif
 
 #ifdef JP
-       { &record_fix_quest,            TRUE, 10, 4, 14,
+       { &record_fix_quest,            TRUE,  OPT_PAGE_PLAYRECORD, 4, 14,
        "record_fix_quest",             "¸ÇÄꥯ¥¨¥¹¥È¤ÎãÀ®¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_fix_quest,            TRUE, 10, 4, 14,
+       { &record_fix_quest,            TRUE,  OPT_PAGE_PLAYRECORD, 4, 14,
        "record_fix_quest",             "Record fixed quests" },
 #endif
 
 #ifdef JP
-       { &record_rand_quest,           TRUE, 10, 4, 15,
+       { &record_rand_quest,           TRUE,  OPT_PAGE_PLAYRECORD, 4, 15,
        "record_rand_quest",            "¥é¥ó¥À¥à¥¯¥¨¥¹¥È¤ÎãÀ®¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_rand_quest,           TRUE, 10, 4, 15,
+       { &record_rand_quest,           TRUE,  OPT_PAGE_PLAYRECORD, 4, 15,
        "record_rand_quest",            "Record random quests" },
 #endif
 
 #ifdef JP
-       { &record_maxdeapth,            TRUE, 10, 4, 16,
-       "record_maxdeapth",             "ºÇ¿¼³¬¤ò¹¹¿·¤·¤¿¤È¤­¤Ëµ­Ï¿¤¹¤ë" },
+       { &record_maxdepth,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 16,
+       "record_maxdepth",              "ºÇ¿¼³¬¤ò¹¹¿·¤·¤¿¤È¤­¤Ëµ­Ï¿¤¹¤ë" },
 #else
-       { &record_maxdeapth,            TRUE, 10, 4, 16,
-       "record_maxdeapth",             "Record movements to deepest level" },
+       { &record_maxdepth,             TRUE,  OPT_PAGE_PLAYRECORD, 4, 16,
+       "record_maxdepth",              "Record movements to deepest level" },
 #endif
 
 #ifdef JP
-       { &record_stair,                TRUE, 10, 4, 17,
+       { &record_stair,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 17,
        "record_stair",                 "³¬¤Î°ÜÆ°¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_stair,                TRUE, 10, 4, 17,
+       { &record_stair,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 17,
        "record_stair",                 "Record recall and stair movements" },
 #endif
 
 #ifdef JP
-       { &record_buy,                  TRUE, 10, 4, 18,
+       { &record_buy,                  TRUE,  OPT_PAGE_PLAYRECORD, 4, 18,
        "record_buy",                   "¥¢¥¤¥Æ¥à¤Î¹ØÆþ¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_buy,                  TRUE, 10, 4, 18,
+       { &record_buy,                  TRUE,  OPT_PAGE_PLAYRECORD, 4, 18,
        "record_buy",                   "Record purchased items" },
 #endif
 
 #ifdef JP
-       { &record_sell,                 FALSE, 10, 4, 19,
+       { &record_sell,                 FALSE, OPT_PAGE_PLAYRECORD, 4, 19,
        "record_sell",                  "¥¢¥¤¥Æ¥à¤ÎÇäµÑ¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_sell,                 FALSE, 10, 4, 19,
+       { &record_sell,                 FALSE, OPT_PAGE_PLAYRECORD, 4, 19,
        "record_sell",                  "Record sold items" },
 #endif
 
 #ifdef JP
-       { &record_danger,               TRUE, 10, 4, 20,
+       { &record_danger,               TRUE,  OPT_PAGE_PLAYRECORD, 4, 20,
        "record_danger",                "¥Ô¥ó¥Á¤Ë¤Ê¤Ã¤¿¤È¤­¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_danger,               TRUE, 10, 4, 20,
+       { &record_danger,               TRUE,  OPT_PAGE_PLAYRECORD, 4, 20,
        "record_danger",                "Record hitpoint warning" },
 #endif
 
 #ifdef JP
-       { &record_arena,                TRUE, 10, 4, 21,
+       { &record_arena,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 21,
        "record_arena",                 "¥¢¥ê¡¼¥Ê¤Ç¤Î¾¡Íø¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_arena,                TRUE, 10, 4, 21,
+       { &record_arena,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 21,
        "record_arena",                 "Record arena victories" },
 #endif
 
 #ifdef JP
-       { &record_ident,                TRUE, 10, 4, 22,
+       { &record_ident,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 22,
        "record_ident",                 "̤ȽÌÀ¤Î¥¢¥¤¥Æ¥à¤Î¼±Ê̤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_ident,                TRUE, 10, 4, 22,
+       { &record_ident,                TRUE,  OPT_PAGE_PLAYRECORD, 4, 22,
        "record_ident",                 "Record first identified items" },
 #endif
 
 #ifdef JP
-       { &record_named_pet,            FALSE, 10, 4, 23,
+       { &record_named_pet,            FALSE, OPT_PAGE_PLAYRECORD, 4, 23,
        "record_named_pet",             "̾Á°¤Ä¤­¥Ú¥Ã¥È¤Î¾ðÊó¤òµ­Ï¿¤¹¤ë" },
 #else
-       { &record_named_pet,            FALSE, 10, 4, 23,
+       { &record_named_pet,            FALSE, OPT_PAGE_PLAYRECORD, 4, 23,
        "record_named_pet",             "Record informations of named pets" },
 #endif
 
-
        /*** End of Table ***/
 
        { NULL,                         0, 0, 0, 0,
@@ -7905,22 +6735,6 @@ cptr exp_level_str[5]=
 {"[Unskilled]", "[Beginner]", "[Skilled]", "[Expert]", "[Master]"};
 #endif
 
-byte conv_terrain2feat[MAX_WILDERNESS] =
-{
-  FEAT_PERM_EXTRA,
-  FEAT_TOWN,
-  FEAT_DEEP_WATER,
-  FEAT_SHAL_WATER,
-  FEAT_SWAMP,
-  FEAT_DIRT,
-  FEAT_GRASS,
-  FEAT_TREES,
-  FEAT_DIRT,
-  FEAT_SHAL_LAVA,
-  FEAT_DEEP_LAVA,
-  FEAT_MOUNTAIN
-};
-
 /* Weird melee attack types when hallucinating */
 #ifdef JP
 cptr silly_attacks[MAX_SILLY_ATTACK] =
@@ -8298,3 +7112,127 @@ mbe_info_type mbe_info[] =
        {  5, GF_MANA,       }, /* DR_MANA   */
        { 60, GF_MISSILE,    }, /* SUPERHURT */
 };
+
+
+/*
+ * The table of features' actions
+ */
+byte feature_action_flags[FF_FLAG_MAX] =
+{
+       0, /* LOS */
+       0, /* PROJECT */
+       0, /* MOVE */
+       0, /* PLACE */
+       0, /* DROP */
+       0, /* SECRET */
+       0, /* NOTICE */
+       0, /* REMEMBER */
+       0, /* OPEN */
+       0, /* CLOSE */
+       FAF_CRASH_GLASS, /* BASH */
+       0, /* SPIKE */
+       FAF_DESTROY, /* DISARM */
+       0, /* STORE */
+       FAF_DESTROY | FAF_CRASH_GLASS, /* TUNNEL */
+       0, /* MAY_HAVE_GOLD */
+       0, /* HAS_GOLD */
+       0, /* HAS_ITEM */
+       0, /* DOOR */
+       0, /* TRAP */
+       0, /* STAIRS */
+       0, /* GLYPH */
+       0, /* LESS */
+       0, /* MORE */
+       0, /* RUN */
+       0, /* FLOOR */
+       0, /* WALL */
+       0, /* PERMANENT */
+       0, /* INNER */
+       0, /* OUTER */
+       0, /* SOLID */
+       0, /* HIT_TRAP */
+
+       0, /* BRIDGE */
+       0, /* RIVER */
+       0, /* LAKE */
+       0, /* BRIDGED */
+       0, /* COVERED */
+       0, /* GLOW */
+       0, /* ENSECRET */
+       0, /* WATER */
+       0, /* LAVA */
+       0, /* SHALLOW */
+       0, /* DEEP */
+       0, /* FILLED */
+       FAF_DESTROY | FAF_CRASH_GLASS, /* HURT_ROCK */
+       0, /* HURT_FIRE */
+       0, /* HURT_COLD */
+       0, /* HURT_ACID */
+       0, /* ICE */
+       0, /* ACID */
+       0, /* OIL */
+       0, /* XXX04 */
+       0, /* CAN_CLIMB */
+       0, /* CAN_FLY */
+       0, /* CAN_SWIM */
+       0, /* CAN_PASS */
+       0, /* CAN_OOZE */
+       0, /* CAN_DIG */
+       0, /* HIDE_ITEM */
+       0, /* HIDE_SNEAK */
+       0, /* HIDE_SWIM */
+       0, /* HIDE_DIG */
+       0, /* KILL_HUGE */
+       0, /* KILL_MOVE */
+
+       0, /* PICK_TRAP */
+       0, /* PICK_DOOR */
+       0, /* ALLOC */
+       0, /* CHEST */
+       0, /* DROP_1D2 */
+       0, /* DROP_2D2 */
+       0, /* DROP_GOOD */
+       0, /* DROP_GREAT */
+       0, /* HURT_POIS */
+       0, /* HURT_ELEC */
+       0, /* HURT_WATER */
+       0, /* HURT_BWATER */
+       0, /* USE_FEAT */
+       0, /* GET_FEAT */
+       0, /* GROUND */
+       0, /* OUTSIDE */
+       0, /* EASY_HIDE */
+       0, /* EASY_CLIMB */
+       0, /* MUST_CLIMB */
+       0, /* TREE */
+       0, /* NEED_TREE */
+       0, /* BLOOD */
+       0, /* DUST */
+       0, /* SLIME */
+       0, /* PLANT */
+       0, /* XXX2 */
+       0, /* INSTANT */
+       0, /* EXPLODE */
+       0, /* TIMED */
+       0, /* ERUPT */
+       0, /* STRIKE */
+       0, /* SPREAD */
+
+       0, /* SPECIAL */
+       FAF_DESTROY | FAF_NO_DROP | FAF_CRASH_GLASS, /* HURT_DISI */
+       0, /* QUEST_ENTER */
+       0, /* QUEST_EXIT */
+       0, /* QUEST */
+       0, /* SHAFT */
+       0, /* MOUNTAIN */
+       0, /* BLDG */
+       0, /* MINOR_GLYPH */
+       0, /* PATTERN */
+       0, /* TOWN */
+       0, /* ENTRANCE */
+       0, /* MIRROR */
+       0, /* UNPERM */
+       0, /* TELEPORTABLE */
+       0, /* CONVERT */
+       0, /* GLASS */
+};