diff options
author | Eugene Sandulenko | 2013-07-13 11:50:51 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:48:12 +0300 |
commit | a3de44d3b2ca9e30692d074fd538f89f20611c8c (patch) | |
tree | 6d40424c5d68387faf068baafb76628d6b816b10 | |
parent | 5eaa5696e7b80b3dcc4e26979b3ee1976cba4b49 (diff) | |
download | scummvm-rg350-a3de44d3b2ca9e30692d074fd538f89f20611c8c.tar.gz scummvm-rg350-a3de44d3b2ca9e30692d074fd538f89f20611c8c.tar.bz2 scummvm-rg350-a3de44d3b2ca9e30692d074fd538f89f20611c8c.zip |
FULLPIPE: Further work on sc2 loader
-rw-r--r-- | engines/fullpipe/objects.h | 114 | ||||
-rw-r--r-- | engines/fullpipe/stateloader.cpp | 6 |
2 files changed, 80 insertions, 40 deletions
diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h index e6ed98dc50..81b172c548 100644 --- a/engines/fullpipe/objects.h +++ b/engines/fullpipe/objects.h @@ -190,17 +190,89 @@ class CMctlCompoundArray : public Common::Array<CObject>, public CObject { virtual bool load(MfcArchive &file); }; +class CMctlConnectionPointsArray : public Common::Array<CObject>, public CObject { + public: + virtual bool load(MfcArchive &file); +}; + +class CMctlCompoundArrayItem : public CObject { + int _motionControllerObj; + int _movGraphReactObj; + CMctlConnectionPointsArray _connectionPoints; + int _field_20; + int _field_24; + int _field_28; + + public: + CMctlCompoundArrayItem() : _movGraphReactObj(0), _motionControllerObj(0) {} +}; + class CMctlCompound : public CMotionController { - CMctlCompoundArray motionControllers; + CMctlCompoundArray _motionControllers; + + public: + virtual bool load(MfcArchive &file); +}; + +class Unk2 { + //CObject CObject; + int items; + int count; +}; +class CMovGraph : public CMotionController { + CObList _nodes; + CObList _links; + int _field_44; + int _items; + int _itemsCount; + int (*_callback1)(int, int, int); + Unk2 _unk2; +}; + +class ShadowsItemArray : public Common::Array<CObject>, public CObject { public: virtual bool load(MfcArchive &file); }; +class Background { + CPtrList list; + int stringObj; + int x; + int y; + int16 messageQueueId; + int colorMemoryObj; + int bigPictureArray1Count; + int bigPictureArray2Count; + int bigPictureArray; +}; + +class Shadows { + //CObject obj; + int sceneId; + int staticAniObjectId; + int movementId; + ShadowsItemArray items; +}; + +class Scene { + Background bg; + CPtrList staticANIObjectList1; + CPtrList staticANIObjectList2; + CPtrList messageQueueList; + CPtrList faObjectList; + Shadows *shadows; + int soundList; + int16 sceneId; + int stringObj; + int field_BC; + int libHandle; +}; + class Sc2 : public CObject { int16 _sceneId; int16 _field_2; - //Scene *_scene; + Scene *_scene; CMotionController *_motionController; int _data1; int _count1; @@ -322,44 +394,6 @@ class InventoryIcon { typedef Common::Array<InventoryIcon> InventoryIcons; -class Background { - CPtrList list; - int stringObj; - int x; - int y; - int16 messageQueueId; - int colorMemoryObj; - int bigPictureArray1Count; - int bigPictureArray2Count; - int bigPictureArray; -}; - -class ShadowsItemArray { - CObArray objs; -}; - -class Shadows { - //CObject obj; - int sceneId; - int staticAniObjectId; - int movementId; - ShadowsItemArray items; -}; - -class Scene { - Background bg; - CPtrList staticANIObjectList1; - CPtrList staticANIObjectList2; - CPtrList messageQueueList; - CPtrList faObjectList; - Shadows *shadows; - int soundList; - int16 sceneId; - int stringObj; - int field_BC; - int libHandle; -}; - class Picture { MemoryObject obj; Common::Rect rect; diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp index 9698da87e8..f242969a09 100644 --- a/engines/fullpipe/stateloader.cpp +++ b/engines/fullpipe/stateloader.cpp @@ -517,6 +517,12 @@ bool CMctlCompound::load(MfcArchive &file) { debug(0, "CMctlCompund::count = %d", count); + for (int i = 0; i < count; i++) { + CMctlCompoundArrayItem *obj = (CMctlCompoundArrayItem *)file.readClass(); + + _motionControllers.push_back(*obj); + } + return true; } |