(void)detect_doors(DETECT_RAD_DEFAULT);
(void)detect_stairs(DETECT_RAD_DEFAULT);
(void)detect_treasure(DETECT_RAD_DEFAULT);
- (void)detect_objects_gold(DETECT_RAD_DEFAULT);
+ (void)detect_objects_gold(creature_ptr, DETECT_RAD_DEFAULT);
(void)detect_objects_normal(DETECT_RAD_DEFAULT);
identify_pack(creature_ptr);
self_knowledge(creature_ptr);
case SV_SCROLL_DETECT_GOLD:
{
if (detect_treasure(DETECT_RAD_DEFAULT)) ident = TRUE;
- if (detect_objects_gold(DETECT_RAD_DEFAULT)) ident = TRUE;
+ if (detect_objects_gold(creature_ptr, DETECT_RAD_DEFAULT)) ident = TRUE;
break;
}
case SV_STAFF_DETECT_GOLD:
{
if (detect_treasure(detect_rad)) ident = TRUE;
- if (detect_objects_gold(detect_rad)) ident = TRUE;
+ if (detect_objects_gold(creature_ptr, detect_rad)) ident = TRUE;
break;
}
if (cast)
{
detect_treasure(rad);
- detect_objects_gold(rad);
+ detect_objects_gold(caster_ptr, rad);
}
}
break;
{
/* There are too many hidden treasure. So... */
/* detect_treasure(rad); */
- detect_objects_gold(rad);
+ detect_objects_gold(caster_ptr, rad);
detect_objects_normal(rad);
if (plev > 24 && count < 11)
{
detect_objects_normal(rad);
detect_treasure(rad);
- detect_objects_gold(rad);
+ detect_objects_gold(caster_ptr, rad);
}
}
break;
extern bool detect_doors(POSITION range);
extern bool detect_stairs(POSITION range);
extern bool detect_treasure(POSITION range);
-extern bool detect_objects_gold(POSITION range);
+extern bool detect_objects_gold(player_type *caster_ptr, POSITION range);
extern bool detect_objects_normal(POSITION range);
extern bool detect_objects_magic(POSITION range);
extern bool detect_monsters_normal(POSITION range);
* @param range 効果範囲
* @return 効力があった場合TRUEを返す
*/
-bool detect_objects_gold(POSITION range)
+bool detect_objects_gold(player_type *caster_ptr, POSITION range)
{
OBJECT_IDX i;
POSITION y, x;
bool detect = FALSE;
- if (d_info[p_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
+ if (d_info[caster_ptr->dungeon_idx].flags1 & DF1_DARKNESS) range2 /= 3;
/* Scan objects */
- for (i = 1; i < p_ptr->current_floor_ptr->o_max; i++)
+ for (i = 1; i < caster_ptr->current_floor_ptr->o_max; i++)
{
- object_type *o_ptr = &p_ptr->current_floor_ptr->o_list[i];
+ object_type *o_ptr = &caster_ptr->current_floor_ptr->o_list[i];
if (!OBJECT_IS_VALID(o_ptr)) continue;
if (OBJECT_IS_HELD_MONSTER(o_ptr)) continue;
x = o_ptr->ix;
/* Only detect nearby objects */
- if (distance(p_ptr->y, p_ptr->x, y, x) > range2) continue;
+ if (distance(caster_ptr->y, caster_ptr->x, y, x) > range2) continue;
/* Detect "gold" objects */
if (o_ptr->tval == TV_GOLD)
}
}
- if (music_singing(p_ptr, MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
+ if (music_singing(caster_ptr, MUSIC_DETECT) && SINGING_COUNT(caster_ptr) > 6) detect = FALSE;
if (detect)
{
msg_print(_("財宝の存在を感じとった!", "You sense the presence of treasure!"));
/* There are too many hidden treasure. So... */
/* if (detect_treasure(range)) detect = TRUE; */
- if (detect_objects_gold(range)) detect = TRUE;
+ if (detect_objects_gold(p_ptr, range)) detect = TRUE;
if (detect_objects_normal(range)) detect = TRUE;
if (detect_monsters_invis(range)) detect = TRUE;
if (detect_monsters_normal(range)) detect = TRUE;