[Scummvm-cvs-logs] SF.net SVN: scummvm: [30289] scummvm/trunk/engines/scumm/he

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Sun Jan 6 07:21:05 CET 2008


Revision: 30289
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30289&view=rev
Author:   Kirben
Date:     2008-01-05 22:21:04 -0800 (Sat, 05 Jan 2008)

Log Message:
-----------
Resort a few cases and opcodes in HE code.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/he/script_v72he.cpp
    scummvm/trunk/engines/scumm/he/script_v90he.cpp

Modified: scummvm/trunk/engines/scumm/he/script_v72he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/script_v72he.cpp	2008-01-06 03:04:45 UTC (rev 30288)
+++ scummvm/trunk/engines/scumm/he/script_v72he.cpp	2008-01-06 06:21:04 UTC (rev 30289)
@@ -1054,6 +1054,11 @@
 		_actorClipOverride.left = pop();
 		adjustRect(_actorClipOverride);
 		break;
+	case 65: // HE 98+
+		j = pop();
+		i = pop();
+		a->putActor(i, j);
+		break;
 	case 67: // HE 99+
 		a->_clipOverride.bottom = pop();
 		a->_clipOverride.right = pop();
@@ -1061,11 +1066,6 @@
 		a->_clipOverride.left = pop();
 		adjustRect(a->_clipOverride);
 		break;
-	case 65: // HE 98+
-		j = pop();
-		i = pop();
-		a->putActor(i, j);
-		break;
 	case 68: // HE 90+
 		k = pop();
 		a->setHEFlag(1, k);

Modified: scummvm/trunk/engines/scumm/he/script_v90he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/script_v90he.cpp	2008-01-06 03:04:45 UTC (rev 30288)
+++ scummvm/trunk/engines/scumm/he/script_v90he.cpp	2008-01-06 06:21:04 UTC (rev 30289)
@@ -391,210 +391,6 @@
 	}
 }
 
-void ScummEngine_v90he::o90_min() {
-	int a = pop();
-	int b = pop();
-
-	if (b < a) {
-		push(b);
-	} else {
-		push(a);
-	}
-}
-
-void ScummEngine_v90he::o90_max() {
-	int a = pop();
-	int b = pop();
-
-	if (b > a) {
-		push(b);
-	} else {
-		push(a);
-	}
-}
-
-void ScummEngine_v90he::o90_sin() {
-	double a = pop() * PI / 180.;
-	push((int)(sin(a) * 100000));
-}
-
-void ScummEngine_v90he::o90_cos() {
-	double a = pop() * PI / 180.;
-	push((int)(cos(a) * 100000));
-}
-
-void ScummEngine_v90he::o90_sqrt() {
-	int i = pop();
-	if (i < 2) {
-		push(i);
-	} else {
-		push((int)sqrt((double)(i + 1)));
-	}
-}
-
-void ScummEngine_v90he::o90_atan2() {
-	int y = pop();
-	int x = pop();
-	int a = (int)(atan2((double)y, (double)x) * 180. / PI);
-	if (a < 0) {
-		a += 360;
-	}
-	push(a);
-}
-
-void ScummEngine_v90he::o90_getSegmentAngle() {
-	int y1 = pop();
-	int x1 = pop();
-	int dy = y1 - pop();
-	int dx = x1 - pop();
-	int a = (int)(atan2((double)dy, (double)dx) * 180. / PI);
-	if (a < 0) {
-		a += 360;
-	}
-	push(a);
-}
-
-void ScummEngine_v90he::o90_getActorData() {
-	Actor *a;
-
-	int subOp = pop();
-	int val = pop();
-	int act = pop();
-
-	a = derefActor(act, "o90_getActorData");
-
-	switch (subOp) {
-	case 1:
-		push(a->isUserConditionSet(val));
-		break;
-	case 2:
-		assertRange(0, val, 15, "o90_getActorData: Limb");
-		push(a->_cost.frame[val]);
-		break;
-	case 3:
-		push(a->getAnimSpeed());
-		break;
-	case 4:
-		push(a->_shadowMode);
-		break;
-	case 5:
-		push(a->_layer);
-		break;
-	case 6:
-		push(a->_hePaletteNum);
-		break;
-	default:
-		error("o90_getActorData: Unknown actor property %d", subOp);
-	}
-}
-
-void ScummEngine_v90he::o90_startScriptUnk() {
-	int args[25];
-	int script, cycle;
-	byte flags;
-
-	getStackList(args, ARRAYSIZE(args));
-	cycle = pop();
-	script = pop();
-	flags = fetchScriptByte();
-	runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args, cycle);
-}
-
-void ScummEngine_v90he::o90_jumpToScriptUnk() {
-	int args[25];
-	int script, cycle;
-	byte flags;
-
-	getStackList(args, ARRAYSIZE(args));
-	cycle = pop();
-	script = pop();
-	flags = fetchScriptByte();
-	stopObjectCode();
-	runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args, cycle);
-}
-
-void ScummEngine_v90he::o90_videoOps() {
-	// Uses Smacker video
-	int status = fetchScriptByte();
-	int subOp = status - 49;
-
-	switch (subOp) {
-	case 0:
-		copyScriptString(_videoParams.filename, sizeof(_videoParams.filename));
-		_videoParams.status = status;
-		break;
-	case 5:
-		_videoParams.flags |= pop();
-		break;
-	case 8:
-		memset(_videoParams.filename, 0, sizeof(_videoParams.filename));
-		_videoParams.unk2 = pop();
-		break;
-	case 14:
-		_videoParams.wizResNum = pop();
-		if (_videoParams.wizResNum)
-			_videoParams.flags |= 2;
-		break;
-	case 116:
-		_videoParams.status = status;
-		break;
-	case 206:
-		if (_videoParams.status == 49) {
-			// Start video
-			if (_videoParams.flags == 0)
-				_videoParams.flags = 4;
-
-			const char *filename = (char *)_videoParams.filename + convertFilePath(_videoParams.filename);
-			if (_videoParams.flags & 2) {
-				VAR(119) = _moviePlay->load(filename, _videoParams.flags, _videoParams.wizResNum);
-			} else {
-				VAR(119) = _moviePlay->load(filename, _videoParams.flags);
-			}
-		} else if (_videoParams.status == 165) {
-			// Stop video
-			_moviePlay->closeFile();
-		}
-		break;
-	default:
-		error("o90_videoOps: unhandled case %d", subOp);
-	}
-}
-
-void ScummEngine_v90he::o90_getVideoData() {
-	// Uses Smacker video
-	byte subOp = fetchScriptByte();
-	subOp -= 32;
-
-	switch (subOp) {
-	case 0:		// Get width
-		pop();
-		push(_moviePlay->getWidth());
-		break;
-	case 1:		// Get height
-		pop();
-		push(_moviePlay->getHeight());
-		break;
-	case 4:		// Get frame count
-		pop();
-		push(_moviePlay->getFrameCount());
-		break;
-	case 20:	// Get current frame
-		pop();
-		push(_moviePlay->getCurFrame());
-		break;
-	case 31:	// Get image number
-		pop();
-		push(_moviePlay->getImageNum());
-		break;
-	case 107:	// Get statistics
-		debug(0, "o90_getVideoData: subOp 107 stub (%d, %d)", pop(), pop());
-		push(0);
-		break;
-	default:
-		error("o90_getVideoData: unhandled case %d", subOp);
-	}
-}
-
 void ScummEngine_v90he::o90_wizImageOps() {
 	int a, b;
 
@@ -815,6 +611,69 @@
 	}
 }
 
