Remove item_info
authoradvil <rawlins@gmail.com>
Thu, 21 Jan 2021 16:20:03 +0000 (11:20 -0500)
committeradvil <rawlins@gmail.com>
Thu, 21 Jan 2021 16:29:45 +0000 (11:29 -0500)
This type was just a typedef to item_def. It was added in 8f49829c0752,
apparently with the idea that item_info would be used for item_defs that
represented id info, and item_def otherwise. However, this convention
wasn't even documented, let alone enforced by an actual type distinction
(and c++ never added a strict typedef), so it has undergone drift and
largely now exists to confuse people. I could imagine redoing this so
that the type checker will do something, but the id system is also much
less important now than it was at the time of the original commit, so it
seems cleaner just to simplify.

24 files changed:
crawl-ref/source/beam.cc
crawl-ref/source/directn.cc
crawl-ref/source/god-item.cc
crawl-ref/source/invent.cc
crawl-ref/source/item-def.h
crawl-ref/source/item-use.cc
crawl-ref/source/items.cc
crawl-ref/source/lookup-help.cc
crawl-ref/source/makeitem.cc
crawl-ref/source/map-cell.h
crawl-ref/source/map-knowledge.cc
crawl-ref/source/mon-info.cc
crawl-ref/source/object-class-type.h
crawl-ref/source/show.cc
crawl-ref/source/showsymb.cc
crawl-ref/source/tiledoll.cc
crawl-ref/source/tilemcache.cc
crawl-ref/source/tilepick.h
crawl-ref/source/tilereg-dgn.cc
crawl-ref/source/tilereg-inv.cc
crawl-ref/source/tileview.cc
crawl-ref/source/tileweb.cc
crawl-ref/source/tileweb.h
crawl-ref/source/transform.cc

index f056998..c8c649a 100644 (file)
@@ -1152,7 +1152,8 @@ void bolt::do_fire()
                                || flavour == BEAM_VISUAL))
     {
         const coord_def diff = target - source;
-        tile_beam = tileidx_item_throw(get_item_info(*item), diff.x, diff.y);
+        tile_beam = tileidx_item_throw(
+                                get_item_known_info(*item), diff.x, diff.y);
     }
 #endif
 
index 138a9b6..ba362de 100644 (file)
@@ -1397,7 +1397,7 @@ bool direction_chooser::select(bool allow_out_of_range, bool endpoint)
 
 bool direction_chooser::pickup_item()
 {
-    item_info *ii = 0;
+    item_def *ii = nullptr;
     if (in_bounds(target()))
         ii = env.map_knowledge(target()).item();
     if (!ii || !ii->is_valid(true))
@@ -2469,7 +2469,7 @@ void get_square_desc(const coord_def &c, describe_info &inf)
         bool temp = false;
         get_monster_db_desc(*mi, inf, temp);
     }
