diff options
author | Vsevolod Kozlov <zaba@thorium.homeunix.org> | 2009-11-06 15:54:52 +0300 |
---|---|---|
committer | Jude Brown <bookofjude@users.sourceforge.net> | 2009-11-06 23:22:04 +1000 |
commit | 8aaaca3d1c38a41d88b6dddf55fa48fd9aecb539 (patch) | |
tree | 7e3d75c7a1f32cc41facc17d36986df022a5870a /crawl-ref | |
parent | cddc002566e2f235a3785e12d534ebc0202bb53e (diff) | |
download | crawl-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>
Diffstat (limited to 'crawl-ref')
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); |