aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-02-26 23:51:24 +1100
committerPaul Gilbert2011-02-26 23:51:24 +1100
commit5a606d86e1349598405189f0cf049223c7c09016 (patch)
tree012d8529b4c6c24cf498a6d539f06537456a7529 /engines
parent3a601812d22afdb0178ffd261a864a0a9e3cc88a (diff)
downloadscummvm-rg350-5a606d86e1349598405189f0cf049223c7c09016.tar.gz
scummvm-rg350-5a606d86e1349598405189f0cf049223c7c09016.tar.bz2
scummvm-rg350-5a606d86e1349598405189f0cf049223c7c09016.zip
TSAGE: Bugfix for credits animations in Scene 1000
Diffstat (limited to 'engines')
-rw-r--r--engines/tsage/core.cpp1
-rw-r--r--engines/tsage/graphics.cpp1
-rw-r--r--engines/tsage/ringworld_scenes1.cpp4
3 files changed, 4 insertions, 2 deletions
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 96723570fc..49ff32e35c 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1662,6 +1662,7 @@ void SceneObject::setPosition(const Common::Point &p, int yDiff) {
}
void SceneObject::setZoom(int percent) {
+ assert(_percent >= 0);
if (percent != _percent) {
_percent = percent;
_flags |= OBJFLAG_PANES;
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index f55605fbac..93bb7ea63f 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -277,6 +277,7 @@ void GfxSurface::setSurface(Graphics::Surface *s) {
* Specifies that the surface should maintain it's own internal surface
*/
void GfxSurface::create(int width, int height) {
+ assert((width >= 0) && (height >= 0));
_screenSurface = false;
_customSurface = new Graphics::Surface();
_customSurface->create(width, height, 1);
diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld_scenes1.cpp
index 9c81c1a1a4..30ef599269 100644
--- a/engines/tsage/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld_scenes1.cpp
@@ -3002,13 +3002,13 @@ void Scene1000::Action3::zoom(bool up) {
if (up) {
while ((scene->_object3._percent < 100) && !_vm->shouldQuit()) {
- scene->_object3.changeZoom(scene->_object3._percent + 5);
+ scene->_object3.changeZoom(MIN(scene->_object3._percent + 5, 100));
_globals->_sceneObjects->draw();
_globals->_events.delay(1);
}
} else {
while ((scene->_object3._percent > 0) && !_vm->shouldQuit()) {
- scene->_object3.changeZoom(scene->_object3._percent - 5);
+ scene->_object3.changeZoom(MAX(scene->_object3._percent - 5, 0));
_globals->_sceneObjects->draw();
_globals->_events.delay(1);
}