aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKari Salminen2008-11-20 22:22:47 +0000
committerKari Salminen2008-11-20 22:22:47 +0000
commit325b4cb492d51705a1b14c412008de0b2d2a608d (patch)
tree3a1b24d1431b7c269c6bafc1753f4dc0328590e4
parent16bf8d720b2b6cc5c19a70c691c443a644ef508e (diff)
downloadscummvm-rg350-325b4cb492d51705a1b14c412008de0b2d2a608d.tar.gz
scummvm-rg350-325b4cb492d51705a1b14c412008de0b2d2a608d.tar.bz2
scummvm-rg350-325b4cb492d51705a1b14c412008de0b2d2a608d.zip
Fix resizing of the internal color array in Palette-class.
svn-id: r35136
-rw-r--r--engines/cine/pal.cpp8
-rw-r--r--engines/cine/pal.h1
2 files changed, 7 insertions, 2 deletions
diff --git a/engines/cine/pal.cpp b/engines/cine/pal.cpp
index 8dc956a854..414746fbf5 100644
--- a/engines/cine/pal.cpp
+++ b/engines/cine/pal.cpp
@@ -223,7 +223,7 @@ void Palette::saturatedAddColor(byte index, signed r, signed g, signed b) {
}
Palette& Palette::load9BitColors(uint16 *colors, uint colorCount) {
- _colors.resize(colorCount);
+ setColorCount(colorCount);
for (uint i = 0; i < colorCount; i++) {
setComponent(i, R_INDEX, ((colors[i] >> 8) & 7) * COMPONENT_MUL);
setComponent(i, G_INDEX, ((colors[i] >> 4) & 7) * COMPONENT_MUL);
@@ -234,7 +234,7 @@ Palette& Palette::load9BitColors(uint16 *colors, uint colorCount) {
}
Palette& Palette::load24BitColors(byte *colors, uint colorCount) {
- _colors.resize(colorCount);
+ setColorCount(colorCount);
for (uint i = 0; i < colorCount; i++) {
setComponent(i, R_INDEX, colors[i * 3 + 0]);
setComponent(i, G_INDEX, colors[i * 3 + 1]);
@@ -244,4 +244,8 @@ Palette& Palette::load24BitColors(byte *colors, uint colorCount) {
return *this;
}
+void Palette::setColorCount(uint colorCount) {
+ _colors.resize(colorCount * COMPONENTS_PER_COLOR);
+}
+
} // End of namespace Cine
diff --git a/engines/cine/pal.h b/engines/cine/pal.h
index 7d7ab8e430..8744078701 100644
--- a/engines/cine/pal.h
+++ b/engines/cine/pal.h
@@ -80,6 +80,7 @@ private:
PackedColor getColor(byte colorIndex);
void setColor(byte colorIndex, PackedColor color);
void saturatedAddColor(byte index, signed r, signed g, signed b);
+ void setColorCount(uint colorCount);
Common::Array<byte> _colors;
};