aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/state.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/supernova/state.cpp')
-rw-r--r--engines/supernova/state.cpp19
1 files changed, 9 insertions, 10 deletions
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 90b2ae35c2..8985f475b9 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -56,13 +56,13 @@ bool GameManager::serialize(Common::WriteStream *out) {
out->writeByte(_state._dream);
// Inventory
- out->writeSByte(_inventory.getSize());
- out->writeSByte(_inventoryScroll);
+ out->writeSint32LE(_inventory.getSize());
+ out->writeSint32LE(_inventoryScroll);
for (int i = 0; i < _inventory.getSize(); ++i) {
Object *objectStateBegin = _rooms[_inventory.get(i)->_roomId]->getObject(0);
byte objectIndex = _inventory.get(i) - objectStateBegin;
- out->writeByte(_inventory.get(i)->_roomId);
- out->writeByte(objectIndex);
+ out->writeSint32LE(_inventory.get(i)->_roomId);
+ out->writeSint32LE(objectIndex);
}
// Rooms
@@ -75,9 +75,8 @@ bool GameManager::serialize(Common::WriteStream *out) {
bool GameManager::deserialize(Common::ReadStream *in) {
- if (in->err()) {
+ if (in->err())
return false;
- }
// GameState
_state._time = in->readSint32LE();
@@ -103,12 +102,12 @@ bool GameManager::deserialize(Common::ReadStream *in) {
_state._dream = in->readByte();
// Inventory
- int inventorySize = in->readSByte();
- _inventoryScroll = in->readSByte();
+ int inventorySize = in->readSint32LE();
+ _inventoryScroll = in->readSint32LE();
_inventory.clear();
for (int i = 0; i < inventorySize; ++i) {
- RoomID objectRoom = static_cast<RoomID>(in->readByte());
- int objectIndex = in->readByte();
+ RoomID objectRoom = static_cast<RoomID>(in->readSint32LE());
+ int objectIndex = in->readSint32LE();
_inventory.add(*_rooms[objectRoom]->getObject(objectIndex));
}