[Scummvm-cvs-logs] SF.net SVN: scummvm:[45091] scummvm/trunk/engines/sci

m_kiewitz at users.sourceforge.net m_kiewitz at users.sourceforge.net
Wed Oct 14 21:39:08 CEST 2009


Revision: 45091
          http://scummvm.svn.sourceforge.net/scummvm/?rev=45091&view=rev
Author:   m_kiewitz
Date:     2009-10-14 19:39:07 +0000 (Wed, 14 Oct 2009)

Log Message:
-----------
SCI/newgui: kPalette / setIntensity / reimplemented setPalette optional parameter, fixed memory corruption in setIntensity

Modified Paths:
--------------
    scummvm/trunk/engines/sci/engine/kgraphics.cpp
    scummvm/trunk/engines/sci/gui/gui.cpp
    scummvm/trunk/engines/sci/gui/gui.h
    scummvm/trunk/engines/sci/gui/gui_palette.cpp
    scummvm/trunk/engines/sci/gui/gui_palette.h

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-10-14 18:35:15 UTC (rev 45090)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-10-14 19:39:07 UTC (rev 45091)
@@ -581,11 +581,12 @@
 		break;
 	case 4:	{ // Set palette intensity
 		if (argc >= 4) {
-			int fromColor = CLIP<int>(argv[1].toUint16(), 1, 255);
-			int toColor = CLIP<int>(argv[2].toUint16(), 1, 255);
-			int intensity = argv[3].toUint16();
+			int16 fromColor = CLIP<int>(argv[1].toUint16(), 1, 255);
+			int16 toColor = CLIP<int>(argv[2].toUint16(), 1, 255);
+			int16 intensity = argv[3].toUint16();
+			bool setPalette = (argc < 5) ? true : (argv[4].isNull()) ? true : false;
 
-			s->_gui->paletteSetIntensity(fromColor, toColor, intensity);
+			s->_gui->paletteSetIntensity(fromColor, toColor, intensity, setPalette);
 		}
 		break;
 	}

Modified: scummvm/trunk/engines/sci/gui/gui.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-14 18:35:15 UTC (rev 45090)
+++ scummvm/trunk/engines/sci/gui/gui.cpp	2009-10-14 19:39:07 UTC (rev 45091)
@@ -470,8 +470,8 @@
 	return _palette->matchColor(&_palette->_sysPalette, r, g, b) & 0xFF;
 }
 
-void SciGui::paletteSetIntensity(int fromColor, int toColor, int intensity) {
-	_palette->setIntensity(fromColor, toColor, intensity);
+void SciGui::paletteSetIntensity(int fromColor, int toColor, int intensity, bool setPalette) {
+	_palette->setIntensity(fromColor, toColor, intensity, setPalette);
 }
 
 void SciGui::paletteAnimate(int fromColor, int toColor, int speed) {

Modified: scummvm/trunk/engines/sci/gui/gui.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui.h	2009-10-14 18:35:15 UTC (rev 45090)
+++ scummvm/trunk/engines/sci/gui/gui.h	2009-10-14 19:39:07 UTC (rev 45091)
@@ -102,7 +102,7 @@
 
 	virtual void paletteSet(int resourceNo, int flags);
 	virtual int16 paletteFind(int r, int g, int b);
-	virtual void paletteSetIntensity(int fromColor, int toColor, int intensity);
+	virtual void paletteSetIntensity(int fromColor, int toColor, int intensity, bool setPalette);
 	virtual void paletteAnimate(int fromColor, int toColor, int speed);
 
 	virtual void shakeScreen(uint16 shakeCount, uint16 directions);

Modified: scummvm/trunk/engines/sci/gui/gui_palette.cpp
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_palette.cpp	2009-10-14 18:35:15 UTC (rev 45090)
+++ scummvm/trunk/engines/sci/gui/gui_palette.cpp	2009-10-14 19:39:07 UTC (rev 45091)
@@ -275,9 +275,10 @@
 	_screen->setPalette(&_sysPalette);
 }
 
-void SciGuiPalette::setIntensity(int fromColor, int toColor, int intensity) {
-	memset(&_sysPalette.intensity + fromColor, intensity, toColor - fromColor);
-	setOnScreen();
+void SciGuiPalette::setIntensity(int fromColor, int toColor, int intensity, bool setPalette) {
+	memset(&_sysPalette.intensity[0] + fromColor, intensity, toColor - fromColor);
+	if (setPalette)
+		setOnScreen();
 }
 
 void SciGuiPalette::animate(byte fromColor, byte toColor, int speed) {

Modified: scummvm/trunk/engines/sci/gui/gui_palette.h
===================================================================
--- scummvm/trunk/engines/sci/gui/gui_palette.h	2009-10-14 18:35:15 UTC (rev 45090)
+++ scummvm/trunk/engines/sci/gui/gui_palette.h	2009-10-14 19:39:07 UTC (rev 45091)
@@ -47,7 +47,7 @@
 
 	void setOnScreen();
 
-	void setIntensity(int fromColor, int toColor, int intensity);
+	void setIntensity(int fromColor, int toColor, int intensity, bool setPalette);
 	void animate(byte fromColor, byte toColor, int speed);
 
 	GuiPalette _sysPalette;


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