[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.471,2.472 script_v100he.cpp,2.140,2.141 script_v90he.cpp,2.240,2.241 scumm.cpp,1.476,1.477 sprite_he.cpp,1.133,1.134 vars.cpp,1.127,1.128 wiz_he.cpp,2.67,2.68 wiz_he.h,2.18,2.19

kirben kirben at users.sourceforge.net
Fri Apr 29 22:25:25 CEST 2005


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7892/scumm

Modified Files:
	intern.h script_v100he.cpp script_v90he.cpp scumm.cpp 
	sprite_he.cpp vars.cpp wiz_he.cpp wiz_he.h 
Log Message:

Add expanded _wizParams used by HE100 games.
Add u32 version variable.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.471
retrieving revision 2.472
diff -u -d -r2.471 -r2.472
--- intern.h	29 Apr 2005 01:36:30 -0000	2.471
+++ intern.h	30 Apr 2005 05:25:05 -0000	2.472
@@ -876,7 +876,7 @@
 	void drawWizComplexPolygon(int resNum, int state, int po_x, int po_y, int xmapNum, int angle, int zoom, const Common::Rect *r, int flags, int dstResNum, int paletteNum);
 	void captureWizImage(int resNum, const Common::Rect& r, bool frontBuffer, int compType);
 	void getWizImageDim(int resNum, int state,  int32 &w, int32 &h);
-	uint8 *drawWizImage(int resNum, int state, int x1, int y1, int xmapNum, const Common::Rect *clipBox, int flags, int dstResNum, int paletteNum);
+	uint8 *drawWizImage(int resNum, int state, int x1, int y1, int zorder, int xmapNum, int field_390, const Common::Rect *clipBox, int flags, int dstResNum, int paletteNum);
 	void drawWizPolygon(int resNum, int state, int id, int flags, int xmapNum, int dstResNum, int paletteNum);
 	void flushWizBuffer();
 
@@ -953,6 +953,7 @@
 	byte VAR_NUM_UNK;
 	byte VAR_POLYGONS_ONLY;
 	byte VAR_WINDOWS_VERSION;
+	byte VAR_U32_VERSION;
 	byte VAR_WIZ_TCOLOR;
 };
 

