aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/utils.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2013-06-16 16:10:46 +0300
committerEugene Sandulenko2013-09-06 14:48:12 +0300
commit5ea45699a889cdc15f33f449a4d8c20dd231b8e9 (patch)
tree9e036de60800bbaf6dd03902f6d77e102d35f134 /engines/fullpipe/utils.cpp
parenta8d733b2b2c8c110bada0c99ac801ecc1ca0b844 (diff)
downloadscummvm-rg350-5ea45699a889cdc15f33f449a4d8c20dd231b8e9.tar.gz
scummvm-rg350-5ea45699a889cdc15f33f449a4d8c20dd231b8e9.tar.bz2
scummvm-rg350-5ea45699a889cdc15f33f449a4d8c20dd231b8e9.zip
FULLPIPE: Reading CMovGraphNode
Diffstat (limited to 'engines/fullpipe/utils.cpp')
-rw-r--r--engines/fullpipe/utils.cpp27
1 files changed, 26 insertions, 1 deletions
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index ba014a54cc..4add1bae22 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -56,6 +56,23 @@ int MfcArchive::readCount() {
return count;
}
+double MfcArchive::readDouble() {
+ // FIXME: This is utterly cruel and unportable
+
+ union {
+ struct {
+ int32 a;
+ int32 b;
+ } i;
+ double d;
+ } tmp;
+
+ tmp.i.a = readUint32LE();
+ tmp.i.b = readUint32LE();
+
+ return tmp.d;
+}
+
enum {
kNullObject,
kCInteraction,
@@ -64,7 +81,9 @@ enum {
kCObjstateCommand,
kCGameVar,
kCMctlCompound,
- kCMovGraph
+ kCMovGraph,
+ kCMovGraphLink,
+ kCMovGraphNode
};
const struct {
@@ -78,6 +97,8 @@ const struct {
{ "CGameVar", kCGameVar },
{ "CMctlCompound", kCMctlCompound },
{ "CMovGraph", kCMovGraph },
+ { "CMovGraphLink", kCMovGraphLink },
+ { "CMovGraphNode", kCMovGraphNode },
{ 0, 0 }
};
@@ -108,6 +129,10 @@ static CObject *createObject(int objectId) {
return new CMctlCompound();
case kCMovGraph:
return new CMovGraph();
+ case kCMovGraphLink:
+ return new CMovGraphLink();
+ case kCMovGraphNode:
+ return new CMovGraphNode();
default:
error("Unknown objectId: %d", objectId);
}