[Scummvm-cvs-logs] SF.net SVN: scummvm: [22290] scummvm/trunk/engines/simon

kirben at users.sourceforge.net kirben at users.sourceforge.net
Tue May 2 21:08:04 CEST 2006


Revision: 22290
Author:   kirben
Date:     2006-05-02 21:07:37 -0700 (Tue, 02 May 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22290&view=rev

Log Message:
-----------
Fix scrolling glitches in Oracle of FF

Modified Paths:
--------------
    scummvm/trunk/engines/simon/charset.cpp
    scummvm/trunk/engines/simon/oracle.cpp
    scummvm/trunk/engines/simon/simon.h
    scummvm/trunk/engines/simon/vga.cpp
Modified: scummvm/trunk/engines/simon/charset.cpp
===================================================================
--- scummvm/trunk/engines/simon/charset.cpp	2006-05-03 01:11:50 UTC (rev 22289)
+++ scummvm/trunk/engines/simon/charset.cpp	2006-05-03 04:07:37 UTC (rev 22290)
@@ -1534,17 +1534,14 @@
 
 	_lockWord |= 0x8000;
 
-	dst = getFrontBuf();
-	dst += y * _dxSurfacePitch + x + window->textColumnOffset;
+	dst = getFrontBuf() + y * _dxSurfacePitch + x + window->textColumnOffset;
 
 	if (getGameType() == GType_FF) {
-		dst = getFrontBuf() + y * _dxSurfacePitch + x + window->textColumnOffset;
 		h = 13;
 		w =  feebleFontSize[chr - 0x20];
 
 		src = feeble_video_font + (chr - 0x20) * 13;
 	} else {
-		dst = getFrontBuf() + y * _dxSurfacePitch + x + window->textColumnOffset;
 		h = 8;
 		w = 6;
 
@@ -1584,8 +1581,15 @@
 		int8 b = *src++;
 		i = 0;
 		do {
-			if (b < 0)
-				dst[i] = color;
+			if (b < 0) {
+				if (getGameType() == GType_FF) {
+					if (dst[i] == 0)
+						dst[i] = color;
+				} else {
+					dst[i] = color;
+				}
+			}
+
 			b <<= 1;
 		} while (++i != w);
 		dst += _dxSurfacePitch;

Modified: scummvm/trunk/engines/simon/oracle.cpp
===================================================================
--- scummvm/trunk/engines/simon/oracle.cpp	2006-05-03 01:11:50 UTC (rev 22289)
+++ scummvm/trunk/engines/simon/oracle.cpp	2006-05-03 04:07:37 UTC (rev 22290)
@@ -79,10 +79,8 @@
 void SimonEngine::scrollOracle() {
 	int i;
 
-	for (i = 0; i < 5; i++) {
+	for (i = 0; i < 5; i++)
 		scrollOracleUp();
-		bltOracleText();
-	}
 }
 
 void SimonEngine::oracleTextUp() {
@@ -112,7 +110,6 @@
 			if(sub)
 				startSubroutineEx(sub);
 			setBitFlag(94, false);
-			bltOracleText();
 		}
 		if (_currentBoxNumber != 601 || !getBitFlag(89))
 			break;
@@ -147,7 +144,6 @@
 			if (sub)
 				startSubroutineEx(sub);
 			setBitFlag(93, false);
-			bltOracleText();
 		}
 		if (_currentBoxNumber != 600 || !getBitFlag(89))
 			break;
@@ -212,23 +208,6 @@
 	}
 }
 
-void SimonEngine::bltOracleText() {
-	byte *src, *dst1, *dst2;
-	uint16 h;
-
-	src = getFrontBuf() + 103 * _screenWidth + 136;
-	dst1 = getFrontBuf() + 103 * _screenWidth + 136;
-	dst2 = getBackBuf() + 103 * _screenWidth + 136;
-
-	for (h = 0; h < 104; h++) {
-		memcpy(dst1, src, 360);
-		memcpy(dst2, src, 360);
-		dst1 += _screenWidth;
-		dst2 += _screenWidth;
-		src += _screenWidth;
-	}
-}
-
 void SimonEngine::oracleLogo() {
 	Common::Rect srcRect, dstRect;
 	byte *src, *dst;

Modified: scummvm/trunk/engines/simon/simon.h
===================================================================
--- scummvm/trunk/engines/simon/simon.h	2006-05-03 01:11:50 UTC (rev 22289)
+++ scummvm/trunk/engines/simon/simon.h	2006-05-03 04:07:37 UTC (rev 22290)
@@ -618,7 +618,6 @@
 	void saveUserGame(int slot);
 	void windowBackSpace(WindowBlock *window);
 
-	void bltOracleText();
 	void oracleLogo();
 	void scrollOracle();
 	void scrollOracleUp();

Modified: scummvm/trunk/engines/simon/vga.cpp
===================================================================
--- scummvm/trunk/engines/simon/vga.cpp	2006-05-03 01:11:50 UTC (rev 22289)
+++ scummvm/trunk/engines/simon/vga.cpp	2006-05-03 04:07:37 UTC (rev 22290)
@@ -1781,11 +1781,9 @@
 	uint16 vga_res = vcReadNextWord();
 	uint16 windowNum = vcReadNextWord();
 
-	if (getGameType() == GType_FF) {
-		// TODO
-	} else if (getGameType() == GType_SIMON2) {
+	if (getGameType() == GType_SIMON2) {
 		set_video_mode_internal(windowNum, vga_res);
-	} else {
+	} else if (getGameType() == GType_SIMON1) {
 		if (windowNum == 16) {
 			_copyPartialMode = 2;
 		} else {


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.





More information about the Scummvm-git-logs mailing list