-    else if (const item_info *obj = env.map_knowledge(c).item())
+    else if (const item_def *obj = env.map_knowledge(c).item())
     {
         // Second priority: objects.
         get_item_desc(*obj, inf);
index e3c5a84..1a8b1eb 100644 (file)
@@ -33,7 +33,7 @@ static bool _is_book_type(const item_def& item,
     if (!item.defined())
         return false;
 
-    // Return false for item_infos of unknown subtype
+    // Return false for item_defs of unknown subtype
     // (== NUM_BOOKS in most cases, OBJ_RANDOM for acquirement)
     if (item.sub_type == get_max_subtype(item.base_type)
         || item.sub_type == OBJ_RANDOM)
index eb5a7ca..36c5ca8 100644 (file)
@@ -549,7 +549,7 @@ void InvMenu::load_inv_items(int item_selector, int excluded_slot,
 
 bool get_tiles_for_item(const item_def &item, vector<tile_def>& tileset, bool show_background)
 {
-    tileidx_t idx = tileidx_item(get_item_info(item));
+    tileidx_t idx = tileidx_item(get_item_known_info(item));
     if (!idx)
         return false;
 
index 4f19128..314397e 100644 (file)
@@ -170,6 +170,4 @@ private:
     colour_t corpse_colour() const;
 };
 
-typedef item_def item_info;
-
-item_info get_item_info(const item_def& info);
+item_def get_item_known_info(const item_def& info);
index d79db99..0cd64e1 100644 (file)
@@ -1587,7 +1587,7 @@ static bool _safe_to_remove_or_wear(const item_def &item, bool remove, bool quie
 // player to fall to their death.
 bool safe_to_remove(const item_def &item, bool quiet)
 {
-    item_info inf = get_item_info(item);
+    item_def inf = get_item_known_info(item);
 
     const bool grants_flight =
          inf.is_type(OBJ_JEWELLERY, RING_FLIGHT)
index addd6fb..912b234 100644 (file)
@@ -2832,7 +2832,7 @@ static int _autopickup_subtype(const item_def &item)
 
     const int max_type = get_max_subtype(item.base_type);
 
-    // item_infos of unknown subtype.
+    // item_defs of unknown subtype.
     if (max_type > 0 && item.sub_type >= max_type)
         return max_type;
 
@@ -4402,9 +4402,9 @@ void move_items(const coord_def r, const coord_def p)
 }
 
 // erase everything the player doesn't know
-item_info get_item_info(const item_def& item)
+item_def get_item_known_info(const item_def& item)
 {
-    item_info ii;
+    item_def ii;
 
     ii.base_type = item.base_type;
     ii.quantity = item.quantity;
index 82012cd..58fd5be 100644 (file)
@@ -623,7 +623,7 @@ static MenuEntry* _item_menu_gen(char letter, const string &str, string &key)
     item_kind kind = item_kind_by_name(key);
     get_item_by_name(&item, key.c_str(), kind.base_type);
     item_colour(item);
-    tileidx_t idx = tileidx_item(get_item_info(item));
+    tileidx_t idx = tileidx_item(get_item_known_info(item));
     tileidx_t base_item = tileidx_known_base_item(idx);
     if (base_item)
         me->add_tile(tile_def(base_item));
index e5c89f0..f291ddf 100644 (file)
@@ -104,9 +104,9 @@ void item_colour(item_def &item)
     // it in appearance at some point, since sub_type isn't public information
     // for un-id'd items, and therefore can't be used to do a lookup at the
     // time item names/colours are calculated.
-    // it would probably be better to store this at the time that item_info is
-    // generated (get_item_info), but that requires some save compat work (and
-    // would be wrong if we ever try to get item colour/names directly...?)
+    // it would probably be better to store this at the time that item_def is
+    // generated (get_item_known_info), but that requires some save compat work
+    // (and would be wrong if we ever try to get item colour/names directly...?)
     // possibly a todo for a later date.
 
     if (auto idesc = map_find(_type_to_idesc, item.base_type))
index 835f90c..545c62f 100644 (file)
@@ -76,7 +76,7 @@ struct map_cell
         if (_mons)
             _mons = new monster_info(*_mons);
         if (_item)
-            _item = new item_info(*_item);
+            _item = new item_def(*_item);
     }
 
     ~map_cell()
@@ -105,7 +105,7 @@ struct map_cell
         if (_mons)
             _mons = new monster_info(*_mons);
         if (_item)
-            _item = new item_info(*_item);
+            _item = new item_def(*_item);
         return *this;
     }
 
@@ -154,7 +154,7 @@ struct map_cell
         _trap = tr;
     }
 
-    item_info* item() const
+    item_def* item() const
     {
         return _item;
     }
@@ -171,10 +171,10 @@ struct map_cell
         return ret;
     }
 
-    void set_item(const item_info& ii, bool more_items)
+    void set_item(const item_def& ii, bool more_items)
     {
         clear_item();
-        _item = new item_info(ii);
+        _item = new item_def(ii);
         if (more_items)
             flags |= MAP_MORE_ITEMS;
     }
@@ -318,6 +318,6 @@ private:
     colour_t _feat_colour;
     trap_type _trap:8;
     cloud_info* _cloud;
-    item_info* _item;
+    item_def* _item;
     monster_info* _mons;
 };
