aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorWillem Jan Palenstijn2011-12-23 22:47:20 +0100
committerWillem Jan Palenstijn2011-12-23 23:46:38 +0100
commit061d24bb829a9b4ee08016fb25781802799fae14 (patch)
treefba53402b8e0a4db199bc22342a820ed39719500 /engines
parent00b0aafd4ca9fa79686340a66f9dba9b383993e2 (diff)
downloadscummvm-rg350-061d24bb829a9b4ee08016fb25781802799fae14.tar.gz
scummvm-rg350-061d24bb829a9b4ee08016fb25781802799fae14.tar.bz2
scummvm-rg350-061d24bb829a9b4ee08016fb25781802799fae14.zip
DREAMWEB: Move palettes out of buffers
Diffstat (limited to 'engines')
-rw-r--r--engines/dreamweb/dreambase.h10
-rw-r--r--engines/dreamweb/vgafades.cpp67
-rw-r--r--engines/dreamweb/vgagrafx.cpp4
3 files changed, 35 insertions, 46 deletions
diff --git a/engines/dreamweb/dreambase.h b/engines/dreamweb/dreambase.h
index e20ee83bac..b4265e904a 100644
--- a/engines/dreamweb/dreambase.h
+++ b/engines/dreamweb/dreambase.h
@@ -66,9 +66,14 @@ protected:
// from people.cpp
ReelRoutine _reelRoutines[kNumReelRoutines+1];
- Common::List<People> _peopleList;
ReelRoutine *_personData;
+ // from Buffers
+ uint8 _startPal[3*256];
+ uint8 _endPal[3*256];
+ uint8 _mainPal[3*256];
+ Common::List<People> _peopleList;
+
public:
DreamBase(DreamWeb::DreamWebEngine *en);
@@ -494,9 +499,6 @@ public:
void showPuzText(uint16 command, uint16 count);
// from vgafades.cpp
- uint8 *mainPalette();
- uint8 *startPalette();
- uint8 *endPalette();
void clearStartPal();
void clearEndPal();
void palToStartPal();
diff --git a/engines/dreamweb/vgafades.cpp b/engines/dreamweb/vgafades.cpp
index adbc158c84..80f5ce608a 100644
--- a/engines/dreamweb/vgafades.cpp
+++ b/engines/dreamweb/vgafades.cpp
@@ -24,41 +24,28 @@
namespace DreamGen {
-uint8 *DreamBase::mainPalette() {
-// TODO: Turn these into plain C arrays
- return getSegment(data.word(kBuffers)).ptr(kMaingamepal, 256 * 3);
-}
-
-uint8 *DreamBase::startPalette() {
- return getSegment(data.word(kBuffers)).ptr(kStartpal, 256 * 3);
-}
-
-uint8 *DreamBase::endPalette() {
- return getSegment(data.word(kBuffers)).ptr(kEndpal, 256 * 3);
-}
-
void DreamBase::clearStartPal() {
- memset(startPalette(), 0, 256 * 3);
+ memset(_startPal, 0, 256 * 3);
}
void DreamBase::clearEndPal() {
- memset(endPalette(), 0, 256 * 3);
+ memset(_endPal, 0, 256 * 3);
}
void DreamBase::palToStartPal() {
- memcpy(startPalette(), mainPalette(), 256 * 3);
+ memcpy(_startPal, _mainPal, 256 * 3);
}
void DreamBase::endPalToStart() {
- memcpy(startPalette(), endPalette(), 256 * 3);
+ memcpy(_startPal, _endPal, 256 * 3);
}
void DreamBase::startPalToEnd() {
- memcpy(endPalette(), startPalette(), 256 * 3);
+ memcpy(_endPal, _startPal, 256 * 3);
}
void DreamBase::palToEndPal() {
- memcpy(endPalette(), mainPalette(), 256 * 3);
+ memcpy(_endPal, _mainPal, 256 * 3);
}
void DreamBase::fadeDOS() {
@@ -66,7 +53,7 @@ void DreamBase::fadeDOS() {
engine->waitForVSync();
//processEvents will be called from vsync
- uint8 *dst = startPalette();
+ uint8 *dst = _startPal;
engine->getPalette(dst, 0, 64);
for (int fade = 0; fade < 64; ++fade) {
for (int c = 0; c < 768; ++c) { //original sources decrement 768 values -> 256 colors
@@ -84,7 +71,7 @@ void DreamBase::doFade() {
return;
engine->processEvents();
- uint8 *src = startPalette() + 3 * data.byte(kColourpos);
+ uint8 *src = _startPal + 3 * data.byte(kColourpos);
engine->setPalette(src, data.byte(kColourpos), data.byte(kNumtofade));
data.byte(kColourpos) += data.byte(kNumtofade);
@@ -98,8 +85,8 @@ void DreamBase::fadeCalculation() {
return;
}
- uint8 *startPal = startPalette();
- const uint8 *endPal = endPalette();
+ uint8 *startPal = _startPal;
+ const uint8 *endPal = _endPal;
for (size_t i = 0; i < 256 * 3; ++i) {
uint8 s = startPal[i];
uint8 e = endPal[i];
@@ -117,8 +104,8 @@ void DreamBase::fadeCalculation() {
void DreamBase::fadeUpYellows() {
palToEndPal();
- memset(endPalette() + 231 * 3, 0, 8 * 3);
- memset(endPalette() + 246 * 3, 0, 1 * 3);
+ memset(_endPal + 231 * 3, 0, 8 * 3);
+ memset(_endPal + 246 * 3, 0, 1 * 3);
data.byte(kFadedirection) = 1;
data.byte(kFadecount) = 63;
data.byte(kColourpos) = 0;
@@ -129,8 +116,8 @@ void DreamBase::fadeUpYellows() {
void DreamBase::fadeUpMonFirst() {
palToStartPal();
palToEndPal();
- memset(startPalette() + 231 * 3, 0, 8 * 3);
- memset(startPalette() + 246 * 3, 0, 1 * 3);
+ memset(_startPal + 231 * 3, 0, 8 * 3);
+ memset(_startPal + 246 * 3, 0, 1 * 3);
data.byte(kFadedirection) = 1;
data.byte(kFadecount) = 63;
data.byte(kColourpos) = 0;
@@ -144,8 +131,8 @@ void DreamBase::fadeUpMonFirst() {
void DreamBase::fadeDownMon() {
palToStartPal();
palToEndPal();
- memset(endPalette() + 231 * 3, 0, 8 * 3);
- memset(endPalette() + 246 * 3, 0, 1 * 3);
+ memset(_endPal + 231 * 3, 0, 8 * 3);
+ memset(_endPal + 246 * 3, 0, 1 * 3);
data.byte(kFadedirection) = 1;
data.byte(kFadecount) = 63;
data.byte(kColourpos) = 0;
@@ -156,8 +143,8 @@ void DreamBase::fadeDownMon() {
void DreamBase::fadeUpMon() {
palToStartPal();
palToEndPal();
- memset(startPalette() + 231 * 3, 0, 8 * 3);
- memset(startPalette() + 246 * 3, 0, 1 * 3);
+ memset(_startPal + 231 * 3, 0, 8 * 3);
+ memset(_startPal + 246 * 3, 0, 1 * 3);
data.byte(kFadedirection) = 1;
data.byte(kFadecount) = 63;
data.byte(kColourpos) = 0;
@@ -167,10 +154,10 @@ void DreamBase::fadeUpMon() {
void DreamBase::initialMonCols() {
palToStartPal();
- memset(startPalette() + 230 * 3, 0, 9 * 3);
- memset(startPalette() + 246 * 3, 0, 1 * 3);
+ memset(_startPal + 230 * 3, 0, 9 * 3);
+ memset(_startPal + 246 * 3, 0, 1 * 3);
engine->processEvents();
- engine->setPalette(startPalette() + 230 * 3, 230, 18);
+ engine->setPalette(_startPal + 230 * 3, 230, 18);
}
void DreamBase::fadeScreenUp() {
@@ -222,8 +209,8 @@ void DreamBase::fadeScreenDownHalf() {
palToStartPal();
palToEndPal();
- const uint8 *startPal = startPalette();
- uint8 *endPal = endPalette();
+ const uint8 *startPal = _startPal;
+ uint8 *endPal = _endPal;
for (int i = 0; i < 256 * 3; ++i) {
*endPal >>= 1;
endPal++;
@@ -248,8 +235,8 @@ void DreamBase::clearPalette() {
// Converts palette to grey scale, summed using formula
// .20xred + .59xGreen + .11xBlue
void DreamBase::greyscaleSum() {
- byte *src = mainPalette();
- byte *dst = endPalette();
+ byte *src = _mainPal;
+ byte *dst = _endPal;
for (int i = 0; i < 256; ++i) {
const unsigned int r = 20 * *src++;
@@ -276,12 +263,12 @@ void DreamBase::greyscaleSum() {
}
void DreamBase::allPalette() {
- memcpy(startPalette(), mainPalette(), 3 * 256);
+ memcpy(_startPal, _mainPal, 3 * 256);
dumpCurrent();
}
void DreamBase::dumpCurrent() {
- uint8 *pal = startPalette();
+ uint8 *pal = _startPal;
engine->waitForVSync();
engine->processEvents();
diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp
index b1a23a6c96..87ab998553 100644
--- a/engines/dreamweb/vgagrafx.cpp
+++ b/engines/dreamweb/vgagrafx.cpp
@@ -202,7 +202,7 @@ void DreamBase::showPCX(const Common::String &name) {
// the color components have to be adjusted from 8 to 6 bits.
pcxFile.seek(16, SEEK_SET);
- mainGamePal = mainPalette();
+ mainGamePal = _mainPal;
pcxFile.read(mainGamePal, 48);
memset(mainGamePal + 48, 0xff, 720);
@@ -448,7 +448,7 @@ void DreamBase::loadPalFromIFF() {
palFile.close();
const uint8 *src = mapStore() + 0x30;
- uint8 *dst = mainPalette();
+ uint8 *dst = _mainPal;
for (size_t i = 0; i < 256*3; ++i) {
uint8 c = src[i] / 4;
if (data.byte(kBrightness) == 1) {