aboutsummaryrefslogtreecommitdiff
path: root/engines/titanic/video_surface.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/titanic/video_surface.h')
-rw-r--r--engines/titanic/video_surface.h36
1 files changed, 30 insertions, 6 deletions
diff --git a/engines/titanic/video_surface.h b/engines/titanic/video_surface.h
index 978eacfbbe..04d9fa8c58 100644
--- a/engines/titanic/video_surface.h
+++ b/engines/titanic/video_surface.h
@@ -25,26 +25,50 @@
#include "common/scummsys.h"
#include "common/array.h"
-#include "graphics/surface.h"
#include "titanic/font.h"
+#include "titanic/direct_draw.h"
+#include "titanic/core/list.h"
+#include "titanic/core/resource_key.h"
namespace Titanic {
class CScreenManager;
-class CVideoSurface {
+class CVideoSurface : public ListItem {
private:
+ static int _videoSurfaceCounter;
+protected:
CScreenManager *_screenManager;
- Graphics::Surface *_surface;
+ CResourceKey _resourceKey;
+ DirectDrawSurface *_surface;
+ int _field2C;
+ int _field34;
+ bool _field38;
+ int _field3C;
+ int _field40;
+ int _field44;
+ int _field48;
+ int _videoSurfaceNum;
+ int _field50;
+ int _accessCtr;
public:
- CVideoSurface(CScreenManager *screenManager, Graphics::Surface *surface);
+ CVideoSurface(CScreenManager *screenManager);
- void setSurface(CScreenManager *screenManager, Graphics::Surface *surface);
+ void setSurface(CScreenManager *screenManager, DirectDrawSurface *surface);
+
+ virtual void proc8(const CResourceKey &key) = 0;
+
+ virtual void proc43() = 0;
};
class OSVideoSurface : public CVideoSurface {
public:
- OSVideoSurface(CScreenManager *screenManager, Graphics::Surface *surface);
+ OSVideoSurface(CScreenManager *screenManager, DirectDrawSurface *surface);
+ OSVideoSurface(CScreenManager *screenManager, const CResourceKey &key, bool flag = false);
+
+ virtual void proc8(const CResourceKey &key);
+
+ virtual void proc43();
};
} // End of namespace Titanic