aboutsummaryrefslogtreecommitdiff
path: root/engines/kyra/graphics/screen_eob.cpp
diff options
context:
space:
mode:
authorathrxx2019-11-20 23:56:41 +0100
committerathrxx2019-12-18 20:50:42 +0100
commita0828a000b5ecff36e987db283436fc7b574232d (patch)
treeb0cfc4338e0acdf07a5af90a0767283821b24ea4 /engines/kyra/graphics/screen_eob.cpp
parent1db3ec1f712ba75e04911e0a936f873998f9d1c9 (diff)
downloadscummvm-rg350-a0828a000b5ecff36e987db283436fc7b574232d.tar.gz
scummvm-rg350-a0828a000b5ecff36e987db283436fc7b574232d.tar.bz2
scummvm-rg350-a0828a000b5ecff36e987db283436fc7b574232d.zip
KYRA: (EOB/PC98) - fix intro and main menu screen
Diffstat (limited to 'engines/kyra/graphics/screen_eob.cpp')
-rw-r--r--engines/kyra/graphics/screen_eob.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/engines/kyra/graphics/screen_eob.cpp b/engines/kyra/graphics/screen_eob.cpp
index 882c45c5d0..ad967fe5ed 100644
--- a/engines/kyra/graphics/screen_eob.cpp
+++ b/engines/kyra/graphics/screen_eob.cpp
@@ -65,6 +65,8 @@ Screen_EoB::Screen_EoB(EoBCoreEngine *vm, OSystem *system) : Screen(vm, system,
_useHiResEGADithering = _dualPaletteMode = false;
_cpsFileExt = 0;
_decodeTempBuffer = 0;
+ _curPalID = 0;
+ _curPal = 0;
for (int i = 0; i < 10; ++i)
_palette16c[i] = 0;
}
@@ -258,7 +260,7 @@ void Screen_EoB::loadShapeSetBitmap(const char *file, int tempPage, int destPage
}
void Screen_EoB::loadBitmap(const char *filename, int tempPage, int dstPage, Palette *pal, bool skip) {
- if (_use16ColorMode) {
+ if (!scumm_stricmp(filename + strlen(filename) - 3, "BIN")) {
Common::SeekableReadStream *str = _vm->resource()->createReadStream(filename);
if (!str)
error("Screen_EoB::loadBitmap(): Failed to load file '%s'", filename);
@@ -1568,11 +1570,25 @@ void Screen_EoB::shadeRect(int x1, int y1, int x2, int y2, int shadingLevel) {
}
void Screen_EoB::loadPC98Palette(int palID, Palette &dest) {
- if (!_palette16c[palID])
+ if (palID < 0 || palID > 9)
return;
+ if (!_use16ColorMode || !_palette16c[palID])
+ return;
+ _curPalID = palID;
+ _curPal = &dest;
loadPalette(_palette16c[palID], dest, 48);
}
+void Screen_EoB::setPC98PaletteBrightness(int modifier) {
+ if (!_use16ColorMode || !_palette16c[_curPalID])
+ return;
+ uint8 pal[48];
+ for (int i = 0; i < 48; ++i)
+ pal[i] = CLIP<int>(_palette16c[_curPalID][i] + modifier, 0, 15);
+ loadPalette(pal, *_curPal, 48);
+ setScreenPalette(*_curPal);
+}
+
void Screen_EoB::decodeBIN(const uint8 *src, uint8 *dst, uint16 inSize) {
const uint8 *end = src + inSize;
memset(_decodeTempBuffer, 0, 2048);