Index: script_v100he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v100he.cpp,v
retrieving revision 2.140
retrieving revision 2.141
diff -u -d -r2.140 -r2.141
--- script_v100he.cpp	30 Apr 2005 01:26:57 -0000	2.140
+++ script_v100he.cpp	30 Apr 2005 05:25:05 -0000	2.141
@@ -1122,7 +1122,6 @@
 }
 
 void ScummEngine_v100he::o100_wizImageOps() {
-	byte filename[256];
 	int a, b;
 
 	byte subOp = fetchScriptByte();
@@ -1206,10 +1205,8 @@
 		break;
 	case 54:
 		_wizParams.processFlags |= 0x100000;
-		//_wizParams.unk_180 = pop();
-		//_wizParams.unk_184 = pop();
-		pop();
-		pop();
+		_wizParams.field_180 = pop();
+		_wizParams.field_184 = pop();
 		break;
 	case 55:
 		_wizParams.img.flags = pop();
@@ -1226,8 +1223,8 @@
 	case 58:
 		_wizParams.processFlags |= 0x1000 | 0x100 | 0x2;
 		_wizParams.processMode = 7;
-		_wizParams.unk_164 = pop();
-		_wizParams.unk_160 = pop();
+		_wizParams.field_168 = pop();
+		_wizParams.field_164 = pop();
 		_wizParams.compType = pop();
 		break;
 	case 64:
@@ -1247,7 +1244,7 @@
 	case 68:
 		_wizParams.processFlags |= kWPFNewFlags | kWPFSetPos | 2;
 		_wizParams.img.flags |= kWIFIsPolygon;
-		_wizParams.unk_160 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
+		_wizParams.field_164 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
 		break;
 	case 70:
 		_wizParams.processFlags |= kWPFXmapNum;
@@ -1266,11 +1263,11 @@
 			processWizImage(&_wizParams);
 		break;
 	case 128:
-		pop();
-		pop();
-		pop();
-		pop();
-		copyScriptString(filename, sizeof(filename));
+		_wizParams.field_239D = pop();
+		_wizParams.field_2399 = pop();
+		_wizParams.field_23A5 = pop();
+		_wizParams.field_23A1 = pop();
+		copyScriptString(_wizParams.string2, sizeof(_wizParams.string2));
 		_wizParams.processMode = 15;
 		break;
 	case 129:
@@ -1278,23 +1275,23 @@
 		break;
 	case 130:
 		_wizParams.processMode = 16;
-		pop();
-		pop();
-		copyScriptString(filename, sizeof(filename));
+		_wizParams.field_23AD = pop();
+		_wizParams.field_23A9 = pop();
+		copyScriptString(_wizParams.string1, sizeof(_wizParams.string1));
 		break;
 	case 131:
 		_wizParams.processMode = 13;
 		break;
 	case 133:
 		_wizParams.processMode = 17;
-		pop();
-		pop();
-		pop();
-		pop();
-		pop();
-		pop();
-		pop();
-		pop();
+		_wizParams.field_23CD = pop();
+		_wizParams.field_23C9 = pop();
+		_wizParams.field_23C5 = pop();
+		_wizParams.field_23C1 = pop();
+		_wizParams.field_23BD = pop();
+		_wizParams.field_23B9 = pop();
+		_wizParams.field_23B5 = pop();
+		_wizParams.field_23B1 = pop();
 		break;
 	case 134:
 		_wizParams.processFlags |= kWPFFillColor | kWPFClipBox2;

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.240
retrieving revision 2.241
diff -u -d -r2.240 -r2.241
--- script_v90he.cpp	27 Apr 2005 14:26:52 -0000	2.240
+++ script_v90he.cpp	30 Apr 2005 05:25:05 -0000	2.241
@@ -693,8 +693,8 @@
 	case 85: // HE99+
 		_wizParams.processFlags |= 0x1000 | 0x100 | 0x2;
 		_wizParams.processMode = 7;
-		_wizParams.unk_164 = pop();
-		_wizParams.unk_160 = pop();
+		_wizParams.field_168 = pop();
+		_wizParams.field_164 = pop();
 		_wizParams.compType = pop();
 		break;
 	case 87: // HE99+
@@ -744,7 +744,7 @@
 	case 200:
 		_wizParams.processFlags |= kWPFNewFlags | kWPFSetPos | 2;
 		_wizParams.img.flags |= kWIFIsPolygon;
-		_wizParams.unk_160 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
+		_wizParams.field_164 = _wizParams.img.y1 = _wizParams.img.x1 = pop();
 		break;
 	case 209:
 		if (_wizParams.img.resNum)

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.476
retrieving revision 1.477
diff -u -d -r1.476 -r1.477
--- scumm.cpp	29 Apr 2005 15:33:05 -0000	1.476
+++ scumm.cpp	30 Apr 2005 05:25:05 -0000	1.477
@@ -1293,6 +1293,7 @@
 	VAR_NUM_UNK = 0xFF;
 	VAR_POLYGONS_ONLY = 0xFF;
 	VAR_WINDOWS_VERSION = 0xFF;
+	VAR_U32_VERSION = 0xFF;
 	VAR_WIZ_TCOLOR = 0xFF;
 }
 

Index: sprite_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sprite_he.cpp,v
retrieving revision 1.133
retrieving revision 1.134
diff -u -d -r1.133 -r1.134
--- sprite_he.cpp	20 Apr 2005 10:38:13 -0000	1.133
+++ sprite_he.cpp	30 Apr 2005 05:25:05 -0000	1.134
@@ -1273,7 +1273,7 @@
 			wiz.img.y1 = spi->ty - spr_wiz_y;
 		}
 
-		//wiz.field_23EA = spi->field_90;
+		wiz.field_23EA = spi->field_90;
 		spi->curImageState = wiz.img.state = resState;
 		spi->curResId = wiz.img.resNum = resId;
 		wiz.processFlags = kWPFNewState | kWPFSetPos;
