[Scummvm-cvs-logs] CVS: scummvm/scumm logic_he.cpp,2.15,2.16 logic_he.h,2.10,2.11

Eugene Sandulenko sev at users.sourceforge.net
Tue May 17 16:22:21 CEST 2005


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

Modified Files:
	logic_he.cpp logic_he.h 
Log Message:
Update with our own PI and atan2().


Index: logic_he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/logic_he.cpp,v
retrieving revision 2.15
retrieving revision 2.16
diff -u -d -r2.15 -r2.16
--- logic_he.cpp	17 May 2005 23:03:25 -0000	2.15
+++ logic_he.cpp	17 May 2005 23:21:20 -0000	2.16
@@ -37,18 +37,6 @@
 	free(_userDataD);
 }
 
-double LogicHE::fpatan(double st0, double st1) {
-	// TODO: Still incomplete
-
-	if (st0 == 0)
-		return 0;
-
-	if (st1 == 0 && st0 < 0)
-		return 3.14159265358;
-
-	return atan(st1 / st0);
-}
-
 int LogicHE::versionID() {
 	return 1;
 }
@@ -161,7 +149,7 @@
 int32 LogicHErace::op_1003(int32 *args) {
 	int value = args[2] ? args[2] : 1;
 
-	writeScummVar(108, (int32)(fpatan(args[1], args[0]) * RAD2DEG * value));
+	writeScummVar(108, (int32)(atan2(args[0], args[1]) * RAD2DEG * value));
 
 	return 1;
 }
@@ -302,9 +290,9 @@
 
 	expr = a2 * _userDataD[17] + a1 * _userDataD[14] + a0 * _userDataD[11];
 
-	res1 = (fpatan(expr, a2 * _userDataD[15] + a1 * _userDataD[12] + a0 * _userDataD[9]) * RAD2DEG) 
+	res1 = (atan2(a2 * _userDataD[15] + a1 * _userDataD[12] + a0 * _userDataD[9], expr) * RAD2DEG) 
 			/ _userData[526];
-	res2 = (fpatan(expr, a2 * _userDataD[16] + a1 * _userDataD[13] + a0 * _userDataD[10]) * RAD2DEG
+	res2 = (atan2(a2 * _userDataD[16] + a1 * _userDataD[13] + a0 * _userDataD[10], expr) * RAD2DEG
 			- _userData[528]) / _userData[527];
 	
 	writeScummVar(108, (int32)res1);
@@ -432,11 +420,11 @@
 	double a1 = (double)args[1] * 1.745328888888889e-2;
 
 	for (int i = 0; i <= 6; i += 2) {
-		at = fpatan(data[i], data[i + 1]);
+		at = atan2(data[i + 1], data[i]);
 		sq = sqrt(fabs(data[i]) * fabs(data[i]) + fabs(data[i + 1]) * fabs(data[i + 1]));
 
 		if (at <= 0)
-			at += 6.283184;
+			at += 2 * PI;
 
 		data[i] = cos(at + a1) * sq;
 		data[i + 1] = sin(at + a1) * sq;

Index: logic_he.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/logic_he.h,v
retrieving revision 2.10
retrieving revision 2.11
diff -u -d -r2.10 -r2.11
--- logic_he.h	17 May 2005 23:03:25 -0000	2.10
+++ logic_he.h	17 May 2005 23:21:21 -0000	2.11
@@ -49,8 +49,6 @@
 
 	virtual int versionID();
 	virtual int32 dispatch(int op, int numArgs, int32 *args);
-
-	double fpatan(double st0, double st1);
 };
 
 class LogicHErace : public LogicHE {





More information about the Scummvm-git-logs mailing list