[Scummvm-cvs-logs] SF.net SVN: scummvm: [21355] scummvm/trunk/engines/scumm
kirben at users.sourceforge.net
kirben at users.sourceforge.net
Sat Mar 18 02:31:02 CET 2006
Revision: 21355
Author: kirben
Date: 2006-03-18 02:30:47 -0800 (Sat, 18 Mar 2006)
ViewCVS: http://svn.sourceforge.net/scummvm/?rev=21355&view=rev
Log Message:
-----------
The camera position is always set by loadRoomWithEgo opcode in HE games, through cameraFollows. Fixes glitches when changing rooms in fbear and other early games.
Modified Paths:
--------------
scummvm/trunk/engines/scumm/camera.cpp
scummvm/trunk/engines/scumm/intern.h
scummvm/trunk/engines/scumm/script_v6.cpp
scummvm/trunk/engines/scumm/scumm.h
Modified: scummvm/trunk/engines/scumm/camera.cpp
===================================================================
--- scummvm/trunk/engines/scumm/camera.cpp 2006-03-18 04:41:34 UTC (rev 21354)
+++ scummvm/trunk/engines/scumm/camera.cpp 2006-03-18 10:30:47 UTC (rev 21355)
@@ -59,7 +59,7 @@
stopTalk();
}
-void ScummEngine::setCameraFollows(Actor *a) {
+void ScummEngine::setCameraFollows(Actor *a, bool setCamera) {
int t, i;
@@ -75,7 +75,7 @@
t = a->_pos.x / 8 - _screenStartStrip;
- if (t < camera._leftTrigger || t > camera._rightTrigger)
+ if (t < camera._leftTrigger || t > camera._rightTrigger || setCamera == true)
setCameraAt(a->_pos.x, 0);
for (i = 1; i < _numActors; i++) {
@@ -250,7 +250,7 @@
}
}
-void ScummEngine_v7::setCameraFollows(Actor *a) {
+void ScummEngine_v7::setCameraFollows(Actor *a, bool setCamera) {
byte oldfollow = camera._follows;
int ax, ay;
Modified: scummvm/trunk/engines/scumm/intern.h
===================================================================
--- scummvm/trunk/engines/scumm/intern.h 2006-03-18 04:41:34 UTC (rev 21354)
+++ scummvm/trunk/engines/scumm/intern.h 2006-03-18 10:30:47 UTC (rev 21355)
@@ -831,7 +831,7 @@
virtual void readIndexBlock(uint32 blocktype, uint32 itemsize);
virtual void setCameraAt(int pos_x, int pos_y);
- virtual void setCameraFollows(Actor *a);
+ virtual void setCameraFollows(Actor *a, bool setCamera = false);
virtual void moveCamera();
virtual void panCameraTo(int x, int y);
Modified: scummvm/trunk/engines/scumm/script_v6.cpp
===================================================================
--- scummvm/trunk/engines/scumm/script_v6.cpp 2006-03-18 04:41:34 UTC (rev 21354)
+++ scummvm/trunk/engines/scumm/script_v6.cpp 2006-03-18 10:30:47 UTC (rev 21355)
@@ -1347,7 +1347,7 @@
if (_game.version == 6) {
camera._cur.x = camera._dest.x = a->_pos.x;
- setCameraFollows(a);
+ setCameraFollows(a, (_game.heversion >= 60));
}
_fullRedraw = true;
Modified: scummvm/trunk/engines/scumm/scumm.h
===================================================================
--- scummvm/trunk/engines/scumm/scumm.h 2006-03-18 04:41:34 UTC (rev 21354)
+++ scummvm/trunk/engines/scumm/scumm.h 2006-03-18 10:30:47 UTC (rev 21355)
@@ -1055,7 +1055,7 @@
void cameraMoved();
void setCameraAtEx(int at);
virtual void setCameraAt(int pos_x, int pos_y);
- virtual void setCameraFollows(Actor *a);
+ virtual void setCameraFollows(Actor *a, bool setCamera = false);
virtual void moveCamera();
virtual void panCameraTo(int x, int y);
void clampCameraPos(Common::Point *pt);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list