diff options
Diffstat (limited to 'engines/parallaction/disk_ns.cpp')
-rw-r--r-- | engines/parallaction/disk_ns.cpp | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/parallaction/disk_ns.cpp b/engines/parallaction/disk_ns.cpp index c24eaf7007..43f20be054 100644 --- a/engines/parallaction/disk_ns.cpp +++ b/engines/parallaction/disk_ns.cpp @@ -460,10 +460,13 @@ void DosDisk_ns::loadBackground(BackgroundInfo& info, const char *filename) { info._mask = new MaskBuffer; info._mask->create(info.width, info.height); info._mask->bigEndian = true; - info.path.create(info.width, info.height); + + info._path = new PathBuffer; + info._path->create(info.width, info.height); + info._path->bigEndian = true; 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; } @@ -479,8 +482,10 @@ void DosDisk_ns::loadMaskAndPath(BackgroundInfo& info, const char *name) { sprintf(path, "%s.msk", name); Common::SeekableReadStream *stream = openFile(path); parseDepths(info, *stream); - info.path.create(info.width, info.height); - stream->read(info.path.data, info.path.size); + info._path = new PathBuffer; + info._path->create(info.width, info.height); + info._path->bigEndian = true; + stream->read(info._path->data, info._path->size); info._mask = new MaskBuffer; info._mask->create(info.width, info.height); info._mask->bigEndian = true; @@ -1075,8 +1080,10 @@ void AmigaDisk_ns::loadPath(BackgroundInfo& info, const char *name) { Graphics::PackBitsReadStream stream(*s); - info.path.create(info.width, info.height); - stream.read(info.path.data, info.path.size); + info._path = new PathBuffer; + info._path->create(info.width, info.height); + info._path->bigEndian = false; + stream.read(info._path->data, info._path->size); delete s; |