aboutsummaryrefslogtreecommitdiff
path: root/saga/scene.h
diff options
context:
space:
mode:
authorAndrew Kurushin2005-07-08 16:56:03 +0000
committerAndrew Kurushin2005-07-08 16:56:03 +0000
commitd944bd7793d1e366bf3555cea3c11a488b9eecaf (patch)
treed60c38c67d9341749021e838fd698378ca6b71a1 /saga/scene.h
parent7e0033983fef78e6d1597fc601a700aa2aafe27e (diff)
downloadscummvm-rg350-d944bd7793d1e366bf3555cea3c11a488b9eecaf.tar.gz
scummvm-rg350-d944bd7793d1e366bf3555cea3c11a488b9eecaf.tar.bz2
scummvm-rg350-d944bd7793d1e366bf3555cea3c11a488b9eecaf.zip
implemented per scene actors clipping
so last sequence should look much better (not perfect) svn-id: r18516
Diffstat (limited to 'saga/scene.h')
-rw-r--r--saga/scene.h20
1 files changed, 9 insertions, 11 deletions
diff --git a/saga/scene.h b/saga/scene.h
index a67acb4fd9..7b6767f062 100644
--- a/saga/scene.h
+++ b/saga/scene.h
@@ -43,14 +43,10 @@ enum SceneFlags {
kSceneFlagShowCursor = 2
};
-struct SCENE_BGINFO {
- int bg_x;
- int bg_y;
- int bg_w;
- int bg_h;
- int bg_p;
- byte *bg_buf;
- size_t bg_buflen;
+struct BGInfo {
+ Rect bounds;
+ byte *buffer;
+ size_t bufferLength;
};
typedef int (SceneProc) (int, void *);
@@ -232,7 +228,8 @@ class Scene {
int getFlags() const { return _sceneDescription.flags; }
int getScriptModuleNumber() const { return _sceneDescription.scriptModuleNumber; }
bool isInDemo() { return !_inGame; }
-
+ const Rect& getSceneClip() const { return _sceneClip; }
+
void getBGMaskInfo(int &width, int &height, byte *&buffer, size_t &bufferLength);
int isBGMaskPresent() { return _bgMask.loaded; }
int getBGMaskType(const Point &testPoint);
@@ -244,7 +241,7 @@ class Scene {
int getDoorState(int doorNumber);
void initDoorsState();
- int getBGInfo(SCENE_BGINFO *bginfo);
+ void getBGInfo(BGInfo &bgInfo);
int getBGPal(PALENTRY **pal);
void getSlopes(int &beginSlope, int &endSlope);
@@ -296,7 +293,8 @@ class Scene {
SceneProc *_sceneProc;
SCENE_IMAGE _bg;
SCENE_IMAGE _bgMask;
-
+ Common::Rect _sceneClip;
+
int _sceneDoors[SCENE_DOORS_MAX];