+void ScummEngine_v90he::o90_min() {
+	int a = pop();
+	int b = pop();
+
+	if (b < a) {
+		push(b);
+	} else {
+		push(a);
+	}
+}
+
+void ScummEngine_v90he::o90_max() {
+	int a = pop();
+	int b = pop();
+
+	if (b > a) {
+		push(b);
+	} else {
+		push(a);
+	}
+}
+
+void ScummEngine_v90he::o90_sin() {
+	double a = pop() * PI / 180.;
+	push((int)(sin(a) * 100000));
+}
+
+void ScummEngine_v90he::o90_cos() {
+	double a = pop() * PI / 180.;
+	push((int)(cos(a) * 100000));
+}
+
+void ScummEngine_v90he::o90_sqrt() {
+	int i = pop();
+	if (i < 2) {
+		push(i);
+	} else {
+		push((int)sqrt((double)(i + 1)));
+	}
+}
+
+void ScummEngine_v90he::o90_atan2() {
+	int y = pop();
+	int x = pop();
+	int a = (int)(atan2((double)y, (double)x) * 180. / PI);
+	if (a < 0) {
+		a += 360;
+	}
+	push(a);
+}
+
+void ScummEngine_v90he::o90_getSegmentAngle() {
+	int y1 = pop();
+	int x1 = pop();
+	int dy = y1 - pop();
+	int dx = x1 - pop();
+	int a = (int)(atan2((double)dy, (double)dx) * 180. / PI);
+	if (a < 0) {
+		a += 360;
+	}
+	push(a);
+}
+
 void ScummEngine_v90he::o90_getDistanceBetweenPoints() {
 	int x1, y1, z1, x2, y2, z2, dx, dy, dz, d;
 
@@ -1762,6 +1621,147 @@
 	}
 }
 
