4 * Object information, for a specific object.
6 * Note that a "discount" on an item is permanent and never goes away.
8 * Note that inscriptions are now handled via the "quark_str()" function
9 * applied to the "note" field, which will return NULL if "note" is zero.
11 * Note that "object" records are "copied" on a fairly regular basis,
12 * and care must be taken when handling such objects.
14 * Note that "object flags" must now be derived from the object kind,
15 * the artifact and ego-item indexes, and the two "xtra" fields.
17 * Each grid points to one (or zero) objects via the "o_idx"
18 * field (above). Each object then points to one (or zero) objects
19 * via the "next_o_idx" field, forming a singly linked list, which
20 * in game terms, represents a "stack" of objects in the same grid.
22 * Each monster points to one (or zero) objects via the "hold_o_idx"
23 * field (below). Each object then points to one (or zero) objects
24 * via the "next_o_idx" field, forming a singly linked list, which
25 * in game terms, represents a pile of objects held by the monster.
27 * The "held_m_idx" field is used to indicate which monster, if any,
28 * is holding the object. Objects being held have "ix=0" and "iy=0".
31 #define OBJ_GOLD_LIST 480 /* First "gold" entry */
33 #include "system/angband.h"
34 #include "object/object-util.h"
36 void reset_visuals(player_type *owner_ptr, void(*process_autopick_file_command)(char*));
37 void object_flags(object_type *o_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]);
38 void object_flags_known(object_type *o_ptr, BIT_FLAGS flgs[TR_FLAG_SIZE]);
39 concptr item_activation(object_type *o_ptr);
41 char index_to_label(int i);
42 s16b wield_slot(player_type *owner_ptr, object_type *o_ptr);
44 bool check_book_realm(player_type *owner_ptr, const tval_type book_tval, const OBJECT_SUBTYPE_VALUE book_sval);
45 object_type *ref_item(player_type *owner_ptr, INVENTORY_IDX item);
46 TERM_COLOR object_attr(object_type *o_ptr);