[Scummvm-cvs-logs] SF.net SVN: scummvm: [31718] scummvm/trunk/engines/made/script.cpp

john_doe at users.sourceforge.net john_doe at users.sourceforge.net
Fri Apr 25 13:07:57 CEST 2008


Revision: 31718
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31718&view=rev
Author:   john_doe
Date:     2008-04-25 04:07:56 -0700 (Fri, 25 Apr 2008)

Log Message:
-----------
Fixed cmd_rand and cmd_randomize and some cleanup.

Modified Paths:
--------------
    scummvm/trunk/engines/made/script.cpp

Modified: scummvm/trunk/engines/made/script.cpp
===================================================================
--- scummvm/trunk/engines/made/script.cpp	2008-04-25 11:05:56 UTC (rev 31717)
+++ scummvm/trunk/engines/made/script.cpp	2008-04-25 11:07:56 UTC (rev 31718)
@@ -442,7 +442,6 @@
 	int16 objectIndex = _stack.top();
 	int16 value = _vm->_dat->getObjectProperty(objectIndex, propertyId);
 	debug(4, "value = %04X(%d)\n", value, value);
-	//fflush(stdout); g_system->delayMillis(5000);
 	_stack.setTop(value);
 }
 
@@ -451,7 +450,6 @@
 	int16 propertyId = _stack.pop();
 	int16 objectIndex = _stack.top();
 	value = _vm->_dat->setObjectProperty(objectIndex, propertyId, value);
-	//fflush(stdout); g_system->delayMillis(5000);
 	_stack.setTop(value);
 }
 
@@ -481,9 +479,9 @@
 }
 
 void ScriptInterpreter::cmd_vref() {
+	int16 value = 0;
 	int16 index = _stack.pop();
 	int16 objectIndex = _stack.top();
-	int16 value = 0;
 	debug(4, "index = %d; objectIndex = %d\n", index, objectIndex); fflush(stdout);
 	if (objectIndex > 0) {
 		Object *obj = _vm->_dat->getObject(objectIndex);
@@ -507,9 +505,11 @@
 
 void ScriptInterpreter::cmd_vsize() {
 	int16 objectIndex = _stack.top();
-	if (objectIndex < 1) objectIndex = 1;	// HACK
-	Object *obj = _vm->_dat->getObject(objectIndex);
-	int16 size = obj->getVectorSize();
+	int16 size = 0;
+	if (objectIndex > 0) {
+		Object *obj = _vm->_dat->getObject(objectIndex);
+		size = obj->getVectorSize();
+	}
 	_stack.setTop(size);
 }
 
@@ -522,7 +522,6 @@
 	int16 funcResult = _stack.top();
 	_stack.setStackPos(_localStackPos);
 	_localStackPos = kScriptStackLimit - _stack.pop();
-	//_localStackPos = _stack.pop();
 	_runningScriptObjectIndex = _stack.pop();
 	_codeBase = _vm->_dat->getObject(_runningScriptObjectIndex)->getData();
 	_codeIp = _codeBase + _stack.pop();
@@ -544,7 +543,6 @@
 	debug(4, "argc = %d; _runningScriptObjectIndex = %04X\n", argc, _runningScriptObjectIndex); fflush(stdout);
 	_codeBase = _vm->_dat->getObject(_runningScriptObjectIndex)->getData();
 	_codeIp = _codeBase;
-	//_vm->_dat->dumpObject(_runningScriptObjectIndex);
 }
 
 void ScriptInterpreter::cmd_svar() {
@@ -623,11 +621,12 @@
 }
 
 void ScriptInterpreter::cmd_rand() {
-	_stack.setTop(_vm->_rnd->getRandomNumber(3));
+	_stack.setTop(_vm->_rnd->getRandomNumber(_stack.top() - 1));
 }
 
 void ScriptInterpreter::cmd_randomize() {
-	_stack.setTop(_vm->_rnd->getSeed());
+	_vm->_rnd->setSeed(g_system->getMillis());
+	_stack.setTop(0);
 }
 
 void ScriptInterpreter::cmd_send() {


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