aboutsummaryrefslogtreecommitdiff
path: root/engines/fullpipe/utils.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2013-07-26 15:39:17 +0300
committerEugene Sandulenko2013-09-06 14:51:06 +0300
commit5a182df0994081512fae724689507b9acc141d3a (patch)
tree78b0cd2f7618d2b73750db056ac5a8eaa0672952 /engines/fullpipe/utils.cpp
parentb18f08d93bc1e7f681a830413b0e57fad61faff3 (diff)
downloadscummvm-rg350-5a182df0994081512fae724689507b9acc141d3a.tar.gz
scummvm-rg350-5a182df0994081512fae724689507b9acc141d3a.tar.bz2
scummvm-rg350-5a182df0994081512fae724689507b9acc141d3a.zip
FULLPIPE: Unstubbed StaticANIObject::addReverseStatics()
Diffstat (limited to 'engines/fullpipe/utils.cpp')
-rw-r--r--engines/fullpipe/utils.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/engines/fullpipe/utils.cpp b/engines/fullpipe/utils.cpp
index 3e153c1801..ec6b59029b 100644
--- a/engines/fullpipe/utils.cpp
+++ b/engines/fullpipe/utils.cpp
@@ -120,6 +120,12 @@ MemoryObject::MemoryObject() {
_data = 0;
}
+MemoryObject::~MemoryObject() {
+ freeData();
+ if (_memfilename)
+ free(_memfilename);
+}
+
bool MemoryObject::load(MfcArchive &file) {
debug(5, "MemoryObject::load()");
_memfilename = file.readPascalString();
@@ -168,10 +174,37 @@ byte *MemoryObject::getData() {
}
}
+byte *MemoryObject::loadData() {
+ load();
+ return _data;
+}
+
+void MemoryObject::freeData() {
+ if (_data)
+ free(_data);
+
+ _data = 0;
+}
+
+bool MemoryObject::testFlags() {
+ if (_field_8)
+ return false;
+
+ if (_flags & 1)
+ return true;
+
+ return false;
+}
+
MemoryObject2::MemoryObject2() {
_rows = 0;
}
+MemoryObject2::~MemoryObject2() {
+ if (_rows)
+ free(_rows);
+}
+
bool MemoryObject2::load(MfcArchive &file) {
debug(5, "MemoryObject2::load()");
MemoryObject::load(file);
@@ -187,6 +220,16 @@ bool MemoryObject2::load(MfcArchive &file) {
return true;
}
+void MemoryObject2::copyData(byte *src, int dataSize) {
+ if (_data)
+ freeData();
+
+ _dataSize = dataSize;
+ _data = (byte *)malloc(dataSize);
+
+ memcpy(_data, src, _dataSize);
+}
+
int MfcArchive::readCount() {
int count = readUint16LE();