mirror of
https://github.com/libretro/scummvm.git
synced 2025-04-02 14:51:40 +00:00
Add some additional details for sprite fields.
Remove the unused sprite/spriteGroup fields. Break old He90+ saves but they aren't stable anyway. svn-id: r17711
This commit is contained in:
parent
005efe61aa
commit
51af9cf4aa
@ -203,7 +203,7 @@ int ScummEngine_v90he::findSpriteWithClassOf(int x_pos, int y_pos, int spriteGro
|
||||
y += h / 2;
|
||||
}
|
||||
|
||||
if(isWizPixelNonTransparent(resId, resState, x, y, spi->imgFlags))
|
||||
if(isWizPixelNonTransparent(resId, resState, x, y, spi->curImgFlags))
|
||||
return spi->id;
|
||||
}
|
||||
}
|
||||
@ -379,7 +379,7 @@ int ScummEngine_v90he::spriteInfoGet_field_8C_90(int spriteId, int type) {
|
||||
|
||||
switch(type) {
|
||||
case 0x7B:
|
||||
return _spriteTable[spriteId].field_8C;
|
||||
return _spriteTable[spriteId].imgFlags;
|
||||
case 0x7D:
|
||||
return _spriteTable[spriteId].field_90;
|
||||
case 0x7E:
|
||||
@ -741,6 +741,7 @@ void ScummEngine_v90he::spriteInfoSet_field_84(int spriteId, int value) {
|
||||
}
|
||||
|
||||
void ScummEngine_v90he::spriteInfoSet_field_8C_90(int spriteId, int type, int value) {
|
||||
debug(0, "spriteInfoSet_field_8C_90: spriteId %d type %d", spriteId, type);
|
||||
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
|
||||
int delay;
|
||||
|
||||
@ -748,7 +749,7 @@ void ScummEngine_v90he::spriteInfoSet_field_8C_90(int spriteId, int type, int va
|
||||
|
||||
switch(type) {
|
||||
case 0x7B:
|
||||
_spriteTable[spriteId].field_8C = value;
|
||||
_spriteTable[spriteId].imgFlags = value;
|
||||
_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
|
||||
break;
|
||||
case 0x7D:
|
||||
@ -793,7 +794,7 @@ void ScummEngine_v90he::spriteInfoSet_resetSprite(int spriteId) {
|
||||
_spriteTable[spriteId].field_80 = 0;
|
||||
_spriteTable[spriteId].zorderPriority = 0;
|
||||
_spriteTable[spriteId].field_84 = 0;
|
||||
_spriteTable[spriteId].field_8C = 0;
|
||||
_spriteTable[spriteId].imgFlags = 0;
|
||||
_spriteTable[spriteId].field_90 = 0;
|
||||
}
|
||||
|
||||
@ -1271,6 +1272,7 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
|
||||
wiz.img.y1 = spi->ty - spr_wiz_y;
|
||||
}
|
||||
|
||||
//wiz.field_23EA = spi->field_90;
|
||||
spi->curImageState = wiz.img.state = resState;
|
||||
spi->curResId = wiz.img.resNum = resId;
|
||||
wiz.processFlags = kWPFNewState | kWPFSetPos;
|
||||
@ -1334,11 +1336,17 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
|
||||
}
|
||||
if (spr_flags & kSFNeedPaletteRemap)
|
||||
wiz.img.flags |= kWIFRemapPalette;
|
||||
if (spi->field_84) {
|
||||
wiz.processFlags |= 0x200000;
|
||||
//wiz.field_390 = spi->field_84;
|
||||
//wiz.zorder = spi->zorderPriority;
|
||||
}
|
||||
if (spi->maskImgResNum) {
|
||||
wiz.processFlags |= kWPFMaskImg;
|
||||
wiz.maskImgResNum = spi->maskImgResNum;
|
||||
}
|
||||
wiz.processFlags |= kWPFNewFlags;
|
||||
wiz.img.flags |= spi->imgFlags;
|
||||
|
||||
if (spr_flags & kSFRotated) {
|
||||
wiz.processFlags |= kWPFRotate;
|
||||
@ -1348,7 +1356,7 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
|
||||
wiz.processFlags |= kWPFZoom;
|
||||
wiz.zoom = spi->zoom;
|
||||
}
|
||||
spi->imgFlags = wiz.img.flags;
|
||||
spi->curImgFlags = wiz.img.flags;
|
||||
|
||||
if (spi->groupNum && (_spriteGroups[spi->groupNum].flags & kSGFClipBox)) {
|
||||
if (spi->bbox.intersects(_spriteGroups[spi->groupNum].bbox)) {
|
||||
@ -1406,16 +1414,15 @@ void ScummEngine_v90he::saveOrLoadSpriteData(Serializer *s, uint32 savegameVersi
|
||||
MKLINE(SpriteInfo, delayCount, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, curAngle, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, curZoom, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, imgFlags, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, curImgFlags, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_74, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, delayAmount, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, maskImgResNum, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_80, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_84, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, classFlags, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_8C, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, imgFlags, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_90, sleInt32, VER(48)),
|
||||
MKLINE(SpriteInfo, field_94, sleInt32, VER(48)),
|
||||
MKEND()
|
||||
};
|
||||
|
||||
@ -1430,8 +1437,6 @@ void ScummEngine_v90he::saveOrLoadSpriteData(Serializer *s, uint32 savegameVersi
|
||||
MKLINE(SpriteGroup, ty, sleInt32, VER(48)),
|
||||
MKLINE(SpriteGroup, dstResNum, sleInt32, VER(48)),
|
||||
MKLINE(SpriteGroup, scaling, sleInt32, VER(48)),
|
||||
MK_OBSOLETE(SpriteGroup, scaleX, sleInt32, VER(48), VER(48)),
|
||||
MK_OBSOLETE(SpriteGroup, scaleY, sleInt32, VER(48), VER(48)),
|
||||
MKLINE(SpriteGroup, scale_x_ratio_mul, sleInt32, VER(48)),
|
||||
MKLINE(SpriteGroup, scale_x_ratio_div, sleInt32, VER(48)),
|
||||
MKLINE(SpriteGroup, scale_y_ratio_mul, sleInt32, VER(48)),
|
||||
|
@ -72,16 +72,15 @@ struct SpriteInfo {
|
||||
int32 delayCount;
|
||||
int32 curAngle;
|
||||
int32 curZoom;
|
||||
int32 imgFlags;
|
||||
int32 curImgFlags;
|
||||
int32 field_74;
|
||||
int32 delayAmount;
|
||||
int32 maskImgResNum;
|
||||
int32 field_80;
|
||||
int32 field_84;
|
||||
int32 classFlags;
|
||||
int32 field_8C;
|
||||
int32 imgFlags;
|
||||
int32 field_90;
|
||||
int32 field_94;
|
||||
};
|
||||
|
||||
struct SpriteGroup {
|
||||
@ -92,8 +91,6 @@ struct SpriteGroup {
|
||||
int32 ty;
|
||||
int32 dstResNum;
|
||||
int32 scaling;
|
||||
// int32 scaleX;
|
||||
// int32 scaleY;
|
||||
int32 scale_x_ratio_mul;
|
||||
int32 scale_x_ratio_div;
|
||||
int32 scale_y_ratio_mul;
|
||||
|
Loading…
x
Reference in New Issue
Block a user