aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/stubs.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/stubs.cpp')
-rw-r--r--engines/dreamweb/stubs.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index e47e79250f..13f27406d8 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -2148,7 +2148,7 @@ void DreamBase::getRidOfTempsP() {
}
void DreamBase::getRidOfAll() {
- deallocateMem(data.word(kBackdrop));
+ delete[] _backdropBlocks;
deallocateMem(data.word(kSetframes));
deallocateMem(data.word(kReel1));
deallocateMem(data.word(kReel2));
@@ -2174,7 +2174,11 @@ void DreamBase::loadRoomData(const Room &room, bool skipDat) {
for (int i = 0; i < 15; ++i)
len[i] = header.len(i);
- data.word(kBackdrop) = allocateAndLoad(len[0]);
+ assert(len[0] >= 192);
+ _backdropBlocks = new uint8[len[0] - 192];
+ engine->readFromFile((uint8 *)_backdropFlags, 192);
+ engine->readFromFile(_backdropBlocks, len[0] - 192);
+
clearAndLoad(workspace(), 0, len[1], 132*66); // 132*66 = maplen
sortOutMap();
data.word(kSetframes) = allocateAndLoad(len[2]);