aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorPaul Gilbert2011-08-06 20:03:42 +1000
committerPaul Gilbert2011-08-06 20:03:42 +1000
commit46e1f03585ffd841eba3a2f5570bd0559cb833bd (patch)
treed1fc0d1cbff1bcdbc7116dc90d5276b74a650965 /engines
parentdb61f65b41530b01d2aa2ae6f31496bee669585d (diff)
downloadscummvm-rg350-46e1f03585ffd841eba3a2f5570bd0559cb833bd.tar.gz
scummvm-rg350-46e1f03585ffd841eba3a2f5570bd0559cb833bd.tar.bz2
scummvm-rg350-46e1f03585ffd841eba3a2f5570bd0559cb833bd.zip
CGE: Fixed up freeing of caveValues data
Diffstat (limited to 'engines')
-rw-r--r--engines/cge/cge.cpp10
-rw-r--r--engines/cge/cge.h1
-rw-r--r--engines/cge/cge_main.cpp4
3 files changed, 9 insertions, 6 deletions
diff --git a/engines/cge/cge.cpp b/engines/cge/cge.cpp
index 603352d8a0..2a4ea6bea2 100644
--- a/engines/cge/cge.cpp
+++ b/engines/cge/cge.cpp
@@ -99,6 +99,12 @@ void CGEEngine::initCaveValues() {
}
}
+void CGEEngine::freeCaveValues() {
+ delete[] _mini;
+ free(_heroXY);
+ free(_barriers);
+}
+
void CGEEngine::setup() {
debugC(1, kCGEDebugEngine, "CGEEngine::setup()");
@@ -209,10 +215,8 @@ CGEEngine::~CGEEngine() {
delete _snail;
delete _snail_;
delete _hero;
- delete[] _mini;
- free(_heroXY);
- free(_barriers);
+ freeCaveValues();
}
Common::Error CGEEngine::run() {
diff --git a/engines/cge/cge.h b/engines/cge/cge.h
index 54ea9e37f6..54bbadfef7 100644
--- a/engines/cge/cge.h
+++ b/engines/cge/cge.h
@@ -219,6 +219,7 @@ public:
void postMiniStep(int stp);
void showBak(int ref);
void initCaveValues();
+ void freeCaveValues();
void snBackPt(Sprite *spr, int stp);
void snBarrier(int cav, int bar, bool horz);
diff --git a/engines/cge/cge_main.cpp b/engines/cge/cge_main.cpp
index 3d1c451862..b17f40b863 100644
--- a/engines/cge/cge_main.cpp
+++ b/engines/cge/cge_main.cpp
@@ -113,9 +113,7 @@ void CGEEngine::syncHeader(Common::Serializer &s) {
if (s.isLoading()) {
// Reinitialise cave values
- free(_heroXY);
- free(_barriers);
-
+ freeCaveValues();
initCaveValues();
}