X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FInventory.h;h=bca2ba82bb3a41a77c8abf9c96a8884c9fcc09a1;hb=HEAD;hp=2443078c708389bf72fc004d150b4a85fea53ce6;hpb=341371f1ac26af555407bf9fe9b78794297a385b;p=l2e.git diff --git a/src/common/Inventory.h b/src/common/Inventory.h index 2443078..bca2ba8 100644 --- a/src/common/Inventory.h +++ b/src/common/Inventory.h @@ -1,19 +1,14 @@ -/* - * Inventory.h - * - * Created on: Aug 9, 2012 - * Author: holy - */ - #ifndef COMMON_INVENTORY_H_ #define COMMON_INVENTORY_H_ +namespace common { + class Item; +} + #include namespace common { -class Item; - class Inventory { public: @@ -22,17 +17,27 @@ public: public: bool Add(const Item *, int count = 1); void Remove(const Item *, int count = 1); + void RemoveAll(const Item *); int MaxItems() const { return 96; } + bool AddScenarioItem(const Item *); + const Item *ScenarioItemAt(int offset) const { return scenario[offset]; } + int NumScenarioItems() const { return scenarioEnd; } + int MaxScenarioItems() const { return 64; } + const Item *ItemAt(int offset) const { return entries[offset].item; } int ItemCountAt(int offset) const { return entries[offset].count; } + void Sort(); + void SwapEntriesAt(int lhs, int rhs); + private: struct Entry { Entry() : item(0), count(0) { } const Item *item; Uint8 count; + static bool Less(const Entry &, const Entry &); }; private: @@ -42,9 +47,11 @@ private: private: Entry entries[96]; + const Item *scenario[64]; + int scenarioEnd; }; } -#endif /* COMMON_INVENTORY_H_ */ +#endif