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

sev at users.sourceforge.net sev at users.sourceforge.net
Sat Nov 24 22:56:36 CET 2007


Revision: 29630
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29630&view=rev
Author:   sev
Date:     2007-11-24 13:56:36 -0800 (Sat, 24 Nov 2007)

Log Message:
-----------
Implement soccer opcode 1006. Nothing is tested and is pure processing
of bb86 utility.

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/he/logic_he.cpp
    scummvm/trunk/engines/scumm/he/logic_he.h

Modified: scummvm/trunk/engines/scumm/he/logic_he.cpp
===================================================================
--- scummvm/trunk/engines/scumm/he/logic_he.cpp	2007-11-24 21:45:39 UTC (rev 29629)
+++ scummvm/trunk/engines/scumm/he/logic_he.cpp	2007-11-24 21:56:36 UTC (rev 29630)
@@ -827,6 +827,11 @@
 	return 1;
 }
 
+LogicHEsoccer::LogicHEsoccer(ScummEngine_v90he *vm) : LogicHE(vm) {
+	// Originally it used 0x1b0d bytes
+	_userDataD = (double *)calloc(1732, sizeof(double));
+}
+
 int32 LogicHEsoccer::dispatch(int op, int numArgs, int32 *args) {
 	int res = 0;
 
@@ -901,4 +906,21 @@
 	return 1;
 }
 
+int LogicHEsoccer::op_1006(int32 *args) {
+	double a1 = args[1] * 0.01;
+	double a2 = args[2] * 0.01;
+	double a3 = args[3] * 0.01;
+	double var108, var109;
+
+	_userDataD[529] = args[4];
+
+	var108 = atan2(a1, a3) * _userDataD[523] - args[4];
+	var109 = _userDataD[526] - _userDataD[528] + (_userDataD[521] - atan2(_userDataD[524] - a2, a3)) * _userDataD[522];
+
+	writeScummVar(108, (int32)var108);
+	writeScummVar(109, (int32)var109);
+
+	return 1;
+}
+
 } // End of namespace Scumm

Modified: scummvm/trunk/engines/scumm/he/logic_he.h
===================================================================
--- scummvm/trunk/engines/scumm/he/logic_he.h	2007-11-24 21:45:39 UTC (rev 29629)
+++ scummvm/trunk/engines/scumm/he/logic_he.h	2007-11-24 21:56:36 UTC (rev 29630)
@@ -112,8 +112,11 @@
 };
 
 class LogicHEsoccer : public LogicHE {
+private:
+	double *_userDataD;
+
 public:
-	LogicHEsoccer(ScummEngine_v90he *vm) : LogicHE(vm) {}
+	LogicHEsoccer(ScummEngine_v90he *vm);
 
 	int versionID();
 	int32 dispatch(int op, int numArgs, int32 *args);
@@ -123,6 +126,7 @@
 	int op_1002(int32 *args);
 	int op_1003(int32 *args);
 	int op_1004(int32 *args);
+	int op_1006(int32 *args);
 };
 
 } // End of namespace Scumm


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