[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