aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scene.h
diff options
context:
space:
mode:
authorPaul Gilbert2015-05-17 07:20:06 -0400
committerPaul Gilbert2015-05-17 07:20:06 -0400
commit3683719932882ab60fa1a6c22d19889c9734c355 (patch)
tree9b770ce064267320a30cc821aeb6c8d69b71c748 /engines/sherlock/scene.h
parent46e27b6293c0de767c9713c08e89e63dcf52fcc3 (diff)
downloadscummvm-rg350-3683719932882ab60fa1a6c22d19889c9734c355.tar.gz
scummvm-rg350-3683719932882ab60fa1a6c22d19889c9734c355.tar.bz2
scummvm-rg350-3683719932882ab60fa1a6c22d19889c9734c355.zip
SHERLOCK: Implement remaining Rose Tattoo scene data loading
Diffstat (limited to 'engines/sherlock/scene.h')
-rw-r--r--engines/sherlock/scene.h24
1 files changed, 20 insertions, 4 deletions
diff --git a/engines/sherlock/scene.h b/engines/sherlock/scene.h
index 86b1e3d063..9454a4e20b 100644
--- a/engines/sherlock/scene.h
+++ b/engines/sherlock/scene.h
@@ -68,15 +68,17 @@ struct BgfileheaderInfo {
void load(Common::SeekableReadStream &s);
};
-struct Exit {
- Common::Rect _bounds;
-
+class Exit: public Common::Rect {
+public:
int _scene;
int _allow;
Common::Point _people;
int _peopleDir;
- void load(Common::SeekableReadStream &s);
+ Common::String _dest;
+ int _image; // Arrow image to use
+
+ void load(Common::SeekableReadStream &s, bool isRoseTattoo);
};
struct SceneEntry {
@@ -99,6 +101,14 @@ public:
int indexOf(const Object &obj) const;
};
+class ScaleZone: public Common::Rect {
+public:
+ int _topNumber; // Numerator of scale size at the top of the zone
+ int _bottomNumber; // Numerator of scale size at the bottom of the zone
+
+ void load(Common::SeekableReadStream &s);
+};
+
class Scene {
private:
SherlockEngine *_vm;
@@ -109,6 +119,8 @@ private:
bool loadScene(const Common::String &filename);
+ void loadSceneSounds();
+
void checkSceneStatus();
void checkInventory();
@@ -118,6 +130,7 @@ private:
void checkBgShapes(ImageFrame *frame, const Common::Point &pt);
void saveSceneStatus();
+
public:
int _currentScene;
int _goToScene;
@@ -141,9 +154,12 @@ public:
int _walkDirectory[MAX_ZONES][MAX_ZONES];
Common::Array<byte> _walkData;
Common::Array<Exit> _exits;
+ int _exitZone;
SceneEntry _entrance;
Common::Array<SceneSound> _sounds;
ObjectArray _canimShapes;
+ Common::Array<ScaleZone> _scaleZones;
+ Common::StringArray _objSoundList;
bool _restoreFlag;
int _animating;
bool _doBgAnimDone;