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