aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-06-15 01:19:45 +0300
committerEugene Sandulenko2013-09-06 14:48:11 +0300
commite24ce22ca7b62982c31a8a907f8423983be39bde (patch)
treeaeb56fb9b05f244b4c8fe586ddfc9f274a68c944 /engines
parent928c19eeb0b2164fc925e71eed8ed1f4e137ddd2 (diff)
downloadscummvm-rg350-e24ce22ca7b62982c31a8a907f8423983be39bde.tar.gz
scummvm-rg350-e24ce22ca7b62982c31a8a907f8423983be39bde.tar.bz2
scummvm-rg350-e24ce22ca7b62982c31a8a907f8423983be39bde.zip
FULLPIPE: Continued work on loading sc2 files
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/objects.h12
-rw-r--r--engines/fullpipe/stateloader.cpp22
-rw-r--r--engines/fullpipe/utils.cpp6
3 files changed, 36 insertions, 4 deletions
diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h
index 069d25d125..e6ed98dc50 100644
--- a/engines/fullpipe/objects.h
+++ b/engines/fullpipe/objects.h
@@ -185,6 +185,18 @@ class CMotionController : public CObject {
virtual bool load(MfcArchive &file);
};
+class CMctlCompoundArray : public Common::Array<CObject>, public CObject {
+ public:
+ virtual bool load(MfcArchive &file);
+};
+
+class CMctlCompound : public CMotionController {
+ CMctlCompoundArray motionControllers;
+
+ public:
+ virtual bool load(MfcArchive &file);
+};
+
class Sc2 : public CObject {
int16 _sceneId;
int16 _field_2;
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index ea8a3dbe2d..9698da87e8 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -499,15 +499,31 @@ Sc2::Sc2() {
bool Sc2::load(MfcArchive &file) {
_sceneId = file.readUint16LE();
- file.readClass();
- _motionController->load(file);
+ _motionController = (CMotionController *)file.readClass();
return true;
}
bool CMotionController::load(MfcArchive &file) {
- // Is originally empty
+ // Is originally empty file.readClass();
+
+
+ return true;
+}
+
+bool CMctlCompound::load(MfcArchive &file) {
+ int count = file.readUint32LE();
+
+ debug(0, "CMctlCompund::count = %d", count);
+
+ return true;
+}
+
+bool CMctlCompoundArray::load(MfcArchive &file) {
+ int count = file.readUint32LE();
+
+ debug(0, "CMctlCompundArray::count = %d", count);
return true;
}
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index 764da5abea..9c9246a5f2 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -61,7 +61,8 @@ enum {
kMessageQueue,
kExCommand,
kCObjstateCommand,
- kCGameVar
+ kCGameVar,
+ kCMctlCompound
};
const struct {
@@ -73,6 +74,7 @@ const struct {
{ "ExCommand", kExCommand },
{ "CObjstateCommand", kCObjstateCommand },
{ "CGameVar", kCGameVar },
+ { "CMctlCompound", kCMctlCompound },
{ 0, 0 }
};
@@ -99,6 +101,8 @@ static CObject *createObject(int objectId) {
return new CObjstateCommand();
case kCGameVar:
return new CGameVar();
+ case kCMctlCompound:
+ return new CMctlCompound();
default:
error("Unknown objectId: %d", objectId);
}