diff options
author | Eugene Sandulenko | 2013-06-15 01:19:45 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:48:11 +0300 |
commit | e24ce22ca7b62982c31a8a907f8423983be39bde (patch) | |
tree | aeb56fb9b05f244b4c8fe586ddfc9f274a68c944 /engines | |
parent | 928c19eeb0b2164fc925e71eed8ed1f4e137ddd2 (diff) | |
download | scummvm-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.h | 12 | ||||
-rw-r--r-- | engines/fullpipe/stateloader.cpp | 22 | ||||
-rw-r--r-- | engines/fullpipe/utils.cpp | 6 |
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); } |