diff options
Diffstat (limited to 'engines/fullpipe/inventory.cpp')
-rw-r--r-- | engines/fullpipe/inventory.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/engines/fullpipe/inventory.cpp b/engines/fullpipe/inventory.cpp index 13ac78a358..345a02c83e 100644 --- a/engines/fullpipe/inventory.cpp +++ b/engines/fullpipe/inventory.cpp @@ -94,6 +94,11 @@ Inventory2::~Inventory2() { } bool Inventory2::loadPartial(MfcArchive &file) { // Inventory2_SerializePartially + for (uint i = 0; i < _inventoryItems.size(); i++) + delete _inventoryItems[i]; + + _inventoryItems.clear(); + int numInvs = file.readUint32LE(); for (int i = 0; i < numInvs; i++) { @@ -106,6 +111,17 @@ bool Inventory2::loadPartial(MfcArchive &file) { // Inventory2_SerializePartiall return true; } +bool Inventory2::savePartial(MfcArchive &file) { + file.writeUint32LE(_inventoryItems.size()); + + for (uint i = 0; i < _inventoryItems.size(); i++) { + file.writeUint16LE(_inventoryItems[i]->itemId); + file.writeUint16LE(_inventoryItems[i]->count); + } + + return true; +} + void Inventory2::addItem(int itemId, int count) { if (getInventoryPoolItemIndexById(itemId) >= 0) _inventoryItems.push_back(new InventoryItem(itemId, count)); |