[Scummvm-cvs-logs] SF.net SVN: scummvm: [31441] scummvm/trunk/engines/kyra

athrxx at users.sourceforge.net athrxx at users.sourceforge.net
Mon Apr 7 00:17:03 CEST 2008


Revision: 31441
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31441&view=rev
Author:   athrxx
Date:     2008-04-06 15:17:02 -0700 (Sun, 06 Apr 2008)

Log Message:
-----------
implement missing Screen::drawShapePlotType11_15()

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/screen.cpp
    scummvm/trunk/engines/kyra/screen.h

Modified: scummvm/trunk/engines/kyra/screen.cpp
===================================================================
--- scummvm/trunk/engines/kyra/screen.cpp	2008-04-06 19:48:47 UTC (rev 31440)
+++ scummvm/trunk/engines/kyra/screen.cpp	2008-04-06 22:17:02 UTC (rev 31441)
@@ -1233,10 +1233,12 @@
 		0, 0, 0,
 		&Screen::drawShapePlotType8,	// used by Kyra 2
 		&Screen::drawShapePlotType9,	// used by Kyra 1
-		0, 0,
+		0, 
+		&Screen::drawShapePlotType11_15,// used by Kyra 1
 		&Screen::drawShapePlotType12,	// used by Kyra 2
 		&Screen::drawShapePlotType13,	// used by Kyra 1
 		&Screen::drawShapePlotType14,	// used by Kyra 1 (invisibility)
+		&Screen::drawShapePlotType11_15,
 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 		0, 0, 0, 0, 0, 0, 0, 0, 0, 0
 	};
@@ -1682,6 +1684,22 @@
 		*dst = cmd;
 }
 
+void Screen::drawShapePlotType11_15(uint8 *dst, uint8 cmd) {
+	uint32 relOffs = dst - _dsDstPage;
+	int t = (_shapePages[0][relOffs] & 0x7f) & 0x87;
+
+	if (_dsDrawLayer < t) {
+		cmd = _shapePages[1][relOffs];
+	} else {
+		cmd = *dst;
+		for (int i = 0; i < _dsTableLoopCount; ++i)
+			cmd = _dsTable[cmd];
+	}
+
+	if (cmd)
+		*dst = cmd;
+}
+
 void Screen::drawShapePlotType12(uint8 *dst, uint8 cmd) {
 	uint32 relOffs = dst - _dsDstPage;
 	int t = (_shapePages[0][relOffs] & 0x7f) & 0x87;

Modified: scummvm/trunk/engines/kyra/screen.h
===================================================================
--- scummvm/trunk/engines/kyra/screen.h	2008-04-06 19:48:47 UTC (rev 31440)
+++ scummvm/trunk/engines/kyra/screen.h	2008-04-06 22:17:02 UTC (rev 31441)
@@ -194,9 +194,10 @@
 	void drawShapePlotType4(uint8 *dst, uint8 cmd);
 	void drawShapePlotType8(uint8 *dst, uint8 cmd);
 	void drawShapePlotType9(uint8 *dst, uint8 cmd);
+	void drawShapePlotType11_15(uint8 *dst, uint8 cmd);
 	void drawShapePlotType12(uint8 *dst, uint8 cmd);
 	void drawShapePlotType13(uint8 *dst, uint8 cmd);
-	void drawShapePlotType14(uint8 *dst, uint8 cmd);
+	void drawShapePlotType14(uint8 *dst, uint8 cmd);		
 
 	typedef int (Screen::*DsMarginSkipFunc)(uint8 *&dst, const uint8 *&src, int &cnt);
 	typedef void (Screen::*DsLineFunc)(uint8 *&dst, const uint8 *&src, int &cnt, int scaleState);


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