00001 #ifndef SHOW_H 00002 #define SHOW_H 00003 00004 #include "fixedarray.h" 00005 00006 enum show_item_type 00007 { 00008 SHOW_ITEM_NONE, 00009 SHOW_ITEM_ORB, 00010 SHOW_ITEM_WEAPON, 00011 SHOW_ITEM_ARMOUR, 00012 SHOW_ITEM_WAND, 00013 SHOW_ITEM_FOOD, 00014 SHOW_ITEM_SCROLL, 00015 SHOW_ITEM_RING, 00016 SHOW_ITEM_POTION, 00017 SHOW_ITEM_MISSILE, 00018 SHOW_ITEM_BOOK, 00019 SHOW_ITEM_STAVE, 00020 SHOW_ITEM_MISCELLANY, 00021 SHOW_ITEM_CORPSE, 00022 SHOW_ITEM_GOLD, 00023 SHOW_ITEM_AMULET, 00024 SHOW_ITEM_DETECTED, 00025 NUM_SHOW_ITEMS 00026 }; 00027 00028 enum show_class 00029 { 00030 SH_NOTHING, 00031 SH_FEATURE, 00032 SH_ITEM, 00033 SH_CLOUD, 00034 SH_INVIS_EXPOSED, 00035 SH_MONSTER, 00036 NUM_SHOW_CLASSES 00037 }; 00038 00039 struct show_type 00040 { 00041 show_class cls; 00042 dungeon_feature_type feat; 00043 show_item_type item; 00044 monster_type mons; 00045 unsigned short colour; 00046 00047 show_type(); 00048 show_type(dungeon_feature_type f); 00049 show_type(const item_def &item); 00050 show_type(show_item_type itemtype); 00051 show_type(monster_type montype); 00052 00053 operator bool() const { return (cls != SH_NOTHING); } 00054 00055 bool operator < (const show_type &other) const; 00056 bool is_cleanable_monster() const; 00057 }; 00058 00059 struct show_info 00060 { 00061 dungeon_feature_type feat; 00062 show_item_type item; 00063 monster_type mons; 00064 }; 00065 00066 class monster; 00067 00068 void show_init(bool terrain_only = false); 00069 void show_update_at(const coord_def &gp, bool terrain_only = false); 00070 void show_update_emphasis(); 00071 00072 #endif