aboutsummaryrefslogtreecommitdiff
path: root/engines/chewy/scene.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2017-03-14 23:06:55 +0200
committerFilippos Karapetis2017-03-14 23:06:55 +0200
commit3b962c9ec4e8a1582fe9841067e4b8352a4b064e (patch)
treeb7291f0fdcce9fd0731826bb152d42fc66cae30a /engines/chewy/scene.cpp
parent87cac81c5c850d135b68f8135c45fef7baf113d1 (diff)
downloadscummvm-rg350-3b962c9ec4e8a1582fe9841067e4b8352a4b064e.tar.gz
scummvm-rg350-3b962c9ec4e8a1582fe9841067e4b8352a4b064e.tar.bz2
scummvm-rg350-3b962c9ec4e8a1582fe9841067e4b8352a4b064e.zip
CHEWY: Read automove scene data
Diffstat (limited to 'engines/chewy/scene.cpp')
-rw-r--r--engines/chewy/scene.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/engines/chewy/scene.cpp b/engines/chewy/scene.cpp
index 22a6c05157..7f10b75025 100644
--- a/engines/chewy/scene.cpp
+++ b/engines/chewy/scene.cpp
@@ -37,6 +37,7 @@ namespace Chewy {
#define MAX_DETAILS 32
#define MAX_HOTSPOTS 50
+#define MAX_AUTOMOVE 20
// Animated details - scene animations
struct AnimatedDetails {
@@ -75,6 +76,13 @@ struct Hotspot {
Common::String desc;
};
+struct AutoMove {
+ int16 x;
+ int16 y;
+ byte spriteNum; // sprite number to draw when the end point is reached
+ // 1 byte dummy
+};
+
struct SceneInfo {
uint16 staticDetailsCount;
uint16 animatedDetailsCount;
@@ -89,7 +97,7 @@ struct SceneInfo {
Common::String tafName; // 14 bytes
byte zoomFactor;
// 1 byte dummy
- // 6 * 20 = 120 bytes automove coordinates - TODO
+ AutoMove autoMove[MAX_AUTOMOVE];
// MAX_DETAILS * 3 * 2 = 192 bytes voc - TODO
// MAX_DETAILS * 3 = 96 bytes samples - TODO
};
@@ -233,7 +241,13 @@ void Scene::loadSceneInfo() {
_sceneInfo->zoomFactor = indexFile.readByte();
indexFile.readByte(); // padding
- // 6 * 20 = 120 bytes automove coordinates - TODO: read these
+ for (int i = 0; i < MAX_AUTOMOVE; i++) {
+ _sceneInfo->autoMove[i].x = indexFile.readSint16LE();
+ _sceneInfo->autoMove[i].y = indexFile.readSint16LE();
+ _sceneInfo->autoMove[i].spriteNum = indexFile.readByte();
+ indexFile.readByte(); // padding
+ }
+
// MAX_DETAILS * 3 * 2 = 192 bytes voc - TODO: read these
// MAX_DETAILS * 3 = 96 bytes samples - TODO: read these