aboutsummaryrefslogtreecommitdiff
path: root/engines/sci/gfx
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sci/gfx')
-rw-r--r--engines/sci/gfx/res_pal.cpp34
1 files changed, 5 insertions, 29 deletions
diff --git a/engines/sci/gfx/res_pal.cpp b/engines/sci/gfx/res_pal.cpp
index 74fb8629b7..ff76d3e20c 100644
--- a/engines/sci/gfx/res_pal.cpp
+++ b/engines/sci/gfx/res_pal.cpp
@@ -42,22 +42,13 @@ namespace Sci {
Palette *gfxr_read_pal11(int id, byte *resource, int size) {
int start_color = resource[25];
int format = resource[32];
- int entry_size = 0;
- Palette *retval;
+ int offset = (format == SCI_PAL_FORMAT_VARIABLE_FLAGS) ? 1 : 0;
+ int entry_size = 3 + offset;
byte *pal_data = resource + 37;
int _colors_nr = READ_LE_UINT16(resource + 29);
+ Palette *retval = new Palette(_colors_nr + start_color);
int i;
- switch (format) {
- case SCI_PAL_FORMAT_VARIABLE_FLAGS :
- entry_size = 4;
- break;
- case SCI_PAL_FORMAT_CONSTANT_FLAGS :
- entry_size = 3;
- break;
- }
-
- retval = new Palette(_colors_nr + start_color);
char buf[100];
sprintf(buf, "read_pal11 (id %d)", id);
retval->name = buf;
@@ -66,14 +57,7 @@ Palette *gfxr_read_pal11(int id, byte *resource, int size) {
retval->setColor(i, 0, 0, 0);
}
for (i = start_color; i < start_color + _colors_nr; i ++) {
- switch (format) {
- case SCI_PAL_FORMAT_CONSTANT_FLAGS:
- retval->setColor(i, pal_data[0], pal_data[1], pal_data[2]);
- break;
- case SCI_PAL_FORMAT_VARIABLE_FLAGS:
- retval->setColor(i, pal_data[1], pal_data[2], pal_data[3]);
- break;
- }
+ retval->setColor(i, pal_data[0 + offset], pal_data[1 + offset], pal_data[2 + offset]);
pal_data += entry_size;
}
@@ -93,16 +77,8 @@ Palette *gfxr_read_pal1(int id, byte *resource, int size) {
pos = PALETTE_START;
while (pos < size/* && resource[pos] == COLOR_OK && counter < MAX_COLORS*/) {
- int color = resource[pos] | (resource[pos + 1] << 8) | (resource[pos + 2] << 16) | (resource[pos + 3] << 24);
-
+ colors[counter++] = resource[pos] | (resource[pos + 1] << 8) | (resource[pos + 2] << 16) | (resource[pos + 3] << 24);
pos += 4;
-
- colors[counter++] = color;
- }
-
- if (counter < MAX_COLORS && resource[pos] != COLOR_OK) {
- GFXERROR("Palette %04x uses unknown palette color prefix 0x%02x at offset 0x%04x\n", id, resource[pos], pos);
- return NULL;
}
if (counter < MAX_COLORS) {