+void ScummEngine_v90he::o90_getActorData() {
+	Actor *a;
+
+	int subOp = pop();
+	int val = pop();
+	int act = pop();
+
+	a = derefActor(act, "o90_getActorData");
+
+	switch (subOp) {
+	case 1:
+		push(a->isUserConditionSet(val));
+		break;
+	case 2:
+		assertRange(0, val, 15, "o90_getActorData: Limb");
+		push(a->_cost.frame[val]);
+		break;
+	case 3:
+		push(a->getAnimSpeed());
+		break;
+	case 4:
+		push(a->_shadowMode);
+		break;
+	case 5:
+		push(a->_layer);
+		break;
+	case 6:
+		push(a->_hePaletteNum);
+		break;
+	default:
+		error("o90_getActorData: Unknown actor property %d", subOp);
+	}
+}
+
+void ScummEngine_v90he::o90_startScriptUnk() {
+	int args[25];
+	int script, cycle;
+	byte flags;
+
+	getStackList(args, ARRAYSIZE(args));
+	cycle = pop();
+	script = pop();
+	flags = fetchScriptByte();
+	runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args, cycle);
+}
+
+void ScummEngine_v90he::o90_jumpToScriptUnk() {
+	int args[25];
+	int script, cycle;
+	byte flags;
+
+	getStackList(args, ARRAYSIZE(args));
+	cycle = pop();
+	script = pop();
+	flags = fetchScriptByte();
+	stopObjectCode();
+	runScript(script, (flags == 199 || flags == 200), (flags == 195 || flags == 200), args, cycle);
+}
+
+void ScummEngine_v90he::o90_videoOps() {
+	// Uses Smacker video
+	int status = fetchScriptByte();
+	int subOp = status - 49;
+
+	switch (subOp) {
+	case 0:
+		copyScriptString(_videoParams.filename, sizeof(_videoParams.filename));
+		_videoParams.status = status;
+		break;
+	case 5:
+		_videoParams.flags |= pop();
+		break;
+	case 8:
+		memset(_videoParams.filename, 0, sizeof(_videoParams.filename));
+		_videoParams.unk2 = pop();
+		break;
+	case 14:
+		_videoParams.wizResNum = pop();
+		if (_videoParams.wizResNum)
+			_videoParams.flags |= 2;
+		break;
+	case 116:
+		_videoParams.status = status;
+		break;
+	case 206:
+		if (_videoParams.status == 49) {
+			// Start video
+			if (_videoParams.flags == 0)
+				_videoParams.flags = 4;
+
+			const char *filename = (char *)_videoParams.filename + convertFilePath(_videoParams.filename);
+			if (_videoParams.flags & 2) {
+				VAR(119) = _moviePlay->load(filename, _videoParams.flags, _videoParams.wizResNum);
+			} else {
+				VAR(119) = _moviePlay->load(filename, _videoParams.flags);
+			}
+		} else if (_videoParams.status == 165) {
+			// Stop video
+			_moviePlay->closeFile();
+		}
+		break;
+	default:
+		error("o90_videoOps: unhandled case %d", subOp);
+	}
+}
+
+void ScummEngine_v90he::o90_getVideoData() {
+	// Uses Smacker video
+	byte subOp = fetchScriptByte();
+	subOp -= 32;
+
+	switch (subOp) {
+	case 0:		// Get width
+		pop();
+		push(_moviePlay->getWidth());
+		break;
+	case 1:		// Get height
+		pop();
+		push(_moviePlay->getHeight());
+		break;
+	case 4:		// Get frame count
+		pop();
+		push(_moviePlay->getFrameCount());
+		break;
+	case 20:	// Get current frame
+		pop();
+		push(_moviePlay->getCurFrame());
+		break;
+	case 31:	// Get image number
+		pop();
+		push(_moviePlay->getImageNum());
+		break;
+	case 107:	// Get statistics
+		debug(0, "o90_getVideoData: subOp 107 stub (%d, %d)", pop(), pop());
+		push(0);
+		break;
+	default:
+		error("o90_getVideoData: unhandled case %d", subOp);
+	}
+}
+
 void ScummEngine_v90he::o90_floodFill() {
 	byte subOp = fetchScriptByte();
 	subOp -= 54;
@@ -1798,6 +1798,13 @@
 	}
 }
 
+void ScummEngine_v90he::o90_mod() {
+	int a = pop();
+	if (a == 0)
+		error("modulus by zero");
+	push(pop() % a);
+}
+
 void ScummEngine_v90he::o90_shl() {
 	int a = pop();
 	push(pop() << a);
@@ -1813,13 +1820,6 @@
 	push(pop() ^ a);
 }
 
-void ScummEngine_v90he::o90_mod() {
-	int a = pop();
-	if (a == 0)
-		error("modulus by zero");
-	push(pop() % a);
-}
-
 void ScummEngine_v90he::o90_findAllObjectsWithClassOf() {
 	int args[16];
 	int cond, num, cls, tmp;


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.




More information about the Scummvm-git-logs mailing list