aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBertrand Augereau2011-11-16 13:26:15 +0100
committerBertrand Augereau2011-11-16 13:26:15 +0100
commit82cc00923bb302cfe334c05646c07f385bce66fc (patch)
treecfd09b1f973386d9060037b52efad33e8772d8cb
parent2eceab1fded6ed744836ba7d9429d9fdb2976a69 (diff)
downloadscummvm-rg350-82cc00923bb302cfe334c05646c07f385bce66fc.tar.gz
scummvm-rg350-82cc00923bb302cfe334c05646c07f385bce66fc.tar.bz2
scummvm-rg350-82cc00923bb302cfe334c05646c07f385bce66fc.zip
DREAMWEB: Misc palette copies ported
-rwxr-xr-xdevtools/tasmrecover/tasm-recover4
-rw-r--r--engines/dreamweb/dreamgen.cpp44
-rw-r--r--engines/dreamweb/dreamgen.h12
-rw-r--r--engines/dreamweb/stubs.h7
-rw-r--r--engines/dreamweb/vgafades.cpp31
5 files changed, 44 insertions, 54 deletions
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 2696bcbfb1..a2e40554ec 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -213,6 +213,10 @@ generator = cpp(context, "DreamGen", blacklist = [
'initrain',
'checkbasemem',
'clearstartpal',
+ 'paltostartpal',
+ 'endpaltostart',
+ 'startpaltoend',
+ 'paltoendpal',
], skip_output = [
# These functions are processed but not output
'dreamweb',
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index 599ef90d6d..4560c15055 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -2940,46 +2940,6 @@ noaddb:
goto greysumloop1;
}
-void DreamGenContext::paltostartpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::endpaltostart() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::startpaltoend() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3));
- cx = 768/2;
- _movsw(cx, true);
-}
-
-void DreamGenContext::paltoendpal() {
- STACK_CHECK;
- es = data.word(kBuffers);
- ds = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- cx = 768/2;
- _movsw(cx, true);
-}
-
void DreamGenContext::allpalette() {
STACK_CHECK;
es = data.word(kBuffers);
@@ -16232,10 +16192,6 @@ void DreamGenContext::__dispatch_call(uint16 addr) {
case addr_fadecalculation: fadecalculation(); break;
case addr_greyscalesum: greyscalesum(); break;
case addr_showgroup: showgroup(); break;
- case addr_paltostartpal: paltostartpal(); break;
- case addr_endpaltostart: endpaltostart(); break;
- case addr_startpaltoend: startpaltoend(); break;
- case addr_paltoendpal: paltoendpal(); break;
case addr_allpalette: allpalette(); break;
case addr_dumpcurrent: dumpcurrent(); break;
case addr_fadedownmon: fadedownmon(); break;
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index f9e45b7394..e6c105f466 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -500,10 +500,6 @@ public:
static const uint16 addr_fadedownmon = 0xc2ac;
static const uint16 addr_dumpcurrent = 0xc2a8;
static const uint16 addr_allpalette = 0xc2a4;
- static const uint16 addr_paltoendpal = 0xc2a0;
- static const uint16 addr_startpaltoend = 0xc29c;
- static const uint16 addr_endpaltostart = 0xc298;
- static const uint16 addr_paltostartpal = 0xc294;
static const uint16 addr_showgroup = 0xc290;
static const uint16 addr_greyscalesum = 0xc28c;
static const uint16 addr_fadecalculation = 0xc288;
@@ -1459,7 +1455,7 @@ public:
void fadescreenuphalf();
void getridoftempcharset();
void heavy();
- void endpaltostart();
+ //void endpaltostart();
void showkeys();
void usekey();
void locklighton();
@@ -1551,7 +1547,7 @@ public:
void openfilenocheck();
//void readoneblock();
void fadeupmon();
- void paltoendpal();
+ //void paltoendpal();
void fadetowhite();
void loadsavebox();
void soundend();
@@ -1611,7 +1607,7 @@ public:
void constant();
void loadroomssample();
void sparkydrip();
- void paltostartpal();
+ //void paltostartpal();
void bossman();
void getridofpit();
void convnum();
@@ -1640,7 +1636,7 @@ public:
void hangonpq();
void startup();
void savegame();
- void startpaltoend();
+ //void startpaltoend();
//void showicon();
void findopenpos();
void describeob();
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
index 9d548f5926..4cdd11da8a 100644
--- a/engines/dreamweb/stubs.h
+++ b/engines/dreamweb/stubs.h
@@ -255,6 +255,13 @@
void transfertext();
void initrain();
Rain *splitintolines(uint8 x, uint8 y, Rain *rain);
+ uint8 *mainPalette();
+ uint8 *startPalette();
+ uint8 *endPalette();
void clearstartpal();
+ void paltostartpal();
+ void endpaltostart();
+ void startpaltoend();
+ void paltoendpal();
diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp
index 5fffd9c333..79a7cce389 100644
--- a/engines/dreamweb/vgafades.cpp
+++ b/engines/dreamweb/vgafades.cpp
@@ -24,9 +24,36 @@
namespace DreamGen {
+uint8 *DreamGenContext::mainPalette() {
+ return segRef(data.word(kBuffers)).ptr(kMaingamepal, 256*3);
+}
+
+uint8 *DreamGenContext::startPalette() {
+ return segRef(data.word(kBuffers)).ptr(kStartpal, 256*3);
+}
+
+uint8 *DreamGenContext::endPalette() {
+ return segRef(data.word(kBuffers)).ptr(kEndpal, 256*3);
+}
+
void DreamGenContext::clearstartpal() {
- uint8 *startPalette = segRef(data.word(kBuffers)).ptr(kStartpal, 256*3);
- memset(startPalette, 0, 256*3);
+ memset(startPalette(), 0, 256*3);
+}
+
+void DreamGenContext::paltostartpal() {
+ memcpy(startPalette(), mainPalette(), 256*3);
+}
+
+void DreamGenContext::endpaltostart() {
+ memcpy(startPalette(), endPalette(), 256*3);
+}
+
+void DreamGenContext::startpaltoend() {
+ memcpy(endPalette(), startPalette(), 256*3);
+}
+
+void DreamGenContext::paltoendpal() {
+ memcpy(endPalette(), mainPalette(), 256*3);
}
} /*namespace dreamgen */