diff options
author | Martin Kiewitz | 2009-10-20 18:45:46 +0000 |
---|---|---|
committer | Martin Kiewitz | 2009-10-20 18:45:46 +0000 |
commit | 1e1172af499dd995651e3f8a80d8af291f0f177d (patch) | |
tree | 2bbe3225d67b1a1cdbcdebbeffe6556c00fa5d7a /engines/sci/gui | |
parent | 1fb02d2c4b33f8341c659429a07661cbff1a43dc (diff) | |
download | scummvm-rg350-1e1172af499dd995651e3f8a80d8af291f0f177d.tar.gz scummvm-rg350-1e1172af499dd995651e3f8a80d8af291f0f177d.tar.bz2 scummvm-rg350-1e1172af499dd995651e3f8a80d8af291f0f177d.zip |
SCI/newgui: Changed kPalette(animate) and implemented setFlags/unsetFlags
svn-id: r45277
Diffstat (limited to 'engines/sci/gui')
-rw-r--r-- | engines/sci/gui/gui.cpp | 8 | ||||
-rw-r--r-- | engines/sci/gui/gui.h | 2 | ||||
-rw-r--r-- | engines/sci/gui/gui_palette.cpp | 16 | ||||
-rw-r--r-- | engines/sci/gui/gui_palette.h | 4 |
4 files changed, 28 insertions, 2 deletions
diff --git a/engines/sci/gui/gui.cpp b/engines/sci/gui/gui.cpp index c2e7a17f06..707c8af7c5 100644 --- a/engines/sci/gui/gui.cpp +++ b/engines/sci/gui/gui.cpp @@ -461,6 +461,14 @@ void SciGui::paletteSet(GuiResourceId resourceId, uint16 flags) { _palette->setFromResource(resourceId, flags); } +void SciGui::paletteSetFlag(uint16 fromColor, uint16 toColor, uint16 flag) { + _palette->setFlag(fromColor, toColor, flag); +} + +void SciGui::paletteUnsetFlag(uint16 fromColor, uint16 toColor, uint16 flag) { + _palette->unsetFlag(fromColor, toColor, flag); +} + int16 SciGui::paletteFind(uint16 r, uint16 g, uint16 b) { return _palette->matchColor(&_palette->_sysPalette, r, g, b) & 0xFF; } diff --git a/engines/sci/gui/gui.h b/engines/sci/gui/gui.h index ba6d8b7ff9..697ad539f7 100644 --- a/engines/sci/gui/gui.h +++ b/engines/sci/gui/gui.h @@ -101,6 +101,8 @@ public: virtual int16 picNotValid(int16 newPicNotValid); virtual void paletteSet(GuiResourceId resourceNo, uint16 flags); + virtual void paletteSetFlag(uint16 fromColor, uint16 toColor, uint16 flag); + virtual void paletteUnsetFlag(uint16 fromColor, uint16 toColor, uint16 flag); virtual int16 paletteFind(uint16 r, uint16 g, uint16 b); virtual void paletteSetIntensity(uint16 fromColor, uint16 toColor, uint16 intensity, bool setPalette); virtual void paletteAnimate(uint16 fromColor, uint16 toColor, int16 speed); diff --git a/engines/sci/gui/gui_palette.cpp b/engines/sci/gui/gui_palette.cpp index 83b94e2085..8f9558f7e5 100644 --- a/engines/sci/gui/gui_palette.cpp +++ b/engines/sci/gui/gui_palette.cpp @@ -269,7 +269,21 @@ void SciGuiPalette::setOnScreen() { _screen->setPalette(&_sysPalette); } -void SciGuiPalette::setIntensity(int fromColor, int toColor, int intensity, bool setPalette) { +void SciGuiPalette::setFlag(uint16 fromColor, uint16 toColor, uint16 flag) { + uint16 colorNr; + for (colorNr = fromColor; colorNr < toColor; colorNr++) { + _sysPalette.colors[colorNr].used |= flag; + } +} + +void SciGuiPalette::unsetFlag(uint16 fromColor, uint16 toColor, uint16 flag) { + uint16 colorNr; + for (colorNr = fromColor; colorNr < toColor; colorNr++) { + _sysPalette.colors[colorNr].used &= ~flag; + } +} + +void SciGuiPalette::setIntensity(uint16 fromColor, uint16 toColor, uint16 intensity, bool setPalette) { memset(&_sysPalette.intensity[0] + fromColor, intensity, toColor - fromColor); if (setPalette) setOnScreen(); diff --git a/engines/sci/gui/gui_palette.h b/engines/sci/gui/gui_palette.h index 9313d7e169..ea63f7fe0f 100644 --- a/engines/sci/gui/gui_palette.h +++ b/engines/sci/gui/gui_palette.h @@ -47,7 +47,9 @@ public: void setOnScreen(); - void setIntensity(int fromColor, int toColor, int intensity, bool setPalette); + void setFlag(uint16 fromColor, uint16 toColor, uint16 flag); + void unsetFlag(uint16 fromColor, uint16 toColor, uint16 flag); + void setIntensity(uint16 fromColor, uint16 toColor, uint16 intensity, bool setPalette); void animate(byte fromColor, byte toColor, int speed); GuiPalette _sysPalette; |