aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sherlock/scene.h')
-rw-r--r--engines/sherlock/scene.h48
1 files changed, 46 insertions, 2 deletions
diff --git a/engines/sherlock/scene.h b/engines/sherlock/scene.h
index 2280e169b7..ae4fcfdb45 100644
--- a/engines/sherlock/scene.h
+++ b/engines/sherlock/scene.h
@@ -32,6 +32,10 @@
namespace Sherlock {
#define SCENES_COUNT 63
+#define MAX_ZONES 40
+#define INFO_LINE 140
+#define CONTROLS_Y 138
+#define CONTROLS_Y1 151
class SherlockEngine;
@@ -54,6 +58,33 @@ struct BgfileheaderInfo {
void synchronize(Common::SeekableReadStream &s);
};
+struct Exit {
+ Common::Point _position;
+ Common::Point _size;
+
+ int _scene;
+ int _allow;
+ Common::Point _people;
+ int _peopleDir;
+
+ void synchronize(Common::SeekableReadStream &s);
+};
+
+struct SceneEntry {
+ Common::Point _startPosition;
+ int _startDir;
+ int _allow;
+
+ void synchronize(Common::SeekableReadStream &s);
+};
+
+struct SceneSound {
+ Common::String _name;
+ int _priority;
+
+ void synchronize(Common::SeekableReadStream &s);
+};
+
class Scene {
private:
SherlockEngine *_vm;
@@ -61,15 +92,23 @@ private:
void loadScene();
void loadScene(const Common::String &filename);
+
+ void checkSceneStatus();
+
+ void checkSceneFlags(bool mode);
+
+ void checkInventory();
public:
+ int _currentScene;
+ int _goToRoom;
+ bool _changes;
bool _stats[SCENES_COUNT][9];
bool _savedStats[SCENES_COUNT][9];
- int _goToRoom;
Common::Point _bigPos;
Common::Point _overPos;
int _oldCharPoint;
ImageFile *_controls;
- int _numExits;
+ ImageFile *_controlPanel;
bool _windowOpen, _infoFlag;
int _menuMode, _keyboardInput;
int _oldKey, _help, _oldHelp;
@@ -86,6 +125,11 @@ public:
Common::Array<CAnim> _cAnim;
Common::Array<byte> _sequenceBuffer;
Common::Array<InvGraphicType> _inv;
+ int _walkDirectory[MAX_ZONES][MAX_ZONES];
+ Common::Array<byte> _walkData;
+ Common::Array<Exit> _exits;
+ SceneEntry _entrance;
+ Common::Array<SceneSound> _sounds;
public:
Scene(SherlockEngine *vm);
~Scene();