diff options
author | Eugene Sandulenko | 2013-07-26 15:39:17 +0300 |
---|---|---|
committer | Eugene Sandulenko | 2013-09-06 14:51:06 +0300 |
commit | 5a182df0994081512fae724689507b9acc141d3a (patch) | |
tree | 78b0cd2f7618d2b73750db056ac5a8eaa0672952 /engines/fullpipe/utils.cpp | |
parent | b18f08d93bc1e7f681a830413b0e57fad61faff3 (diff) | |
download | scummvm-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.cpp | 43 |
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(); |