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:
private:
Entry entries[96];
+ const Item *scenario[64];
+ int scenarioEnd;
};