[Scummvm-cvs-logs] SF.net SVN: scummvm:[35905] scummvm/trunk/engines/kyra

lordhoto at users.sourceforge.net lordhoto at users.sourceforge.net
Sun Jan 18 18:24:53 CET 2009


Revision: 35905
          http://scummvm.svn.sourceforge.net/scummvm/?rev=35905&view=rev
Author:   lordhoto
Date:     2009-01-18 17:24:47 +0000 (Sun, 18 Jan 2009)

Log Message:
-----------
- Fixed bug in script code of LoL
- Cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/script.cpp
    scummvm/trunk/engines/kyra/script.h

Modified: scummvm/trunk/engines/kyra/script.cpp
===================================================================
--- scummvm/trunk/engines/kyra/script.cpp	2009-01-18 17:17:39 UTC (rev 35904)
+++ scummvm/trunk/engines/kyra/script.cpp	2009-01-18 17:24:47 UTC (rev 35905)
@@ -152,9 +152,9 @@
 void EMCInterpreter::init(EMCState *scriptStat, const EMCData *data) {
 	scriptStat->dataPtr = data;
 	scriptStat->ip = 0;
-	scriptStat->stack[60] = 0;
-	scriptStat->bp = 62;
-	scriptStat->sp = 60;
+	scriptStat->stack[EMCState::kStackLastEntry] = 0;
+	scriptStat->bp = EMCState::kStackSize+1;
+	scriptStat->sp = EMCState::kStackLastEntry;
 }
 
 bool EMCInterpreter::start(EMCState *script, int function) {
@@ -346,7 +346,7 @@
 		break;
 
 	case 1:
-		if (script->sp >= 60) {
+		if (script->sp >= EMCState::kStackLastEntry) {
 			script->ip = 0;
 		} else {
 			script->bp = script->stack[script->sp++];
@@ -519,12 +519,12 @@
 }
 
 void EMCInterpreter::cmd_setRetAndJmp(EMCState* script) {
-	if (script->sp >= 60) {
+	if (script->sp >= EMCState::kStackLastEntry) {
 		script->ip = 0;
 	} else {
 		script->retValue = script->stack[script->sp++];
 		uint16 temp = script->stack[script->sp++];
-		script->stack[60] = 0;
+		script->stack[EMCState::kStackLastEntry] = 0;
 		script->ip = &script->dataPtr->data[temp];
 	}
 }

Modified: scummvm/trunk/engines/kyra/script.h
===================================================================
--- scummvm/trunk/engines/kyra/script.h	2009-01-18 17:17:39 UTC (rev 35904)
+++ scummvm/trunk/engines/kyra/script.h	2009-01-18 17:24:47 UTC (rev 35905)
@@ -47,13 +47,18 @@
 };
 
 struct EMCState {
+	enum {
+		kStackSize = 100,
+		kStackLastEntry = kStackSize - 1
+	};
+
 	const uint16 *ip;
 	const EMCData *dataPtr;
 	int16 retValue;
 	uint16 bp;
 	uint16 sp;
-	int16 regs[30];		// VM registers
-	int16 stack[100];	// VM stack
+	int16 regs[30];				// VM registers
+	int16 stack[kStackSize];	// VM stack
 };
 
 #define stackPos(x) (script->stack[script->sp+x])


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