aboutsummaryrefslogtreecommitdiff
path: root/engines/dreamweb/vgagrafx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/dreamweb/vgagrafx.cpp')
-rw-r--r--engines/dreamweb/vgagrafx.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp
index 1088058fe5..4ad52378ee 100644
--- a/engines/dreamweb/vgagrafx.cpp
+++ b/engines/dreamweb/vgagrafx.cpp
@@ -431,11 +431,13 @@ void DreamGenContext::zoom() {
}
void DreamGenContext::panelToMap() {
- multiGet(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
+ SegmentRef mapstore = getSegment(data.word(kMapstore));
+ multiGet(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
}
void DreamGenContext::mapToPanel() {
- multiPut(getSegment(data.word(kMapstore)).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
+ SegmentRef mapstore = getSegment(data.word(kMapstore));
+ multiPut(getSegment(mapstore).ptr(0, 0), data.word(kMapxstart) + data.word(kMapadx), data.word(kMapystart) + data.word(kMapady), data.byte(kMapxsize), data.byte(kMapysize));
}
void DreamGenContext::dumpMap() {
@@ -469,15 +471,14 @@ bool DreamGenContext::pixelCheckSet(const ObjPos *pos, uint8 x, uint8 y) {
}
void DreamGenContext::loadPalFromIFF() {
- dx = kPalettescreen;
- openFile();
- cx = 2000;
- ds = data.word(kMapstore);
- dx = 0;
- readFromFile();
- closeFile();
-
- const uint8 *src = getSegment(data.word(kMapstore)).ptr(0x30, 0);
+ SegmentRef mapstore = getSegment(data.word(kMapstore));
+
+ // TODO: Get rid of data blob position kPalettescreen;
+ engine->openFile("DREAMWEB.PAL");
+ engine->readFromFile(mapstore.ptr(0, 2000), 2000);
+ engine->closeFile();
+
+ const uint8 *src = mapstore.ptr(0x30, 0);
uint8 *dst = mainPalette();
for (size_t i = 0; i < 256*3; ++i) {
uint8 c = src[i] / 4;