defined some flags for HE wiz ; it should make the code more readable

svn-id: r16901
This commit is contained in:
Gregory Montoir 2005-02-24 20:20:35 +00:00
parent 976b988448
commit cc5e406cb5
7 changed files with 42 additions and 29 deletions

View file

@ -808,7 +808,7 @@ void ScummEngine_v72he::o72_printWizImage() {
wi.resNum = pop();
wi.x1 = wi.y1 = 0;
wi.state = 0;
wi.flags = 4;
wi.flags = kWIFPrint;
drawWizImage(rtImage, &wi);
}

View file

@ -588,7 +588,7 @@ void ScummEngine_v80he::o80_drawWizPolygon() {
wi.x1 = wi.y1 = pop();
wi.resNum = pop();
wi.state = 0;
wi.flags = 0x40;
wi.flags = kWIFIsPolygon;
displayWizImage(&wi);
}

View file

@ -500,12 +500,12 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.processMode = 1;
break;
case 3:
_wizParams.processFlags |= 0x800;
_wizParams.processFlags |= kWPFUseFile;
_wizParams.processMode = 3;
copyScriptString(_wizParams.filename);
break;
case 4:
_wizParams.processFlags |= 0x800;
_wizParams.processFlags |= kWPFUseFile;
_wizParams.processMode = 4;
copyScriptString(_wizParams.filename);
_wizParams.unk_14C = pop();
@ -520,15 +520,15 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.compType = pop();
break;
case 6:
_wizParams.processFlags |= 0x400;
_wizParams.processFlags |= kWPFNewState;
_wizParams.img.state = pop();
break;
case 7:
_wizParams.processFlags |= 0x10;
_wizParams.processFlags |= kWPFRotate;
_wizParams.angle = pop();
break;
case 8:
_wizParams.processFlags |= 0x20;
_wizParams.processFlags |= kWPFNewFlags;
_wizParams.img.flags = pop();
break;
case 10:
@ -571,7 +571,7 @@ void ScummEngine_v90he::o90_wizImageOps() {
}
break;
case 21:
_wizParams.processFlags |= 0x200;
_wizParams.processFlags |= kWPFClipBox;
_wizParams.box.bottom = pop();
_wizParams.box.right = pop();
_wizParams.box.top = pop();
@ -582,7 +582,7 @@ void ScummEngine_v90he::o90_wizImageOps() {
pop();
break;
case 46:
_wizParams.processFlags |= 8;
_wizParams.processFlags |= kWPFZoom;
_wizParams.zoom = pop();
break;
case 52:
@ -641,8 +641,8 @@ void ScummEngine_v90he::o90_wizImageOps() {
_wizParams.processMode = 8;
break;
case 200:
_wizParams.processFlags |= 0x23;
_wizParams.img.flags |= 0x40;
_wizParams.processFlags |= kWPFNewFlags | kWPFSetPos | 2;
_wizParams.img.flags |= kWIFIsPolygon;
_wizParams.unk_160 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
break;
case 209:

View file

@ -1194,7 +1194,7 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
spi->field_48 = wiz.img.state = res_state;
spi->field_4C = wiz.img.resNum = res_id;
wiz.processFlags = 0x401;
wiz.processFlags = kWPFNewState | kWPFSetPos;
spi->field_68 = spi->rot_angle;
spi->field_6C = spi->zoom;
spi->field_34 = wiz.img.x1;
@ -1222,6 +1222,8 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
// sar eax, 1
// mov ecx, eax
// neg ecx
// => ecx = - something / 2
ebx = -1234;
}
@ -1236,12 +1238,12 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
wiz.img.flags = 0x10;
if (spr_flags & kSF23)
wiz.img.flags = 0x410;
wiz.img.flags |= kWIFFlipX;
if (spr_flags & kSF22)
wiz.img.flags |= 0x800;
wiz.img.flags |= kWIFFlipY;
if (spr_flags & kSF21) {
wiz.img.flags &= ~(0x11);
wiz.img.flags |= 8;
wiz.img.flags |= kWIFBlitToFrontVideoBuffer;
}
if (spi->field_54) {
wiz.img.flags |= 0x200;
@ -1254,14 +1256,14 @@ void ScummEngine_v90he::spritesProcessWiz(bool arg) {
wiz.processFlags |= 0x80000;
//wiz.field_178 = spi->field_7C; // FIXME
}
wiz.processFlags |= 0x20;
wiz.processFlags |= kWPFNewFlags;
if (spr_flags & kSFRotated) {
wiz.processFlags |= 0x10;
wiz.processFlags |= kWPFRotate;
wiz.angle = spi->rot_angle;
}
if (spr_flags & kSFZoomed) {
wiz.processFlags |= 0x08;
wiz.processFlags |= kWPFZoom;
wiz.zoom = spi->zoom;
}
spi->imgFlags = wiz.img.flags;

View file

@ -47,8 +47,8 @@ enum SpriteFlags {
kSF19 = (1 << 18),
kSF20 = (1 << 19),
kSF21 = (1 << 20),
kSF22 = (1 << 21),
kSF23 = (1 << 22),
kSF22 = (1 << 21), // kSFYFlipped
kSF23 = (1 << 22), // kSFXFlipped
kSF24 = (1 << 23),
kSF25 = (1 << 24),
kSFBlitDirectly = (1 << 25),

View file

@ -1252,7 +1252,7 @@ void ScummEngine_v90he::processWizImage(const WizParameters *params) {
displayWizComplexImage(params);
break;
case 2:
captureWizImage(rtImage, params->img.resNum, params->box, (params->img.flags & 8) == 8, params->compType);
captureWizImage(rtImage, params->img.resNum, params->box, (params->img.flags & kWIFBlitToFrontVideoBuffer) == kWIFBlitToFrontVideoBuffer, params->compType);
break;
case 3:
if (params->processFlags & 0x800) {

View file

@ -69,15 +69,26 @@ struct WizParameters {
WizImage img;
};
enum WizImageFlags {
kWIFPrint = 0x4,
kWIFBlitToFrontVideoBuffer = 0x8,
kWIFBlitToMemBuffer = 0x20,
kWIFIsPolygon = 0x40,
kWIFFlipX = 0x400,
kWIFFlipY = 0x800
};
enum WizProcessFlags {
kWPFSetPos = 0x1,
kWPFZoom = 0x8,
kWPFRotate = 0x10,
kWPFNewFlags = 0x20,
kWPFClipBox = 0x200,
kWPFNewState = 0x400,
kWPFUseFile = 0x800
};
struct Wiz {
enum {
FW_PRINT = 0x4,
FW_MEM = 0x20,
FW_POLYGON = 0x40,
FW_XFLIP = 0x400,
FW_YFLIP = 0x800
};
enum {
NUM_POLYGONS = 200,
NUM_IMAGES = 255