aboutsummaryrefslogtreecommitdiff
path: root/engines/neverhood/modules
diff options
context:
space:
mode:
authorjohndoe1232013-06-11 11:33:05 +0200
committerjohndoe1232013-06-11 11:33:05 +0200
commitadd321c93049e006c202c67bdb0170b8bca83833 (patch)
tree6efcb8811197b861286a2a3bea2ef9e6065bf846 /engines/neverhood/modules
parent19e92a09fc790dfc1da69f886b1d330a878d7e75 (diff)
downloadscummvm-rg350-add321c93049e006c202c67bdb0170b8bca83833.tar.gz
scummvm-rg350-add321c93049e006c202c67bdb0170b8bca83833.tar.bz2
scummvm-rg350-add321c93049e006c202c67bdb0170b8bca83833.zip
NEVERHOOD: Try to fix the Smacker issues inside of SmackerPlayer only (instead the numerous classes using it)
SmackerPlayer now creates a surface in the constructor and deletes it in the destructor. There will be only this surface during the lifetime of the player, so there shouldn't be any issues any more when the player is reused for different Smacker files. This is imo nicer than to remove/add the surface. I kept the several openSmacker since it wraps some code which is nice.
Diffstat (limited to 'engines/neverhood/modules')
-rw-r--r--engines/neverhood/modules/module3000.cpp6
1 files changed, 0 insertions, 6 deletions
diff --git a/engines/neverhood/modules/module3000.cpp b/engines/neverhood/modules/module3000.cpp
index 75e44edbd6..a2c0eb7ec0 100644
--- a/engines/neverhood/modules/module3000.cpp
+++ b/engines/neverhood/modules/module3000.cpp
@@ -818,16 +818,10 @@ Scene3009::Scene3009(NeverhoodEngine *vm, Module *parentModule, int which)
}
Scene3009::~Scene3009() {
- removeSurface(_cannonSmackerPlayer->getSurface());
- // FIXME: Deleting the player crashes the game when leaving the cannon scene!
- //delete _cannonSmackerPlayer;
}
void Scene3009::openSmacker(uint32 fileHash, bool keepLastFrame) {
- // The old Smacker surface is deleted when a new Smacker is opened.
- removeSurface(_cannonSmackerPlayer->getSurface());
_cannonSmackerPlayer->open(fileHash, keepLastFrame);
- addSurface(_cannonSmackerPlayer->getSurface());
//_vm->_screen->setSmackerDecoder(_cannonSmackerPlayer->getSmackerDecoder());
_palette->usePalette();
}