aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-04-02 20:00:29 +1100
committerPaul Gilbert2011-04-02 20:00:29 +1100
commit499d1751c747fb481c9390513a2ec90653af852f (patch)
treefb6c1f19ad0e45edf7b8f9d62b43ad183beb0d91 /engines
parent2103c93afd0f3ebbba3373c20149006ed05fd702 (diff)
downloadscummvm-rg350-499d1751c747fb481c9390513a2ec90653af852f.tar.gz
scummvm-rg350-499d1751c747fb481c9390513a2ec90653af852f.tar.bz2
scummvm-rg350-499d1751c747fb481c9390513a2ec90653af852f.zip
TSAGE: Fixed zoom problems with viewscreen in Scene 3700
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/ringworld_scenes4.cpp20
-rw-r--r--engines/tsage/ringworld_scenes4.h16
2 files changed, 16 insertions, 20 deletions
diff --git a/engines/tsage/ringworld_scenes4.cpp b/engines/tsage/ringworld_scenes4.cpp
index a79b5c3476..4004f8460a 100644
--- a/engines/tsage/ringworld_scenes4.cpp
+++ b/engines/tsage/ringworld_scenes4.cpp
@@ -107,12 +107,20 @@ Scene3700::Viewer::Viewer() {
_active = true;
_countdownCtr = 0;
- _percent = 120;
+ _percentList[0] = 120;
+ _percentList[1] = 50;
+ _percentList[2] = 75;
+ _percentList[3] = 114;
+}
- // Fields don't seem to be used
- _field94 = 50;
- _field96 = 75;
- _field98 = 114;
+void Scene3700::Viewer::synchronise(Serialiser &s) {
+ SceneObject::synchronise(s);
+ s.syncAsByte(_active);
+ s.syncAsSint16LE(_countdownCtr);
+ for (int idx = 0; idx < 4; ++idx) {
+ s.syncAsSint16LE(_frameList[idx]);
+ s.syncAsSint16LE(_percentList[idx]);
+ }
}
void Scene3700::Viewer::dispatch() {
@@ -147,7 +155,7 @@ void Scene3700::Viewer::draw() {
GfxSurface img = v.getFrame(_frameList[idx]);
Rect destRect = img.getBounds();
destRect.resize(img, (_position.x - _globals->_sceneOffset.x),
- (_position.y - _globals->_sceneOffset.y - _yDiff), _percent);
+ (_position.y - _globals->_sceneOffset.y - _yDiff), _percentList[idx]);
destRect.translate(-_globals->_sceneManager._scene->_sceneBounds.left,
-_globals->_sceneManager._scene->_sceneBounds.top);
diff --git a/engines/tsage/ringworld_scenes4.h b/engines/tsage/ringworld_scenes4.h
index 1c92ba4897..4179d1a256 100644
--- a/engines/tsage/ringworld_scenes4.h
+++ b/engines/tsage/ringworld_scenes4.h
@@ -61,25 +61,13 @@ class Scene3700: public Scene {
Visage _images2;
int _frameList[4];
+ int _percentList[4];
bool _active;
int _countdownCtr;
- int _percent;
-
- // Unused fields?
- int _field94;
- int _field96;
- int _field98;
Viewer();
virtual Common::String getClassName() { return "Viewer"; }
- virtual void synchronise(Serialiser &s) {
- SceneObject::synchronise(s);
- s.syncAsByte(_active);
- s.syncAsSint16LE(_countdownCtr);
- for (int idx = 0; idx < 4; ++idx)
- s.syncAsSint16LE(_frameList[idx]);
-
- }
+ virtual void synchronise(Serialiser &s);
virtual void dispatch();
virtual void reposition();
virtual void draw();