}
-#define MAX_ESP_WEAK 9
+#define MAX_ESP_WEAK 10
static void add_esp_weak(object_type *o_ptr, bool extra)
{
int i = 0;
case 7: add_flag(o_ptr->art_flags, TR_ESP_DRAGON); break;
case 8: add_flag(o_ptr->art_flags, TR_ESP_HUMAN); break;
case 9: add_flag(o_ptr->art_flags, TR_ESP_GOOD); break;
+ case 10: add_flag(o_ptr->art_flags, TR_ESP_UNIQUE); break;
}
}
}
/* Hack -- analyze ego-items */
- else if (object_is_ego(o_ptr))
+ if (object_is_ego(o_ptr))
{
ego_item_type *e_ptr = &e_info[o_ptr->name2];
case TV_CRUSADE_BOOK:
case TV_MUSIC_BOOK:
case TV_HISSATSU_BOOK:
+ case TV_HEX_BOOK:
{
if (k_ptr->sval >= SV_BOOK_MIN_GOOD) return (TRUE);
return (FALSE);
case TV_CAPTURE:
if (r_info[o_ptr->pval].level < r_info[j_ptr->pval].level) return TRUE;
if ((r_info[o_ptr->pval].level == r_info[j_ptr->pval].level) && (o_ptr->pval < j_ptr->pval)) return TRUE;
- break;
+ return FALSE;
case TV_SHOT:
case TV_ARROW:
/* Forget location */
j_ptr->iy = j_ptr->ix = 0;
- /* No longer marked */
- j_ptr->marked = 0;
+ /* Player touches it, and no longer marked */
+ j_ptr->marked = OM_TOUCHED;
/* Increase the weight */
p_ptr->total_weight += (j_ptr->number * j_ptr->weight);
int i, item;
int dec = 4;
bool observe = FALSE;
- int old_ds, old_dd, old_to_h, old_to_d, old_ac, old_to_a, old_pval, old_name2;
+ int old_ds, old_dd, old_to_h, old_to_d, old_ac, old_to_a, old_pval, old_name2, old_timeout;
u32b old_flgs[TR_FLAG_SIZE], new_flgs[TR_FLAG_SIZE];
object_type *o_ptr;
cptr q, s;
old_dd = o_ptr->dd;
old_pval = o_ptr->pval;
old_name2 = o_ptr->name2;
+ old_timeout = o_ptr->timeout;
if (o_ptr->curse_flags & (TRC_CURSED | TRC_HEAVY_CURSE | TRC_PERMA_CURSE)) dec--;
if (have_flag(old_flgs, TR_AGGRAVATE)) dec--;
if (have_flag(old_flgs, TR_NO_TELE)) dec--;
o_ptr->next_o_idx=next_o_idx;
o_ptr->marked=marked;
o_ptr->number = number;
+ if (o_ptr->tval == TV_DRAG_ARMOR) o_ptr->timeout = old_timeout;
if (item >= 0) p_ptr->total_weight += (o_ptr->weight*o_ptr->number - weight*number);
o_ptr->ident |= (IDENT_MENTAL);
object_aware(o_ptr);