From a1d9281fb4002b298a4c8f34186a71d1a98b83e5 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sun, 2 Mar 2014 21:02:23 +0200 Subject: FULLPIPE: Implement scene18_preload() --- engines/fullpipe/scenes/scene18and19.cpp | 13 ++++++++++++- engines/fullpipe/statics.cpp | 5 +++++ engines/fullpipe/statics.h | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) (limited to 'engines') 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; } -- cgit v1.2.3