aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2014-03-02 21:02:23 +0200
committerEugene Sandulenko2014-03-02 21:04:09 +0200
commita1d9281fb4002b298a4c8f34186a71d1a98b83e5 (patch)
treeaffabd1c7a58322ba5d28d75de00040ba43f3c1d /engines
parentfffb3db0a6d105476b513c66dbabe049702a8522 (diff)
downloadscummvm-rg350-a1d9281fb4002b298a4c8f34186a71d1a98b83e5.tar.gz
scummvm-rg350-a1d9281fb4002b298a4c8f34186a71d1a98b83e5.tar.bz2
scummvm-rg350-a1d9281fb4002b298a4c8f34186a71d1a98b83e5.zip
FULLPIPE: Implement scene18_preload()
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/scenes/scene18and19.cpp13
-rw-r--r--engines/fullpipe/statics.cpp5
-rw-r--r--engines/fullpipe/statics.h1
3 files changed, 18 insertions, 1 deletions
diff --git a/engines/fullpipe/scenes/scene18and19.cpp b/engines/fullpipe/scenes/scene18and19.cpp
index 93bf00077c..0f03a68cad 100644
--- a/engines/fullpipe/scenes/scene18and19.cpp
+++ b/engines/fullpipe/scenes/scene18and19.cpp
@@ -49,7 +49,18 @@ struct Swinger {
};
void scene18_preload() {
- warning("WARNING: scene18_preload()");
+ g_fp->_scene3 = 0;
+
+ for (SceneTagList::iterator s = g_fp->_gameProject->_sceneTagList->begin(); s != g_fp->_gameProject->_sceneTagList->end(); ++s) {
+ if (s->_sceneId == SC_18) {
+ g_fp->_scene3 = s->_scene;
+ s->_scene = 0;
+
+ g_fp->_scene3->getStaticANIObject1ById(ANI_WHIRLIGIG_18, -1)->freeMovementsPixelData();
+
+ break;
+ }
+ }
}
void scene19_preload(Scene *sc, int key) {
diff --git a/engines/fullpipe/statics.cpp b/engines/fullpipe/statics.cpp
index bdb46b9b3a..86082c620d 100644
--- a/engines/fullpipe/statics.cpp
+++ b/engines/fullpipe/statics.cpp
@@ -509,6 +509,11 @@ void StaticANIObject::loadMovementsPixelData() {
((Movement *)_movements[i])->loadPixelData();
}
+void StaticANIObject::freeMovementsPixelData() {
+ for (uint i = 0; i < _movements.size(); i++)
+ ((Movement *)_movements[i])->freePixelData();
+}
+
Statics *StaticANIObject::addReverseStatics(Statics *st) {
Statics *res = getStaticsById(st->_staticsId ^ 0x4000);
diff --git a/engines/fullpipe/statics.h b/engines/fullpipe/statics.h
index b7eee2e60e..8328e7679b 100644
--- a/engines/fullpipe/statics.h
+++ b/engines/fullpipe/statics.h
@@ -224,6 +224,7 @@ public:
void initMovements();
void loadMovementsPixelData();
+ void freeMovementsPixelData();
void preloadMovements(MovTable *mt);
void setSomeDynamicPhaseIndex(int val) { _someDynamicPhaseIndex = val; }