aboutsummaryrefslogtreecommitdiff
path: root/saga
diff options
context:
space:
mode:
Diffstat (limited to 'saga')
-rw-r--r--saga/scene.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/saga/scene.cpp b/saga/scene.cpp
index 951e3896b2..1e1ac21434 100644
--- a/saga/scene.cpp
+++ b/saga/scene.cpp
@@ -1189,11 +1189,18 @@ void Scene::endScene() {
_vm->_script->_skipSpeeches = false;
// Copy current screen to render buffer so inset rooms will get proper background
- backBuffer= _vm->_gfx->getBackBuffer();
backGroundSurface = _vm->_render->getBackGroundSurface();
- backBuffer->getRect(rect);
+ if (!(_sceneDescription.flags & kSceneFlagISO)) {
+ BGInfo bgInfo;
+
+ _vm->_scene->getBGInfo(bgInfo);
+ backGroundSurface->blit(bgInfo.bounds, bgInfo.buffer);
+ } else {
+ backBuffer = _vm->_gfx->getBackBuffer();
+ backBuffer->getRect(rect);
+ backGroundSurface->blit(rect, (const byte *)backBuffer->pixels);
+ }
- backGroundSurface->blit(rect, (const byte *)backBuffer->pixels);
// Free scene background
if (_bg.loaded) {
free(_bg.buf);