/* core/item.h This file is part of the Osirion project and is distributed under the terms of the GNU General Public License version 2 */ #ifndef __INCLUDED_CORE_ITEM_H__ #define __INCLUDED_CORE_ITEM_H__ #include "core/info.h" namespace core { /** * @brief an item in the inventory of an entity * The info record represents the type of the item */ class Item { public: Item(const unsigned int class_id, const unsigned int info_id); ~Item(); /* ---- inspectors --------------------------------------------- */ inline unsigned int class_id() const { return item_class_id; } inline unsigned int info_id() const { return item_info_id; } /** * @brief associated amount */ inline int amount() const { return item_amount; } /** * @brief information record */ inline Info *info(); /* ---- mutators ----------------------------------------------- */ /** * @brief set associated amount */ void set_amount(const int amount); private: unsigned int item_class_id; unsigned int item_info_id; int item_amount; Info *item_info; }; } // namespace core #endif // __INCLUDED_CORE_ITEM_H__