diff options
-rw-r--r-- | engines/fullpipe/fullpipe.cpp | 8 | ||||
-rw-r--r-- | engines/fullpipe/fullpipe.h | 2 | ||||
-rw-r--r-- | engines/fullpipe/module.mk | 1 | ||||
-rw-r--r-- | engines/fullpipe/objects.h | 1 | ||||
-rw-r--r-- | engines/fullpipe/scene.cpp | 26 | ||||
-rw-r--r-- | engines/fullpipe/scene.h | 3 |
6 files changed, 40 insertions, 1 deletions
diff --git a/engines/fullpipe/fullpipe.cpp b/engines/fullpipe/fullpipe.cpp index c43e14beb6..a6a52bbccb 100644 --- a/engines/fullpipe/fullpipe.cpp +++ b/engines/fullpipe/fullpipe.cpp @@ -46,6 +46,14 @@ FullpipeEngine::FullpipeEngine(OSystem *syst, const ADGameDescription *gameDesc) _rnd = new Common::RandomSource("fullpipe"); + _gameProjectVersion = 0; + _gameProjectValue = 0; + _scrollSpeed = 0; + _currSoundListCount = 0; + + _soundEnabled = true; + _flgSoundList = true; + g_fullpipe = this; } diff --git a/engines/fullpipe/fullpipe.h b/engines/fullpipe/fullpipe.h index 013303d71e..d6b38f2d7e 100644 --- a/engines/fullpipe/fullpipe.h +++ b/engines/fullpipe/fullpipe.h @@ -81,6 +81,8 @@ public: int _gameProjectValue; int _scrollSpeed; int _currSoundListCount; + bool _soundEnabled; + bool _flgSoundList; void initObjectStates(); void setLevelStates(); diff --git a/engines/fullpipe/module.mk b/engines/fullpipe/module.mk index 77dcfaa2c3..1b115a3463 100644 --- a/engines/fullpipe/module.mk +++ b/engines/fullpipe/module.mk @@ -8,6 +8,7 @@ MODULE_OBJS = \ motion.o \ ngiarchive.o \ scene.o \ + sound.o \ stateloader.o \ statics.o \ utils.o diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h index c12905ec58..52383cc24c 100644 --- a/engines/fullpipe/objects.h +++ b/engines/fullpipe/objects.h @@ -26,6 +26,7 @@ #include "fullpipe/utils.h" #include "fullpipe/inventory.h" #include "fullpipe/gfx.h" +#include "fullpipe/sound.h" #include "fullpipe/scene.h" namespace Fullpipe { diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index 0a79ef5f0f..3dc98bf7c9 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -192,9 +192,35 @@ bool Scene::load(MfcArchive &file) { if (shd->loadFile(shdname)) _shadows = shd; + free(shdname); + + char *slsname = genFileName(0, _sceneId, "sls"); + + if (g_fullpipe->_soundEnabled) { + _soundList = new SoundList(); + + if (g_fullpipe->_flgSoundList) { + char *nlname = genFileName(17, _sceneId, "nl"); + + _soundList->loadFile(slsname, nlname); + + free(nlname); + } else { + _soundList->loadFile(slsname, 0); + } + } + + free(slsname); + + initStaticANIObjects(); + warning("STUB: Scene::load (%d bytes left)", file.size() - file.pos()); return true; } +void Scene::initStaticANIObjects() { + warning("STUB: Scene::initStaticANIObjects"); +} + } // End of namespace Fullpipe diff --git a/engines/fullpipe/scene.h b/engines/fullpipe/scene.h index 31af782a44..a797c69e02 100644 --- a/engines/fullpipe/scene.h +++ b/engines/fullpipe/scene.h @@ -32,7 +32,7 @@ class Scene : public Background { CPtrList _messageQueueList; CPtrList _faObjectList; Shadows *_shadows; - int _soundList; + SoundList *_soundList; int16 _sceneId; char *_scstringObj; int _field_BC; @@ -41,6 +41,7 @@ class Scene : public Background { public: Scene(); virtual bool load(MfcArchive &file); + void initStaticANIObjects(); }; class SceneTag : public CObject { |