FULLPIPE: Further work on sc2 loader

This commit is contained in:
Eugene Sandulenko 2013-07-13 11:50:51 +03:00
parent 5eaa5696e7
commit a3de44d3b2
2 changed files with 80 additions and 40 deletions

View file

@ -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;

View file

@ -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;
}