mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-05 02:17:05 +00:00
fix issue in spritesBlitToScreen and added some suggestions for fields/flags renaming
svn-id: r16925
This commit is contained in:
parent
1d23aada61
commit
4f5589bb8b
@ -1086,27 +1086,28 @@ void ScummEngine_v90he::spritesBlitToScreen() {
|
||||
if (spi->bbox.left <= spi->bbox.right && spi->bbox.top <= spi->bbox.bottom) {
|
||||
if (spi->flags & kSFBlitDirectly) {
|
||||
gdi.copyVirtScreenBuffers(spi->bbox); // XXX 0, 0x40000000);
|
||||
}
|
||||
} else if (firstLoop) {
|
||||
xmin = spi->bbox.left;
|
||||
ymin = spi->bbox.top;
|
||||
xmax = spi->bbox.right;
|
||||
ymax = spi->bbox.bottom;
|
||||
firstLoop = false;
|
||||
} else {
|
||||
if (xmin < spi->bbox.left) {
|
||||
} else if (firstLoop) {
|
||||
xmin = spi->bbox.left;
|
||||
}
|
||||
if (ymin < spi->bbox.top) {
|
||||
ymin = spi->bbox.top;
|
||||
}
|
||||
if (xmax > spi->bbox.right) {
|
||||
xmax = spi->bbox.right;
|
||||
}
|
||||
if (ymax > spi->bbox.bottom) {
|
||||
ymax = spi->bbox.bottom;
|
||||
firstLoop = false;
|
||||
refreshScreen = true;
|
||||
} else {
|
||||
if (xmin < spi->bbox.left) {
|
||||
xmin = spi->bbox.left;
|
||||
}
|
||||
if (ymin < spi->bbox.top) {
|
||||
ymin = spi->bbox.top;
|
||||
}
|
||||
if (xmax > spi->bbox.right) {
|
||||
xmax = spi->bbox.right;
|
||||
}
|
||||
if (ymax > spi->bbox.bottom) {
|
||||
ymax = spi->bbox.bottom;
|
||||
}
|
||||
refreshScreen = true;
|
||||
}
|
||||
refreshScreen = true;
|
||||
}
|
||||
if (!(spi->flags & (kSFNeedRedraw | kSF30)) && spi->res_id) {
|
||||
spi->flags |= kSFNeedRedraw;
|
||||
@ -1168,7 +1169,6 @@ void ScummEngine_v90he::spritesUpdateImages() {
|
||||
spi->res_state = 0;
|
||||
if (spi->imglist_num != 0) {
|
||||
if (!(spi->flags & kSF25)) {
|
||||
// XXX
|
||||
checkRange(_varMaxSprites, 1, spi->imglist_num, "Image list %d out of range");
|
||||
uint16 img1 = _imageListTable[0x21 * spi->imglist_num - 1];
|
||||
uint16 img2 = spi->field_74 + 1;
|
||||
|
@ -56,17 +56,17 @@ enum SpriteFlags {
|
||||
kSF28 = (1 << 27),
|
||||
kSF29 = (1 << 28),
|
||||
kSF30 = (1 << 29),
|
||||
kSF31 = (1 << 30),
|
||||
kSF31 = (1 << 30), // kSFHasImage ?
|
||||
kSF32 = (1 << 31)
|
||||
};
|
||||
|
||||
enum SpriteGroupFlags {
|
||||
kSGF01 = 1 << 0,
|
||||
kSGF02 = 1 << 1
|
||||
kSGF01 = 1 << 0, // kSGFClipBox
|
||||
kSGF02 = 1 << 1 // kSGFNeedRedraw
|
||||
};
|
||||
|
||||
struct SpriteInfo {
|
||||
int field_0;
|
||||
int field_0; // zorder ?
|
||||
int flags;
|
||||
int res_id;
|
||||
int res_state;
|
||||
@ -104,7 +104,7 @@ struct SpriteInfo {
|
||||
|
||||
struct SpriteGroup {
|
||||
Common::Rect bbox;
|
||||
int field_10;
|
||||
int field_10; // zorderPriority ?
|
||||
int flags;
|
||||
int tx;
|
||||
int ty;
|
||||
@ -112,10 +112,10 @@ struct SpriteGroup {
|
||||
int scaling;
|
||||
int scale_x;
|
||||
int scale_y;
|
||||
int field_30;
|
||||
int field_34;
|
||||
int field_38;
|
||||
int field_3C;
|
||||
int field_30; // scale_x_ratio_mul
|
||||
int field_34; // scale_x_ratio_div
|
||||
int field_38; // scale_y_ratio_mul
|
||||
int field_3C; // scale_y_ratio_div
|
||||
};
|
||||
|
||||
int _varNumSpriteGroups;
|
||||
|
Loading…
x
Reference in New Issue
Block a user