aboutsummaryrefslogtreecommitdiff
path: root/engines/agos/res.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/agos/res.cpp')
-rw-r--r--engines/agos/res.cpp13
1 files changed, 8 insertions, 5 deletions
diff --git a/engines/agos/res.cpp b/engines/agos/res.cpp
index d74563226f..4aca390f3b 100644
--- a/engines/agos/res.cpp
+++ b/engines/agos/res.cpp
@@ -221,14 +221,17 @@ void AGOSEngine::loadGamePcFile() {
_numRoomStates = in.size() / 8;
- _stateList = (byte *)malloc(_numRoomStates * 6);
- if (_stateList == NULL)
+ _roomStates = (RoomState *)calloc(_numRoomStates, sizeof(RoomState));
+ if (_roomStates == NULL)
error("loadGamePcFile: Out of memory for room state list");
- _numRoomStates *= 3;
-
- // TODO Load room state resources
+ for (uint s = 0; s < _numRoomStates; s++) {
+ uint16 num = in.readUint16BE() - (_itemArrayInited - 2);
+ _roomStates[num].state = in.readUint16BE();
+ _roomStates[num].classFlags = in.readUint16BE();
+ _roomStates[num].roomExitStates = in.readUint16BE();
+ }
in.close();
}