aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/cge/cge.cpp22
-rw-r--r--engines/cge/cge_main.cpp1
-rw-r--r--engines/cge/vga13h.cpp4
3 files changed, 15 insertions, 12 deletions
diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index f7e66183ce..da6365ca83 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -119,17 +119,7 @@ CGEEngine::~CGEEngine() {
_console = new CGEConsole(this);
- // Delete engine objects
- delete Text;
- delete Vga;
- delete _heart;
- delete Hero;
- delete Sys;
- delete _pocLight;
- delete _keyboard;
- delete _mouse;
- for (int i = 0; i < POCKET_NX; i++)
- delete _pocket[i];
+ // Delete engine objects
delete _sprite;
delete _miniCave;
delete _shadow;
@@ -148,8 +138,18 @@ CGEEngine::~CGEEngine() {
delete LI[1];
delete LI[2];
delete LI[3];
+ delete Text;
+ delete _heart;
+ delete _pocLight;
+ delete _keyboard;
+ delete _mouse;
+ for (int i = 0; i < POCKET_NX; i++)
+ delete _pocket[i];
delete Snail;
delete Snail_;
+ delete Hero;
+ delete Vga;
+ delete Sys;
}
Common::Error CGEEngine::run() {
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index 0ee8f3ef0b..6562dac041 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -1896,7 +1896,6 @@ void CGEEngine::cge_main(void) {
movie("X03");
} else
Vga->Sunset();
- error("%s", Text->getText(EXIT_OK_TEXT + FINIS));
}
} // End of namespace CGE
diff --git a/engines/cge/vga13h.cpp b/engines/cge/vga13h.cpp
index 0e865ffd90..83c89892ca 100644
--- a/engines/cge/vga13h.cpp
+++ b/engines/cge/vga13h.cpp
@@ -366,6 +366,8 @@ Sprite::Sprite(CGEEngine *vm, BMP_PTR *shp)
Sprite::~Sprite() {
+ if (_sprite == this)
+ _sprite = NULL;
contract();
}
@@ -970,11 +972,13 @@ VGA::~VGA(void) {
Mono = 0;
if (isVga()) {
Common::String buffer = "";
+/*
Clear(0);
SetMode(OldMode);
SetColors();
RestoreScreen(OldScreen);
Sunrise(OldColors);
+*/
if (OldColors)
free(OldColors);
if (NewColors)