@@ -1339,8 +1339,8 @@
 			wiz.img.flags |= kWIFRemapPalette;
 		if (spi->field_84) {
 			wiz.processFlags |= 0x200000;
-			//wiz.field_390 = spi->field_84;
-			//wiz.zorder = spi->zorderPriority;
+			wiz.img.field_390 = spi->field_84;
+			wiz.img.zorder = spi->zorderPriority;
 		}
 		if (spi->maskImgResNum) {
 			wiz.processFlags |= kWPFMaskImg;

Index: vars.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/vars.cpp,v
retrieving revision 1.127
retrieving revision 1.128
diff -u -d -r1.127 -r1.128
--- vars.cpp	21 Apr 2005 03:29:31 -0000	1.127
+++ vars.cpp	30 Apr 2005 05:25:06 -0000	1.128
@@ -279,6 +279,7 @@
 	if (_heversion >= 95) {
 		VAR_NUM_SPRITE_GROUPS = 105;
 		VAR_NUM_SPRITES = 106;
+		VAR_U32_VERSION = 107;
 		VAR_WIZ_TCOLOR = 117;
 	}
 	if (_heversion >= 98) {
@@ -564,6 +565,7 @@
 	if (_heversion >= 95) {
 		VAR(VAR_NUM_SPRITE_GROUPS) = MAX(64, _numSprites / 4) - 1;
 		VAR(VAR_NUM_SPRITES) = _numSprites - 1;
+		VAR(VAR_U32_VERSION) = -1;
 		VAR(VAR_WIZ_TCOLOR) = 5;
 	}
 }

Index: wiz_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/wiz_he.cpp,v
retrieving revision 2.67
retrieving revision 2.68
diff -u -d -r2.67 -r2.68
--- wiz_he.cpp	30 Apr 2005 04:05:02 -0000	2.67
+++ wiz_he.cpp	30 Apr 2005 05:25:06 -0000	2.68
@@ -907,12 +907,12 @@
 		drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags, pwi->xmapNum, 0, 0);
 	} else {
 		const Common::Rect *r = NULL;
-		drawWizImage(pwi->resNum, pwi->state, pwi->x1, pwi->y1, pwi->xmapNum, r, pwi->flags, 0, 0);
+		drawWizImage(pwi->resNum, pwi->state, pwi->x1, pwi->y1, pwi->zorder, pwi->xmapNum, pwi->field_390, r, pwi->flags, 0, 0);
 	}
 }
 
-uint8 *ScummEngine_v72he::drawWizImage(int resNum, int state, int x1, int y1, int xmapNum, const Common::Rect *clipBox, int flags, int dstResNum, int paletteNum) {
-	debug(2, "drawWizImage(resNum %d, x1 %d, y1 %d, flags 0x%X, xmapNum %d dstResNum %d paletteNum %d)", resNum, x1, y1, flags, xmapNum, dstResNum, paletteNum);
+uint8 *ScummEngine_v72he::drawWizImage(int resNum, int state, int x1, int y1, int zorder, int xmapNum, int field_390, const Common::Rect *clipBox, int flags, int dstResNum, int paletteNum) {
+	debug(2, "drawWizImage(resNum %d, x1 %d y1 %d flags 0x%X zorder %d xmapNum %d field_390 %d dstResNum %d paletteNum %d)", resNum, x1, y1, flags, zorder, xmapNum, field_390, dstResNum, paletteNum);
 	uint8 *dst = NULL;
 	const uint8 *palPtr = NULL;
 	if (_heversion >= 99) {
@@ -1165,13 +1165,13 @@
 			break;
 		case 180:
 			flags |= kWIFFlipX | kWIFFlipY;
-			drawWizImage(resNum, state, x1, y1, xmapNum, r, flags, dstResNum, paletteNum);
+			drawWizImage(resNum, state, x1, y1, 0, xmapNum, 0, r, flags, dstResNum, paletteNum);
 			break;
 		case 90:
 			//drawWizComplexPolygonHelper(resNum, state, x1, y1, r, flags, dstResNum, paletteNum);
 			break;
 		case 0:
-			drawWizImage(resNum, state, x1, y1, xmapNum, r, flags, dstResNum, paletteNum);
+			drawWizImage(resNum, state, x1, y1, 0, xmapNum, 0, r, flags, dstResNum, paletteNum);
 			break;
 		default:
 			//drawWizPolygonTransform(resNum, state, pts, flags, VAR(VAR_WIZ_TCOLOR), r, dstResNum, paletteNum, xmapPtr);
@@ -1197,7 +1197,7 @@
 		error("Invalid point count %d for Polygon %d", wp->numVerts, id);
 	}
 	const Common::Rect *r = NULL;
-	uint8 *srcWizBuf = drawWizImage(resNum, state, 0, 0, xmapNum, r, kWIFBlitToMemBuffer, 0, paletteNum);
+	uint8 *srcWizBuf = drawWizImage(resNum, state, 0, 0, 0, xmapNum, 0, r, kWIFBlitToMemBuffer, 0, paletteNum);
 	if (srcWizBuf) {
 		uint8 *dst;
 		int32 wizW, wizH;
@@ -1294,7 +1294,7 @@
 			drawWizPolygon(pwi->resNum, pwi->state, pwi->x1, pwi->flags, pwi->xmapNum, 0, pwi->paletteNum);
 		} else {
 			const Common::Rect *r = NULL;
-			drawWizImage(pwi->resNum, pwi->state, pwi->x1, pwi->y1, pwi->xmapNum, r, pwi->flags, 0, pwi->paletteNum);
+			drawWizImage(pwi->resNum, pwi->state, pwi->x1, pwi->y1, pwi->zorder, pwi->xmapNum, pwi->field_390, r, pwi->flags, 0, pwi->paletteNum);
 		}
 	}
 	_wiz._imagesNum = 0;
@@ -1328,7 +1328,7 @@
 	}
 
 	const Common::Rect *r = NULL;
