aboutsummaryrefslogtreecommitdiff
path: root/gfx.cpp
diff options
context:
space:
mode:
authorVincent Hamm2002-03-05 23:41:41 +0000
committerVincent Hamm2002-03-05 23:41:41 +0000
commitc21e9da1b6c46f145f8061ca77dd5b9b9627e782 (patch)
tree824f1ce524979fd09ef6a88e6268cd3c30f97d3f /gfx.cpp
parent8d6efb265f1d38599d80eebe80570b5bfba944f8 (diff)
downloadscummvm-rg350-c21e9da1b6c46f145f8061ca77dd5b9b9627e782.tar.gz
scummvm-rg350-c21e9da1b6c46f145f8061ca77dd5b9b9627e782.tar.bz2
scummvm-rg350-c21e9da1b6c46f145f8061ca77dd5b9b9627e782.zip
Next episode in V7 reimplementation. Nearly working
svn-id: r3658
Diffstat (limited to 'gfx.cpp')
-rw-r--r--gfx.cpp167
1 files changed, 80 insertions, 87 deletions
diff --git a/gfx.cpp b/gfx.cpp
index 8cc886675a..38761c2d78 100644
--- a/gfx.cpp
+++ b/gfx.cpp
@@ -552,10 +552,9 @@ void Scumm::redrawBGAreas() {
CameraData *cd = &camera;
int diff; // Full throttle hack
-#if !defined(FULL_THROTTLE)
- if (cd->_cur.x!=cd->_last.x && charset._hasMask)
- stopTalk();
-#endif
+ if (!(_features & GF_AFTER_V7))
+ if (cd->_cur.x!=cd->_last.x && charset._hasMask)
+ stopTalk();
val = 0;
@@ -567,32 +566,31 @@ void Scumm::redrawBGAreas() {
}
}
-#if defined(FULL_THROTTLE)
- diff = (cd->_cur.x>>3) - (cd->_last.x>>3);
- if (_fullRedraw==0 && diff==1) {
- val = 2;
- redrawBGStrip(39, 1);
- } else if (_fullRedraw==0 && diff==-1) {
- val = 1;
- redrawBGStrip(0, 1);
- } else if (_fullRedraw!=0 || diff!=0) {
- _BgNeedsRedraw = false;
- _fullRedraw = false;
- redrawBGStrip(0, 40);
- }
-
-#else
- if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == 8) {
- val = 2;
- redrawBGStrip(39, 1);
- } else if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == -8) {
- val = 1;
- redrawBGStrip(0, 1);
- } else if (_fullRedraw!=0 || cd->_cur.x != cd->_last.x) {
- _BgNeedsRedraw = false;
- redrawBGStrip(0, 40);
+ if(_features & GF_AFTER_V7) {
+ diff = (cd->_cur.x>>3) - (cd->_last.x>>3);
+ if (_fullRedraw==0 && diff==1) {
+ val = 2;
+ redrawBGStrip(39, 1);
+ } else if (_fullRedraw==0 && diff==-1) {
+ val = 1;
+ redrawBGStrip(0, 1);
+ } else if (_fullRedraw!=0 || diff!=0) {
+ _BgNeedsRedraw = false;
+ _fullRedraw = false;
+ redrawBGStrip(0, 40);
+ }
+ } else {
+ if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == 8) {
+ val = 2;
+ redrawBGStrip(39, 1);
+ } else if (_fullRedraw==0 && cd->_cur.x - cd->_last.x == -8) {
+ val = 1;
+ redrawBGStrip(0, 1);
+ } else if (_fullRedraw!=0 || cd->_cur.x != cd->_last.x) {
+ _BgNeedsRedraw = false;
+ redrawBGStrip(0, 40);
+ }
}
-#endif
drawRoomObjects(val);
_BgNeedsRedraw = false;
@@ -1815,84 +1813,79 @@ void Scumm::moveCamera() {
}
}
-#if defined(FULL_THROTTLE)
void Scumm::cameraMoved() {
- CameraData *cd = &camera;
-
- assert(cd->_cur.x>=160 && cd->_cur.y>=100);
+ if(_features & GF_AFTER_V7) {
+ CameraData *cd = &camera;
- _screenStartStrip = (cd->_cur.x-160) >> 3;
- _screenEndStrip = _screenStartStrip + 39;
- virtscr[0].xstart = _screenStartStrip << 3;
+ assert(cd->_cur.x>=160 && cd->_cur.y>=100);
- _screenLeft = cd->_cur.x - 160;
- _screenTop = cd->_cur.y - 100;
-}
+ _screenStartStrip = (cd->_cur.x-160) >> 3;
+ _screenEndStrip = _screenStartStrip + 39;
+ virtscr[0].xstart = _screenStartStrip << 3;
+
+ _screenLeft = cd->_cur.x - 160;
+ _screenTop = cd->_cur.y - 100;
+ } else {
+ CameraData *cd = &camera;
-#else
-void Scumm::cameraMoved() {
- CameraData *cd = &camera;
+ if (cd->_cur.x < 160) {
+ cd->_cur.x = 160;
+ } else if (cd->_cur.x + 160 >= _scrWidth) {
+ cd->_cur.x = _scrWidth-160;
+ }
- if (cd->_cur.x < 160) {
- cd->_cur.x = 160;
- } else if (cd->_cur.x + 160 >= _scrWidth) {
- cd->_cur.x = _scrWidth-160;
+ _screenStartStrip = (cd->_cur.x >> 3) - 20;
+ _screenEndStrip = _screenStartStrip + 39;
+ virtscr[0].xstart = _screenStartStrip << 3;
}
-
- _screenStartStrip = (cd->_cur.x >> 3) - 20;
- _screenEndStrip = _screenStartStrip + 39;
- virtscr[0].xstart = _screenStartStrip << 3;
}
-#endif
-#if defined(FULL_THROTTLE)
void Scumm::panCameraTo(int x, int y) {
- CameraData *cd = &camera;
- cd->_follows = 0;
- cd->_dest.x = x;
- cd->_dest.y = y;
-}
+ if(_features & GF_AFTER_V7) {
+ CameraData *cd = &camera;
+ cd->_follows = 0;
+ cd->_dest.x = x;
+ cd->_dest.y = y;
+ } else {
-#else
-void Scumm::panCameraTo(int x, int y) {
- CameraData *cd = &camera;
- cd->_dest.x = x;
- cd->_mode = CM_PANNING;
- cd->_movingToActor = 0;
+ CameraData *cd = &camera;
+ cd->_dest.x = x;
+ cd->_mode = CM_PANNING;
+ cd->_movingToActor = 0;
+ }
}
-#endif
void Scumm::actorFollowCamera(int act) {
-#if !defined(FULL_THROTTLE)
- int old;
- CameraData *cd = &camera;
+ if(!(_features & GF_AFTER_V7)) {
+ int old;
+ CameraData *cd = &camera;
- /* mi1 compatibilty */
- if (act==0) {
- cd->_mode = CM_NORMAL;
- cd->_follows = 0;
- cd->_movingToActor = 0;
- return;
- }
+ /* mi1 compatibilty */
+ if (act==0) {
+ cd->_mode = CM_NORMAL;
+ cd->_follows = 0;
+ cd->_movingToActor = 0;
+ return;
+ }
- old = cd->_follows;
- setCameraFollows(derefActorSafe(act, "actorFollowCamera"));
- if (cd->_follows != old)
- runHook(0);
+ old = cd->_follows;
+ setCameraFollows(derefActorSafe(act, "actorFollowCamera"));
+ if (cd->_follows != old)
+ runHook(0);
- cd->_movingToActor = 0;
-#endif
+ cd->_movingToActor = 0;
+ }
}
void Scumm::setCameraAtEx(int at) {
-#if !defined(FULL_THROTTLE)
- CameraData *cd = &camera;
- cd->_mode = CM_NORMAL;
- cd->_cur.x = at;
- setCameraAt(at, 0);
- cd->_movingToActor = 0;
-#endif
+ if(!(_features & GF_AFTER_V7)) {
+ CameraData *cd = &camera;
+ cd->_mode = CM_NORMAL;
+ cd->_cur.x = at;
+ setCameraAt(at, 0);
+ cd->_movingToActor = 0;
+ }
}
void Scumm::palManipulate() {