diff options
-rw-r--r-- | engines/fullpipe/gfx.cpp | 15 | ||||
-rw-r--r-- | engines/fullpipe/gfx.h | 20 | ||||
-rw-r--r-- | engines/fullpipe/scene.cpp | 5 |
3 files changed, 31 insertions, 9 deletions
diff --git a/engines/fullpipe/gfx.cpp b/engines/fullpipe/gfx.cpp index 0305a004b8..79a1e1da70 100644 --- a/engines/fullpipe/gfx.cpp +++ b/engines/fullpipe/gfx.cpp @@ -204,4 +204,19 @@ bool BigPicture::load(MfcArchive &file) { return true; } +Shadows::Shadows() { + _staticAniObjectId = 0; + _movementId = 0; + _sceneId = 0; +} + +bool Shadows::load(MfcArchive &file) { + _sceneId = file.readUint32LE(); + _staticAniObjectId = file.readUint32LE(); + _movementId = file.readUint32LE(); + + return true; +} + + } // End of namespace Fullpipe diff --git a/engines/fullpipe/gfx.h b/engines/fullpipe/gfx.h index 53c10ee870..edf884dbca 100644 --- a/engines/fullpipe/gfx.h +++ b/engines/fullpipe/gfx.h @@ -25,9 +25,8 @@ namespace Fullpipe { -class ShadowsItemArray : public Common::Array<CObject>, public CObject { - public: - virtual bool load(MfcArchive &file); +class ShadowsItemArray : public CObArray { + // empty }; class Picture : public MemoryObject { @@ -106,12 +105,15 @@ class Background : public CObject { void addPictureObject(PictureObject *pct); }; -class Shadows { - //CObject obj; - int sceneId; - int staticAniObjectId; - int movementId; - ShadowsItemArray items; +class Shadows : public CObject { + int _sceneId; + int _staticAniObjectId; + int _movementId; + ShadowsItemArray _items; + + public: + Shadows(); + virtual bool load(MfcArchive &file); }; } // End of namespace Fullpipe diff --git a/engines/fullpipe/scene.cpp b/engines/fullpipe/scene.cpp index af031db735..0a79ef5f0f 100644 --- a/engines/fullpipe/scene.cpp +++ b/engines/fullpipe/scene.cpp @@ -187,6 +187,11 @@ bool Scene::load(MfcArchive &file) { char *shdname = genFileName(0, _sceneId, "shd"); + Shadows *shd = new Shadows(); + + if (shd->loadFile(shdname)) + _shadows = shd; + warning("STUB: Scene::load (%d bytes left)", file.size() - file.pos()); return true; |