Remove resource type argument in wizImage functions, it is always rtImage.
Rename sprite flags/functions Remove unused sprite flags Switch sprite flags back to hex. for easier comparison svn-id: r17319
This commit is contained in:
parent
65596240d7
commit
cdd21c361b
8 changed files with 62 additions and 86 deletions
|
@ -743,9 +743,9 @@ protected:
|
||||||
|
|
||||||
void displayWizComplexImage(const WizParameters *params);
|
void displayWizComplexImage(const WizParameters *params);
|
||||||
void drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r);
|
void drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r);
|
||||||
void captureWizImage(int restype, int resnum, const Common::Rect& r, bool frontBuffer, int compType);
|
void captureWizImage(int resnum, const Common::Rect& r, bool frontBuffer, int compType);
|
||||||
void getWizImageDim(int resnum, int state, int32 &w, int32 &h);
|
void getWizImageDim(int resnum, int state, int32 &w, int32 &h);
|
||||||
uint8 *drawWizImage(int restype, const WizImage *pwi);
|
uint8 *drawWizImage(const WizImage *pwi);
|
||||||
void drawWizPolygon(int resnum, int state, int id, int flags);
|
void drawWizPolygon(int resnum, int state, int id, int flags);
|
||||||
void flushWizBuffer();
|
void flushWizBuffer();
|
||||||
|
|
||||||
|
@ -826,7 +826,7 @@ protected:
|
||||||
virtual const char *getOpcodeDesc(byte i);
|
virtual const char *getOpcodeDesc(byte i);
|
||||||
|
|
||||||
void loadImgSpot(int resId, int state, int16 &x, int16 &y);
|
void loadImgSpot(int resId, int state, int16 &x, int16 &y);
|
||||||
void loadWizCursor(int resId, int resType, bool state);
|
void loadWizCursor(int resId);
|
||||||
|
|
||||||
/* HE version 80 script opcodes */
|
/* HE version 80 script opcodes */
|
||||||
void o80_loadSBNG();
|
void o80_loadSBNG();
|
||||||
|
@ -896,8 +896,8 @@ protected:
|
||||||
void fillWizRect(const WizParameters *params);
|
void fillWizRect(const WizParameters *params);
|
||||||
void processWizImage(const WizParameters *params);
|
void processWizImage(const WizParameters *params);
|
||||||
int getWizImageStates(int resnum);
|
int getWizImageStates(int resnum);
|
||||||
int isWizPixelNonTransparent(int restype, int resnum, int state, int x, int y, int flags);
|
int isWizPixelNonTransparent(int resnum, int state, int x, int y, int flags);
|
||||||
uint8 getWizPixelColor(int restype, int resnum, int state, int x, int y, int flags);
|
uint8 getWizPixelColor(int resnum, int state, int x, int y, int flags);
|
||||||
int computeWizHistogram(int resnum, int state, int x, int y, int w, int h);
|
int computeWizHistogram(int resnum, int state, int x, int y, int w, int h);
|
||||||
|
|
||||||
uint8 *getHEPalette(int palSlot);
|
uint8 *getHEPalette(int palSlot);
|
||||||
|
@ -919,7 +919,7 @@ protected:
|
||||||
int spriteInfoGet_flagActive(int spriteId);
|
int spriteInfoGet_flagActive(int spriteId);
|
||||||
int spriteInfoGet_flagNeedPaletteRemap(int spriteId);
|
int spriteInfoGet_flagNeedPaletteRemap(int spriteId);
|
||||||
int spriteInfoGet_flags_22(int spriteId);
|
int spriteInfoGet_flags_22(int spriteId);
|
||||||
int spriteInfoGet_flags_23(int spriteId);
|
int spriteInfoGet_flagMarkDirty(int spriteId);
|
||||||
int spriteInfoGet_flagHasImage(int spriteId);
|
int spriteInfoGet_flagHasImage(int spriteId);
|
||||||
int spriteInfoGet_resId(int spriteId);
|
int spriteInfoGet_resId(int spriteId);
|
||||||
int spriteInfoGet_resState(int spriteId);
|
int spriteInfoGet_resState(int spriteId);
|
||||||
|
@ -969,7 +969,7 @@ protected:
|
||||||
void spriteInfoSet_flagActive(int spriteId, int value);
|
void spriteInfoSet_flagActive(int spriteId, int value);
|
||||||
void spriteInfoSet_flagNeedPaletteRemap(int spriteId, int value);
|
void spriteInfoSet_flagNeedPaletteRemap(int spriteId, int value);
|
||||||
void spriteInfoSet_flag22(int spriteId, int value);
|
void spriteInfoSet_flag22(int spriteId, int value);
|
||||||
void spriteInfoSet_flag23(int spriteId, int value);
|
void spriteInfoSet_flagMarkDirty(int spriteId, int value);
|
||||||
void spriteInfoSet_flagHasImage(int spriteId, int value);
|
void spriteInfoSet_flagHasImage(int spriteId, int value);
|
||||||
void spriteInfoSet_delay(int spriteId, int value);
|
void spriteInfoSet_delay(int spriteId, int value);
|
||||||
void spriteInfoSet_setClassFlags(int spriteId, int value);
|
void spriteInfoSet_setClassFlags(int spriteId, int value);
|
||||||
|
|
|
@ -2028,7 +2028,7 @@ void ScummEngine_v100he::o100_setSpriteInfo() {
|
||||||
spriteId++;
|
spriteId++;
|
||||||
|
|
||||||
for (; spriteId <= _curMaxSpriteId; spriteId++)
|
for (; spriteId <= _curMaxSpriteId; spriteId++)
|
||||||
spriteInfoSet_flag23(spriteId, args[0]);
|
spriteInfoSet_flagMarkDirty(spriteId, args[0]);
|
||||||
break;
|
break;
|
||||||
case 83:
|
case 83:
|
||||||
args[1] = pop();
|
args[1] = pop();
|
||||||
|
@ -2118,17 +2118,14 @@ void ScummEngine_v100he::o100_cursorCommand() {
|
||||||
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
|
_charsetColorMap[i] = _charsetData[_string[1]._default.charset][i] = (unsigned char)args[i];
|
||||||
break;
|
break;
|
||||||
case 0x80:
|
case 0x80:
|
||||||
a = pop();
|
|
||||||
loadWizCursor(a, rtInventory, 0);
|
|
||||||
break;
|
|
||||||
case 0x81:
|
case 0x81:
|
||||||
a = pop();
|
a = pop();
|
||||||
loadWizCursor(a, rtInventory, 0);
|
loadWizCursor(a);
|
||||||
break;
|
break;
|
||||||
case 0x82:
|
case 0x82:
|
||||||
pop();
|
pop();
|
||||||
a = pop();
|
a = pop();
|
||||||
loadWizCursor(a, rtInventory, 1);
|
loadWizCursor(a);
|
||||||
break;
|
break;
|
||||||
case 0x86: // SO_CURSOR_ON Turn cursor on
|
case 0x86: // SO_CURSOR_ON Turn cursor on
|
||||||
_cursor.state = 1;
|
_cursor.state = 1;
|
||||||
|
@ -2362,7 +2359,7 @@ void ScummEngine_v100he::o100_getWizData() {
|
||||||
x = pop();
|
x = pop();
|
||||||
state = pop();
|
state = pop();
|
||||||
resId = pop();
|
resId = pop();
|
||||||
push(getWizPixelColor(rtImage, resId, state, x, y, 0));
|
push(getWizPixelColor(resId, state, x, y, 0));
|
||||||
break;
|
break;
|
||||||
case 6:
|
case 6:
|
||||||
resId = pop();
|
resId = pop();
|
||||||
|
@ -2373,7 +2370,7 @@ void ScummEngine_v100he::o100_getWizData() {
|
||||||
x = pop();
|
x = pop();
|
||||||
state = pop();
|
state = pop();
|
||||||
resId = pop();
|
resId = pop();
|
||||||
push(isWizPixelNonTransparent(rtImage, resId, state, x, y, 0));
|
push(isWizPixelNonTransparent(resId, state, x, y, 0));
|
||||||
break;
|
break;
|
||||||
case 19:
|
case 19:
|
||||||
state = pop();
|
state = pop();
|
||||||
|
@ -2696,7 +2693,7 @@ void ScummEngine_v100he::o100_getSpriteInfo() {
|
||||||
case 82:
|
case 82:
|
||||||
spriteId = pop();
|
spriteId = pop();
|
||||||
if (spriteId)
|
if (spriteId)
|
||||||
push(spriteInfoGet_flags_23(spriteId));
|
push(spriteInfoGet_flagMarkDirty(spriteId));
|
||||||
else
|
else
|
||||||
push(0);
|
push(0);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -783,7 +783,7 @@ void ScummEngine_v72he::o72_captureWizImage() {
|
||||||
grab.right = pop() + 1;
|
grab.right = pop() + 1;
|
||||||
grab.top = pop();
|
grab.top = pop();
|
||||||
grab.left = pop();
|
grab.left = pop();
|
||||||
captureWizImage(rtImage, pop(), grab, false, true);
|
captureWizImage(pop(), grab, false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v72he::o72_getTimer() {
|
void ScummEngine_v72he::o72_getTimer() {
|
||||||
|
@ -887,7 +887,7 @@ void ScummEngine_v72he::o72_printWizImage() {
|
||||||
wi.x1 = wi.y1 = 0;
|
wi.x1 = wi.y1 = 0;
|
||||||
wi.state = 0;
|
wi.state = 0;
|
||||||
wi.flags = kWIFPrint;
|
wi.flags = kWIFPrint;
|
||||||
drawWizImage(rtImage, &wi);
|
drawWizImage(&wi);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v72he::o72_getArrayDimSize() {
|
void ScummEngine_v72he::o72_getArrayDimSize() {
|
||||||
|
|
|
@ -510,13 +510,10 @@ void ScummEngine_v80he::o80_cursorCommand() {
|
||||||
byte subOp = fetchScriptByte();
|
byte subOp = fetchScriptByte();
|
||||||
|
|
||||||
switch (subOp) {
|
switch (subOp) {
|
||||||
case 0x13: // Loads cursors from another resource
|
case 0x13:
|
||||||
a = pop();
|
|
||||||
loadWizCursor(a, rtInventory, 0);
|
|
||||||
break;
|
|
||||||
case 0x14:
|
case 0x14:
|
||||||
a = pop();
|
a = pop();
|
||||||
loadWizCursor(a, rtInventory, 1);
|
loadWizCursor(a);
|
||||||
break;
|
break;
|
||||||
case 0x90: // SO_CURSOR_ON Turn cursor on
|
case 0x90: // SO_CURSOR_ON Turn cursor on
|
||||||
_cursor.state = 1;
|
_cursor.state = 1;
|
||||||
|
|
|
@ -951,7 +951,7 @@ void ScummEngine_v90he::o90_getSpriteInfo() {
|
||||||
case 94:
|
case 94:
|
||||||
spriteId = pop();
|
spriteId = pop();
|
||||||
if (spriteId)
|
if (spriteId)
|
||||||
push(spriteInfoGet_flags_23(spriteId));
|
push(spriteInfoGet_flagMarkDirty(spriteId));
|
||||||
else
|
else
|
||||||
push(0);
|
push(0);
|
||||||
break;
|
break;
|
||||||
|
@ -1248,7 +1248,7 @@ void ScummEngine_v90he::o90_setSpriteInfo() {
|
||||||
spriteId++;
|
spriteId++;
|
||||||
|
|
||||||
for (; spriteId <= _curMaxSpriteId; spriteId++)
|
for (; spriteId <= _curMaxSpriteId; spriteId++)
|
||||||
spriteInfoSet_flag23(spriteId, args[0]);
|
spriteInfoSet_flagMarkDirty(spriteId, args[0]);
|
||||||
break;
|
break;
|
||||||
case 91:
|
case 91:
|
||||||
n = getStackList(args, ARRAYSIZE(args));
|
n = getStackList(args, ARRAYSIZE(args));
|
||||||
|
@ -1604,14 +1604,14 @@ void ScummEngine_v90he::o90_getWizData() {
|
||||||
x = pop();
|
x = pop();
|
||||||
state = pop();
|
state = pop();
|
||||||
resId = pop();
|
resId = pop();
|
||||||
push(isWizPixelNonTransparent(rtImage, resId, state, x, y, 0));
|
push(isWizPixelNonTransparent(resId, state, x, y, 0));
|
||||||
break;
|
break;
|
||||||
case 36:
|
case 36:
|
||||||
y = pop();
|
y = pop();
|
||||||
x = pop();
|
x = pop();
|
||||||
state = pop();
|
state = pop();
|
||||||
resId = pop();
|
resId = pop();
|
||||||
push(getWizPixelColor(rtImage, resId, state, x, y, 0));
|
push(getWizPixelColor(resId, state, x, y, 0));
|
||||||
break;
|
break;
|
||||||
case 100:
|
case 100:
|
||||||
h = pop();
|
h = pop();
|
||||||
|
|
|
@ -200,7 +200,7 @@ int ScummEngine_v90he::findSpriteWithClassOf(int x_pos, int y_pos, int spriteGro
|
||||||
y += h / 2;
|
y += h / 2;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(isWizPixelNonTransparent(rtImage, resId, state, x, y, spi->imgFlags))
|
if(isWizPixelNonTransparent(resId, state, x, y, spi->imgFlags))
|
||||||
return spi->id;
|
return spi->id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -267,10 +267,10 @@ int ScummEngine_v90he::spriteInfoGet_flags_22(int spriteId) {
|
||||||
return ((_spriteTable[spriteId].flags & kSFDelayed) != 0) ? 1 : 0;
|
return ((_spriteTable[spriteId].flags & kSFDelayed) != 0) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScummEngine_v90he::spriteInfoGet_flags_23(int spriteId) {
|
int ScummEngine_v90he::spriteInfoGet_flagMarkDirty(int spriteId) {
|
||||||
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
|
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
|
||||||
|
|
||||||
return ((_spriteTable[spriteId].flags & kSF23) != 0) ? 1 : 0;
|
return ((_spriteTable[spriteId].flags & kSFMarkDirty) != 0) ? 1 : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScummEngine_v90he::spriteInfoGet_flagHasImage(int spriteId) {
|
int ScummEngine_v90he::spriteInfoGet_flagHasImage(int spriteId) {
|
||||||
|
@ -667,13 +667,13 @@ void ScummEngine_v90he::spriteInfoSet_flag22(int spriteId, int value) {
|
||||||
_spriteTable[spriteId].flags &= ~kSFDelayed;
|
_spriteTable[spriteId].flags &= ~kSFDelayed;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v90he::spriteInfoSet_flag23(int spriteId, int value) {
|
void ScummEngine_v90he::spriteInfoSet_flagMarkDirty(int spriteId, int value) {
|
||||||
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
|
checkRange(_varNumSprites, 1, spriteId, "Invalid sprite %d");
|
||||||
|
|
||||||
if (value)
|
if (value)
|
||||||
_spriteTable[spriteId].flags |= kSF23 | kSFBlitDirectly;
|
_spriteTable[spriteId].flags |= kSFMarkDirty | kSFBlitDirectly;
|
||||||
else
|
else
|
||||||
_spriteTable[spriteId].flags &= ~(kSF23 | kSFBlitDirectly);
|
_spriteTable[spriteId].flags &= ~(kSFMarkDirty | kSFBlitDirectly);
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v90he::spriteInfoSet_flagHasImage(int spriteId, int value) {
|
void ScummEngine_v90he::spriteInfoSet_flagHasImage(int spriteId, int value) {
|
||||||
|
@ -768,7 +768,7 @@ void ScummEngine_v90he::spriteAddImageToList(int spriteId, int imageNum, int *sp
|
||||||
|
|
||||||
if (_spriteTable[spriteId].res_id) {
|
if (_spriteTable[spriteId].res_id) {
|
||||||
_spriteTable[spriteId].res_wiz_states = getWizImageStates(_spriteTable[spriteId].res_id);
|
_spriteTable[spriteId].res_wiz_states = getWizImageStates(_spriteTable[spriteId].res_id);
|
||||||
_spriteTable[spriteId].flags |= kSFActive | kSFDelayed | kSF23 | kSFBlitDirectly;
|
_spriteTable[spriteId].flags |= kSFActive | kSFDelayed | kSFMarkDirty | kSFBlitDirectly;
|
||||||
|
|
||||||
if (_spriteTable[spriteId].res_id != origResId || _spriteTable[spriteId].res_wiz_states != origResWizStates)
|
if (_spriteTable[spriteId].res_id != origResId || _spriteTable[spriteId].res_wiz_states != origResWizStates)
|
||||||
_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
|
_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
|
||||||
|
@ -835,9 +835,9 @@ void ScummEngine_v90he::spriteGroupSet_case0_3(int spriteGroupId, int value) {
|
||||||
for (int i = 1; i < _varNumSprites; i++) {
|
for (int i = 1; i < _varNumSprites; i++) {
|
||||||
if (_spriteTable[i].group_num == spriteGroupId) {
|
if (_spriteTable[i].group_num == spriteGroupId) {
|
||||||
if (value)
|
if (value)
|
||||||
_spriteTable[i].flags |= kSF23 | kSFBlitDirectly;
|
_spriteTable[i].flags |= kSFMarkDirty | kSFBlitDirectly;
|
||||||
else
|
else
|
||||||
_spriteTable[i].flags &= ~(kSF23 | kSFBlitDirectly);
|
_spriteTable[i].flags &= ~(kSFMarkDirty | kSFBlitDirectly);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1099,7 +1099,7 @@ void ScummEngine_v90he::spritesMarkDirty(bool unkFlag) {
|
||||||
for (int i = 0; i < _numSpritesToProcess; ++i) {
|
for (int i = 0; i < _numSpritesToProcess; ++i) {
|
||||||
SpriteInfo *spi = _activeSpritesTable[i];
|
SpriteInfo *spi = _activeSpritesTable[i];
|
||||||
if (!(spi->flags & (kSFNeedRedraw | kSF30))) {
|
if (!(spi->flags & (kSFNeedRedraw | kSF30))) {
|
||||||
if ((!unkFlag || spi->zorderPriority >= 0) && (spi->flags & kSF23)) {
|
if ((!unkFlag || spi->zorderPriority >= 0) && (spi->flags & kSFMarkDirty)) {
|
||||||
bool needRedraw = false;
|
bool needRedraw = false;
|
||||||
int lp = MIN(79, spi->bbox.left / 8);
|
int lp = MIN(79, spi->bbox.left / 8);
|
||||||
int rp = MIN(79, (spi->bbox.right + 7) / 8);
|
int rp = MIN(79, (spi->bbox.right + 7) / 8);
|
||||||
|
@ -1174,7 +1174,7 @@ void ScummEngine_v90he::spritesSortActiveSprites() {
|
||||||
SpriteInfo *spi = &_spriteTable[i];
|
SpriteInfo *spi = &_spriteTable[i];
|
||||||
|
|
||||||
if (spi->flags & kSFActive) {
|
if (spi->flags & kSFActive) {
|
||||||
if (!(spi->flags & kSF23)) {
|
if (!(spi->flags & kSFMarkDirty)) {
|
||||||
if (!(spi->flags & kSF30))
|
if (!(spi->flags & kSF30))
|
||||||
spi->flags |= kSFNeedRedraw;
|
spi->flags |= kSFNeedRedraw;
|
||||||
if (!(spi->flags & kSFImageless))
|
if (!(spi->flags & kSFImageless))
|
||||||
|
|
|
@ -26,38 +26,20 @@
|
||||||
namespace Scumm {
|
namespace Scumm {
|
||||||
|
|
||||||
enum SpriteFlags {
|
enum SpriteFlags {
|
||||||
kSFChanged = (1 << 0),
|
kSFChanged = 0x1,
|
||||||
kSFNeedRedraw = (1 << 1),
|
kSFNeedRedraw = 0x2,
|
||||||
kSF03 = (1 << 2),
|
kSFZoomed = 0x10,
|
||||||
kSF04 = (1 << 3),
|
kSFRotated = 0x20,
|
||||||
kSFZoomed = (1 << 4),
|
kSFDoubleBuffered = 0x1000,
|
||||||
kSFRotated = (1 << 5),
|
kSFYFlipped = 0x2000,
|
||||||
kSF07 = (1 << 6),
|
kSFXFlipped = 0x4000,
|
||||||
kSF08 = (1 << 7),
|
kSFActive = 0x8000,
|
||||||
kSF09 = (1 << 8),
|
kSFNeedPaletteRemap = 0x80000,
|
||||||
kSF10 = (1 << 9),
|
kSFDelayed = 0x200000,
|
||||||
kSF11 = (1 << 10),
|
kSFMarkDirty = 0x400000,
|
||||||
kSF12 = (1 << 11),
|
kSFBlitDirectly = 0x2000000,
|
||||||
kSFDoubleBuffered = (1 << 12),
|
kSF30 = 0x20000000,
|
||||||
kSFYFlipped = (1 << 13),
|
kSFImageless = 0x40000000
|
||||||
kSFXFlipped = (1 << 14),
|
|
||||||
kSFActive = (1 << 15),
|
|
||||||
kSF17 = (1 << 16),
|
|
||||||
kSF18 = (1 << 17),
|
|
||||||
kSF19 = (1 << 18),
|
|
||||||
kSFNeedPaletteRemap = (1 << 19),
|
|
||||||
kSF21 = (1 << 20),
|
|
||||||
kSFDelayed = (1 << 21),
|
|
||||||
kSF23 = (1 << 22),
|
|
||||||
kSF24 = (1 << 23),
|
|
||||||
kSF25 = (1 << 24),
|
|
||||||
kSFBlitDirectly = (1 << 25),
|
|
||||||
kSF27 = (1 << 26),
|
|
||||||
kSF28 = (1 << 27),
|
|
||||||
kSF29 = (1 << 28),
|
|
||||||
kSF30 = (1 << 29),
|
|
||||||
kSFImageless = (1 << 30),
|
|
||||||
kSF32 = (1 << 31)
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum SpriteGroupFlags {
|
enum SpriteGroupFlags {
|
||||||
|
|
|
@ -773,8 +773,8 @@ static int wizPackType0(uint8 *dst, const uint8 *src, int srcPitch, const Common
|
||||||
return size;
|
return size;
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v72he::captureWizImage(int resType, int resNum, const Common::Rect& r, bool frontBuffer, int compType) {
|
void ScummEngine_v72he::captureWizImage(int resNum, const Common::Rect& r, bool frontBuffer, int compType) {
|
||||||
debug(1, "ScummEngine_v72he::captureWizImage(%d, %d, %d, [%d,%d,%d,%d])", resType, resNum, compType, r.left, r.top, r.right, r.bottom);
|
debug(1, "ScummEngine_v72he::captureWizImage(%d, %d, [%d,%d,%d,%d])", resNum, compType, r.left, r.top, r.right, r.bottom);
|
||||||
uint8 *src = NULL;
|
uint8 *src = NULL;
|
||||||
VirtScreen *pvs = &virtscr[kMainVirtScreen];
|
VirtScreen *pvs = &virtscr[kMainVirtScreen];
|
||||||
if (frontBuffer) {
|
if (frontBuffer) {
|
||||||
|
@ -810,7 +810,7 @@ void ScummEngine_v72he::captureWizImage(int resType, int resNum, const Common::R
|
||||||
dataSize = (dataSize + 1) & ~1;
|
dataSize = (dataSize + 1) & ~1;
|
||||||
int wizSize = headerSize + dataSize;
|
int wizSize = headerSize + dataSize;
|
||||||
// write header
|
// write header
|
||||||
uint8 *wizImg = createResource(resType, resNum, dataSize + headerSize);
|
uint8 *wizImg = createResource(rtImage, resNum, dataSize + headerSize);
|
||||||
*(uint32 *)(wizImg + 0x00) = MKID('AWIZ');
|
*(uint32 *)(wizImg + 0x00) = MKID('AWIZ');
|
||||||
*(uint32 *)(wizImg + 0x04) = TO_BE_32(wizSize);
|
*(uint32 *)(wizImg + 0x04) = TO_BE_32(wizSize);
|
||||||
*(uint32 *)(wizImg + 0x08) = MKID('WIZH');
|
*(uint32 *)(wizImg + 0x08) = MKID('WIZH');
|
||||||
|
@ -859,10 +859,10 @@ void ScummEngine_v72he::getWizImageDim(int resnum, int state, int32 &w, int32 &h
|
||||||
h = READ_LE_UINT32(wizh + 0x8);
|
h = READ_LE_UINT32(wizh + 0x8);
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 *ScummEngine_v72he::drawWizImage(int restype, const WizImage *pwi) {
|
uint8 *ScummEngine_v72he::drawWizImage(const WizImage *pwi) {
|
||||||
debug(1, "drawWizImage(%d, %d, %d, %d, 0x%X)", restype, pwi->resNum, pwi->x1, pwi->y1, pwi->flags);
|
debug(1, "drawWizImage(%d, %d, %d, 0x%X)", pwi->resNum, pwi->x1, pwi->y1, pwi->flags);
|
||||||
uint8 *dst = NULL;
|
uint8 *dst = NULL;
|
||||||
uint8 *dataPtr = getResourceAddress(restype, pwi->resNum);
|
uint8 *dataPtr = getResourceAddress(rtImage, pwi->resNum);
|
||||||
if (dataPtr) {
|
if (dataPtr) {
|
||||||
uint8 *rmap = NULL;
|
uint8 *rmap = NULL;
|
||||||
uint8 *xmap = findWrappedBlock(MKID('XMAP'), dataPtr, pwi->state, 0);
|
uint8 *xmap = findWrappedBlock(MKID('XMAP'), dataPtr, pwi->state, 0);
|
||||||
|
@ -1046,7 +1046,7 @@ void ScummEngine_v72he::drawWizPolygon(int resnum, int state, int id, int flags)
|
||||||
wi.state = state;
|
wi.state = state;
|
||||||
wi.x1 = wi.y1 = 0;
|
wi.x1 = wi.y1 = 0;
|
||||||
wi.flags = kWIFBlitToMemBuffer;
|
wi.flags = kWIFBlitToMemBuffer;
|
||||||
uint8 *srcWizBuf = drawWizImage(rtImage, &wi);
|
uint8 *srcWizBuf = drawWizImage(&wi);
|
||||||
if (srcWizBuf) {
|
if (srcWizBuf) {
|
||||||
uint8 *dst;
|
uint8 *dst;
|
||||||
VirtScreen *pvs = &virtscr[kMainVirtScreen];
|
VirtScreen *pvs = &virtscr[kMainVirtScreen];
|
||||||
|
@ -1131,7 +1131,7 @@ void ScummEngine_v72he::flushWizBuffer() {
|
||||||
if (pwi->flags & kWIFIsPolygon) {
|
if (pwi->flags & kWIFIsPolygon) {
|
||||||
drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags);
|
drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags);
|
||||||
} else {
|
} else {
|
||||||
drawWizImage(rtImage, pwi);
|
drawWizImage(pwi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_wiz._imagesNum = 0;
|
_wiz._imagesNum = 0;
|
||||||
|
@ -1150,7 +1150,7 @@ void ScummEngine_v80he::loadImgSpot(int resId, int state, int16 &x, int16 &y) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ScummEngine_v80he::loadWizCursor(int resId, int resType, bool state) {
|
void ScummEngine_v80he::loadWizCursor(int resId) {
|
||||||
int16 x, y;
|
int16 x, y;
|
||||||
loadImgSpot(resId, 0, x, y);
|
loadImgSpot(resId, 0, x, y);
|
||||||
if (x < 0) {
|
if (x < 0) {
|
||||||
|
@ -1169,7 +1169,7 @@ void ScummEngine_v80he::loadWizCursor(int resId, int resType, bool state) {
|
||||||
wi.x1 = wi.y1 = 0;
|
wi.x1 = wi.y1 = 0;
|
||||||
wi.state = 0;
|
wi.state = 0;
|
||||||
wi.flags = kWIFBlitToMemBuffer;
|
wi.flags = kWIFBlitToMemBuffer;
|
||||||
uint8 *cursor = drawWizImage(rtImage, &wi);
|
uint8 *cursor = drawWizImage(&wi);
|
||||||
int32 cw, ch;
|
int32 cw, ch;
|
||||||
getWizImageDim(resId, 0, cw, ch);
|
getWizImageDim(resId, 0, cw, ch);
|
||||||
setCursorFromBuffer(cursor, cw, ch, cw);
|
setCursorFromBuffer(cursor, cw, ch, cw);
|
||||||
|
@ -1288,7 +1288,7 @@ void ScummEngine_v72he::displayWizComplexImage(const WizParameters *params) {
|
||||||
wi.flags = flags;
|
wi.flags = flags;
|
||||||
wi.unk = unk;
|
wi.unk = unk;
|
||||||
wi.paletteNum = paletteNum;
|
wi.paletteNum = paletteNum;
|
||||||
drawWizImage(rtImage, &wi);
|
drawWizImage(&wi);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1408,7 +1408,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
|
||||||
displayWizComplexImage(params);
|
displayWizComplexImage(params);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
captureWizImage(rtImage, params->img.resNum, params->box, (params->img.flags & kWIFBlitToFrontVideoBuffer) == kWIFBlitToFrontVideoBuffer, params->compType);
|
captureWizImage(params->img.resNum, params->box, (params->img.flags & kWIFBlitToFrontVideoBuffer) == kWIFBlitToFrontVideoBuffer, params->compType);
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
if (params->processFlags & kWPFUseFile) {
|
if (params->processFlags & kWPFUseFile) {
|
||||||
|
@ -1528,9 +1528,9 @@ int ScummEngine_v90he::getWizImageStates(int resnum) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int ScummEngine_v90he::isWizPixelNonTransparent(int restype, int resnum, int state, int x, int y, int flags) {
|
int ScummEngine_v90he::isWizPixelNonTransparent(int resnum, int state, int x, int y, int flags) {
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
uint8 *data = getResourceAddress(restype, resnum);
|
uint8 *data = getResourceAddress(rtImage, resnum);
|
||||||
assert(data);
|
assert(data);
|
||||||
uint8 *wizh = findWrappedBlock(MKID('WIZH'), data, state, 0);
|
uint8 *wizh = findWrappedBlock(MKID('WIZH'), data, state, 0);
|
||||||
assert(wizh);
|
assert(wizh);
|
||||||
|
@ -1555,9 +1555,9 @@ int ScummEngine_v90he::isWizPixelNonTransparent(int restype, int resnum, int sta
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint8 ScummEngine_v90he::getWizPixelColor(int restype, int resnum, int state, int x, int y, int flags) {
|
uint8 ScummEngine_v90he::getWizPixelColor(int resnum, int state, int x, int y, int flags) {
|
||||||
uint8 color;
|
uint8 color;
|
||||||
uint8 *data = getResourceAddress(restype, resnum);
|
uint8 *data = getResourceAddress(rtImage, resnum);
|
||||||
assert(data);
|
assert(data);
|
||||||
uint8 *wizh = findWrappedBlock(MKID('WIZH'), data, state, 0);
|
uint8 *wizh = findWrappedBlock(MKID('WIZH'), data, state, 0);
|
||||||
assert(wizh);
|
assert(wizh);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue