From 00971bf2092c5e9c33d5475bb91075d2bcc32557 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Mon, 24 Jun 2013 08:28:07 -0400 Subject: [PATCH] FULLPIPE: Shadows loading --- engines/fullpipe/gfx.cpp | 15 +++++++++++++++ engines/fullpipe/gfx.h | 20 +++++++++++--------- 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 0305a004b86..79a1e1da704 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 53c10ee8701..edf884dbca0 100644 --- a/engines/fullpipe/gfx.h +++ b/engines/fullpipe/gfx.h @@ -25,9 +25,8 @@ namespace Fullpipe { -class ShadowsItemArray : public Common::Array, 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 af031db735a..0a79ef5f0f3 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;