aboutsummaryrefslogtreecommitdiff
path: root/engines/sludge/sludge.cpp
diff options
context:
space:
mode:
authoryinsimei2017-06-06 09:01:46 +0200
committerEugene Sandulenko2017-07-13 18:27:45 +0200
commit78cba75570115cf598a0c6c27a660f1ae0e985d6 (patch)
treefb7c0de9d508ef975ccefa0006fbc2c49985acfa /engines/sludge/sludge.cpp
parent839e7fb4d2d51c6abd38d1cc56a2d2cbd346d710 (diff)
downloadscummvm-rg350-78cba75570115cf598a0c6c27a660f1ae0e985d6.tar.gz
scummvm-rg350-78cba75570115cf598a0c6c27a660f1ae0e985d6.tar.bz2
scummvm-rg350-78cba75570115cf598a0c6c27a660f1ae0e985d6.zip
SLUDGE: change pixel formats to pointers and fix seg fault
Diffstat (limited to 'engines/sludge/sludge.cpp')
-rw-r--r--engines/sludge/sludge.cpp22
1 files changed, 13 insertions, 9 deletions
diff --git a/engines/sludge/sludge.cpp b/engines/sludge/sludge.cpp
index 90bdd454ef..c4e3083466 100644
--- a/engines/sludge/sludge.cpp
+++ b/engines/sludge/sludge.cpp
@@ -34,12 +34,8 @@ namespace Sludge {
SludgeEngine *g_sludge;
-Graphics::PixelFormat SludgeEngine::getScreenPixelFormat() const { return _pixelFormat; }
-Graphics::PixelFormat SludgeEngine::getOrigPixelFormat() const {
- return Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
- //return _origFormat;
- // TODO: get segmentation fault when returning _origFormat
-}
+Graphics::PixelFormat *SludgeEngine::getScreenPixelFormat() const { return _pixelFormat; }
+Graphics::PixelFormat *SludgeEngine::getOrigPixelFormat() const { return _origFormat; }
SludgeEngine::SludgeEngine(OSystem *syst, const SludgeGameDescription *gameDesc) :
Engine(syst), _gameDescription(gameDesc), _console(nullptr) {
@@ -62,12 +58,20 @@ SludgeEngine::~SludgeEngine() {
// Dispose resources
delete _rnd;
+ _rnd = nullptr;
// Remove debug levels
DebugMan.clearAllDebugChannels();
// Dispose console
delete _console;
+ _console = nullptr;
+
+ // Dispose pixel formats
+ delete _origFormat;
+ _origFormat = nullptr;
+ delete _pixelFormat;
+ _pixelFormat = nullptr;
}
Common::Error SludgeEngine::run() {
@@ -75,9 +79,9 @@ Common::Error SludgeEngine::run() {
g_sludge = this;
// init graphics
- _origFormat = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
- _pixelFormat = Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0);
- initGraphics(640, 480, false, &_pixelFormat);
+ _origFormat = new Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
+ _pixelFormat = new Graphics::PixelFormat(4, 8, 8, 8, 8, 24, 16, 8, 0);
+ initGraphics(640, 480, false, _pixelFormat);
// create console
_console = new SludgeConsole(this);