aboutsummaryrefslogtreecommitdiff
path: root/engines/mads/scene.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/mads/scene.h')
-rw-r--r--engines/mads/scene.h53
1 files changed, 52 insertions, 1 deletions
diff --git a/engines/mads/scene.h b/engines/mads/scene.h
index a5359a9895..e2afd081b3 100644
--- a/engines/mads/scene.h
+++ b/engines/mads/scene.h
@@ -24,9 +24,47 @@
#define MADS_SCENE_H
#include "common/scummsys.h"
+#include "common/array.h"
+#include "common/rect.h"
namespace MADS {
+enum SpriteType {
+ ST_NONE = 0, ST_FOREGROUND = 1, ST_BACKGROUND = -4,
+ ST_FULL_SCREEN_REFRESH = -2, ST_EXPIRED = -1
+};
+
+class SpriteSlot {
+public:
+ SpriteType _spriteType;
+ int _seqIndex;
+ int _spriteListIndex;
+ int _frameNumber;
+ Common::Point _position;
+ int _depth;
+ int _scale;
+public:
+ SpriteSlot();
+ SpriteSlot(SpriteType type, int seqIndex);
+};
+
+class TextDisplay {
+public:
+ bool _active;
+ int _spacing;
+ Common::Rect _bounds;
+ int _expire;
+ int _col1;
+ int _col2;
+ Common::String _fontName;
+ Common::String _msg;
+
+ TextDisplay();
+};
+
+#define SPRITE_COUNT 50
+#define TEXT_DISPLAY_COUNT 40
+
class Scene {
public:
int _priorSectionNum;
@@ -35,8 +73,21 @@ public:
int _priorSceneId;
int _nextSceneId;
int _currentSceneId;
-
+ TextDisplay _textDisplay[TEXT_DISPLAY_COUNT];
+ Common::Array<SpriteSlot> _spriteSlots;
+ Common::Array<int> _spriteList;
+ int _spriteListIndex;
+
+ /**
+ * Constructor
+ */
Scene();
+
+ /**
+ * Initialise the sprite data
+ * @param flag Also reset sprite list
+ */
+ void clearSprites(bool flag);
};
} // End of namespace MADS