Fix glitches in pause options of Elvira 1.

svn-id: r26796
This commit is contained in:
Travis Howell 2007-05-10 00:43:27 +00:00
parent f0cd01b576
commit 6452a701be
5 changed files with 16 additions and 9 deletions

View File

@ -180,7 +180,11 @@ void AGOSEngine::restartAnimation() {
if (!(_lockWord & 0x10))
return;
_window4Flag = 2;
setMoveRect(0, 0, 224, 127);
updateScreen();
_lockWord &= ~0x10;
// Check picture queue

View File

@ -1364,9 +1364,9 @@ void AGOSEngine::setWindowImage(uint16 mode, uint16 vga_res_id) {
src += srcWidth;
}
if (getGameType() == GType_ELVIRA1 && updateWindow == 3 && _bottomPalette != 0) {
dst = getFrontBuf() + 42560;
int size = 21440;
if (getGameType() == GType_ELVIRA1 && updateWindow == 3 && _bottomPalette) {
dst = getFrontBuf() + 133 * _screenWidth;
int size = 67 * _screenWidth;
while (size--) {
*dst += 0x10;

View File

@ -960,6 +960,7 @@ restart:
window->textColumn = 0;
window->textRow = 0;
window->textColumnOffset = 0;
window->textLength = 0; // Difference
switch (_language) {
case Common::FR_FRA:
@ -986,6 +987,7 @@ restart:
window->textColumn = 0;
window->textRow = 0;
window->textColumnOffset = 0;
window->textLength = 0; // Difference
switch (_language) {
case Common::FR_FRA:
@ -1199,11 +1201,12 @@ void AGOSEngine::printScroll() {
state.srcPtr = vpe->vgaFile2 + READ_BE_UINT32(vpe->vgaFile2 + 9 * 8);
state.palette = 0;
state.paletteMod = 0;
state.x = 10;
state.y = 32;
state.width = state.draw_width = 10;
state.height = state.draw_height = 72;
state.flags = kDFCompressed | kDFUseFrontBuf;
state.flags = kDFCompressed;
_windowNum = 3;
state.depack_cont = -0x80;

View File

@ -316,7 +316,7 @@ void AGOSEngine_Elvira2::oe2_pObj() {
void AGOSEngine_Elvira2::oe2_loadGame() {
// 89: load game
uint16 stringId = getNextStringID();
debug(0, "oe1_loadGame: stub (%s)", (const char *)getStringPtrByID(stringId));
debug(0, "oe2_loadGame: stub (%s)", (const char *)getStringPtrByID(stringId));
if (!scumm_stricmp(getFileName(GAME_RESTFILE), (const char *)getStringPtrByID(stringId))) {
loadGame(getFileName(GAME_RESTFILE), true);

View File

@ -321,7 +321,7 @@ bool AGOSEngine::loadTablesIntoMem(uint subr_id) {
_tablesHeapCurPosNew = _tablesHeapCurPos;
if (_tablesHeapCurPos > _tablesHeapSize)
error("loadTablesOldIntoMem: Out of table memory");
error("loadTablesIntoMem: Out of table memory");
return 1;
}
@ -331,7 +331,7 @@ bool AGOSEngine::loadTablesIntoMem(uint subr_id) {
p += 6;
}
debug(1,"loadTablesOldIntoMem: didn't find %d", subr_id);
debug(1,"loadTablesIntoMem: didn't find %d", subr_id);
return 0;
}
@ -387,13 +387,13 @@ bool AGOSEngine_Waxworks::loadTablesIntoMem(uint subr_id) {
_tablesHeapCurPosNew = _tablesHeapCurPos;
if (_tablesHeapCurPos > _tablesHeapSize)
error("loadTablesNewIntoMem: Out of table memory");
error("loadTablesIntoMem: Out of table memory");
return 1;
}
}
}
debug(1,"loadTablesNewIntoMem: didn't find %d", subr_id);
debug(1,"loadTablesIntoMem: didn't find %d", subr_id);
return 0;
}