OSDN Git Service

スペルマスター/赤魔道師では "アイテムの詳細" ウィンドウ表示で使った魔法書の呪文
authornothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 3 May 2003 08:20:28 +0000 (08:20 +0000)
committernothere <nothere@0568b783-4c39-0410-ac80-bf13821ea2a2>
Sat, 3 May 2003 08:20:28 +0000 (08:20 +0000)
一覧が表示されないバグを修正.

src/object2.c

index 5c9a710..090cfa2 100644 (file)
@@ -6261,6 +6261,8 @@ void display_koff(int k_idx)
 
        object_type forge;
        object_type *q_ptr;
+       int         sval;
+       int         use_realm;
 
        char o_name[MAX_NLEN];
 
@@ -6287,22 +6289,28 @@ void display_koff(int k_idx)
        /* Mention the object name */
        Term_putstr(0, 0, -1, TERM_WHITE, o_name);
 
+       /* Access the item's sval */
+       sval = q_ptr->sval;
+       use_realm = tval2realm(q_ptr->tval);
+
        /* Warriors are illiterate */
-       if (!(p_ptr->realm1 || p_ptr->realm2)) return;
+       if (p_ptr->realm1 || p_ptr->realm2)
+       {
+               if ((use_realm != p_ptr->realm1) && (use_realm != p_ptr->realm2)) return;
+       }
+       else
+       {
+               if ((p_ptr->pclass != CLASS_SORCERER) && (p_ptr->pclass != CLASS_RED_MAGE)) return;
+               if (!is_magic(use_realm)) return;
+               if ((p_ptr->pclass == CLASS_RED_MAGE) && (use_realm != REALM_ARCANE) && (sval > 1)) return;
+       }
 
        /* Display spells in readible books */
-       if ((q_ptr->tval == REALM1_BOOK) ||
-           (q_ptr->tval == REALM2_BOOK))
        {
-               int     sval;
                int     spell = -1;
                int     num = 0;
                byte    spells[64];
 
-
-               /* Access the item's sval */
-               sval = q_ptr->sval;
-
                /* Extract spells */
                for (spell = 0; spell < 32; spell++)
                {
@@ -6315,8 +6323,7 @@ void display_koff(int k_idx)
                }
 
                /* Print spells */
-               print_spells(0, spells, num, 2, 0,
-                   (q_ptr->tval == REALM1_BOOK ? p_ptr->realm1 : p_ptr->realm2));
+               print_spells(0, spells, num, 2, 0, use_realm);
        }
 }