[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