/* * File: itemprop.h * Summary: Misc functions. * Written by: Brent Ross */ #ifndef ITEMPROP_H #define ITEMPROP_H #include "itemprop-enum.h" struct bolt; void init_properties(void); // cursed: bool item_known_cursed( const item_def &item ); bool item_known_uncursed( const item_def &item ); void do_curse_item( item_def &item, bool quiet = true ); void do_uncurse_item( item_def &item ); // stationary: void set_item_stationary( item_def &item ); void remove_item_stationary( item_def &item ); bool item_is_stationary( const item_def &item ); // ident: bool item_ident( const item_def &item, unsigned long flags ); void set_ident_flags( item_def &item, unsigned long flags ); void unset_ident_flags( item_def &item, unsigned long flags ); bool fully_identified( const item_def &item ); unsigned long full_ident_mask( const item_def& item ); // racial item and item descriptions: void set_equip_race( item_def &item, unsigned long flags ); void set_equip_desc( item_def &item, unsigned long flags ); unsigned long get_equip_race( const item_def &item ); unsigned long get_equip_desc( const item_def &item ); // helmet functions: void set_helmet_desc( item_def &item, short flags ); void set_helmet_random_desc( item_def &item ); short get_helmet_desc( const item_def &item ); bool is_helmet( const item_def& item ); bool is_hard_helmet( const item_def& item ); short get_gloves_desc( const item_def &item ); void set_gloves_random_desc( item_def &item ); // ego items: bool set_item_ego_type( item_def &item, int item_type, int ego_type ); int get_weapon_brand( const item_def &item ); special_armour_type get_armour_ego_type( const item_def &item ); int get_ammo_brand( const item_def &item ); // armour functions: int armour_max_enchant( const item_def &item ); bool armour_is_hide( const item_def &item, bool inc_made = false ); equipment_type get_armour_slot( const item_def &item ); equipment_type get_armour_slot( armour_type arm ); bool jewellery_is_amulet( const item_def &item ); bool jewellery_is_amulet( int sub_type ); bool hide2armour( item_def &item ); bool base_armour_is_light( const item_def &item ); int fit_armour_size( const item_def &item, size_type size ); bool check_armour_size( const item_def &item, size_type size ); bool item_is_rechargeable(const item_def &it, bool hide_charged = false, bool weapons = false); int wand_charge_value(int type); bool is_enchantable_weapon(const item_def &wpn, bool uncurse, bool first = true); bool is_enchantable_armour(const item_def &arm, bool uncurse, bool unknown = false); bool is_shield(const item_def &item); bool is_shield_incompatible(const item_def &weapon, const item_def *shield = NULL); bool shield_reflects(const item_def &shield); void ident_reflector(item_def *item); // Only works for armour/weapons/missiles // weapon functions: int weapon_rarity( int w_type ); int cmp_weapon_size( const item_def &item, size_type size ); int fit_weapon_wieldable_size( const item_def &item, size_type size ); bool check_weapon_wieldable_size( const item_def &item, size_type size ); int fit_item_throwable_size( const item_def &item, size_type size ); int weapon_ev_bonus( const item_def &wpn, int skill, size_type body, int dex, bool hide_hidden = false ); hands_reqd_type hands_reqd( const item_def &item, size_type size ); hands_reqd_type hands_reqd(object_class_type base_type, int sub_type, size_type size); bool is_demonic(const item_def &item); bool is_blessed(const item_def &item); bool is_blessed_convertible(const item_def &item); bool convert2good(item_def &item, bool allow_blessed = true); bool convert2bad(item_def &item); int get_vorpal_type(const item_def &item); int get_damage_type(const item_def &item); bool does_damage_type(const item_def &item, int dam_type); int single_damage_type(const item_def &item); int weapon_str_weight( const item_def &wpn ); int weapon_dex_weight( const item_def &wpn ); skill_type weapon_skill( const item_def &item ); skill_type weapon_skill( object_class_type wclass, int wtype ); skill_type range_skill( const item_def &item ); skill_type range_skill( object_class_type wclass, int wtype ); // launcher and ammo functions: bool is_range_weapon(const item_def &item); bool is_range_weapon_type(weapon_type wtype); missile_type fires_ammo_type(const item_def &item); missile_type fires_ammo_type(weapon_type wtype); const char *ammo_name(missile_type ammo); const char *ammo_name(const item_def &bow); bool has_launcher(const item_def &ammo); bool is_throwable(const actor *actor, const item_def &wpn, bool force = false); launch_retval is_launched(const actor *actor, const item_def *launcher, const item_def &missile); // staff/rod functions: bool item_is_rod( const item_def &item ); bool item_is_staff( const item_def &item ); // ring functions: int ring_has_pluses( const item_def &item ); bool ring_has_stackable_effect( const item_def &item ); // food functions: bool food_is_meat(const item_def &item); bool food_is_veg(const item_def &item); bool is_blood_potion(const item_def &item); int food_value(const item_def &item); int food_turns(const item_def &item); bool can_cut_meat(const item_def &item); bool food_is_rotten(const item_def &item); int corpse_freshness(const item_def &item); bool is_fruit(const item_def & item); // generic item property functions: int property(const item_def &item, int prop_type); bool gives_ability(const item_def &item); bool gives_resistance(const item_def &item); int item_mass(const item_def &item); size_type item_size(const item_def &item); equipment_type get_item_slot(object_class_type type, int sub_type); equipment_type get_item_slot(const item_def& item); std::string item_base_name(const item_def &item); const char* weapon_base_name(unsigned char subtype); void seen_item(const item_def &item); #endif