OSDN Git Service

自動拾いエディタでfreeした領域をアクセスしているバグを修正。
[hengband/hengband.git] / src / cmd3.c
index 42e7e3a..e8ce3b1 100644 (file)
@@ -407,8 +407,10 @@ void do_cmd_wield(void)
                return;
        }
 
-       if (object_is_cursed(o_ptr) && confirm_wear &&
-           (object_is_known(o_ptr) || (o_ptr->ident & IDENT_SENSE)))
+       if (confirm_wear &&
+               ((object_is_cursed(o_ptr) && object_is_known(o_ptr)) ||
+               ((o_ptr->ident & IDENT_SENSE) &&
+                       (FEEL_BROKEN <= o_ptr->feeling) && (o_ptr->feeling <= FEEL_CURSED))))
        {
                char dummy[MAX_NLEN+80];
 
@@ -530,6 +532,9 @@ msg_print("
        /* Wear the new stuff */
        object_copy(o_ptr, q_ptr);
 
+       /* Player touches it */
+       o_ptr->marked |= OM_TOUCHED;
+
        /* Increase the weight */
        p_ptr->total_weight += q_ptr->weight;
 
@@ -917,7 +922,8 @@ static bool high_level_book(object_type *o_ptr)
            (o_ptr->tval == TV_CRAFT_BOOK) ||
            (o_ptr->tval == TV_DAEMON_BOOK) ||
            (o_ptr->tval == TV_CRUSADE_BOOK) ||
-           (o_ptr->tval == TV_MUSIC_BOOK))
+           (o_ptr->tval == TV_MUSIC_BOOK) ||
+               (o_ptr->tval == TV_HEX_BOOK))
        {
                if (o_ptr->sval > 1)
                        return TRUE;