summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Kozlov <zaba@thorium.homeunix.org>2009-11-06 15:54:52 +0300
committerJude Brown <bookofjude@users.sourceforge.net>2009-11-06 23:22:04 +1000
commit8aaaca3d1c38a41d88b6dddf55fa48fd9aecb539 (patch)
tree7e3d75c7a1f32cc41facc17d36986df022a5870a
parentcddc002566e2f235a3785e12d534ebc0202bb53e (diff)
downloadcrawl-ref-8aaaca3d1c38a41d88b6dddf55fa48fd9aecb539.tar.gz
crawl-ref-8aaaca3d1c38a41d88b6dddf55fa48fd9aecb539.zip
Rename is_valid_item to item_def::is_valid.
Signed-off-by: Jude Brown <bookofjude@users.sourceforge.net>
-rw-r--r--crawl-ref/source/abyss.cc2
-rw-r--r--crawl-ref/source/acr.cc4
-rw-r--r--crawl-ref/source/beam.cc6
-rw-r--r--crawl-ref/source/chardump.cc4
-rw-r--r--crawl-ref/source/command.cc6
-rw-r--r--crawl-ref/source/debug.cc24
-rw-r--r--crawl-ref/source/decks.cc4
-rw-r--r--crawl-ref/source/delay.cc12
-rw-r--r--crawl-ref/source/describe.cc2
-rw-r--r--crawl-ref/source/directn.cc4
-rw-r--r--crawl-ref/source/dungeon.cc2
-rw-r--r--crawl-ref/source/effects.cc8
-rw-r--r--crawl-ref/source/externs.h2
-rw-r--r--crawl-ref/source/fight.cc4
-rw-r--r--crawl-ref/source/files.cc2
-rw-r--r--crawl-ref/source/food.cc22
-rw-r--r--crawl-ref/source/hiscores.cc2
-rw-r--r--crawl-ref/source/invent.cc16
-rw-r--r--crawl-ref/source/item_use.cc10
-rw-r--r--crawl-ref/source/itemprop.cc10
-rw-r--r--crawl-ref/source/items.cc70
-rw-r--r--crawl-ref/source/items.h2
-rw-r--r--crawl-ref/source/l_dgnit.cc2
-rw-r--r--crawl-ref/source/l_item.cc20
-rw-r--r--crawl-ref/source/makeitem.cc6
-rw-r--r--crawl-ref/source/misc.cc22
-rw-r--r--crawl-ref/source/mon-act.cc2
-rw-r--r--crawl-ref/source/monster.cc4
-rw-r--r--crawl-ref/source/monstuff.cc8
-rw-r--r--crawl-ref/source/newgame.cc8
-rw-r--r--crawl-ref/source/ouch.cc4
-rw-r--r--crawl-ref/source/player.cc2
-rw-r--r--crawl-ref/source/quiver.cc12
-rw-r--r--crawl-ref/source/religion.cc6
-rw-r--r--crawl-ref/source/shopping.cc4
-rw-r--r--crawl-ref/source/spells3.cc2
-rw-r--r--crawl-ref/source/spells4.cc2
-rw-r--r--crawl-ref/source/stash.cc2
-rw-r--r--crawl-ref/source/stuff.cc2
-rw-r--r--crawl-ref/source/tilereg.cc10
-rw-r--r--crawl-ref/source/tilesdl.cc2
-rw-r--r--crawl-ref/source/traps.cc2
-rw-r--r--crawl-ref/source/tutorial.cc4
-rw-r--r--crawl-ref/source/xom.cc4
44 files changed, 174 insertions, 174 deletions
diff --git a/crawl-ref/source/abyss.cc b/crawl-ref/source/abyss.cc
index a31fec923f..2de00503a3 100644
--- a/crawl-ref/source/abyss.cc
+++ b/crawl-ref/source/abyss.cc
@@ -609,7 +609,7 @@ void abyss_teleport( bool new_area )
// Orbs and fixed artefacts are marked as "lost in the abyss".
for (int i = 0; i < MAX_ITEMS; ++i)
{
- if (is_valid_item( mitm[i] ))
+ if (mitm[i].is_valid())
{
item_was_lost( mitm[i] );
destroy_item( i );
diff --git a/crawl-ref/source/acr.cc b/crawl-ref/source/acr.cc
index 56c5e2a908..2fc76337dd 100644
--- a/crawl-ref/source/acr.cc
+++ b/crawl-ref/source/acr.cc
@@ -750,7 +750,7 @@ static void _recharge_rods()
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (i != wielded && is_valid_item(you.inv[i])
+ if (i != wielded && you.inv[i].is_valid()
&& one_chance_in(3)
&& _recharge_rod( you.inv[i], false ))
{
@@ -4011,7 +4011,7 @@ static void _move_player(coord_def move)
mpr("Shifting.", MSGCH_DIAGNOSTICS);
int j = 0;
for (int i = 0; i < MAX_ITEMS; ++i)
- if (is_valid_item( mitm[i] ))
+ if (mitm[i].is_valid())
++j;
mprf(MSGCH_DIAGNOSTICS, "Number of items present: %d", j);
diff --git a/crawl-ref/source/beam.cc b/crawl-ref/source/beam.cc
index af014304af..81500142cf 100644
--- a/crawl-ref/source/beam.cc
+++ b/crawl-ref/source/beam.cc
@@ -1569,7 +1569,7 @@ void bolt::initialise_fire()
ASSERT(!name.empty() || is_tracer);
ASSERT(in_bounds(source));
ASSERT(flavour > BEAM_NONE && flavour < BEAM_FIRST_PSEUDO);
- ASSERT(!drop_item || item && is_valid_item(*item));
+ ASSERT(!drop_item || item && item->is_valid());
ASSERT(range >= 0);
ASSERT(!aimed_at_feet || source == target);
@@ -3034,7 +3034,7 @@ bool bolt::stop_at_target() const
void bolt::drop_object()
{
- ASSERT( item != NULL && is_valid_item(*item) );
+ ASSERT( item != NULL && item->is_valid() );
// Conditions: beam is missile and not tracer.
if (is_tracer || flavour != BEAM_MISSILE)
@@ -5973,7 +5973,7 @@ std::string bolt::get_short_name() const
if (!short_name.empty())
return (short_name);
- if (item != NULL && is_valid_item(*item))
+ if (item != NULL && item->is_valid())
return item->name(DESC_NOCAP_A, false, false, false, false,
ISFLAG_IDENT_MASK | ISFLAG_COSMETIC_MASK
| ISFLAG_RACIAL_MASK);
diff --git a/crawl-ref/source/chardump.cc b/crawl-ref/source/chardump.cc
index b277542512..f1ccd1edcb 100644
--- a/crawl-ref/source/chardump.cc
+++ b/crawl-ref/source/chardump.cc
@@ -797,7 +797,7 @@ static void _sdump_inventory(dump_params &par)
for (i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item( you.inv[i] ))
+ if (you.inv[i].is_valid())
{
// adds up number of each class in invent.
inv_class2[you.inv[i].base_type]++;
@@ -841,7 +841,7 @@ static void _sdump_inventory(dump_params &par)
for (j = 0; j < ENDOFPACK; j++)
{
- if (is_valid_item(you.inv[j]) && you.inv[j].base_type == i)
+ if (you.inv[j].is_valid() && you.inv[j].base_type == i)
{
text += " ";
text += you.inv[j].name(DESC_INVENTORY_EQUIP);
diff --git a/crawl-ref/source/command.cc b/crawl-ref/source/command.cc
index ed7a181af5..7de4e0cd7e 100644
--- a/crawl-ref/source/command.cc
+++ b/crawl-ref/source/command.cc
@@ -320,7 +320,7 @@ void swap_inv_slots(int from_slot, int to_slot, bool verbose)
{
mpr( you.inv[to_slot].name(DESC_INVENTORY_EQUIP).c_str() );
- if (is_valid_item( you.inv[from_slot] ))
+ if (you.inv[from_slot].is_valid())
mpr( you.inv[from_slot].name(DESC_INVENTORY_EQUIP).c_str() );
}
@@ -668,7 +668,7 @@ void list_weapons(void)
wstring = "Secondary : ";
colour = MSGCOL_BLACK;
- if (is_valid_item( you.inv[i])
+ if (you.inv[i].is_valid()
&& (you.inv[i].base_type == OBJ_WEAPONS
|| you.inv[i].base_type == OBJ_STAVES
|| you.inv[i].base_type == OBJ_MISCELLANY))
@@ -697,7 +697,7 @@ void list_weapons(void)
{
const item_def* item;
you.m_quiver->get_desired_item(&item, &slot);
- if (!is_valid_item(*item))
+ if (!item->is_valid())
{
wstring += " nothing";
}
diff --git a/crawl-ref/source/debug.cc b/crawl-ref/source/debug.cc
index 7d8b879ad3..7b19cec67d 100644
--- a/crawl-ref/source/debug.cc
+++ b/crawl-ref/source/debug.cc
@@ -2295,7 +2295,7 @@ void wizard_identify_pack()
for (int i = 0; i < ENDOFPACK; ++i)
{
item_def& item = you.inv[i];
- if (is_valid_item(item))
+ if (item.is_valid())
{
set_ident_type(item, ID_KNOWN_TYPE);
set_ident_flags(item, ISFLAG_IDENT_MASK);
@@ -2311,7 +2311,7 @@ void wizard_unidentify_pack()
for (int i = 0; i < ENDOFPACK; ++i)
{
item_def& item = you.inv[i];
- if (is_valid_item(item))
+ if (item.is_valid())
{
set_ident_type(item, ID_UNKNOWN_TYPE);
unset_ident_flags(item, ISFLAG_IDENT_MASK);
@@ -2336,7 +2336,7 @@ void wizard_unidentify_pack()
item_def &item = mitm[mon->inv[j]];
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
set_ident_type(item, ID_UNKNOWN_TYPE);
@@ -2547,7 +2547,7 @@ void wizard_list_items()
for (int i = 0; i < MAX_ITEMS; ++i)
{
item_def &item(mitm[i]);
- if (!is_valid_item(item) || item.held_by_monster())
+ if (!item.is_valid() || item.held_by_monster())
continue;
if (item.link != NON_ITEM)
@@ -2781,7 +2781,7 @@ void debug_item_scan( void )
}
// Check for invalid (zero quantity) items that are linked in.
- if (!is_valid_item( mitm[obj] ))
+ if (!mitm[obj].is_valid())
{
mprf(MSGCH_ERROR, "Linked invalid item at (%d,%d)!",
ri->x, ri->y);
@@ -2812,7 +2812,7 @@ void debug_item_scan( void )
// Now scan all the items on the level:
for (i = 0; i < MAX_ITEMS; ++i)
{
- if (!is_valid_item( mitm[i] ))
+ if (!mitm[i].is_valid())
continue;
strcpy(name, mitm[i].name(DESC_PLAIN).c_str());
@@ -3088,7 +3088,7 @@ void debug_mons_scan()
}
item_def &item(mitm[idx]);
- if (!is_valid_item(item))
+ if (!item.is_valid())
{
_announce_level_prob(warned);
warned = true;
@@ -3312,7 +3312,7 @@ static void _debug_acquirement_stats(FILE *ostat)
if (!acquirement(type, AQ_WIZMODE, true, &item_index)
|| item_index == NON_ITEM
- || !is_valid_item(mitm[item_index]))
+ || !mitm[item_index].is_valid())
{
mpr("Acquirement failed, stopping early.");
break;
@@ -4531,7 +4531,7 @@ int fsim_kit_equip(const std::string &kit)
{
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
if (you.inv[i].name(DESC_PLAIN).find(weapon) != std::string::npos)
@@ -4553,7 +4553,7 @@ int fsim_kit_equip(const std::string &kit)
{
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
if (you.inv[i].name(DESC_PLAIN).find(missile) != std::string::npos)
@@ -6258,7 +6258,7 @@ static void _dump_player(FILE *file)
item.quantity = orig_quant;
continue;
}
- else if (!is_valid_item(item))
+ else if (!item.is_valid())
continue;
const std::string name = item.name(DESC_PLAIN, false, true);
@@ -6732,7 +6732,7 @@ void debug_dump_mon(const monsters* mon, bool recurse)
}
const item_def &item(mitm[idx]);
- if (!is_valid_item(item))
+ if (!item.is_valid())
{
fprintf(stderr, "invalid item" EOL);
continue;
diff --git a/crawl-ref/source/decks.cc b/crawl-ref/source/decks.cc
index 1322a890f0..f7ebebf85e 100644
--- a/crawl-ref/source/decks.cc
+++ b/crawl-ref/source/decks.cc
@@ -3118,7 +3118,7 @@ static bool _shuffle_all_decks_on_level()
for (int i = 0; i < MAX_ITEMS; ++i)
{
item_def& item(mitm[i]);
- if (is_valid_item(item) && is_deck(item))
+ if (item.is_valid() && is_deck(item))
{
#ifdef DEBUG_DIAGNOSTICS
mprf(MSGCH_DIAGNOSTICS, "Shuffling: %s on level %d, branch %d",
@@ -3142,7 +3142,7 @@ static bool _shuffle_inventory_decks()
for (int i = 0; i < ENDOFPACK; ++i)
{
item_def& item(you.inv[i]);
- if (is_valid_item(item) && is_deck(item))
+ if (item.is_valid() && is_deck(item))
{
#ifdef DEBUG_DIAGNOSTICS
mprf(MSGCH_DIAGNOSTICS, "Shuffling in inventory: %s",
diff --git a/crawl-ref/source/delay.cc b/crawl-ref/source/delay.cc
index 5784a95c82..f9b887cbf5 100644
--- a/crawl-ref/source/delay.cc
+++ b/crawl-ref/source/delay.cc
@@ -794,7 +794,7 @@ void handle_delay()
case DELAY_BUTCHER:
case DELAY_BOTTLE_BLOOD:
- if (!is_valid_item(mitm[delay.parm1]))
+ if (!mitm[delay.parm1].is_valid())
break;
mprf(MSGCH_MULTITURN_ACTION, "You start %s the %s.",
@@ -854,7 +854,7 @@ void handle_delay()
if (you.hunger_state == HS_ENGORGED
|| you.hunger_state > HS_SATIATED && player_in_bat_form()
|| you.hunger_state >= HS_SATIATED
- && is_valid_item(mitm[delay.parm1])
+ && mitm[delay.parm1].is_valid()
&& is_poisonous(mitm[delay.parm1]))
{
// Messages handled in _food_change() in food.cc.
@@ -876,7 +876,7 @@ void handle_delay()
// monster could die and create a corpse with the same ID number...
// However, it would not be at the player's square like the
// original and that's why we do it this way.
- if (is_valid_item(mitm[ delay.parm1 ])
+ if (mitm[delay.parm1].is_valid()
&& mitm[ delay.parm1 ].base_type == OBJ_CORPSES
&& mitm[ delay.parm1 ].pos == you.pos())
{
@@ -950,7 +950,7 @@ void handle_delay()
while (!items_for_multidrop.empty()
// Don't look for gold in inventory
&& items_for_multidrop[0].slot != PROMPT_GOT_SPECIAL
- && !is_valid_item(you.inv[ items_for_multidrop[0].slot ]))
+ && !you.inv[items_for_multidrop[0].slot].is_valid())
{
items_for_multidrop.erase( items_for_multidrop.begin() );
}
@@ -1214,7 +1214,7 @@ static void _finish_delay(const delay_queue_item &delay)
case DELAY_BOTTLE_BLOOD:
{
item_def &item = mitm[delay.parm1];
- if (is_valid_item(item) && item.base_type == OBJ_CORPSES)
+ if (item.is_valid() && item.base_type == OBJ_CORPSES)
{
if (item.sub_type == CORPSE_SKELETON)
{
@@ -1336,7 +1336,7 @@ static void _finish_delay(const delay_queue_item &delay)
// quantity (delay.parm2). -- bwr
// Make sure item still exists.
- if (!is_valid_item( you.inv[ delay.parm1 ] ))
+ if (!you.inv[delay.parm1].is_valid())
break;
// Must handle unwield_item before we attempt to copy
diff --git a/crawl-ref/source/describe.cc b/crawl-ref/source/describe.cc
index 5754d81332..06cec644af 100644
--- a/crawl-ref/source/describe.cc
+++ b/crawl-ref/source/describe.cc
@@ -2187,7 +2187,7 @@ static bool _describe_spells(const item_def &item)
//---------------------------------------------------------------
void describe_item( item_def &item, bool allow_inscribe, bool shopping )
{
- if (!is_valid_item(item))
+ if (!item.is_valid())
return;
while (true)
diff --git a/crawl-ref/source/directn.cc b/crawl-ref/source/directn.cc
index 0f492dcabe..38ac8aa8bc 100644
--- a/crawl-ref/source/directn.cc
+++ b/crawl-ref/source/directn.cc
@@ -1798,7 +1798,7 @@ std::string get_terse_square_desc(const coord_def &gc)
}
else if (igrd(gc) != NON_ITEM)
{
- if (is_valid_item(mitm[igrd(gc)]))
+ if (mitm[igrd(gc)].is_valid())
desc = mitm[igrd(gc)].name(DESC_PLAIN);
}
else
@@ -1849,7 +1849,7 @@ void get_square_desc(const coord_def &c, describe_info &inf,
{
// Second priority: objects.
// If examine_mons is true, use terse descriptions.
- if (is_valid_item(mitm[oid]))
+ if (mitm[oid].is_valid())
get_item_desc(mitm[oid], inf, examine_mons);
}
else
diff --git a/crawl-ref/source/dungeon.cc b/crawl-ref/source/dungeon.cc
index 0236a8b39a..997d571e6d 100644
--- a/crawl-ref/source/dungeon.cc
+++ b/crawl-ref/source/dungeon.cc
@@ -1146,7 +1146,7 @@ static void _fixup_misplaced_items()
for (int i = 0; i < MAX_ITEMS; i++)
{
item_def& item(mitm[i]);
- if (!is_valid_item(item) || (item.pos.x == 0)
+ if (!item.is_valid() || (item.pos.x == 0)
|| item.held_by_monster())
{
continue;
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 3ea777daa9..a8fdb4bc63 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -1398,7 +1398,7 @@ static bool _have_item_with_types(object_class_type basetype, int subtype)
for (int i = 0; i < ENDOFPACK; i++)
{
const item_def& item = you.inv[i];
- if (is_valid_item(item)
+ if (item.is_valid()
&& item.base_type == basetype && item.sub_type == subtype)
{
return (true);
@@ -1626,7 +1626,7 @@ static int _find_acquirement_subtype(object_class_type class_wanted,
for (int i = 0; i < ENDOFPACK; ++i)
{
const item_def& item = you.inv[i];
- if (is_valid_item(item) && item.base_type == class_wanted)
+ if (item.is_valid() && item.base_type == class_wanted)
{
ASSERT(item.sub_type < max_has_value);
already_has[item.sub_type] += item.quantity;
@@ -2687,7 +2687,7 @@ bool forget_inventory(bool quiet)
for (int i = 0; i < ENDOFPACK; i++)
{
item_def& item(you.inv[i]);
- if (!is_valid_item(item) || item_is_equipped(item))
+ if (!item.is_valid() || item_is_equipped(item))
continue;
unsigned long orig_flags = item.flags;
@@ -3419,7 +3419,7 @@ void change_labyrinth(bool msg)
static bool _food_item_needs_time_check(item_def &item)
{
- if (!is_valid_item(item))
+ if (!item.is_valid())
return (false);
if (item.base_type != OBJ_CORPSES
diff --git a/crawl-ref/source/externs.h b/crawl-ref/source/externs.h
index e2aab124d6..69bf1c7133 100644
--- a/crawl-ref/source/externs.h
+++ b/crawl-ref/source/externs.h
@@ -454,6 +454,8 @@ public:
// Returns true if a monster is holding this item.
bool held_by_monster() const;
+ bool is_valid() const;
+
private:
std::string name_aux(description_level_type desc,
bool terse, bool ident,
diff --git a/crawl-ref/source/fight.cc b/crawl-ref/source/fight.cc
index c1b4217e97..235b19ab48 100644
--- a/crawl-ref/source/fight.cc
+++ b/crawl-ref/source/fight.cc
@@ -2711,7 +2711,7 @@ static void _find_remains(monsters* mon, int &corpse_class, int &corpse_index,
item_def &item(mitm[idx]);
- if (!is_valid_item(item) || item.pos != mon->pos())
+ if (!item.is_valid() || item.pos != mon->pos())
continue;
items.push_back(idx);
@@ -4592,7 +4592,7 @@ static void _steal_item_from_player(monsters *mon)
int total_value = 0;
for (int m = 0; m < ENDOFPACK; ++m)
{
- if (!is_valid_item(you.inv[m]))
+ if (!you.inv[m].is_valid())
continue;
// Cannot unequip player.
diff --git a/crawl-ref/source/files.cc b/crawl-ref/source/files.cc
index a1bfab56dc..af69e7597b 100644
--- a/crawl-ref/source/files.cc
+++ b/crawl-ref/source/files.cc
@@ -1134,7 +1134,7 @@ static void _do_lost_items(level_area_type old_level_type)
{
item_def& item(mitm[i]);
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
// Item is in player inventory, so it's not lost.
diff --git a/crawl-ref/source/food.cc b/crawl-ref/source/food.cc
index 20d8ecc502..b723b17da1 100644
--- a/crawl-ref/source/food.cc
+++ b/crawl-ref/source/food.cc
@@ -147,7 +147,7 @@ void weapon_switch(int targ)
else
{
// Possibly not valid anymore (dropped, etc.).
- if (!is_valid_item(you.inv[targ]))
+ if (!you.inv[targ].is_valid())
return;
// Already wielding this weapon?
@@ -224,7 +224,7 @@ static bool _find_butchering_implement(int &butcher_tool)
for (int i = 0; i < ENDOFPACK; ++i)
{
item_def& tool(you.inv[i]);
- if (is_valid_item( tool )
+ if (tool.is_valid()
&& tool.base_type == OBJ_WEAPONS
&& can_cut_meat( tool )
&& can_wield( &tool )
@@ -293,7 +293,7 @@ static bool _find_butchering_implement(int &butcher_tool)
return (false);
}
- if (is_valid_item(you.inv[item_slot])
+ if (you.inv[item_slot].is_valid()
&& you.inv[item_slot].base_type == OBJ_WEAPONS
&& can_cut_meat(you.inv[item_slot]))
{
@@ -427,7 +427,7 @@ static bool _have_corpses_in_pack(bool remind)
{
item_def &obj(you.inv[i]);
- if (!is_valid_item(obj))
+ if (!obj.is_valid())
continue;
// Only actually count corpses, not skeletons.
@@ -849,7 +849,7 @@ static bool _player_has_enough_food()
for (unsigned slot = 0; slot < ENDOFPACK; ++slot)
{
item = you.inv[slot];
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
if (!can_ingest(item.base_type, item.sub_type, true, true, false))
@@ -1263,7 +1263,7 @@ int eat_from_floor(bool skip_chunks)
// Increase only if we're dealing with different subtypes.
// FIXME: Use a common check for herbivorous/carnivorous
// dislikes, for e.g. "Blech! You need blood!"
- ASSERT(is_valid_item(wonteat));
+ ASSERT(wonteat.is_valid());
if (wonteat.sub_type != si->sub_type)
inedible_food++;
}
@@ -1343,7 +1343,7 @@ int eat_from_floor(bool skip_chunks)
{
if (inedible_food == 1)
{
- ASSERT(is_valid_item(wonteat));
+ ASSERT(wonteat.is_valid());
// Use the normal cannot ingest message.
if (can_ingest(wonteat.base_type, wonteat.sub_type, false))
{
@@ -1377,7 +1377,7 @@ bool eat_from_inventory()
std::vector<item_def *> food_items;
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
item_def *item = &you.inv[i];
@@ -1416,7 +1416,7 @@ bool eat_from_inventory()
// Increase only if we're dealing with different subtypes.
// FIXME: Use a common check for herbivorous/carnivorous
// dislikes, for e.g. "Blech! You need blood!"
- ASSERT(is_valid_item(*wonteat));
+ ASSERT(wonteat->is_valid());
if (wonteat->sub_type != item->sub_type)
inedible_food++;
}
@@ -1480,7 +1480,7 @@ bool eat_from_inventory()
{
if (inedible_food == 1)
{
- ASSERT(is_valid_item(*wonteat));
+ ASSERT(wonteat->is_valid());
// Use the normal cannot ingest message.
if (can_ingest(wonteat->base_type, wonteat->sub_type, false))
{
@@ -1543,7 +1543,7 @@ int prompt_eat_chunks()
// Then search through the inventory.
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
item_def *item = &you.inv[i];
diff --git a/crawl-ref/source/hiscores.cc b/crawl-ref/source/hiscores.cc
index fa4c4c4b4a..1eccb34f23 100644
--- a/crawl-ref/source/hiscores.cc
+++ b/crawl-ref/source/hiscores.cc
@@ -988,7 +988,7 @@ void scorefile_entry::init()
// Calculate value of pack and runes when character leaves dungeon
for (int d = 0; d < ENDOFPACK; d++)
{
- if (is_valid_item( you.inv[d] ))
+ if (you.inv[d].is_valid())
{
if (calc_item_values)
points += item_value( you.inv[d], true );
diff --git a/crawl-ref/source/invent.cc b/crawl-ref/source/invent.cc
index 804210cebc..df2938cebb 100644
--- a/crawl-ref/source/invent.cc
+++ b/crawl-ref/source/invent.cc
@@ -398,7 +398,7 @@ static bool _has_tran_unwearable_armour(bool &melded)
{
item_def &item(you.inv[i]);
- if (is_valid_item(item) && item.base_type == OBJ_ARMOUR
+ if (item.is_valid() && item.base_type == OBJ_ARMOUR
&& !you_tran_can_wear(item))
{
unwearable = true;
@@ -909,7 +909,7 @@ unsigned char get_invent(int invent_type)
if (isalpha(select))
{
const int invidx = letter_to_index(select);
- if (is_valid_item(you.inv[invidx]))
+ if (you.inv[invidx].is_valid())
describe_item( you.inv[invidx], true );
}
else
@@ -1103,7 +1103,7 @@ static void _get_inv_items_to_show(std::vector<const item_def*> &v,
{
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item(you.inv[i])
+ if (you.inv[i].is_valid()
&& you.inv[i].slot != excluded_slot
&& _is_item_selected(you.inv[i], selector))
{
@@ -1116,7 +1116,7 @@ static bool _any_items_to_select(int selector)
{
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item(you.inv[i])
+ if (you.inv[i].is_valid()
&& _is_item_selected(you.inv[i], selector))
{
return (true);
@@ -1317,7 +1317,7 @@ std::vector<SelItem> prompt_invent_items(
{
ret = letter_to_index( keyin );
- if (!is_valid_item( you.inv[ret] ))
+ if (!you.inv[ret].is_valid())
mpr("You don't have any such object.");
else
break;
@@ -1350,7 +1350,7 @@ static int _digit_to_index( char digit, operation_types oper )
for ( int i = 0; i < ENDOFPACK; ++i )
{
- if (is_valid_item(you.inv[i]))
+ if (you.inv[i].is_valid())
{
const std::string& r(you.inv[i].inscription);
// Note that r.size() is unsigned.
@@ -1487,7 +1487,7 @@ static std::string _operation_verb(operation_types oper)
bool check_warning_inscriptions( const item_def& item,
operation_types oper )
{
- if (is_valid_item( item ) && has_warning_inscription(item, oper) )
+ if (item.is_valid() && has_warning_inscription(item, oper) )
{
// When it's about destroying an item, don't even ask.
// If the player really wants to do that, they'll have
@@ -1703,7 +1703,7 @@ int prompt_invent_item( const char *prompt,
{
ret = letter_to_index( keyin );
- if (must_exist && !is_valid_item( you.inv[ret] ))
+ if (must_exist && !you.inv[ret].is_valid())
mpr("You don't have any such object.");
else if (check_warning_inscriptions( you.inv[ret], oper ))
break;
diff --git a/crawl-ref/source/item_use.cc b/crawl-ref/source/item_use.cc
index 3380880fd1..8e7c500f98 100644
--- a/crawl-ref/source/item_use.cc
+++ b/crawl-ref/source/item_use.cc
@@ -262,7 +262,7 @@ bool wield_weapon(bool auto_wield, int slot, bool show_weff_messages,
// Prompt if not using the auto swap command, or if the swap slot
// is empty.
if (item_slot != PROMPT_GOT_SPECIAL
- && (!auto_wield || !is_valid_item(you.inv[item_slot]) || !good_swap))
+ && (!auto_wield || !you.inv[item_slot].is_valid() || !good_swap))
{
if (!auto_wield)
{
@@ -951,7 +951,7 @@ bool can_wear_armour(const item_def &item, bool verbose, bool ignore_temporary)
bool do_wear_armour(int item, bool quiet)
{
const item_def &invitem = you.inv[item];
- if (!is_valid_item(invitem))
+ if (!invitem.is_valid())
{
if (!quiet)
mpr("You don't have any such object.");
@@ -2172,14 +2172,14 @@ static void identify_floor_missiles_matching(item_def mitem, int idflags)
void _merge_ammo_in_inventory(int slot)
{
- if (!is_valid_item(you.inv[slot]))
+ if (!you.inv[slot].is_valid())
return;
bool done_anything = false;
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (i == slot || !is_valid_item(you.inv[i]))
+ if (i == slot || !you.inv[i].is_valid())
continue;
// Merge with the thrower slot. This could be a bad
@@ -2242,7 +2242,7 @@ bool throw_it(bolt &pbolt, int throw_2, bool teleport, int acc_bonus,
pbolt.set_target(thr);
item_def& thrown = you.inv[throw_2];
- ASSERT(is_valid_item(thrown));
+ ASSERT(thrown.is_valid());
// Figure out if we're thrown or launched.
const launch_retval projected = is_launched(&you, you.weapon(), thrown);
diff --git a/crawl-ref/source/itemprop.cc b/crawl-ref/source/itemprop.cc
index 0fb2848b76..c48a641ff1 100644
--- a/crawl-ref/source/itemprop.cc
+++ b/crawl-ref/source/itemprop.cc
@@ -572,7 +572,7 @@ bool item_ident( const item_def &item, unsigned long flags )
// The Orb of Zot and unique runes are considered critical.
bool item_is_critical(const item_def &item)
{
- if (!is_valid_item(item))
+ if (!item.is_valid())
return (false);
if (item.base_type == OBJ_ORBS)
@@ -2345,13 +2345,13 @@ bool ring_has_stackable_effect( const item_def &item )
//
bool food_is_meat(const item_def &item)
{
- ASSERT(is_valid_item(item) && item.base_type == OBJ_FOOD);
+ ASSERT(item.is_valid() && item.base_type == OBJ_FOOD);
return (Food_prop[Food_index[item.sub_type]].carn_mod > 0);
}
bool food_is_veg( const item_def &item )
{
- ASSERT(is_valid_item(item) && item.base_type == OBJ_FOOD);
+ ASSERT(item.is_valid() && item.base_type == OBJ_FOOD);
return (Food_prop[Food_index[item.sub_type]].herb_mod > 0);
}
@@ -2367,7 +2367,7 @@ bool is_blood_potion(const item_def &item)
// Returns food value for one turn of eating.
int food_value(const item_def &item)
{
- ASSERT(is_valid_item(item) && item.base_type == OBJ_FOOD);
+ ASSERT(item.is_valid() && item.base_type == OBJ_FOOD);
const int herb = player_mutation_level(MUT_HERBIVOROUS);
@@ -2386,7 +2386,7 @@ int food_value(const item_def &item)
int food_turns(const item_def &item)
{
- ASSERT(is_valid_item(item) && item.base_type == OBJ_FOOD);
+ ASSERT(item.is_valid() && item.base_type == OBJ_FOOD);
return (Food_prop[Food_index[item.sub_type]].turns);
}
diff --git a/crawl-ref/source/items.cc b/crawl-ref/source/items.cc
index 6c079eaae1..ad7ecf6286 100644
--- a/crawl-ref/source/items.cc
+++ b/crawl-ref/source/items.cc
@@ -111,7 +111,7 @@ void link_items(void)
if (mitm[i].held_by_monster())
continue;
- if (!is_valid_item(mitm[i]))
+ if (!mitm[i].is_valid())
{
// Item is not assigned. Ignore.
mitm[i].link = NON_ITEM;
@@ -191,17 +191,6 @@ static int _cull_items(void)
return (first_cleaned);
}
-// Note: This function is to isolate all the checks to see if
-// an item is valid (often just checking the quantity).
-//
-// It shouldn't be used a a substitute for those cases
-// which actually want to check the quantity (as the
-// rules for unused objects might change).
-bool is_valid_item( const item_def &item )
-{
- return (item.base_type != OBJ_UNASSIGNED && item.quantity > 0);
-}
-
// Reduce quantity of an inventory item, do cleanup if item goes away.
//
// Returns true if stack of items no longer exists.
@@ -314,7 +303,7 @@ int get_item_slot( int reserve )
int item = NON_ITEM;
for (item = 0; item < (MAX_ITEMS - reserve); item++)
- if (!is_valid_item( mitm[item] ))
+ if (!mitm[item].is_valid())
break;
if (item >= MAX_ITEMS - reserve)
@@ -345,7 +334,7 @@ void unlink_item( int dest )
{
// Don't destroy non-items, may be called after an item has been
// reduced to zero quantity however.
- if (dest == NON_ITEM || !is_valid_item( mitm[dest] ))
+ if (dest == NON_ITEM || !mitm[dest].is_valid())
return;
monsters* monster = mitm[dest].holding_monster();
@@ -401,7 +390,7 @@ void unlink_item( int dest )
for (stack_iterator si(mitm[dest].pos); si; ++si)
{
// Find item linking to dest item.
- if (is_valid_item(*si) && si->link == dest)
+ if (si->is_valid() && si->link == dest)
{
// unlink dest
si->link = mitm[dest].link;
@@ -435,7 +424,7 @@ void unlink_item( int dest )
// Look through all items for links to this item.
for (int c = 0; c < MAX_ITEMS; c++)
{
- if (is_valid_item( mitm[c] ) && mitm[c].link == dest)
+ if (mitm[c].is_valid() && mitm[c].link == dest)
{
// unlink item
mitm[c].link = old_link;
@@ -474,7 +463,7 @@ void unlink_item( int dest )
void destroy_item( item_def &item, bool never_created )
{
- if (!is_valid_item( item ))
+ if (!item.is_valid())
return;
if (never_created)
@@ -491,7 +480,7 @@ void destroy_item( int dest, bool never_created )
// Don't destroy non-items, but this function may be called upon
// to remove items reduced to zero quantity, so we allow "invalid"
// objects in.
- if (dest == NON_ITEM || !is_valid_item( mitm[dest] ))
+ if (dest == NON_ITEM || !mitm[dest].is_valid())
return;
unlink_item( dest );
@@ -538,7 +527,7 @@ void lose_item_stack( const coord_def& where )
{
for (stack_iterator si(where); si; ++si)
{
- if (is_valid_item( *si )) // FIXME is this check necessary?
+ if (si ->is_valid()) // FIXME is this check necessary?
{
item_was_lost(*si);
si->clear();
@@ -551,7 +540,7 @@ void destroy_item_stack( int x, int y, int cause )
{
for (stack_iterator si(coord_def(x,y)); si; ++si)
{
- if (is_valid_item( *si )) // FIXME is this check necessary?
+ if (si ->is_valid()) // FIXME is this check necessary?
{
item_was_destroyed( *si, cause);
si->clear();
@@ -795,7 +784,7 @@ static void _pickup_menu(int item_link)
else
pickup_warning = "You can't carry that many items.";
- if (is_valid_item(mitm[j]))
+ if (mitm[j].is_valid())
mitm[j].flags = oldflags;
}
else
@@ -804,7 +793,7 @@ static void _pickup_menu(int item_link)
// If we deliberately chose to take only part of a
// pile, we consider the rest to have been
// "dropped."
- if (!take_all && is_valid_item(mitm[j]))
+ if (!take_all && mitm[j].is_valid())
mitm[j].flags |= ISFLAG_DROPPED;
}
}
@@ -889,7 +878,7 @@ void origin_acquired(item_def &item, int agent)
void origin_set_inventory(void (*oset)(item_def &item))
{
for (int i = 0; i < ENDOFPACK; ++i)
- if (is_valid_item(you.inv[i]))
+ if (you.inv[i].is_valid())
oset(you.inv[i]);
}
@@ -1151,7 +1140,7 @@ bool pickup_single_item(int link, int qty)
unsigned long oldflags = mitm[link].flags;
mitm[link].flags &= ~(ISFLAG_THROWN | ISFLAG_DROPPED);
int num = move_item_to_player( link, qty );
- if (is_valid_item(mitm[link]))
+ if (mitm[link].is_valid())
mitm[link].flags = oldflags;
if (num == -1)
@@ -1271,7 +1260,7 @@ void pickup()
bool is_stackable_item( const item_def &item )
{
- if (!is_valid_item( item ))
+ if (!item.is_valid())
return (false);
if (item.base_type == OBJ_MISSILES
@@ -1399,7 +1388,7 @@ static int _userdef_find_free_slot(const item_def &i)
int find_free_slot(const item_def &i)
{
#define slotisfree(s) \
- ((s) >= 0 && (s) < ENDOFPACK && !is_valid_item(you.inv[s]))
+ ((s) >= 0 && (s) < ENDOFPACK && !you.inv[s].is_valid())
bool searchforward = false;
// If we're doing Lua, see if there's a Lua function that can give
@@ -1429,10 +1418,10 @@ int find_free_slot(const item_def &i)
bool accept_empty = false;
for (slot = ENDOFPACK - 1; slot >= 0; --slot)
{
- if (is_valid_item(you.inv[slot]))
+ if (you.inv[slot].is_valid())
{
if (!accept_empty && slot + 1 < ENDOFPACK
- && !is_valid_item(you.inv[slot + 1]))
+ && !you.inv[slot + 1].is_valid())
{
return (slot + 1);
}
@@ -1450,7 +1439,7 @@ int find_free_slot(const item_def &i)
// Return first free slot
for (slot = 0; slot < ENDOFPACK; ++slot)
- if (!is_valid_item(you.inv[slot]))
+ if (!you.inv[slot].is_valid())
return slot;
return (-1);
@@ -1623,7 +1612,7 @@ int move_item_to_player(int obj, int quant_got, bool quiet,
int freeslot = find_free_slot(mitm[obj]);
if (freeslot < 0 || freeslot >= ENDOFPACK
- || is_valid_item(you.inv[freeslot]))
+ || you.inv[freeslot].is_valid())
{
// Something is terribly wrong.
return (-1);
@@ -1723,7 +1712,7 @@ bool move_item_to_grid( int *const obj, const coord_def& p )
int& ob(*obj);
// Must be a valid reference to a valid object.
- if (ob == NON_ITEM || !is_valid_item( mitm[ob] ))
+ if (ob == NON_ITEM || !mitm[ob].is_valid())
return (false);
item_def& item(mitm[ob]);
@@ -2251,7 +2240,7 @@ static void _autoinscribe_floor_items()
static void _autoinscribe_inventory()
{
for (int i = 0; i < ENDOFPACK; i++)
- if (is_valid_item(you.inv[i]))
+ if (you.inv[i].is_valid())
_autoinscribe_item( you.inv[i] );
}
@@ -2426,7 +2415,7 @@ int inv_count(void)
int count = 0;
for (int i = 0; i < ENDOFPACK; i++)
- if (is_valid_item( you.inv[i] ))
+ if (you.inv[i].is_valid())
count++;
return count;
@@ -2437,7 +2426,7 @@ item_def *find_floor_item(object_class_type cls, int sub_type)
for (int y = 0; y < GYM; ++y)
for (int x = 0; x < GXM; ++x)
for (stack_iterator si(coord_def(x,y)); si; ++si)
- if (is_valid_item(*si)
+ if (si->is_valid()
&& si->base_type == cls && si->sub_type == sub_type)
{
return (& (*si));
@@ -2660,7 +2649,7 @@ int item_def::index() const
int item_def::armour_rating() const
{
- if (!is_valid_item(*this) || base_type != OBJ_ARMOUR)
+ if (!this->is_valid() || base_type != OBJ_ARMOUR)
return (0);
return (property(*this, PARM_AC) + plus);
@@ -2688,3 +2677,14 @@ bool item_def::held_by_monster() const
{
return (pos.equals(-2, -2) && !invalid_monster_index(link - NON_ITEM - 1));
}
+
+// Note: This function is to isolate all the checks to see if
+// an item is valid (often just checking the quantity).
+//
+// It shouldn't be used a a substitute for those cases
+// which actually want to check the quantity (as the
+// rules for unused objects might change).
+bool item_def::is_valid() const
+{
+ return (base_type != OBJ_UNASSIGNED && quantity > 0);
+}
diff --git a/crawl-ref/source/items.h b/crawl-ref/source/items.h
index dd0cac3de7..f0798de3af 100644
--- a/crawl-ref/source/items.h
+++ b/crawl-ref/source/items.h
@@ -28,8 +28,6 @@ enum item_source_type
AQ_WIZMODE = 200
};
-bool is_valid_item( const item_def &item );
-
bool dec_inv_item_quantity(int obj, int amount, bool suppress_burden = false);
bool dec_mitm_item_quantity(int obj, int amount);
diff --git a/crawl-ref/source/l_dgnit.cc b/crawl-ref/source/l_dgnit.cc
index 6bb166a836..7d17571356 100644
--- a/crawl-ref/source/l_dgnit.cc
+++ b/crawl-ref/source/l_dgnit.cc
@@ -52,7 +52,7 @@ static int dgn_item_from_index(lua_State *ls)
item_def *item = &mitm[index];
- if (is_valid_item(*item))
+ if (item->is_valid())
lua_pushlightuserdata(ls, item);
else
lua_pushnil(ls);
diff --git a/crawl-ref/source/l_item.cc b/crawl-ref/source/l_item.cc
index 9de2384eac..355d801afe 100644
--- a/crawl-ref/source/l_item.cc
+++ b/crawl-ref/source/l_item.cc
@@ -58,7 +58,7 @@ void lua_push_inv_items(lua_State *ls = NULL)
int index = 0;
for (unsigned slot = 0; slot < ENDOFPACK; ++slot)
{
- if (is_valid_item(you.inv[slot]))
+ if (you.inv[slot].is_valid())
{
lua_pushlightuserdata(ls, &you.inv[slot]);
lua_rawseti(ls, -2, ++index);
@@ -109,7 +109,7 @@ static int l_item_swap_slots(lua_State *ls)
bool verbose = lua_toboolean(ls, 3);
if (slot1 < 0 || slot1 >= ENDOFPACK
|| slot2 < 0 || slot2 >= ENDOFPACK
- || slot1 == slot2 || !is_valid_item(you.inv[slot1]))
+ || slot1 == slot2 || !you.inv[slot1].is_valid())
{
return (0);
}
@@ -126,7 +126,7 @@ static int l_item_wield(lua_State *ls)
LUA_ITEM(item, 1);
int slot = -1;
- if (item && is_valid_item(*item) && in_inventory(*item))
+ if (item && item->is_valid() && in_inventory(*item))
slot = item->link;
bool res = wield_weapon(true, slot);
lua_pushboolean(ls, res);
@@ -536,7 +536,7 @@ static int l_item_quantity(lua_State *ls)
static int l_item_inslot(lua_State *ls)
{
int index = luaL_checkint(ls, 1);
- if (index >= 0 && index < 52 && is_valid_item(you.inv[index]))
+ if (index >= 0 && index < 52 && you.inv[index].is_valid())
lua_pushlightuserdata(ls, &you.inv[index]);
else
lua_pushnil(ls);
@@ -567,7 +567,7 @@ static int l_item_ininventory(lua_State *ls)
static int l_item_equip_type(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return (0);
equipment_type eq = EQ_NONE;
@@ -595,7 +595,7 @@ static int l_item_equip_type(lua_State *ls)
static int l_item_weap_skill(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return (0);
int skill = range_skill(*item);
@@ -612,7 +612,7 @@ static int l_item_weap_skill(lua_State *ls)
static int l_item_dropped(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return (0);
lua_pushboolean(ls, item->flags & ISFLAG_DROPPED);
@@ -623,7 +623,7 @@ static int l_item_dropped(lua_State *ls)
static int l_item_can_cut_meat(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return (0);
lua_pushboolean(ls, can_cut_meat(*item));
@@ -634,7 +634,7 @@ static int l_item_can_cut_meat(lua_State *ls)
static int l_item_artefact(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return (0);
lua_pushboolean(ls, item_ident(*item, ISFLAG_KNOW_PROPERTIES)
@@ -645,7 +645,7 @@ static int l_item_artefact(lua_State *ls)
static int l_item_branded(lua_State *ls)
{
LUA_ITEM(item, 1);
- if (!item || !is_valid_item(*item) || !item_type_known(*item))
+ if (!item || !item->is_valid() || !item_type_known(*item))
return (0);
bool branded = false;
diff --git a/crawl-ref/source/makeitem.cc b/crawl-ref/source/makeitem.cc
index 6d4dad9682..fbca569df6 100644
--- a/crawl-ref/source/makeitem.cc
+++ b/crawl-ref/source/makeitem.cc
@@ -3186,7 +3186,7 @@ int items(int allow_uniques, // not just true-false,
}
// Note that item might be invalidated now, since p could have changed.
- ASSERT(is_valid_item(mitm[p]));
+ ASSERT(mitm[p].is_valid());
return (p);
}
@@ -3259,7 +3259,7 @@ static void _give_monster_item(monsters *mon, int thing,
return;
item_def &mthing = mitm[thing];
- ASSERT(is_valid_item(mthing));
+ ASSERT(mthing.is_valid());
#ifdef DEBUG_DIAGNOSTICS
mprf(MSGCH_DIAGNOSTICS,
@@ -3293,7 +3293,7 @@ static void _give_monster_item(monsters *mon, int thing,
destroy_item(thing, true);
return;
}
- if (!is_valid_item(mthing)) // missiles merged into an existing stack
+ if (!mthing.is_valid()) // missiles merged into an existing stack
return;
ASSERT(mthing.holding_monster() == mon);
diff --git a/crawl-ref/source/misc.cc b/crawl-ref/source/misc.cc
index bdfd78fbe0..f9613ac9c8 100644
--- a/crawl-ref/source/misc.cc
+++ b/crawl-ref/source/misc.cc
@@ -262,7 +262,7 @@ static void _compare_blood_quantity(item_def &stack, int timer_size)
void maybe_coagulate_blood_potions_floor(int obj)
{
item_def &blood = mitm[obj];
- ASSERT(is_valid_item(blood));
+ ASSERT(blood.is_valid());
ASSERT(is_blood_potion(blood));
CrawlHashTable &props = blood.props;
@@ -460,7 +460,7 @@ static void _potion_stack_changed_message(item_def &potion, int num_changed,
// Also handles coagulation messages.
bool maybe_coagulate_blood_potions_inv(item_def &blood)
{
- ASSERT(is_valid_item(blood));
+ ASSERT(blood.is_valid());
ASSERT(is_blood_potion(blood));
CrawlHashTable &props = blood.props;
@@ -567,7 +567,7 @@ bool maybe_coagulate_blood_potions_inv(item_def &blood)
// Now that coagulating is necessary, check inventory for !coagulated blood.
for (int m = 0; m < ENDOFPACK; m++)
{
- if (!is_valid_item(you.inv[m]))
+ if (!you.inv[m].is_valid())
continue;
if (you.inv[m].base_type == OBJ_POTIONS
@@ -780,7 +780,7 @@ bool maybe_coagulate_blood_potions_inv(item_def &blood)
// Mostly used for (q)uaff, (f)ire, and Evaporate.
long remove_oldest_blood_potion(item_def &stack)
{
- ASSERT(is_valid_item(stack));
+ ASSERT(stack.is_valid());
ASSERT(is_blood_potion(stack));
CrawlHashTable &props = stack.props;
@@ -801,7 +801,7 @@ long remove_oldest_blood_potion(item_def &stack)
// Used whenever copies of blood potions have to be cleaned up.
void remove_newest_blood_potion(item_def &stack, int quant)
{
- ASSERT(is_valid_item(stack));
+ ASSERT(stack.is_valid());
ASSERT(is_blood_potion(stack));
CrawlHashTable &props = stack.props;
@@ -836,7 +836,7 @@ void remove_newest_blood_potion(item_def &stack, int quant)
void merge_blood_potion_stacks(item_def &source, item_def &dest, int quant)
{
- if (!is_valid_item(source) || !is_valid_item(dest))
+ if (!source.is_valid() || !dest.is_valid())
return;
ASSERT(quant > 0 && quant <= source.quantity);
@@ -957,7 +957,7 @@ void split_potions_into_decay( int obj, int amount, bool need_msg )
ASSERT(obj != -1);
item_def &potion = you.inv[obj];
- ASSERT(is_valid_item(potion));
+ ASSERT(potion.is_valid());
ASSERT(potion.base_type == OBJ_POTIONS);
ASSERT(amount > 0);
ASSERT(amount <= potion.quantity);
@@ -1009,7 +1009,7 @@ void split_potions_into_decay( int obj, int amount, bool need_msg )
// Else, create new stack in inventory.
int freeslot = find_free_slot(you.inv[obj]);
if (freeslot >= 0 && freeslot < ENDOFPACK
- && !is_valid_item(you.inv[freeslot]))
+ && !you.inv[freeslot].is_valid())
{
item_def &item = you.inv[freeslot];
item.link = freeslot;
@@ -1530,7 +1530,7 @@ static int runes_in_pack(std::vector<int> &runes)
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item(you.inv[i])
+ if (you.inv[i].is_valid()
&& you.inv[i].base_type == OBJ_MISCELLANY
&& you.inv[i].sub_type == MISC_RUNE_OF_ZOT)
{
@@ -1750,7 +1750,7 @@ static bool _check_carrying_orb()
// So we did pick up the Orb. Now check whether we're carrying it.
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item( you.inv[i] )
+ if (you.inv[i].is_valid()
&& you.inv[i].base_type == OBJ_ORBS
&& you.inv[i].sub_type == ORB_ZOT)
{
@@ -1873,7 +1873,7 @@ void up_stairs(dungeon_feature_type force_stair,
for (int i = 0; i < ENDOFPACK; i++)
{
- if (is_valid_item( you.inv[i] )
+ if (you.inv[i].is_valid()
&& you.inv[i].base_type == OBJ_ORBS)
{
ouch(INSTANT_DEATH, NON_MONSTER, KILLED_BY_WINNING);
diff --git a/crawl-ref/source/mon-act.cc b/crawl-ref/source/mon-act.cc
index 12dd4bb1ad..77afabed25 100644
--- a/crawl-ref/source/mon-act.cc
+++ b/crawl-ref/source/mon-act.cc
@@ -1490,7 +1490,7 @@ static bool _handle_throw(monsters *monster, bolt & beem)
const item_def *weapon = NULL;
const int mon_item = mons_pick_best_missile(monster, &launcher);
- if (mon_item == NON_ITEM || !is_valid_item(mitm[mon_item]))
+ if (mon_item == NON_ITEM || !mitm[mon_item].is_valid())
return (false);
if (player_or_mon_in_sanct(monster))
diff --git a/crawl-ref/source/monster.cc b/crawl-ref/source/monster.cc
index ae8454746d..4d02e431b3 100644
--- a/crawl-ref/source/monster.cc
+++ b/crawl-ref/source/monster.cc
@@ -587,7 +587,7 @@ bool monsters::can_wield(const item_def& item, bool ignore_curse,
bool monsters::could_wield(const item_def &item, bool ignore_brand,
bool /* ignore_transform */) const
{
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
// These *are* weapons, so they can't wield another weapon.
if (type == MONS_DANCING_WEAPON)
@@ -983,7 +983,7 @@ void monsters::pickup_message(const item_def &item, int near)
bool monsters::pickup(item_def &item, int slot, int near, bool force_merge)
{
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
const monsters *other_mon = item.holding_monster();
diff --git a/crawl-ref/source/monstuff.cc b/crawl-ref/source/monstuff.cc
index 737a5bce24..846373aa25 100644
--- a/crawl-ref/source/monstuff.cc
+++ b/crawl-ref/source/monstuff.cc
@@ -168,7 +168,7 @@ bool curse_an_item( bool decay_potions, bool quiet )
for (int i = 0; i < ENDOFPACK; i++)
{
- if (!is_valid_item( you.inv[i] ))
+ if (!you.inv[i].is_valid())
continue;
if (you.inv[i].base_type == OBJ_WEAPONS
@@ -255,12 +255,12 @@ void monster_drop_ething(monsters *monster, bool mark_item_origins,
}
else
{
- if (mons_friendly(monster) && is_valid_item(mitm[item]))
+ if (mons_friendly(monster) && mitm[item].is_valid())
mitm[item].flags |= ISFLAG_DROPPED_BY_ALLY;
move_item_to_grid(&item, monster->pos());
- if (mark_item_origins && is_valid_item(mitm[item]))
+ if (mark_item_origins && mitm[item].is_valid())
origin_set_monster(mitm[item], monster);
}
@@ -3478,7 +3478,7 @@ static void _vanish_orig_eq(monsters* mons)
item_def &item(mitm[mons->inv[i]]);
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
if (item.orig_place != 0 || item.orig_monnum != 0
diff --git a/crawl-ref/source/newgame.cc b/crawl-ref/source/newgame.cc
index a6120ef052..860b1a6ff8 100644
--- a/crawl-ref/source/newgame.cc
+++ b/crawl-ref/source/newgame.cc
@@ -378,7 +378,7 @@ static void _give_starting_food()
static void _mark_starting_books()
{
for (int i = 0; i < ENDOFPACK; ++i)
- if (is_valid_item(you.inv[i]) && you.inv[i].base_type == OBJ_BOOKS)
+ if (you.inv[i].is_valid() && you.inv[i].base_type == OBJ_BOOKS)
mark_had_book(you.inv[i]);
}
@@ -386,7 +386,7 @@ static void _racialise_starting_equipment()
{
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (is_valid_item(you.inv[i]))
+ if (you.inv[i].is_valid())
{
// Don't change object type modifier unless it starts plain.
if ((you.inv[i].base_type == OBJ_ARMOUR
@@ -857,7 +857,7 @@ game_start:
calc_total_skill_points();
for (int i = 0; i < ENDOFPACK; ++i)
- if (is_valid_item(you.inv[i]))
+ if (you.inv[i].is_valid())
{
// XXX: Why is this here? Elsewhere it's only ever used for runes.
you.inv[i].flags |= ISFLAG_BEEN_IN_INV;
@@ -1711,7 +1711,7 @@ static void _newgame_make_item(int slot, equipment_type eqslot,
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
{
slot = i;
break;
diff --git a/crawl-ref/source/ouch.cc b/crawl-ref/source/ouch.cc
index c76fd18148..70b6e2a9d6 100644
--- a/crawl-ref/source/ouch.cc
+++ b/crawl-ref/source/ouch.cc
@@ -443,7 +443,7 @@ static bool _expose_invent_to_element(beam_type flavour, int strength)
// factor of junk (which might be more desirable for game play).
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
if (you.inv[i].base_type == target_class
@@ -540,7 +540,7 @@ bool expose_items_to_element(beam_type flavour, const coord_def& where,
for (stack_iterator si(where); si; ++si)
{
- if (!is_valid_item(*si))
+ if (!si->is_valid())
continue;
if (si->base_type == target_class
diff --git a/crawl-ref/source/player.cc b/crawl-ref/source/player.cc
index e178cc0523..43b57b5886 100644
--- a/crawl-ref/source/player.cc
+++ b/crawl-ref/source/player.cc
@@ -779,7 +779,7 @@ bool berserk_check_wielded_weapon()
return (true);
const item_def weapon = *you.weapon();
- if (is_valid_item(weapon) && weapon.base_type != OBJ_STAVES
+ if (weapon.is_valid() && weapon.base_type != OBJ_STAVES
&& (weapon.base_type != OBJ_WEAPONS || is_range_weapon(weapon))
|| you.attribute[ATTR_WEAPON_SWAP_INTERRUPTED])
{
diff --git a/crawl-ref/source/quiver.cc b/crawl-ref/source/quiver.cc
index 8d772647e9..28dcc4f6ca 100644
--- a/crawl-ref/source/quiver.cc
+++ b/crawl-ref/source/quiver.cc
@@ -187,7 +187,7 @@ void choose_item_for_quiver()
}
const item_def item = you.inv[slot];
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
ammo_t t = AMMO_THROW;
const item_def *weapon = you.weapon();
@@ -318,7 +318,7 @@ void player_quiver::_maybe_fill_empty_slot()
#endif
bool unquiver_weapon = false;
- if (is_valid_item(m_last_used_of_type[slot]))
+ if (m_last_used_of_type[slot].is_valid())
{
// If we're wielding an item previously quivered, the quiver may need
// to be cleared. Else, any already quivered item is valid and we
@@ -387,7 +387,7 @@ void player_quiver::_get_fire_order( std::vector<int>& order,
if (launcher && launcher->sub_type == WPN_BLOWGUN)
{
for (int i_inv = inv_start; i_inv < ENDOFPACK; i_inv++)
- if (is_valid_item(you.inv[i_inv])
+ if (you.inv[i_inv].is_valid()
&& you.inv[i_inv].launched_by(*launcher))
{
order.push_back(i_inv);
@@ -399,7 +399,7 @@ void player_quiver::_get_fire_order( std::vector<int>& order,
for (int i_inv = inv_start; i_inv < ENDOFPACK; i_inv++)
{
const item_def& item = you.inv[i_inv];
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
// Don't quiver a wielded weapon unless it's a weapon of returning
@@ -520,7 +520,7 @@ preserve_quiver_slots::~preserve_quiver_slots()
static bool _item_matches(const item_def &item, fire_type types,
const item_def* launcher)
{
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
if (types & FIRE_INSCRIBED)
if (item.inscription.find("+f", 0) != std::string::npos)
@@ -569,7 +569,7 @@ static bool _item_matches(const item_def &item, fire_type types,
// or -1 if not in inv.
static int _get_pack_slot(const item_def& item)
{
- if (! is_valid_item(item))
+ if (! item.is_valid())
return -1;
// First try to find the exact same item.
diff --git a/crawl-ref/source/religion.cc b/crawl-ref/source/religion.cc
index cf32f5e100..720d31d1cd 100644
--- a/crawl-ref/source/religion.cc
+++ b/crawl-ref/source/religion.cc
@@ -1184,7 +1184,7 @@ static const item_def* _find_missile_launcher(int skill)
{
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
const item_def &item = you.inv[i];
@@ -1204,7 +1204,7 @@ static int _ammo_count(const item_def *launcher)
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
const item_def &item = you.inv[i];
@@ -4204,7 +4204,7 @@ static void _ely_dull_inventory_weapons()
for (int i = 0; i < ENDOFPACK; ++i)
{
- if (!is_valid_item(you.inv[i]))
+ if (!you.inv[i].is_valid())
continue;
if (you.inv[i].base_type == OBJ_WEAPONS
diff --git a/crawl-ref/source/shopping.cc b/crawl-ref/source/shopping.cc
index 389fbe375c..76f754e537 100644
--- a/crawl-ref/source/shopping.cc
+++ b/crawl-ref/source/shopping.cc
@@ -2126,7 +2126,7 @@ ShoppingList::ShoppingList()
bool ShoppingList::add_thing(const item_def &item, int cost,
level_pos* _pos)
{
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
ASSERT(cost > 0);
SETUP_POS();
@@ -2691,7 +2691,7 @@ const item_def& ShoppingList::get_thing_item(const CrawlHashTable& thing)
ASSERT(thing.exists(SHOPPING_THING_ITEM_KEY));
const item_def &item = thing[SHOPPING_THING_ITEM_KEY].get_item();
- ASSERT(is_valid_item(item));
+ ASSERT(item.is_valid());
return (item);
}
diff --git a/crawl-ref/source/spells3.cc b/crawl-ref/source/spells3.cc
index 9ccd1ec3e7..65da17abf6 100644
--- a/crawl-ref/source/spells3.cc
+++ b/crawl-ref/source/spells3.cc
@@ -161,7 +161,7 @@ bool detect_curse(bool suppress_msg)
{
item_def& item = you.inv[i];
- if (is_valid_item(item)
+ if (item.is_valid()
&& (item.base_type == OBJ_WEAPONS
|| item.base_type == OBJ_ARMOUR
|| item.base_type == OBJ_JEWELLERY))
diff --git a/crawl-ref/source/spells4.cc b/crawl-ref/source/spells4.cc
index 3502c0db09..3877f30dee 100644
--- a/crawl-ref/source/spells4.cc
+++ b/crawl-ref/source/spells4.cc
@@ -632,7 +632,7 @@ void cast_ignite_poison(int pow)
for (int i = 0; i < ENDOFPACK; ++i)
{
item_def& item = you.inv[i];
- if (!is_valid_item(item))
+ if (!item.is_valid())
continue;
int strength = 0;
diff --git a/crawl-ref/source/stash.cc b/crawl-ref/source/stash.cc
index 0bc84dbb6f..284659e1d9 100644
--- a/crawl-ref/source/stash.cc
+++ b/crawl-ref/source/stash.cc
@@ -167,7 +167,7 @@ std::vector<item_def> item_list_in_stash( coord_def pos )
static void _fully_identify_item(item_def *item)
{
- if (!item || !is_valid_item(*item))
+ if (!item || !item->is_valid())
return;
set_ident_flags( *item, ISFLAG_IDENT_MASK );
diff --git a/crawl-ref/source/stuff.cc b/crawl-ref/source/stuff.cc
index b447c4be30..691f50748a 100644
--- a/crawl-ref/source/stuff.cc
+++ b/crawl-ref/source/stuff.cc
@@ -900,7 +900,7 @@ void zap_los_monsters()
{
int item = igrd(g);
- if (item != NON_ITEM && is_valid_item(mitm[item]) )
+ if (item != NON_ITEM && mitm[item].is_valid() )
destroy_item(item);
}
diff --git a/crawl-ref/source/tilereg.cc b/crawl-ref/source/tilereg.cc
index f54d178452..af94e89d57 100644
--- a/crawl-ref/source/tilereg.cc
+++ b/crawl-ref/source/tilereg.cc
@@ -1694,9 +1694,9 @@ void InventoryRegion::render()
desc = info;
}
}
- else if (floor && is_valid_item(mitm[idx]))
+ else if (floor && mitm[idx].is_valid())
desc = mitm[idx].name(DESC_PLAIN);
- else if (!floor && is_valid_item(you.inv[idx]))
+ else if (!floor && you.inv[idx].is_valid())
desc = you.inv[idx].name(DESC_INVENTORY_EQUIP);
if (!desc.empty())
@@ -2120,7 +2120,7 @@ bool InventoryRegion::update_tip_text(std::string& tip)
{
const item_def &item = mitm[idx];
- if (!is_valid_item(item))
+ if (!item.is_valid())
return (false);
tip = "";
@@ -2160,7 +2160,7 @@ bool InventoryRegion::update_tip_text(std::string& tip)
else
{
const item_def &item = you.inv[idx];
- if (!is_valid_item(item))
+ if (!item.is_valid())
return (false);
tip = item.name(DESC_INVENTORY_EQUIP);
@@ -2384,7 +2384,7 @@ bool InventoryRegion::update_alt_text(std::string &alt)
else
item = &you.inv[idx];
- if (!is_valid_item(*item))
+ if (!item->is_valid())
return (false);
describe_info inf;
diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc
index 20cd825e36..6c0e103fcc 100644
--- a/crawl-ref/source/tilesdl.cc
+++ b/crawl-ref/source/tilesdl.cc
@@ -1580,7 +1580,7 @@ void TilesFramework::update_inventory()
break;
if (inv_shown[i]
- || !is_valid_item(you.inv[i])
+ || !you.inv[i].is_valid()
|| you.inv[i].quantity == 0
|| (!show_any && you.inv[i].base_type != type))
{
diff --git a/crawl-ref/source/traps.cc b/crawl-ref/source/traps.cc
index 54d20dbf56..f5ae7076dd 100644
--- a/crawl-ref/source/traps.cc
+++ b/crawl-ref/source/traps.cc
@@ -1388,7 +1388,7 @@ void handle_items_on_shaft(const coord_def& pos, bool open_shaft)
{
int next = mitm[o].link;
- if (is_valid_item( mitm[o] ))
+ if (mitm[o].is_valid())
{
if (is_terrain_seen(pos))
{
diff --git a/crawl-ref/source/tutorial.cc b/crawl-ref/source/tutorial.cc
index 605c44f667..1ced3d7729 100644
--- a/crawl-ref/source/tutorial.cc
+++ b/crawl-ref/source/tutorial.cc
@@ -1222,7 +1222,7 @@ static bool _advise_use_wand()
{
item_def &obj(you.inv[i]);
- if (!is_valid_item( obj ))
+ if (!obj.is_valid())
continue;
if (obj.base_type != OBJ_WANDS)
@@ -1540,7 +1540,7 @@ static int _num_butchery_tools()
{
const item_def& tool(you.inv[i]);
- if (is_valid_item( tool )
+ if (tool.is_valid()
&& tool.base_type == OBJ_WEAPONS
&& can_cut_meat( tool ))
{
diff --git a/crawl-ref/source/xom.cc b/crawl-ref/source/xom.cc
index d6ab40cecc..7b038bb1e1 100644
--- a/crawl-ref/source/xom.cc
+++ b/crawl-ref/source/xom.cc
@@ -1632,7 +1632,7 @@ static int _xom_swap_weapons(bool debug = false)
int freeslot = find_free_slot(mitm[monwpn]);
if (freeslot < 0 || freeslot >= ENDOFPACK
- || is_valid_item(you.inv[freeslot]))
+ || you.inv[freeslot].is_valid())
{
// Something is terribly wrong.
return (XOM_DID_NOTHING);
@@ -2310,7 +2310,7 @@ static void _xom_zero_miscast()
for (int i = 0; i < ENDOFPACK; ++i)
{
const item_def &item(you.inv[i]);
- if (is_valid_item(item) && !item_is_equipped(item)
+ if (item.is_valid() && !item_is_equipped(item)
&& !item_is_critical(item))
{
inv_items.push_back(i);