index 81ff148..4a4079f 100644 (file)
@@ -172,7 +172,7 @@ void map_cell::set_detected_item()
 {
     clear_item();
     flags |= MAP_DETECTED_ITEM;
-    _item = new item_info();
+    _item = new item_def();
     _item->base_type = OBJ_DETECTED;
     _item->rnd       = 1;
 }
index 028a3d6..1a8746b 100644 (file)
@@ -550,8 +550,8 @@ monster_info::monster_info(const monster* m, int milev)
         if (type == MONS_DANCING_WEAPON
             && m->inv[MSLOT_WEAPON] != NON_ITEM)
         {
-            inv[MSLOT_WEAPON].reset(
-                new item_def(get_item_info(env.item[m->inv[MSLOT_WEAPON]])));
+            inv[MSLOT_WEAPON].reset(new item_def(
+                get_item_known_info(env.item[m->inv[MSLOT_WEAPON]])));
         }
         return;
     }
@@ -714,7 +714,10 @@ monster_info::monster_info(const monster* m, int milev)
         else
             ok = true;
         if (ok)
-            inv[i].reset(new item_def(get_item_info(env.item[m->inv[i]])));
+        {
+            inv[i].reset(
+                new item_def(get_item_known_info(env.item[m->inv[i]])));
+        }
     }
 
     fire_blocker = DNGN_UNSEEN;
index 7757c5e..049411a 100644 (file)
@@ -29,5 +29,5 @@ enum object_class_type : uint8_t           // env.item[].base_type
     NUM_OBJECT_CLASSES,
     OBJ_UNASSIGNED = 100,
     OBJ_RANDOM,      // used for blanket random sub_type .. see dungeon::items()
-    OBJ_DETECTED,    // unknown item; item_info only
+    OBJ_DETECTED,    // unknown item; pseudo-items on the map only
 };
index a495ee7..f0823a5 100644 (file)
@@ -263,7 +263,7 @@ void update_item_at(const coord_def &gp, bool detected, bool wizard)
         if (!detected && stash.size() > 1)
             more_items = true;
     }
-    env.map_knowledge(gp).set_item(get_item_info(eitem), more_items);
+    env.map_knowledge(gp).set_item(get_item_known_info(eitem), more_items);
 }
 
 static void _update_cloud(cloud_struct& cloud)
