mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-15 06:08:35 +00:00
Pass VC10_state directly to convertclip, to reduce arguments.
svn-id: r25505
This commit is contained in:
parent
8ba3553722
commit
189b4abb33
@ -1337,7 +1337,7 @@ protected:
|
||||
byte *getBackGround();
|
||||
byte *getScaleBuf();
|
||||
|
||||
byte *convertclip(const byte *src, bool is32Colors, uint height, uint width, byte flags);
|
||||
byte *convertclip(VC10_state *state, byte flags);
|
||||
|
||||
bool decrunchFile(byte *src, byte *dst, uint32 size);
|
||||
void loadVGABeardFile(uint id);
|
||||
|
@ -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);
|
||||
}
|
||||
|
@ -630,16 +630,16 @@ void AGOSEngine::vc10_draw() {
|
||||
if (_dumpImages)
|
||||
dumpSingleBitmap(_vgaCurZoneNum, state.image, state.depack_src, width, height,
|
||||
state.palette);
|
||||
if (getFeatures() & GF_PLANAR) {
|
||||
bool is32Colors = false;
|
||||
if (getGameType() == GType_SIMON1) {
|
||||
if (((_lockWord & 0x20) && !state.palette) || state.palette == 0xC0 ||
|
||||
(getFeatures() & GF_32COLOR)) {
|
||||
is32Colors = true;
|
||||
}
|
||||
}
|
||||
state.width = state.draw_width = width; /* cl */
|
||||
state.height = state.draw_height = height; /* ch */
|
||||
|
||||
state.depack_src = convertclip(state.depack_src, is32Colors, height, width * 16, flags);
|
||||
state.depack_cont = -0x80;
|
||||
|
||||
state.x_skip = 0; /* colums to skip = bh */
|
||||
state.y_skip = 0; /* rows to skip = bl */
|
||||
|
||||
if (getFeatures() & GF_PLANAR) {
|
||||
state.depack_src = convertclip(&state, flags);
|
||||
|
||||
// converted planar clip is already uncompressed
|
||||
if (state.flags & kDFCompressedFlip) {
|
||||
@ -664,14 +664,6 @@ void AGOSEngine::vc10_draw() {
|
||||
}
|
||||
}
|
||||
|
||||
state.width = state.draw_width = width; /* cl */
|
||||
state.height = state.draw_height = height; /* ch */
|
||||
|
||||
state.depack_cont = -0x80;
|
||||
|
||||
state.x_skip = 0; /* colums to skip = bh */
|
||||
state.y_skip = 0; /* rows to skip = bl */
|
||||
|
||||
uint maxWidth = (getGameType() == GType_FF || getGameType() == GType_PP) ? 640 : 20;
|
||||
if ((getGameType() == GType_SIMON2 || getGameType() == GType_FF) && width > maxWidth) {
|
||||
horizontalScroll(&state);
|
||||
|
Loading…
Reference in New Issue
Block a user