00001 /* 00002 * File: transform.h 00003 * Summary: Misc function related to player transformations. 00004 * Written by: Linley Henzell 00005 */ 00006 00007 00008 #ifndef TRANSFOR_H 00009 #define TRANSFOR_H 00010 00011 #include <set> 00012 00013 #include "enum.h" 00014 #include "player.h" 00015 00016 bool form_can_wield(transformation_type form = you.form); 00017 bool form_can_fly(transformation_type form = you.form); 00018 bool form_can_swim(transformation_type form = you.form); 00019 bool form_likes_water(transformation_type form = you.form); 00020 bool form_can_butcher_barehanded(transformation_type form = you.form); 00021 bool form_changed_physiology(transformation_type form = you.form); 00022 bool form_can_wear_item(const item_def& item, 00023 transformation_type form = you.form); 00024 00025 bool can_equip(equipment_type use_which, bool ignore_temporary); 00026 00027 bool transform(int pow, transformation_type which_trans, bool force = false, 00028 bool just_check = false); 00029 00030 // skip_move: don't make player re-enter current cell 00031 void untransform(bool skip_wielding = false, bool skip_move = false); 00032 00033 size_type transform_size(int psize = PSIZE_BODY); 00034 00035 void remove_one_equip(equipment_type eq, bool meld = true, 00036 bool mutation = false); 00037 void unmeld_one_equip(equipment_type eq); 00038 00039 monster_type transform_mons(); 00040 std::string blade_parts(bool terse = false); 00041 monster_type dragon_form_dragon_type(); 00042 00043 void transformation_expiration_warning(); 00044 00045 #endif