メインページ | ネームスペース一覧 | クラス階層 | アルファベット順一覧 | 構成 | ファイル一覧 | ネームスペースメンバ | 構成メンバ | ファイルメンバ

item_inst.hh

説明を見る。
00001 #ifndef ITEM_INST_HH_
00002 # define ITEM_INST_HH_
00003 
00004 # include <cassert>
00005 # include <iostream>
00006 
00007 # include "objects_fwd.hh"
00008 
00009 namespace objects
00010 {
00011   class ItemInst
00012   {
00013   public:
00014     ItemInst(int item_id, const Item &item, const ItemClass &item_class,
00015       int count);
00016     virtual ~ItemInst();
00017 
00018   public: // Common.
00019     int get_item_id() const;
00020     void set_item_id(int item_id);
00021     const Item &get_item() const;
00022     const ItemClass &get_item_class() const;
00023     int get_count() const;
00024     void set_count(int count);
00025 
00026     virtual bool identified() const = 0;
00027     virtual bool possessed() const = 0;
00028     virtual void print(std::ostream &os) const;
00029 
00030   protected:
00031     int _item_id;
00032     const Item &_item;
00033     const ItemClass &_item_class;
00034     int _count;
00035   };
00036 
00037   class UnidentifiedItem : public ItemInst
00038   {
00039   public:
00040     UnidentifiedItem(int item_id, const Item &item, const ItemClass &item_class,
00041       int count);
00042     ~UnidentifiedItem();
00043 
00044     virtual bool identified() const;
00045     virtual bool possessed() const;
00046   };
00047 
00048   class IdentifiedItem : public ItemInst
00049   {
00050   public:
00051     IdentifiedItem(int item_id, const Item &item, const ItemClass &item_class,
00052       int count, int durability, int level); 
00053     ~IdentifiedItem();
00054 
00055     virtual bool identified() const;
00056     virtual bool possessed() const;
00057     virtual void print(std::ostream &os) const;
00058 
00059     int get_value();
00060     bool can_be_sold();
00061 
00062     int get_durability() const;
00063     void set_durability(int i);
00064     int get_level() const;
00065 
00066   protected:
00067     int _durability;
00068     int _level;
00069 
00071   };
00072 
00073   class PossessedItem : public IdentifiedItem
00074   {
00075   public:
00076     PossessedItem(int item_id, const Item &item, const ItemClass &item_class,
00077       int count, int durability, int level,
00078       const ItemContainer &item_container, int position);
00079     ~PossessedItem();
00080 
00081     virtual bool possessed() const;
00082     virtual void print(std::ostream &os) const;
00083 
00084     const ItemContainer &get_item_container() const;
00085     int get_position() const;
00086     void set_item_container(const ItemContainer &ic);
00087     void set_position(int i);
00088 
00089   protected:
00090     const ItemContainer *_item_container;
00091     int _position;
00092   };
00093 
00094   class ItemInScreen : public UnidentifiedItem
00095   {
00096   public:
00097     ItemInScreen(int item_id, const Item &item, const ItemClass &item_class,
00098       int count, int pos_x, int pos_y);
00099     ~ItemInScreen();
00100 
00101     virtual void print(std::ostream &os) const;
00102 
00103     int get_pos_x() const;
00104     int get_pos_y() const;
00105     bool is_available() const;
00106     void set_unavailable();
00107 
00108   protected:
00109     // Position in screen coordinates.
00110     int _pos_x;
00111     int _pos_y;
00112 
00113     // Availability for picking.
00114     bool _available;
00115   };
00116 
00117   std::ostream &operator <<(std::ostream &os, const ItemInst &ii);
00118 }
00119 
00120 # include "item_inst.hxx"
00121 
00122 #endif

Cronous Emulatorに対してWed Aug 17 06:01:26 2005に生成されました。  doxygen 1.4.2-20050421