///////////////////////////////////////////////////////////////////////////// // Name: pokemod/Item.h // Purpose: Define an item // Author: Ben Boeckel // Modified by: Ben Boeckel // Created: Tue Mar 20 18:16:29 2007 // Copyright: ©2007-2008 Ben Boeckel and Nerdy Productions // Licence: // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License along // with this program. If not, see . ///////////////////////////////////////////////////////////////////////////// #ifndef __POKEMOD_ITEM__ #define __POKEMOD_ITEM__ #include #include #include #include "Object.h" class ItemEffect; class Pokemod; class Item : public Object { public: Item(const Pokemod* par, const int _id); Item(const Pokemod* par, const Item& i, const int _id); Item(const Pokemod* par, const QString& fname, const int _id = -1); ~Item(); void load(const QString& fname, const int _id = -1) throw(Exception); void save() const throw(Exception); void setName(const QString& n); void setSellable(const bool s); void setType(const int t) throw(BoundsException); void setPrice(const int p) throw(BoundsException); void setDescription(const QString& d); QString getName() const; bool getSellable() const; int getType() const; int getPrice() const; QString getDescription() const; const ItemEffect* getEffect(const int i) const throw(IndexException); ItemEffect* getEffect(const int i) throw(IndexException); const ItemEffect* getEffectByID(const int i) const throw(IndexException); ItemEffect* getEffectByID(const int i) throw(IndexException); int getEffectIndex(const int _id) const; int getEffectCount() const; ItemEffect* newEffect(); ItemEffect* newEffect(const QString& fname); ItemEffect* newEffect(const ItemEffect& e); void deleteEffect(const int i) throw(IndexException); Item& operator=(const Item& rhs); private: bool validate() const; int getNewId() const; QString name; bool sellable; int type; int price; QString description; QList effects; }; #endif