mirror of
https://github.com/scummvm/scummvm.git
synced 2026-06-20 05:45:29 +00:00
SCI: Fixed some graphics corruption (black boxes) in the dialogs of GK1
This commit is contained in:
@@ -498,7 +498,8 @@ void GfxFrameout::kernelFrameout() {
|
||||
// There is a race condition lurking in SQ6, which causes the game to hang in the intro, when teleporting to Polysorbate LX.
|
||||
// Since I first wrote the patch, the race has stopped occurring for me though.
|
||||
// I'll leave this for investigation later, when someone can reproduce.
|
||||
if (it->pictureId == 0xffff)
|
||||
//if (it->pictureId == 0xffff) // FIXME: This is what SSCI does, and fixes the intro of LSL7, but breaks the dialogs in GK1 (adds black boxes)
|
||||
if (it->planeBack)
|
||||
_paint32->fillRect(it->planeRect, it->planeBack);
|
||||
|
||||
GuiResourceId planeMainPictureId = it->pictureId;
|
||||
|
||||
@@ -175,6 +175,7 @@ void GfxText32::disposeTextBitmap(reg_t hunkId) {
|
||||
|
||||
void GfxText32::drawTextBitmap(uint16 x, uint16 y, Common::Rect planeRect, reg_t textObject) {
|
||||
reg_t hunkId = readSelector(_segMan, textObject, SELECTOR(bitmap));
|
||||
uint16 backColor = readSelectorValue(_segMan, textObject, SELECTOR(back));
|
||||
// Sanity check: Check if the hunk is set. If not, either the game scripts
|
||||
// didn't set it, or an old saved game has been loaded, where it wasn't set.
|
||||
if (hunkId.isNull())
|
||||
@@ -204,7 +205,7 @@ void GfxText32::drawTextBitmap(uint16 x, uint16 y, Common::Rect planeRect, reg_t
|
||||
for (int curY = 0; curY < height; curY++) {
|
||||
for (int curX = 0; curX < width; curX++) {
|
||||
byte pixel = surface[curByte++];
|
||||
if (pixel != skipColor)
|
||||
if (pixel != skipColor && pixel != backColor)
|
||||
_screen->putFontPixel(textY, curX + textX, curY, pixel);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user