[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.405,2.406 script_v100he.cpp,2.102,2.103 script_v72he.cpp,2.225,2.226 script_v7he.cpp,2.136,2.137 script_v80he.cpp,2.81,2.82 script_v90he.cpp,2.198,2.199 wiz_he.cpp,2.25,2.26 wiz_he.h,2.11,2.12
kirben
kirben at users.sourceforge.net
Wed Mar 30 03:50:34 CEST 2005
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27535/scumm
Modified Files:
intern.h script_v100he.cpp script_v72he.cpp script_v7he.cpp
script_v80he.cpp script_v90he.cpp wiz_he.cpp wiz_he.h
Log Message:
Cleanup
Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.405
retrieving revision 2.406
diff -u -d -r2.405 -r2.406
--- intern.h 29 Mar 2005 14:11:08 -0000 2.405
+++ intern.h 30 Mar 2005 11:49:51 -0000 2.406
@@ -717,6 +717,7 @@
#endif
const OpcodeEntryV72he *_opcodesV72he;
+ WizParameters _wizParams;
public:
ScummEngine_v72he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v70he(detector, syst, gs, md5sum) {}
@@ -740,8 +741,9 @@
int readFileToArray(int slot, int32 size);
void writeFileFromArray(int slot, int resID);
+ 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 captureWizImage(int restype, int resnum, const Common::Rect& r, bool frontBuffer, int compType);
- void displayWizImage(const WizImage *pwi);
void getWizImageDim(int resnum, int state, int32 &w, int32 &h);
uint8 *drawWizImage(int restype, const WizImage *pwi);
void drawWizPolygon(int resnum, int state, int id, int flags);
@@ -867,7 +869,6 @@
const OpcodeEntryV90he *_opcodesV90he;
FloodStateParameters _floodStateParams;
- WizParameters _wizParams;
int _curMaxSpriteId;
int _curSpriteId;
@@ -891,8 +892,6 @@
virtual void executeOpcode(byte i);
virtual const char *getOpcodeDesc(byte i);
- void drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r);
- void displayWizComplexImage(const WizParameters *params);
void createWizEmptyImage(const WizParameters *params);
void fillWizRect(const WizParameters *params);
void processWizImage(const WizParameters *params);
Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.102
retrieving revision 2.103
diff -u -d -r2.102 -r2.103
--- script_v100he.cpp 29 Mar 2005 14:11:08 -0000 2.102
+++ script_v100he.cpp 30 Mar 2005 11:49:52 -0000 2.103
@@ -854,17 +854,15 @@
type = 1;
break;
case 40:
- {
- WizImage wi;
- wi.flags = 0;
- wi.y1 = y1;
- wi.x1 = x1;
- wi.resNum = num;
- wi.state = 0;
- displayWizImage(&wi);
+ _wizParams.processFlags |= kWPFSetPos;
+ _wizParams.img.flags = 0;
+ _wizParams.img.state = 0;
+ _wizParams.img.y1 = y1;
+ _wizParams.img.x1 = x1;
+ _wizParams.img.resNum = num;
+ displayWizComplexImage(&_wizParams);
type = 3;
- }
break;
default:
error("o100_unknownE0: default case %d", subOp);
@@ -1255,12 +1253,13 @@
pop();
break;
case 55:
+ _wizParams.processFlags |= kWPFSetPos | kWPFNewState | kWPFNewFlags;
_wizParams.img.flags = pop();
_wizParams.img.state = pop();
_wizParams.img.y1 = pop();
_wizParams.img.x1 = pop();
_wizParams.img.resNum = pop();
- displayWizImage(&_wizParams.img);
+ displayWizComplexImage(&_wizParams);
break;
case 57:
_wizParams.processFlags |= 0x8000;
Index: script_v72he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v72he.cpp,v
retrieving revision 2.225
retrieving revision 2.226
diff -u -d -r2.225 -r2.226
--- script_v72he.cpp 28 Mar 2005 11:38:04 -0000 2.225
+++ script_v72he.cpp 30 Mar 2005 11:49:52 -0000 2.226
@@ -1610,13 +1610,13 @@
}
void ScummEngine_v72he::o72_drawWizImage() {
- WizImage wi;
- wi.flags = pop();
- wi.y1 = pop();
- wi.x1 = pop();
- wi.resNum = pop();
- wi.state = 0;
- displayWizImage(&wi);
+ _wizParams.processFlags |= kWPFSetPos | kWPFNewFlags;
+ _wizParams.img.flags = pop();
+ _wizParams.img.state = 0;
+ _wizParams.img.y1 = pop();
+ _wizParams.img.x1 = pop();
+ _wizParams.img.resNum = pop();
+ displayWizComplexImage(&_wizParams);
}
void ScummEngine_v72he::o72_unknownCF() {
Index: script_v7he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v7he.cpp,v
retrieving revision 2.136
retrieving revision 2.137
diff -u -d -r2.136 -r2.137
--- script_v7he.cpp 28 Mar 2005 10:02:21 -0000 2.136
+++ script_v7he.cpp 30 Mar 2005 11:49:53 -0000 2.137
@@ -759,12 +759,14 @@
a->_clipOverride.bottom = args[2];
break;
case 42:
- // drawWizImage related
- warning("o70_kernelSetFunctions: unhandled case 42");
+ _wiz._rectOverrideEnabled = true;
+ _wiz._rectOverride.left = args[1];
+ _wiz._rectOverride.top = args[2];
+ _wiz._rectOverride.right = args[3];
+ _wiz._rectOverride.bottom = args[4];
break;
case 43:
- // drawWizImage related
- warning("o70_kernelSetFunctions: unhandled case 43");
+ _wiz._rectOverrideEnabled = false;
break;
default:
error("o70_kernelSetFunctions: default case %d (param count %d)", args[0], num);
Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.81
retrieving revision 2.82
diff -u -d -r2.81 -r2.82
--- script_v80he.cpp 28 Mar 2005 10:02:21 -0000 2.81
+++ script_v80he.cpp 30 Mar 2005 11:49:53 -0000 2.82
@@ -587,12 +587,12 @@
}
void ScummEngine_v80he::o80_drawWizPolygon() {
- WizImage wi;
- wi.x1 = wi.y1 = pop();
- wi.resNum = pop();
- wi.state = 0;
- wi.flags = kWIFIsPolygon;
- displayWizImage(&wi);
+ _wizParams.processFlags |= kWPFSetPos | kWPFNewFlags;
+ _wizParams.img.flags = kWIFIsPolygon;
+ _wizParams.img.state = 0;
+ _wizParams.img.y1 = _wizParams.img.x1 = pop();
+ _wizParams.img.resNum = pop();
+ displayWizComplexImage(&_wizParams);
}
void ScummEngine_v80he::o80_unknownE0() {
@@ -631,17 +631,15 @@
}
break;
case 63:
- {
- WizImage wi;
- wi.flags = 0;
- wi.y1 = y1;
- wi.x1 = x1;
- wi.resNum = num;
- wi.state = 0;
- displayWizImage(&wi);
+ _wizParams.processFlags |= kWPFSetPos;
+ _wizParams.img.flags = 0;
+ _wizParams.img.state = 0;
+ _wizParams.img.y1 = y1;
+ _wizParams.img.x1 = x1;
+ _wizParams.img.resNum = num;
+ displayWizComplexImage(&_wizParams);
type = 3;
- }
break;
case 66:
type = 1;
Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.198
retrieving revision 2.199
diff -u -d -r2.198 -r2.199
--- script_v90he.cpp 29 Mar 2005 14:11:08 -0000 2.198
+++ script_v90he.cpp 30 Mar 2005 11:49:53 -0000 2.199
@@ -570,12 +570,13 @@
_wizParams.img.flags = pop();
break;
case 10:
+ _wizParams.processFlags |= kWPFSetPos | kWPFNewState | kWPFNewFlags;
_wizParams.img.flags = pop();
_wizParams.img.state = pop();
_wizParams.img.y1 = pop();
_wizParams.img.x1 = pop();
_wizParams.img.resNum = pop();
- displayWizImage(&_wizParams.img);
+ displayWizComplexImage(&_wizParams);
break;
case 11:
_wizParams.img.resNum = pop();
@@ -2231,12 +2232,14 @@
_fullRedraw = 1;
break;
case 42:
- // drawWizImage related
- warning("o90_kernelSetFunctions: unhandled case 42");
+ _wiz._rectOverrideEnabled = true;
+ _wiz._rectOverride.left = args[1];
+ _wiz._rectOverride.top = args[2];
+ _wiz._rectOverride.right = args[3];
+ _wiz._rectOverride.bottom = args[4];
break;
case 43:
- // drawWizImage related
- warning("o90_kernelSetFunctions: unhandled case 43");
+ _wiz._rectOverrideEnabled = false;
break;
case 714:
break;
Index: wiz_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/wiz_he.cpp,v
retrieving revision 2.25
retrieving revision 2.26
diff -u -d -r2.25 -r2.26
--- wiz_he.cpp 28 Mar 2005 13:17:46 -0000 2.25
+++ wiz_he.cpp 30 Mar 2005 11:49:53 -0000 2.26
@@ -33,6 +33,7 @@
_imagesNum = 0;
memset(&_images, 0, sizeof(_images));
memset(&_polygons, 0, sizeof(_polygons));
+ _rectOverrideEnabled = false;
}
void Wiz::imageNumClear() {
@@ -828,18 +829,6 @@
}
}
-void ScummEngine_v72he::displayWizImage(const WizImage *pwi) {
- if (_fullRedraw) {
- assert(_wiz._imagesNum < ARRAYSIZE(_wiz._images));
- memcpy(&_wiz._images[_wiz._imagesNum], pwi, sizeof(WizImage));
- ++_wiz._imagesNum;
- } else if (pwi->flags & kWIFIsPolygon) {
- drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags);
- } else {
- drawWizImage(rtImage, pwi);
- }
-}
-
void ScummEngine_v72he::getWizImageDim(int resnum, int state, int32 &w, int32 &h) {
uint8 *dataPtr = getResourceAddress(rtImage, resnum);
assert(dataPtr);
@@ -884,6 +873,16 @@
warning("WizImage printing is unimplemented");
return NULL;
}
+
+ Common::Rect rImage(pwi->x1, pwi->y1, pwi->x1 + width, pwi->y1 + height);
+ if (_wiz._rectOverrideEnabled == true) {
+ if (rImage.intersects(_wiz._rectOverride)) {
+ rImage.clip(_wiz._rectOverride);
+ } else {
+ return 0;
+ }
+ }
+
uint32 cw, ch;
if (pwi->flags & kWIFBlitToMemBuffer) {
dst = (uint8 *)malloc(width * height);
@@ -902,6 +901,8 @@
ch = pvs->h;
}
Common::Rect rScreen(cw, ch);
+
+
// XXX handle 'XMAP' / 'RMAP' data
if (comp == 1) {
if (pwi->flags & 0x80) {
@@ -924,7 +925,6 @@
}
if (!(pwi->flags & kWIFBlitToMemBuffer)) {
- Common::Rect rImage(pwi->x1, pwi->y1, pwi->x1 + width, pwi->y1 + height);
if (rImage.intersects(rScreen)) {
rImage.clip(rScreen);
if (!(pwi->flags & kWIFBlitToFrontVideoBuffer) && (pwi->flags & (kWIFBlitToFrontVideoBuffer | kWIFMarkBufferDirty))) {
@@ -1156,7 +1156,7 @@
free(cursor);
}
-void ScummEngine_v90he::drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r) {
+void ScummEngine_v72he::drawWizComplexPolygon(int resnum, int state, int po_x, int po_y, int arg14, int angle, int zoom, const Common::Rect *r) {
Common::Point pts[4];
int32 w, h;
getWizImageDim(resnum, state, w, h);
@@ -1184,8 +1184,7 @@
warning("drawWizComplexPolygon() partially implemented");
}
-void ScummEngine_v90he::displayWizComplexImage(const WizParameters *params) {
- // XXX merge with displayWizImage
+void ScummEngine_v72he::displayWizComplexImage(const WizParameters *params) {
if (params->processFlags & 0x80000) {
warning("displayWizComplexImage() unhandled flags = 0x80000");
}
Index: wiz_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/wiz_he.h,v
retrieving revision 2.11
retrieving revision 2.12
diff -u -d -r2.11 -r2.12
--- wiz_he.h 26 Mar 2005 06:00:58 -0000 2.11
+++ wiz_he.h 30 Mar 2005 11:49:53 -0000 2.12
@@ -116,6 +116,8 @@
Wiz();
void imageNumClear();
+ Common::Rect _rectOverride;
+ bool _rectOverrideEnabled;
void polygonClear();
void polygonLoad(const uint8 *polData);
More information about the Scummvm-git-logs
mailing list