[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.267,2.268 script_v6he.cpp,2.123,2.124 script_v80he.cpp,2.36,2.37 script_v90he.cpp,2.51,2.52

Travis Howell kirben at users.sourceforge.net
Tue Sep 21 17:23:34 CEST 2004


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

Modified Files:
	intern.h script_v6he.cpp script_v80he.cpp script_v90he.cpp 
Log Message:

Add missing cases


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.267
retrieving revision 2.268
diff -u -d -r2.267 -r2.268
--- intern.h	21 Sep 2004 05:59:26 -0000	2.267
+++ intern.h	22 Sep 2004 00:22:32 -0000	2.268
@@ -799,7 +799,7 @@
 	virtual void executeOpcode(byte i);
 	virtual const char *getOpcodeDesc(byte i);
 
-	void loadImgSpot(int resId, int state, Common::Point &spot);
+	void loadImgSpot(int resId, int state, uint32 &w, uint32 &h);
 	void loadWizCursor(int resId, int resType, bool state);
 	
 	/* HE version 80 script opcodes */

Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.123
retrieving revision 2.124
diff -u -d -r2.123 -r2.124
--- script_v6he.cpp	21 Sep 2004 21:10:22 -0000	2.123
+++ script_v6he.cpp	22 Sep 2004 00:22:32 -0000	2.124
@@ -1159,7 +1159,7 @@
 	if (slot >= _numArray)
 		error("o60_localizeArray(%d): array slot out of range", slot);
 
-	_arraySlot[slot] = vm.slot[_currentScript].number;
+	_arraySlot[slot] = script;
 }
 
 void ScummEngine_v60he::o60_localizeArray() {

Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.36
retrieving revision 2.37
diff -u -d -r2.36 -r2.37
--- script_v80he.cpp	21 Sep 2004 01:00:30 -0000	2.36
+++ script_v80he.cpp	22 Sep 2004 00:22:32 -0000	2.37
@@ -559,29 +559,30 @@
 	VAR(VAR_USERPUT) = _userPut;
 }
 
-void ScummEngine_v80he::loadImgSpot(int resId, int state, Common::Point &spot) {
+void ScummEngine_v80he::loadImgSpot(int resId, int state, uint32 &w, uint32 &h) {
 	const uint8 *dataPtr = getResourceAddress(rtImage, resId);
 	if (!dataPtr)
 		error("loadImgSpot: unknown Image %d", resId);
 
 	const uint8 *spotPtr = findWrappedBlock(MKID('SPOT'), dataPtr, state, 0);
 
-	if (!spotPtr) {
-		spot.x = spot.y = 0;
+	if (spotPtr) {
+		w = (int16)READ_LE_UINT32(spotPtr + 0);
+		h = (int16)READ_LE_UINT32(spotPtr + 4);
 	} else {
-		spot.x = (int16)READ_LE_UINT32(spotPtr + 0);
-		spot.y = (int16)READ_LE_UINT32(spotPtr + 4);
+		w = 0;
+		h = 0;
 	}
 }
 
 void ScummEngine_v80he::loadWizCursor(int resId, int resType, bool state) {
 	Common::Rect rc;
-	Common::Point spot;
+	uint32 w, h;
 
-	loadImgSpot(resId, 0, spot);
+	loadImgSpot(resId, 0, w, h);
 
-	rc.top = spot.x;
-	rc.right = spot.y;
+	rc.top = w;
+	rc.right = h;
 
 	rc.top = MAX((int)rc.top, 0);
 	rc.right = MAX((int)rc.right, 0);

Index: script_v90he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v90he.cpp,v
retrieving revision 2.51
retrieving revision 2.52
diff -u -d -r2.51 -r2.52
--- script_v90he.cpp	21 Sep 2004 09:09:51 -0000	2.51
+++ script_v90he.cpp	22 Sep 2004 00:22:32 -0000	2.52
@@ -774,40 +774,54 @@
 }
 
 void ScummEngine_v90he::o90_unknown29() {
+	int state, resId;
+	uint32 w, h;
+
 	int subOp = fetchScriptByte();
 	subOp -= 30;
 
 	switch (subOp) {
 	case 0:
-		pop();
-		pop();
+		state = pop();
+		resId = pop();
+		loadImgSpot(resId, state, w, h);
+		push(w);
 		break;
 	case 1:
-		pop();
-		pop();
+		state = pop();
+		resId = pop();
+		loadImgSpot(resId, state, w, h);
+		push(h);
 		break;
 	case 2:
-		pop();
-		pop();
+		state = pop();
+		resId = pop();
+		getWizImageDim(resId, state, w, h);
+		push(w);
 		break;
 	case 3:
-		pop();
-		pop();
+		state = pop();
+		resId = pop();
+		getWizImageDim(resId, state, w, h);
+		push(h);
 		break;
 	case 6:
 		pop();
+		push(0);
 		break;
 	case 15:
 		pop();
 		pop();
 		pop();
 		pop();
+		push(0);
 		break;
 	case 36:
 		pop();
 		pop();
 		pop();
 		pop();
+		push(0);
 		break;
 	case 100:
 		pop();
@@ -816,11 +830,11 @@
 		pop();
 		pop();
 		pop();
+		push(0);
 		break;
 	default:
 		error("o90_unknown29: Unknown case %d", subOp);
 	}
-	push(0);
 
 	debug(1,"o90_unknown29 stub (%d)", subOp);
 }





More information about the Scummvm-git-logs mailing list