-	uint8 *cursor = drawWizImage(resId, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, 0);
+	uint8 *cursor = drawWizImage(resId, 0, 0, 0, 0, 0, 0, r, kWIFBlitToMemBuffer, 0, 0);
 	int32 cw, ch;	
 	getWizImageDim(resId, 0, cw, ch);
 	setCursorFromBuffer(cursor, cw, ch, cw);
@@ -1369,9 +1369,14 @@
 		po_y = params->img.y1;
 	}
 	int xmapNum = 0;
-	if (params->processFlags & 0x4) {
+	if (params->processFlags & kWPFXmapNum) {
 		xmapNum = params->xmapNum;
 	}
+	int field_390 = 0;
+	if (params->processFlags & 0x200000) {
+		field_390 = params->img.field_390;
+		warning("displayWizComplexImage() unhandled flag 0x200000");
+	}
 	const Common::Rect *r = NULL;
 	if (params->processFlags & kWPFClipBox) {
 		r = &params->box;
@@ -1405,9 +1410,11 @@
 		pwi->resNum = params->img.resNum;
 		pwi->x1 = po_x;
 		pwi->y1 = po_y;
+		pwi->zorder = params->img.zorder;
 		pwi->state = state;
 		pwi->flags = flags;
 		pwi->xmapNum = xmapNum;
+		pwi->field_390 = field_390;
 		pwi->paletteNum = paletteNum;
 		++_wiz._imagesNum;
 	} else {
@@ -1419,7 +1426,7 @@
 			if (flags & kWIFIsPolygon) {
 				drawWizPolygon(params->img.resNum, state, po_x, flags, xmapNum, dstResNum, paletteNum); // XXX , VAR(VAR_WIZ_TCOLOR));
 			} else {
-				drawWizImage(params->img.resNum, state, po_x, po_y, xmapNum, r, flags, dstResNum, paletteNum);
+				drawWizImage(params->img.resNum, state, po_x, po_y, params->img.zorder, xmapNum, field_390, r, flags, dstResNum, paletteNum);
 			}
 		}
 	}

Index: wiz_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/wiz_he.h,v
retrieving revision 2.18
retrieving revision 2.19
diff -u -d -r2.18 -r2.19
--- wiz_he.h	20 Apr 2005 06:55:30 -0000	2.18
+++ wiz_he.h	30 Apr 2005 05:25:06 -0000	2.19
@@ -39,41 +39,66 @@
 	int resNum;
 	int x1;
 	int y1;
-	int flags;
+	int zorder;
 	int state;
+	int flags;
 	int xmapNum;
+	int field_390;
 	int paletteNum;
 };
 
 struct WizParameters {
+	int field_0;
 	byte filename[260];
 	Common::Rect box;
 	int processFlags;
 	int processMode;
-	int unk_11C;
-	int unk_120;
-	int unk_124;
-	int unk_128;
-	int unk_12C;
-	int unk_130;
-	int unk_134;
-	int unk_138;
+	int field_11C;
+	int field_120;
+	int field_124;
+	int field_128;
+	int field_12C;
+	int field_130;
+	int field_134;
+	int field_138;
 	int compType;
 	int fileWriteMode;
 	int angle;
 	int zoom;
 	int xmapNum;
-	int unk_160;
-	int unk_164;
+	int field_164;
+	int field_168;
 	int resDefImgW;
 	int resDefImgH;
 	int maskImgResNum;
+	int field_180;
+	int field_184;
 	uint8 remapColor[256];
 	uint8 remapIndex[256];
 	int remapNum;
 	int dstResNum;
 	byte fillColor;
+	byte string1[4096];
+	byte string2[4096];
+	int field_2399;
+	int field_239D;
+	int field_23A1;
+	int field_23A5;
+	int field_23A9;
+	int field_23AD;
+	int field_23B1;
+	int field_23B5;
+	int field_23B9;
+	int field_23BD;
+	int field_23C1;
+	int field_23C5;
+	int field_23C9;
+	int field_23CD;
 	Common::Rect box2;
+	int field_23DE;
+	int spriteId;
+	int groupNum;
+	int field_23EA;
 	WizImage img;
 };
 





More information about the Scummvm-git-logs mailing list