diff options
author | Eugene Sandulenko | 2013-06-16 16:10:46 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:48:12 +0300 |
commit | 5ea45699a889cdc15f33f449a4d8c20dd231b8e9 (patch) | |
tree | 9e036de60800bbaf6dd03902f6d77e102d35f134 /engines/fullpipe/utils.cpp | |
parent | a8d733b2b2c8c110bada0c99ac801ecc1ca0b844 (diff) | |
download | scummvm-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.cpp | 27 |
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); } |