index 038cb70..e3e3902 100644 (file)
@@ -515,7 +515,7 @@ static cglyph_t _get_cell_glyph_with_class(const map_cell& cell,
 
     case SH_ITEM:
     {
-        const item_info* eitem = cell.item();
+        const item_def* eitem = cell.item();
         ASSERT(eitem);
         show = *eitem;
 
index 6aa4c6e..97d72b1 100644 (file)
@@ -636,12 +636,12 @@ void pack_doll_buf(SubmergedTileBuffer& buf, const dolls_data &doll,
         item_def *item;
         if (you.slot_item(EQ_WEAPON))
         {
-            item = new item_def(get_item_info(*you.slot_item(EQ_WEAPON)));
+            item = new item_def(get_item_known_info(*you.slot_item(EQ_WEAPON)));
             minfo.inv[MSLOT_WEAPON].reset(item);
         }
         if (you.slot_item(EQ_SHIELD))
         {
-            item = new item_def(get_item_info(*you.slot_item(EQ_SHIELD)));
+            item = new item_def(get_item_known_info(*you.slot_item(EQ_SHIELD)));
             minfo.inv[MSLOT_SHIELD].reset(item);
         }
         tileidx_t mcache_idx = mcache.register_monster(minfo);
index 2769574..045c4c2 100644 (file)
@@ -230,11 +230,11 @@ mcache_monster::mcache_monster(const monster_info& mon)
     mtype = mon.type;
     m_mon_tile = tileidx_monster(mon) & TILE_FLAG_MASK;
 
-    const item_info* mon_weapon = mon.inv[MSLOT_WEAPON].get();
+    const item_def* mon_weapon = mon.inv[MSLOT_WEAPON].get();
     m_equ_tile = (mon_weapon != nullptr) ? tilep_equ_weapon(*mon_weapon) : 0;
     if (mons_class_wields_two_weapons(mon.type))
     {
-        const item_info* mon_weapon2 = mon.inv[MSLOT_ALT_WEAPON].get();
+        const item_def* mon_weapon2 = mon.inv[MSLOT_ALT_WEAPON].get();
         if (mon_weapon2)
         {
             switch (tilep_equ_weapon(*mon_weapon2))
@@ -292,7 +292,7 @@ mcache_monster::mcache_monster(const monster_info& mon)
     }
     else
     {
-        const item_info* mon_shield = mon.inv[MSLOT_SHIELD].get();
+        const item_def* mon_shield = mon.inv[MSLOT_SHIELD].get();
         m_shd_tile = (mon_shield != nullptr) ? tilep_equ_shield(*mon_shield) : 0;
     }
 }
@@ -1296,7 +1296,7 @@ mcache_draco::mcache_draco(const monster_info& mon)
 
     m_mon_tile = draco ? tileidx_draco_base(mon)
                        : tileidx_demonspawn_base(mon);
-    const item_info* mon_wep = mon.inv[MSLOT_WEAPON].get();
+    const item_def* mon_wep = mon.inv[MSLOT_WEAPON].get();
     m_equ_tile = (mon_wep != nullptr) ? tilep_equ_weapon(*mon_wep) : 0;
     mon_wep = mon.inv[MSLOT_SHIELD].get();
     m_shd_tile = (mon_wep != nullptr) ? tilep_equ_shield(*mon_wep) : 0;
index e0fa260..f0a4686 100644 (file)
@@ -44,8 +44,8 @@ tileidx_t tileidx_demonspawn_job(const monster_info& mon);
 tileidx_t tileidx_player_mons();
 tileidx_t tileidx_tentacle(const monster_info& mon);
 
-tileidx_t tileidx_item(const item_info &item);
-tileidx_t tileidx_item_throw(const item_info &item, int dx, int dy);
+tileidx_t tileidx_item(const item_def &item);
+tileidx_t tileidx_item_throw(const item_def &item, int dx, int dy);
 tileidx_t tileidx_known_base_item(tileidx_t label);
 
 tileidx_t tileidx_cloud(const cloud_info &cl);
index 097ab32..3b2de7b 100644 (file)
@@ -782,7 +782,7 @@ bool tile_dungeon_tip(const coord_def &gc, string &tip)
     {
         if (you.see_cell(gc) && env.map_knowledge(gc).item())
         {
-            const item_info * const item = env.map_knowledge(gc).item();
+            const item_def * const item = env.map_knowledge(gc).item();
             if (item && !item_is_stationary(*item))
             {
                 _add_tip(tip, "[L-Click] Pick up items (%)");
index 12aed6a..17bb0b2 100644 (file)
@@ -570,7 +570,7 @@ void InventoryRegion::activate()
     m_grid_page = 0;
 }
 
-static void _fill_item_info(InventoryTile &desc, const item_info &item)
+static void _fill_item_info(InventoryTile &desc, const item_def &item)
 {
     desc.tile = tileidx_item(item);
 
@@ -649,7 +649,7 @@ void InventoryRegion::update()
             }
 
             InventoryTile desc;
-            _fill_item_info(desc, get_item_info(you.inv[i]));
+            _fill_item_info(desc, get_item_known_info(you.inv[i]));
             desc.idx = i;
 
             for (int eq = EQ_FIRST_EQUIP; eq < NUM_EQUIP; ++eq)
@@ -747,7 +747,7 @@ void InventoryRegion::update()
                 continue;
 
             InventoryTile desc;
-            _fill_item_info(desc, get_item_info(env.item[i]));
+            _fill_item_info(desc, get_item_known_info(env.item[i]));
             desc.idx = i;
             ground_shown[i] = true;
 
index 477529c..8a08a4b 100644 (file)
@@ -915,7 +915,7 @@ void tile_forget_map(const coord_def &gc)
         tiles.update_minimap(*ai);
 }
 
-static void _tile_place_item(const coord_def &gc, const item_info &item,
+static void _tile_place_item(const coord_def &gc, const item_def &item,
                              bool more_items)
 {
     tileidx_t t = tileidx_item(item);
@@ -1367,7 +1367,7 @@ void apply_variations(const tile_flavour &flv, tileidx_t *bg,
 // If the top tile is a corpse, don't draw blood underneath.
 static bool _top_item_is_corpse(const map_cell& mc)
 {
-    const item_info* item = mc.item();
+    const item_def* item = mc.item();
     return item && item->is_type(OBJ_CORPSES, CORPSE_BODY);
 }
 
index 5878e6b..5c5874d 100644 (file)
@@ -1066,7 +1066,7 @@ void TilesFramework::_send_player(bool force_full)
     for (unsigned int i = 0; i < ENDOFPACK; ++i)
     {
         json_open_object(to_string(i));
-        _send_item(c.inv[i], get_item_info(you.inv[i]), force_full);
+        _send_item(c.inv[i], get_item_known_info(you.inv[i]), force_full);
         json_close_object(true);
     }
     json_close_object(true);
@@ -1104,7 +1104,7 @@ void TilesFramework::_send_player(bool force_full)
     finish_message();
 }
 
-void TilesFramework::_send_item(item_info& current, const item_info& next,
+void TilesFramework::_send_item(item_def& current, const item_def& next,
                                 bool force_full)
 {
     bool changed = false;
@@ -1505,12 +1505,14 @@ void TilesFramework::_send_cell(const coord_def &gc,
                     item_def *item;
                     if (you.slot_item(EQ_WEAPON))
                     {
-                        item = new item_def(get_item_info(*you.slot_item(EQ_WEAPON)));
+                        item = new item_def(
+                            get_item_known_info(*you.slot_item(EQ_WEAPON)));
                         minfo.inv[MSLOT_WEAPON].reset(item);
                     }
                     if (you.slot_item(EQ_SHIELD))
                     {
-                        item = new item_def(get_item_info(*you.slot_item(EQ_SHIELD)));
+                        item = new item_def(
+                            get_item_known_info(*you.slot_item(EQ_SHIELD)));
                         minfo.inv[MSLOT_SHIELD].reset(item);
                     }
                     tileidx_t mcache_idx = mcache.register_monster(minfo);
index fd2a391..bb42e80 100644 (file)
@@ -79,7 +79,7 @@ struct player_info
 
     vector<status_info> status;
 
-    FixedVector<item_info, ENDOFPACK> inv;
+    FixedVector<item_def, ENDOFPACK> inv;
     FixedVector<int8_t, NUM_EQUIP> equip;
     int8_t quiver_item;
     int8_t launcher_item;
@@ -326,7 +326,7 @@ protected:
                        map<uint32_t, coord_def>& new_monster_locs,
                        bool force_full);
     void _send_player(bool force_full = false);
-    void _send_item(item_info& current, const item_info& next,
+    void _send_item(item_def& current, const item_def& next,
                     bool force_full);
     void _send_messages();
 };
index 2f658e2..8180b03 100644 (file)
@@ -1357,7 +1357,7 @@ static bool _flying_in_new_form(transformation which_trans)
         item_def *item = you.slot_item(eq, true);
         if (item == nullptr)
             continue;
-        item_info inf = get_item_info(*item);
+        item_def inf = get_item_known_info(*item);
 
         //similar code to safe_to_remove from item-use.cc
         if (inf.is_type(OBJ_JEWELLERY, RING_FLIGHT))