00001 /* 00002 * The Mana World 00003 * Copyright (C) 2004 The Mana World Development Team 00004 * 00005 * This file is part of The Mana World. 00006 * 00007 * This program is free software; you can redistribute it and/or modify 00008 * it under the terms of the GNU General Public License as published by 00009 * the Free Software Foundation; either version 2 of the License, or 00010 * any later version. 00011 * 00012 * This program is distributed in the hope that it will be useful, 00013 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 * GNU General Public License for more details. 00016 * 00017 * You should have received a copy of the GNU General Public License 00018 * along with this program; if not, write to the Free Software 00019 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00020 */ 00021 00022 #ifndef INVENTORY_H 00023 #define INVENTORY_H 00024 00025 class Item; 00026 00027 #ifdef EATHENA_SUPPORT 00028 const int INVENTORY_SIZE = 102; 00029 #else 00030 const int INVENTORY_SIZE = 50; 00031 #endif 00032 const int STORAGE_SIZE = 301; 00033 00034 class Inventory 00035 { 00036 public: 00042 Inventory(int size); 00043 00047 ~Inventory(); 00048 00052 int getSize() const { return mSize; } 00053 00057 Item *getItem(int index) const; 00058 00065 Item *findItem(int itemId) const; 00066 00070 void addItem(int id, int quantity, bool equipment = false); 00071 00075 void setItem(int index, int id, int quantity, bool equipment = false); 00076 00080 void removeItem(int id); 00081 00085 void removeItemAt(int index); 00086 00090 bool contains(Item *item) const; 00091 00095 int getFreeSlot() const; 00096 00100 void clear(); 00101 00105 int getNumberOfSlotsUsed() const; 00106 00110 int getLastUsedSlot() const; 00111 00112 static const int NO_SLOT_INDEX = -1; 00114 protected: 00115 Item **mItems; 00116 int mSize; 00117 }; 00118 00119 #endif