aboutsummaryrefslogtreecommitdiff
path: root/engines/parallaction/disk_ns.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/parallaction/disk_ns.cpp')
-rw-r--r--engines/parallaction/disk_ns.cpp21
1 files changed, 12 insertions, 9 deletions
diff --git a/engines/parallaction/disk_ns.cpp b/engines/parallaction/disk_ns.cpp
index eedfaf92b7..c24eaf7007 100644
--- a/engines/parallaction/disk_ns.cpp
+++ b/engines/parallaction/disk_ns.cpp
@@ -457,12 +457,13 @@ void DosDisk_ns::loadBackground(BackgroundInfo& info, const char *filename) {
parseBackground(info, *stream);
info.bg.create(info.width, info.height, 1);
- info.mask.create(info.width, info.height);
- info.mask.bigEndian = true;
+ info._mask = new MaskBuffer;
+ info._mask->create(info.width, info.height);
+ info._mask->bigEndian = true;
info.path.create(info.width, info.height);
Graphics::PackBitsReadStream pbstream(*stream);
- unpackBackground(&pbstream, (byte*)info.bg.pixels, info.mask.data, info.path.data);
+ unpackBackground(&pbstream, (byte*)info.bg.pixels, info._mask->data, info.path.data);
delete stream;
}
@@ -480,9 +481,10 @@ void DosDisk_ns::loadMaskAndPath(BackgroundInfo& info, const char *name) {
parseDepths(info, *stream);
info.path.create(info.width, info.height);
stream->read(info.path.data, info.path.size);
- info.mask.create(info.width, info.height);
- info.mask.bigEndian = true;
- stream->read(info.mask.data, info.mask.size);
+ info._mask = new MaskBuffer;
+ info._mask->create(info.width, info.height);
+ info._mask->bigEndian = true;
+ stream->read(info._mask->data, info._mask->size);
delete stream;
}
@@ -1049,9 +1051,10 @@ void AmigaDisk_ns::loadMask(BackgroundInfo& info, const char *name) {
s->seek(0x126, SEEK_SET); // HACK: skipping IFF/ILBM header should be done by analysis, not magic
Graphics::PackBitsReadStream stream(*s);
- info.mask.create(info.width, info.height);
- stream.read(info.mask.data, info.mask.size);
- buildMask(info.mask.data);
+ info._mask = new MaskBuffer;
+ info._mask->create(info.width, info.height);
+ stream.read(info._mask->data, info._mask->size);
+ buildMask(info._mask->data);
delete s;