From 189b4abb33fd13b29f7641c29c9950fe39fcd1fe Mon Sep 17 00:00:00 2001 From: Travis Howell Date: Mon, 12 Feb 2007 03:59:29 +0000 Subject: Pass VC10_state directly to convertclip, to reduce arguments. svn-id: r25505 --- engines/agos/res_ami.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'engines/agos/res_ami.cpp') diff --git a/engines/agos/res_ami.cpp b/engines/agos/res_ami.cpp index 7024726e2b..714c4fc727 100644 --- a/engines/agos/res_ami.cpp +++ b/engines/agos/res_ami.cpp @@ -115,9 +115,19 @@ static void convertcompressedclip(const byte *src, byte *dst, uint8 colorDepth, } } -byte *AGOSEngine::convertclip(const byte *src, bool is32Colors, uint height, uint width, byte flags) { +byte *AGOSEngine::convertclip(VC10_state *state, byte flags) { int length, i, j; - uint8 colorDepth = is32Colors ? 5 : 4; + + uint8 colorDepth = 4; + if (getGameType() == GType_SIMON1) { + if (((_lockWord & 0x20) && !state->palette) || (getFeatures() & GF_32COLOR)) { + colorDepth = 5; + } + } + + const byte *src = state->depack_src; + int width = state->width * 16; + int height = state->height; free(_planarBuf); _planarBuf = (byte *)malloc(width * height); @@ -129,7 +139,7 @@ byte *AGOSEngine::convertclip(const byte *src, bool is32Colors, uint height, uin length = (width + 15) / 16 * height; for (i = 0; i < length; i++) { uint16 w[kMaxColorDepth]; - if (getGameType() == GType_SIMON1 && !is32Colors) { + if (getGameType() == GType_SIMON1 && colorDepth == 4) { for (j = 0; j < colorDepth; ++j) { w[j] = READ_BE_UINT16(src + j * length * 2); } -- cgit v1.2.3