[Scummvm-cvs-logs] SF.net SVN: scummvm: [20483] scummvm/trunk/kyra
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Fri Feb 10 16:18:03 CET 2006
Revision: 20483
Author: lordhoto
Date: 2006-02-10 16:17:20 -0800 (Fri, 10 Feb 2006)
ViewCVS: http://svn.sourceforge.net/scummvm?rev=20483&view=rev
Log Message:
-----------
Fixes the bug when displaying the falling leafe scene in room 12 and text bugs which overwride the interface. (also in the scene with the ruby tree)
Modified Paths:
--------------
scummvm/trunk/kyra/animator.cpp
scummvm/trunk/kyra/animator.h
scummvm/trunk/kyra/kyra.cpp
scummvm/trunk/kyra/scene.cpp
scummvm/trunk/kyra/screen.cpp
scummvm/trunk/kyra/script_v1.cpp
scummvm/trunk/kyra/sprites.cpp
scummvm/trunk/kyra/sprites.h
scummvm/trunk/kyra/text.cpp
Modified: scummvm/trunk/kyra/animator.cpp
===================================================================
--- scummvm/trunk/kyra/animator.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/animator.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -115,7 +115,7 @@
AnimObject *curObject = _objectQueue;
while (curObject) {
- if (curObject->active && !curObject->unk1) {
+ if (curObject->active && !curObject->disable) {
preserveOrRestoreBackground(curObject, false);
curObject->bkgdChangeFlag = 0;
}
@@ -148,7 +148,7 @@
_screen->_curPage = 2;
while (curObject) {
- if (curObject->active && !curObject->unk1) {
+ if (curObject->active && !curObject->disable) {
preserveOrRestoreBackground(curObject, true);
curObject->x2 = curObject->x1;
curObject->y2 = curObject->y1;
@@ -165,7 +165,7 @@
_screen->_curPage = 2;
while (curObject) {
- if (curObject->active && !curObject->unk1 && curObject->bkgdChangeFlag) {
+ if (curObject->active && !curObject->disable && curObject->bkgdChangeFlag) {
preserveOrRestoreBackground(curObject, false);
curObject->bkgdChangeFlag = 0;
}
@@ -202,7 +202,7 @@
if (temp >= 136) {
y = 136 - height;
}
-
+
if (restore) {
_screen->copyBlockToPage(_screen->_curPage, x, y, width, height, obj->background);
} else {
@@ -230,7 +230,7 @@
int drawLayer = 0;
if (!(curObject->flags & 0x800)) {
drawLayer = 7;
- } else if (curObject->unk1) {
+ } else if (curObject->disable) {
drawLayer = 0;
} else {
drawLayer = _vm->_sprites->getDrawLayer(curObject->drawY);
Modified: scummvm/trunk/kyra/animator.h
===================================================================
--- scummvm/trunk/kyra/animator.h 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/animator.h 2006-02-11 00:17:20 UTC (rev 20483)
@@ -32,7 +32,7 @@
uint32 active;
uint32 refreshFlag;
uint32 bkgdChangeFlag;
- uint32 unk1;
+ bool disable;
uint32 flags;
int16 drawY;
uint8 *sceneAnimPtr;
Modified: scummvm/trunk/kyra/kyra.cpp
===================================================================
--- scummvm/trunk/kyra/kyra.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/kyra.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -311,6 +311,8 @@
int KyraEngine::init(GameDetector &detector) {
_system->beginGFXTransaction();
initCommonGFX(detector);
+ //for debug reasons (see Screen::updateScreen)
+ //_system->initSize(640, 200);
_system->initSize(320, 200);
_system->endGFXTransaction();
Modified: scummvm/trunk/kyra/scene.cpp
===================================================================
--- scummvm/trunk/kyra/scene.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/scene.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -770,8 +770,7 @@
curAnimState->active = 1;
curAnimState->refreshFlag = 1;
curAnimState->bkgdChangeFlag = 1;
- }
- else {
+ } else {
curAnimState->active = 0;
curAnimState->refreshFlag = 0;
curAnimState->bkgdChangeFlag = 0;
@@ -786,7 +785,9 @@
curAnimState->background = _sprites->_anims[i].background;
curAnimState->sceneAnimPtr = _sprites->_sceneShapes[_sprites->_anims[i].sprite];
- if(_sprites->_anims[i].unk2)
+ curAnimState->disable = _sprites->_anims[i].disable;
+
+ if (_sprites->_anims[i].unk2)
curAnimState->flags = 0x800;
else
curAnimState->flags = 0;
Modified: scummvm/trunk/kyra/screen.cpp
===================================================================
--- scummvm/trunk/kyra/screen.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/screen.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -108,6 +108,8 @@
void Screen::updateScreen() {
debug(9, "Screen::updateScreen()");
_system->copyRectToScreen(getPagePtr(0), SCREEN_W, 0, 0, SCREEN_W, SCREEN_H);
+ //for debug reasons (needs 640x200 screen)
+ //_system->copyRectToScreen(getPagePtr(2), SCREEN_W, 320, 0, SCREEN_W, SCREEN_H);
_system->updateScreen();
}
Modified: scummvm/trunk/kyra/script_v1.cpp
===================================================================
--- scummvm/trunk/kyra/script_v1.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/script_v1.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -234,10 +234,10 @@
int KyraEngine::cmd_runSceneAnimUntilDone(ScriptState *script) {
debug(3, "cmd_runSceneAnimUntilDone(0x%X) (%d)", script, stackPos(0));
+ _screen->hideMouse();
+ _animator->restoreAllObjectBackgrounds();
_sprites->_anims[stackPos(0)].play = true;
_animator->sprites()[stackPos(0)].active = 1;
- _screen->hideMouse();
- _animator->restoreAllObjectBackgrounds();
_animator->flagAllObjectsForBkgdChange();
_animator->preserveAnyChangedBackgrounds();
while (_sprites->_anims[stackPos(0)].play) {
Modified: scummvm/trunk/kyra/sprites.cpp
===================================================================
--- scummvm/trunk/kyra/sprites.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/sprites.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -71,7 +71,7 @@
assert( READ_LE_UINT16(data) == 0xFF86 );
data += 4;
- //sceneUnk16[i] = READ_LE_UINT16(data);
+ _anims[i].disable = READ_LE_UINT16(data) != 0;
data += 4;
_anims[i].unk2 = READ_LE_UINT16(data);
data += 4;
Modified: scummvm/trunk/kyra/sprites.h
===================================================================
--- scummvm/trunk/kyra/sprites.h 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/sprites.h 2006-02-11 00:17:20 UTC (rev 20483)
@@ -54,6 +54,7 @@
uint16 drawY;
uint16 unk2;
uint8 *background;
+ bool disable;
};
class Sprites {
Modified: scummvm/trunk/kyra/text.cpp
===================================================================
--- scummvm/trunk/kyra/text.cpp 2006-02-10 19:49:08 UTC (rev 20482)
+++ scummvm/trunk/kyra/text.cpp 2006-02-11 00:17:20 UTC (rev 20483)
@@ -271,7 +271,7 @@
_text->_talkMessageH = lineNum * 10;
_animator->restoreAllObjectBackgrounds();
- _screen->copyRegion(12, _text->_talkMessageY, 12, 136, 308, _text->_talkMessageH, 2, 2);
+ _screen->copyRegion(12, _text->_talkMessageY, 12, 136, 296, _text->_talkMessageH, 2, 2);
_screen->hideMouse();
_text->printCharacterText(processedString, charNum, _characterList[charNum].x1);
@@ -286,12 +286,12 @@
_animator->restoreAllObjectBackgrounds();
- _screen->copyRegion(12, 136, 12, _text->_talkMessageY, 308, _text->_talkMessageH, 2, 2);
+ _screen->copyRegion(12, 136, 12, _text->_talkMessageY, 296, _text->_talkMessageH, 2, 2);
_animator->preserveAllBackgrounds();
_animator->prepDrawAllObjects();
_screen->hideMouse();
- _screen->copyRegion(12, _text->_talkMessageY, 12, _text->_talkMessageY, 308, _text->_talkMessageH, 2, 0);
+ _screen->copyRegion(12, _text->_talkMessageY, 12, _text->_talkMessageY, 296, _text->_talkMessageH, 2, 0);
_screen->showMouse();
_animator->flagAllObjectsForRefresh();
_animator->copyChangedObjectsForward(0);
More information about the Scummvm-git-logs
mailing list