aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2013-06-16 15:07:33 +0300
committerEugene Sandulenko2013-09-06 14:48:12 +0300
commit0f9c1281d4e4f0c4e2e942994f9162c88033c01f (patch)
treef4e2efb1e098269acd9db66ed0e277e4358cf77f /engines
parenta3de44d3b2ca9e30692d074fd538f89f20611c8c (diff)
downloadscummvm-rg350-0f9c1281d4e4f0c4e2e942994f9162c88033c01f.tar.gz
scummvm-rg350-0f9c1281d4e4f0c4e2e942994f9162c88033c01f.tar.bz2
scummvm-rg350-0f9c1281d4e4f0c4e2e942994f9162c88033c01f.zip
FULLPIPE: CMovGraph loader
Diffstat (limited to 'engines')
-rw-r--r--engines/fullpipe/objects.h14
-rw-r--r--engines/fullpipe/stateloader.cpp15
-rw-r--r--engines/fullpipe/utils.cpp6
3 files changed, 30 insertions, 5 deletions
diff --git a/engines/fullpipe/objects.h b/engines/fullpipe/objects.h
index 81b172c548..50f1bf0651 100644
--- a/engines/fullpipe/objects.h
+++ b/engines/fullpipe/objects.h
@@ -214,10 +214,12 @@ class CMctlCompound : public CMotionController {
virtual bool load(MfcArchive &file);
};
-class Unk2 {
- //CObject CObject;
- int items;
- int count;
+class Unk2 : public CObject {
+ int _items;
+ int _count;
+
+ public:
+ Unk2() : _items(0), _count(0) {}
};
class CMovGraph : public CMotionController {
@@ -228,6 +230,10 @@ class CMovGraph : public CMotionController {
int _itemsCount;
int (*_callback1)(int, int, int);
Unk2 _unk2;
+
+ public:
+ CMovGraph();
+ virtual bool load(MfcArchive &file);
};
class ShadowsItemArray : public Common::Array<CObject>, public CObject {
diff --git a/engines/fullpipe/stateloader.cpp b/engines/fullpipe/stateloader.cpp
index f242969a09..5c68742cc8 100644
--- a/engines/fullpipe/stateloader.cpp
+++ b/engines/fullpipe/stateloader.cpp
@@ -534,4 +534,19 @@ bool CMctlCompoundArray::load(MfcArchive &file) {
return true;
}
+CMovGraph::CMovGraph() {
+ _itemsCount = 0;
+ _items = 0;
+ //_callback1 = CMovGraphCallback1; // TODO
+ _field_44 = 0;
+ // insertMessageHandler(CMovGraph_messageHandler, getMessageHandlersCount() - 1, 129);
+}
+
+bool CMovGraph::load(MfcArchive &file) {
+ _links.load(file);
+ _nodes.load(file);
+
+ return true;
+}
+
} // End of namespace Fullpipe
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index 9c9246a5f2..34cf3c57a4 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -62,7 +62,8 @@ enum {
kExCommand,
kCObjstateCommand,
kCGameVar,
- kCMctlCompound
+ kCMctlCompound,
+ kCMovGraph
};
const struct {
@@ -75,6 +76,7 @@ const struct {
{ "CObjstateCommand", kCObjstateCommand },
{ "CGameVar", kCGameVar },
{ "CMctlCompound", kCMctlCompound },
+ { "CMovGraph", kCMovGraph },
{ 0, 0 }
};
@@ -103,6 +105,8 @@ static CObject *createObject(int objectId) {
return new CGameVar();
case kCMctlCompound:
return new CMctlCompound();
+ case kCMovGraph:
+ return new CMovGraph();
default:
error("Unknown objectId: %d", objectId);
}