[Scummvm-cvs-logs] CVS: scummvm/bs2 interpreter.cpp,1.9,1.10 interpreter.h,1.6,1.7

Torbj?rn Andersson eriktorbjorn at users.sourceforge.net
Sat Sep 20 05:42:06 CEST 2003


Update of /cvsroot/scummvm/scummvm/bs2
In directory sc8-pr-cvs1:/tmp/cvs-serv1427

Modified Files:
	interpreter.cpp interpreter.h 
Log Message:
cleanup


Index: interpreter.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/interpreter.cpp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- interpreter.cpp	13 Sep 2003 12:08:17 -0000	1.9
+++ interpreter.cpp	20 Sep 2003 12:41:41 -0000	1.10
@@ -19,20 +19,18 @@
 
 #include "stdafx.h"
 
-#ifndef INSIDE_LINC			// Are we running in linc?
 #include "console.h"
-#endif
-
 #include "driver/driver96.h"
 #include "interpreter.h"
 
+// This file serves two purposes. It is compiled as part of the test functions
+// of Linc, and also as part of the game
 
+// I assume Linc was the name of some sort of development tool. Anyway, I've
+// removed the pieces of code that were labelled as INSIDE_LINC, because they
+// didn't look easily portable.
 
-//		This file serves two purposes. It is compiled as part of the test functions
-//		of Linc, and also as part of the game
-
-
-//		The machine code table
+// The machine code table
 
 int32 FN_test_function(int32 *params);
 int32 FN_test_flags(int32 *params);
@@ -50,11 +48,11 @@
 int32 FN_interact(int32 *);
 int32 FN_choose(int32 *);
 int32 FN_walk(int32 *);
-int32 FN_walk_to_anim(int32 *);					// walk to start position of anim
-int32 FN_turn(int32 *);							// turn to (dir)
-int32 FN_stand_at(int32 *);						// stand at (x,y,dir)
-int32 FN_stand(int32 *);						// stand facing (dir)
-int32 FN_stand_after_anim(int32 *);				// stand at end position of anim
+int32 FN_walk_to_anim(int32 *);		// walk to start position of anim
+int32 FN_turn(int32 *);			// turn to (dir)
+int32 FN_stand_at(int32 *);		// stand at (x,y,dir)
+int32 FN_stand(int32 *);		// stand facing (dir)
+int32 FN_stand_after_anim(int32 *);	// stand at end position of anim
 int32 FN_pause(int32 *);
 int32 FN_mega_table_anim(int32 *);
 int32 FN_add_menu_object(int32 *);
@@ -154,16 +152,15 @@
 
 #define MAX_FN_NUMBER	117
 
-extern int32 (*McodeTable[])(int32 *);
+extern int32 (*McodeTable[]) (int32 *);
 
-#ifndef INSIDE_LINC
-int32 * globalInterpreterVariables2 = NULL;		// Point to the global varibale data
-int		g_debugFlag = 0;						// Set this to turn debugging on
-#endif
+// Point to the global variable data
+int32 *globalInterpreterVariables2 = NULL;
 
+int g_debugFlag = 0;	// Set this to turn debugging on
 
-int32 (*McodeTable[MAX_FN_NUMBER+1])(int32 *) =
-{	FN_test_function,
+int32 (*McodeTable[MAX_FN_NUMBER + 1]) (int32 *) = {
+	FN_test_function,
 	FN_test_flags,
 	FN_register_start_point,
 	FN_init_background,
@@ -283,320 +280,276 @@
 	FN_change_shadows,
 };
 
-#define CHECKSTACKPOINTER2 ASSERT((stackPointer2>=0)&&(stackPointer2<STACK_SIZE));
-#define	PUSHONSTACK(x) {stack2[stackPointer2] = (x);stackPointer2++;CHECKSTACKPOINTER2;}
-#define POPOFFSTACK(x) {x=stack2[stackPointer2-1];stackPointer2--;CHECKSTACKPOINTER2;}
-#define DOOPERATION(x) {stack2[stackPointer2-2] = (x);stackPointer2--;CHECKSTACKPOINTER2;}
+#define CHECKSTACKPOINTER2 ASSERT(stackPointer2 >= 0 && stackPointer2 < STACK_SIZE);
+#define	PUSHONSTACK(x) { stack2[stackPointer2] = (x); stackPointer2++; CHECKSTACKPOINTER2 }
+#define POPOFFSTACK(x) { x = stack2[stackPointer2 - 1]; stackPointer2--; CHECKSTACKPOINTER2 }
+#define DOOPERATION(x) { stack2[stackPointer2 - 2] = (x); stackPointer2--; CHECKSTACKPOINTER2 }
 
-#ifndef INSIDE_LINC
-void SetGlobalInterpreterVariables(int32 *vars)
-{
+void SetGlobalInterpreterVariables(int32 *vars) {
 	globalInterpreterVariables2 = vars;
 }
-#endif
 
-#ifdef INSIDE_LINC			// Are we running in linc?
-int RunScript ( MCBOVirtualSword &engine , const char * scriptData , char * objectData , uint32 *offset )
-#else
-int RunScript ( char * scriptData , char * objectData , uint32 *offset )
-#endif
-{
+int RunScript(char *scriptData, char *objectData, uint32 *offset) {
 	#define STACK_SIZE		10
 
-	_standardHeader *header = (_standardHeader *)scriptData;
+	_standardHeader *header = (_standardHeader *) scriptData;
 	scriptData += sizeof(_standardHeader) + sizeof(_object_hub);
 
 	// The script data format:
-
-
-	//		int32_TYPE	1									Size of variable space in bytes
-	//		...											The variable space
-	//		int32_TYPE	1									numberOfScripts
-	//		int32_TYPE	numberOfScripts						The offsets for each script
-
+	//	int32_TYPE	1		Size of variable space in bytes
+	//	...				The variable space
+	//	int32_TYPE	1		numberOfScripts
+	//	int32_TYPE	numberOfScripts	The offsets for each script
 
 	// Initialise some stuff
 
-	int ip = 0;									// Code pointer
-	int curCommand,parameter,value;				// Command and parameter variables
-	int32 stack2[STACK_SIZE];						// The current stack
-	int32 stackPointer2 = 0;						// Position within stack
-	int parameterReturnedFromMcodeFunction=0;	// Allow scripts to return things
-	int savedStartOfMcode=0;			// For saving start of mcode commands
+	int ip = 0;			 // Code pointer
+	int curCommand,parameter, value; // Command and parameter variables
+	int32 stack2[STACK_SIZE];	 // The current stack
+	int32 stackPointer2 = 0;	// Position within stack
+	int parameterReturnedFromMcodeFunction = 0;	// Allow scripts to return things
+	int savedStartOfMcode = 0;	// For saving start of mcode commands
+
+	int count;
+	int retVal;
+	int caseCount, foundCase;
+	int scriptNumber, foundScript;
+	const char *tempScrPtr;
 
 	// Get the start of variables and start of code
-	DEBUG3("Enter interpreter data %x, object %x, offset %d",scriptData,objectData,*offset);
+	DEBUG("Enter interpreter data %x, object %x, offset %d", scriptData, objectData, *offset);
 
 	// FIXME: 'scriptData' and 'variables' used to be const. However,
 	// this code writes into 'variables' so it can not be const.
+
 	char *variables = scriptData + sizeof(int);
-	const char *code = scriptData + (int32)READ_LE_UINT32(scriptData) + sizeof(int);
-	uint32 noScripts = (int32)READ_LE_UINT32(code);
-	if ( (*offset) < noScripts)
-	{	ip = (int32)READ_LE_UINT32((const int *)code + (*offset) + 1);
-		DEBUG2("Start script %d with offset %d",*offset,ip);
-	}
-	else
-	{	ip = (*offset);
-		DEBUG1("Start script with offset %d",ip);
+	const char *code = scriptData + (int32) READ_LE_UINT32(scriptData) + sizeof(int);
+	uint32 noScripts = (int32) READ_LE_UINT32(code);
+
+	if (*offset < noScripts) {
+		ip = READ_LE_UINT32((const int *) code + *offset + 1);
+		DEBUG("Start script %d with offset %d",*offset,ip);
+	} else {
+		ip = *offset;
+		DEBUG("Start script with offset %d",ip);
 	}
 
 	code += noScripts * sizeof(int) + sizeof(int);
 
-/************************************************************************************************/
 #ifdef DONTPROCESSSCRIPTCHECKSUM
-
 	code += sizeof(int) * 3;
-
 #else
-
-	// Code should nopw be pointing at an identifier and a checksum
-	const int *checksumBlock = (const int *)code;
+	// Code should nop be pointing at an identifier and a checksum
+	const int *checksumBlock = (const int *) code;
 	code += sizeof(int) * 3;
 
-	if ((int32)READ_LE_UINT32(checksumBlock) != 12345678)
-	{
-#ifdef INSIDE_LINC
-		AfxMessageBox(CVString("Invalid script in object %s",header->name));
-#else
-		Con_fatal_error("Invalid script in object %s",header->name);
-#endif
-		return(0);
+	if (READ_LE_UINT32(checksumBlock) != 12345678) {
+		Con_fatal_error("Invalid script in object %s", header->name);
+		return 0;
 	}
-	int codeLen = (int32)READ_LE_UINT32(checksumBlock + 1);
+
+	int codeLen = READ_LE_UINT32(checksumBlock + 1);
 	int checksum = 0;
-	for (int count = 0 ; count < codeLen ; count++)
-		checksum += (unsigned char)code[count];
-	if ( checksum != (int32)READ_LE_UINT32(checksumBlock + 2) )
-	{
-#ifdef INSIDE_LINC
-		AfxMessageBox(CVString("Checksum error in script %s",header->name));
-#else
-		Con_fatal_error("Checksum error in object %s",header->name);
-#endif
-		return(0);
-	}
 
-#endif //DONTPROCESSSCRIPTCHECKSUM
+	for (count = 0; count < codeLen; count++)
+		checksum += (unsigned char) code[count];
 
-/************************************************************************************************/
+	if (checksum != (int32) READ_LE_UINT32(checksumBlock + 2)) {
+		Con_fatal_error("Checksum error in object %s", header->name);
+		return 0;
+	}
+#endif
 
 	int runningScript = 1;
-	while ( runningScript )
-	{	curCommand = code[ip++];
-		switch(curCommand)
-		{	case CP_END_SCRIPT:			// 0	End the script
-				DEBUG1("End script",0);
+
+	while (runningScript) {
+		curCommand = code[ip++];
+
+		switch(curCommand) {
+			case CP_END_SCRIPT:
+				// End the script
+				DEBUG("End script",0);
 				runningScript = 0;
-#ifdef INSIDE_LINC
-				engine.AddTextLine( "End script" , VS_COL_GREY );
-				engine.AddTextLine(	"" , VS_COL_GREY );
-#endif
 				break;
 
-			case CP_PUSH_LOCAL_VAR32:		// 1	Push the contents of a local variable
-				Read16ip(parameter)
-				DEBUG2("Push local var %d (%d)",parameter,*(int32 *)(variables+parameter));
-				PUSHONSTACK ( *(int32 *)(variables+parameter) );
+			case CP_PUSH_LOCAL_VAR32:
+				// Push the contents of a local variable
+				Read16ip(parameter);
+				DEBUG("Push local var %d (%d)", parameter, *(int32 *) (variables + parameter));
+				PUSHONSTACK(*(int32 *) (variables + parameter));
 				break;
 
-
-			case CP_PUSH_GLOBAL_VAR32:			// 2	Push a global variable
-				Read16ip(parameter)
-#ifdef INSIDE_LINC
-				DEBUG2("Push global var %d (%d)",parameter,g_GlobalVariables.GetLocalByIndex(parameter).GetValue());
-				PUSHONSTACK ( g_GlobalVariables.GetLocalByIndex(parameter).GetValue() );
-#else
-				DEBUG2("Push global var %d (%d)",parameter,globalInterpreterVariables2[parameter]);
+			case CP_PUSH_GLOBAL_VAR32:
+				// Push a global variable
+				Read16ip(parameter);
+				DEBUG("Push global var %d (%d)", parameter, globalInterpreterVariables2[parameter]);
 				ASSERT(globalInterpreterVariables2);
-				PUSHONSTACK ( globalInterpreterVariables2[parameter] );
-#endif
+				PUSHONSTACK(globalInterpreterVariables2[parameter]);
 				break;
 
-			case CP_POP_LOCAL_VAR32:		// 3	Pop a value into a local word variable
-				Read16ip(parameter)
-				POPOFFSTACK ( value );
-				DEBUG2("Pop %d into var %d",value,parameter);
-				*((int32 *)(variables+parameter)) = value;
+			case CP_POP_LOCAL_VAR32:
+				// Pop a value into a local word variable
+				Read16ip(parameter);
+				POPOFFSTACK(value);
+				DEBUG("Pop %d into var %d", value, parameter);
+				*((int32 *) (variables + parameter)) = value;
 				break;
 
-			case CP_CALL_MCODE:			// 4	Call an mcode routine
-			{
-				Read16ip(parameter)
+			case CP_CALL_MCODE:
+				// Call an mcode routine
+				Read16ip(parameter);
 				ASSERT(parameter <= MAX_FN_NUMBER);
-				value = *((const int8 *)(code+ip));			// amount to adjust stack by (no of parameters)
-				ip ++;
-				DEBUG2("Call mcode %d with stack = %x",parameter,stack2+(stackPointer2-value));
-#ifdef INSIDE_LINC
-				int retVal = engine.McodeTable(parameter , stack2+(stackPointer2-value));
-#else
-				int retVal = McodeTable[parameter](stack2+(stackPointer2-value));
-#endif
+				// amount to adjust stack by (no of parameters)
+				Read8ip(value);
+				DEBUG("Call mcode %d with stack = %x", parameter, stack2 + stackPointer2 - value);
+				retVal = McodeTable[parameter](stack2 + stackPointer2 - value);
 				stackPointer2 -= value;
 				CHECKSTACKPOINTER2
-				switch ( retVal & 7 )
-				{	case IR_STOP:	// 0: Quit out for a cycle
+
+				switch (retVal & 7) {
+					case IR_STOP:
+						// Quit out for a cycle
 						*offset = ip;
-						return(0);
+						return 0;
 
-					case IR_CONT:	//	1:	// Continue as normal
+					case IR_CONT:
+						// Continue as normal
 						break;
 
-					case IR_TERMINATE:	//	2:
-						// Return without updating the offset
-						return(2);
+					case IR_TERMINATE:
+						// Return without updating the
+						// offset
+						return 2;
 
-					case IR_REPEAT:	//	3:
-						// Return setting offset to start of this function call
+					case IR_REPEAT:
+						// Return setting offset to
+						// start of this function call
 						*offset = savedStartOfMcode;
-						return(0);
+						return 0;
 
-					case IR_GOSUB:	//	4:	//that's really neat
+					case IR_GOSUB:
+						// that's really neat
 						*offset = ip;
-						return(2);
+						return 2;
 
 					default:
 						ASSERT(FALSE);
 				}
 				parameterReturnedFromMcodeFunction = retVal >> 3;
-			}
 				break;
 
-			case CP_PUSH_LOCAL_ADDR:	// 5	push the address of a local variable
-				Read16ip(parameter)
-				DEBUG2("Push address of local variable %d (%x)",parameter,(int32)(variables + parameter));
-				PUSHONSTACK ( (int32)(variables + parameter) );
+			case CP_PUSH_LOCAL_ADDR:
+				// push the address of a local variable
+				Read16ip(parameter);
+				DEBUG("Push address of local variable %d (%x)", parameter, (int32) (variables + parameter));
+				PUSHONSTACK((int32) (variables + parameter));
 				break;
 
-			case CP_PUSH_INT32:			// 6	Push a long word value on to the stack
-				Read32ip(parameter)
-				DEBUG2("Push int32 %d (%x)",parameter,parameter);
-				PUSHONSTACK ( parameter );
+			case CP_PUSH_INT32:
+				// Push a long word value on to the stack
+				Read32ip(parameter);
+				DEBUG("Push int32 %d (%x)", parameter, parameter);
+				PUSHONSTACK(parameter);
 				break;
 
-
-			case CP_SKIPONFALSE:		//	7	Skip if the value on the stack is false
-				Read32ipLeaveip(parameter)
-				POPOFFSTACK ( value );
-				DEBUG2("Skip %d if %d is false",parameter,value);
+			case CP_SKIPONFALSE:
+				// Skip if the value on the stack is false
+				Read32ipLeaveip(parameter);
+				POPOFFSTACK(value);
+				DEBUG("Skip %d if %d is false", parameter, value);
 				if (value)
 					ip += sizeof(int32);
 				else
 					ip += parameter;
 				break;
 
-			case CP_SKIPALLWAYS:		// 8 skip a block
-				Read32ipLeaveip(parameter)
-				DEBUG1("Skip %d",parameter);
+			case CP_SKIPALWAYS:
+				// skip a block
+				Read32ipLeaveip(parameter);
+				DEBUG("Skip %d", parameter);
 				ip += parameter;
 				break;
 
-			case CP_SWITCH:				// 9 switch
-			{	POPOFFSTACK ( value );
-				int caseCount;
-				Read32ip(caseCount)
+			case CP_SWITCH:
+				// 9 switch
+				POPOFFSTACK(value);
+				Read32ip(caseCount);
+
 				// Search the cases
-				int foundCase = 0;
-				for (int count = 0 ; (count < caseCount) && (!foundCase) ; count++)
-				{
-					if (value == (int32)READ_LE_UINT32(code+ip))
-					{	// We have found the case, so lets jump to it
+				foundCase = 0;
+				for (count = 0; count < caseCount && !foundCase; count++) {
+					if (value == (int32) READ_LE_UINT32(code + ip)) {
+						// We have found the case, so
+						// lets jump to it
 						foundCase = 1;
-						ip += (int32)READ_LE_UINT32(code+ip+sizeof(int32));
-					}
-					else
+						ip += READ_LE_UINT32(code + ip + sizeof(int32));
+					} else
 						ip += sizeof(int32) * 2;
 				}
-				// If we found no matching case then use the default
+
+				// If we found no matching case then use the
+				// default
+
 				if (!foundCase)
-				{
-					ip += (int32)READ_LE_UINT32(code+ip);
-				}
-			}
+					ip += READ_LE_UINT32(code + ip);
+
 				break;
 
-			case CP_ADDNPOP_LOCAL_VAR32:						// 10
-				Read16ip(parameter)
-				POPOFFSTACK ( value );
-				*((int32 *)(variables+parameter)) += value;
-				DEBUG3("+= %d into var %d->%d",value,parameter,*(int32 *)(variables+parameter));
+			case CP_ADDNPOP_LOCAL_VAR32:
+				Read16ip(parameter);
+				POPOFFSTACK(value);
+				*((int32 *) (variables + parameter)) += value;
+				DEBUG("+= %d into var %d->%d", value, parameter, *(int32 *) (variables + parameter));
 				break;
 
-			case CP_SUBNPOP_LOCAL_VAR32:						// 11
-				Read16ip(parameter)
-				POPOFFSTACK ( value );
-				*((int32 *)(variables+parameter)) -= value;
-				DEBUG3("-= %d into var %d->%d",value,parameter,*(int32 *)(variables+parameter));
+			case CP_SUBNPOP_LOCAL_VAR32:
+				Read16ip(parameter);
+				POPOFFSTACK(value);
+				*((int32 *) (variables + parameter)) -= value;
+				DEBUG("-= %d into var %d->%d", value, parameter, *(int32 *) (variables + parameter));
 				break;
 
-			case CP_SKIPONTRUE:									//	12	Skip if the value on the stack is TRUE
-				Read32ipLeaveip(parameter)
-				POPOFFSTACK ( value );
-				DEBUG2("Skip %d if %d is false",parameter,value);
+			case CP_SKIPONTRUE:
+				// Skip if the value on the stack is TRUE
+				Read32ipLeaveip(parameter);
+				POPOFFSTACK(value);
+				DEBUG("Skip %d if %d is false", parameter, value);
 				if (!value)
 					ip += sizeof(int32);
 				else
 					ip += parameter;
 				break;
 
-			case CP_POP_GLOBAL_VAR32:							// 13				// Pop a global variable
-				Read16ip(parameter)
-				POPOFFSTACK ( value );
-				DEBUG2("Pop %d into global var %d",value,parameter);
-#ifdef INSIDE_LINC
-				g_GlobalVariables.lclSet(parameter,value);
-				engine.AddTextLine(CVString(	"Set variable %s to %d",
-													g_GlobalVariables.GetLocalByIndex(parameter).GetName(),
-													g_GlobalVariables.GetLocalByIndex(parameter).GetValue() ),
-									VS_COL_GREY);
-#else //INSIDE_LINC
+			case CP_POP_GLOBAL_VAR32:
+				// Pop a global variable
+				Read16ip(parameter);
+				POPOFFSTACK(value);
+				DEBUG("Pop %d into global var %d", value, parameter);
 
 #ifdef TRACEGLOBALVARIABLESET
-				TRACEGLOBALVARIABLESET(parameter,value);
+				TRACEGLOBALVARIABLESET(parameter, value);
 #endif
 
 				globalInterpreterVariables2[parameter] = value;
-
-#endif
 				break;
 
-			case CP_ADDNPOP_GLOBAL_VAR32:						// 14			Add and pop a global variable
-			{	Read16ip(parameter)
-//				parameter = *((int16_TYPE *)(code+ip));
-//				ip += 2;
-				POPOFFSTACK ( value );
-#ifdef INSIDE_LINC
-				int newVal = g_GlobalVariables.GetLocalByIndex(parameter).GetValue() + value ;
-				g_GlobalVariables.lclSet(parameter, newVal );
-				engine.AddTextLine(	CVString(	"Set variable %s to %d",
-													g_GlobalVariables.GetLocalByIndex(parameter).GetName(),
-													g_GlobalVariables.GetLocalByIndex(parameter).GetValue() ),
-										VS_COL_GREY);
-#else
+			case CP_ADDNPOP_GLOBAL_VAR32:
+				// Add and pop a global variable
+				Read16ip(parameter);
+				// parameter = *((int16_TYPE *) (code + ip));
+				// ip += 2;
+				POPOFFSTACK(value);
 				globalInterpreterVariables2[parameter] += value;
-				DEBUG3("+= %d into global var %d->%d",value,parameter,*(int32 *)(variables+parameter));
-#endif
+				DEBUG("+= %d into global var %d->%d", value, parameter, *(int32 *) (variables + parameter));
 				break;
-			}
 
-			case CP_SUBNPOP_GLOBAL_VAR32:						// 15			Sub and pop a global variable
-			{	Read16ip(parameter)
-//				parameter = *((int16_TYPE *)(code+ip));
-//				ip += 2;
-				POPOFFSTACK ( value );
-#ifdef INSIDE_LINC
-				int newVal = g_GlobalVariables.GetLocalByIndex(parameter).GetValue() - value ;
-				g_GlobalVariables.lclSet(parameter, newVal );
-				engine.AddTextLine(	CVString(	"Set variable %s to %d",
-													g_GlobalVariables.GetLocalByIndex(parameter).GetName(),
-													g_GlobalVariables.GetLocalByIndex(parameter).GetValue() ),
-										VS_COL_GREY);
-#else
+			case CP_SUBNPOP_GLOBAL_VAR32:
+				// Sub and pop a global variable
+				Read16ip(parameter);
+				POPOFFSTACK(value);
 				globalInterpreterVariables2[parameter] -= value;
-				DEBUG3("-= %d into global var %d->%d",value,parameter,*(int32 *)(variables+parameter));
-#endif
+				DEBUG("-= %d into global var %d->%d", value, parameter, *(int32 *) (variables + parameter));
 				break;
-			}
 
 			case CP_DEBUGON:
 				// Turn debugging on
@@ -609,187 +562,195 @@
 				break;
 
 			case CP_QUIT:
-#ifdef INSIDE_LINC
-				break;
-#else
 				// Quit out for a cycle
 				*offset = ip;
-				return(0);
-#endif
+				return 0;
 
 			case CP_TERMINATE:
-				// Quit out immediately without affecting the offset pointer
-				return(3);
-
-/******************************************************************************************************************
-******************************************************************************************************************/
+				// Quit out immediately without affecting the
+				// offset pointer
+				return 3;
 
 			// Operators
 
-			case OP_ISEQUAL:	//	20				// '=='
-				DEBUG3("%d == %d -> %d",	stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] == stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] == stack2[stackPointer2-1]) );
+			case OP_ISEQUAL:
+				// '=='
+				DEBUG("%d == %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] == stack2[stackPointer2 - 1]);
+				DOOPERATION (stack2[stackPointer2 - 2] == stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_PLUS:		//	21				// '+'
-				DEBUG3("%d + %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] + stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] + stack2[stackPointer2-1]) );
+			case OP_PLUS:
+				// '+'
+				DEBUG("%d + %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] + stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] + stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_MINUS:		//	22				// '+'
-				DEBUG3("%d - %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] - stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] - stack2[stackPointer2-1]) );
+			case OP_MINUS:
+				// '-'
+				DEBUG("%d - %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] - stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] - stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_TIMES:		//	23				// '+'
-				DEBUG3("%d * %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] * stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] * stack2[stackPointer2-1]) );
+			case OP_TIMES:
+				// '*'
+				DEBUG("%d * %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] * stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] * stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_DEVIDE:		//	24				// '+'
-				DEBUG3("%d / %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] / stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] / stack2[stackPointer2-1]) );
+			case OP_DIVIDE:
+				// '/'
+				DEBUG("%d / %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] / stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] / stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_NOTEQUAL:	//	25				// '!='
-				DEBUG3("%d != %d -> %d",	stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] != stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] != stack2[stackPointer2-1]) );
+			case OP_NOTEQUAL:
+				// '!='
+				DEBUG("%d != %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] != stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] != stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_ANDAND:		// 26
-				DEBUG3("%d != %d -> %d",	stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] && stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] && stack2[stackPointer2-1]) );
+			case OP_ANDAND:
+				// '&&'
+				DEBUG("%d != %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] && stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] && stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_GTTHAN:		// 27 >
-				DEBUG3("%d > %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] > stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] > stack2[stackPointer2-1]) );
+			case OP_GTTHAN:
+				// '>'
+				DEBUG("%d > %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] > stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] > stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_LSTHAN:		// 28 <
-				DEBUG3("%d < %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] < stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] < stack2[stackPointer2-1]) );
+			case OP_LSTHAN:
+				// '<'
+				DEBUG("%d < %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] < stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] < stack2[stackPointer2 - 1]);
 				break;
 
-			case CP_JUMP_ON_RETURNED:	// 29
-			{	// Jump to a part of the script depending on the return value from an mcode routine
-				parameter = *((const int8 *)(code+ip));		// Get the maximum value
-				ip++;
-#ifdef INSIDE_LINC
-				TRACE("ip %d: Parameter %d skip %d\r\n",	ip,
-															parameterReturnedFromMcodeFunction,
-															(int32)READ_LE_UINT32(code + ip + parameterReturnedFromMcodeFunction * 4) );
-#endif
+			case CP_JUMP_ON_RETURNED:
+				// Jump to a part of the script depending on
+				// the return value from an mcode routine
 
-				ip += (int32)READ_LE_UINT32(code + ip + parameterReturnedFromMcodeFunction * 4);
-			}
+				// Get the maximum value
+				Read8ip(parameter);
+
+				ip += READ_LE_UINT32(code + ip + parameterReturnedFromMcodeFunction * 4);
 				break;
 
-			case CP_TEMP_TEXT_PROCESS:	// 30
+			case CP_TEMP_TEXT_PROCESS:
 				// Process a text line
-				Read32ip(parameter)
-//				parameter = *((int32_TYPE *)(code+ip));
-//				ip += sizeof(int32_TYPE);;
-				DEBUG1("Process text id %d",parameter);
-#ifdef INSIDE_LINC
-				// Linc only for the moment
-				engine.ProcessTextLine(parameter);
-#endif //INSIDE_LINC
+				// This was apparently used in Linc
+				Read32ip(parameter);
+				DEBUG("Process text id %d", parameter);
 				break;
 
-			case CP_SAVE_MCODE_START:	// 31
-				// Save the start position on an mcode instruction in case we need to restart it again
-				savedStartOfMcode = ip-1;
+			case CP_SAVE_MCODE_START:
+				// Save the start position on an mcode
+				// instruction in case we need to restart it
+				// again
+				savedStartOfMcode = ip - 1;
 				break;
 
-			case CP_RESTART_SCRIPT:	// 32
-			{	// Start the script again
-				// Do a ip search to find the script we are running
-				const char *tempScrPtr = scriptData + (int32)READ_LE_UINT32(scriptData) + sizeof(int);
-				int scriptNumber = 0;
-				int foundScript = 0;
-				uint32 count = 0;
-				for (count = 1 ; (count < noScripts) && (!foundScript) ; count++)
-				{	if (ip < ((const int *)tempScrPtr)[count+1])
-					{	scriptNumber = count - 1 ;
+			case CP_RESTART_SCRIPT:
+				// Start the script again
+				// Do a ip search to find the script we are
+				// running
+
+				tempScrPtr = scriptData + READ_LE_UINT32(scriptData) + sizeof(int);
+				scriptNumber = 0;
+				foundScript = 0;
+
+				for (count = 1; count < (int) noScripts && !foundScript; count++) {
+					if (ip < ((const int *) tempScrPtr)[count + 1]) {
+						scriptNumber = count - 1;
 						foundScript = 1;
 					}
 				}
+
 				if (!foundScript)
-					scriptNumber = count - 1 ;
-				// So we know what script we are running, lets restart it
-				ip = ((const int *)tempScrPtr)[scriptNumber+1];
+					scriptNumber = count - 1;
+
+				// So we know what script we are running,
+				// lets restart it
+
+				ip = ((const int *) tempScrPtr)[scriptNumber + 1];
 				break;
-			}
 
-			case CP_PUSH_STRING:	// 33
-			{	// Push the address of a string on to the stack
-				parameter = *((const int8 *)(code+ip));		// Get the string size
-				ip += 1;
+			case CP_PUSH_STRING:
+				// Push the address of a string on to the stack
+				// Get the string size
+				Read8ip(parameter);
 				// ip points to the string
-				PUSHONSTACK( (int)(code+ip) );
-				ip += (parameter+1);
+				PUSHONSTACK((int) (code + ip));
+				ip += (parameter + 1);
 				break;
-			}
 
-			case CP_PUSH_DEREFERENCED_STRUCTURE:	// 34
-			{	// Push the address of a dereferenced structure
-				Read32ip(parameter)
-				DEBUG1("Push address of far variable (%x)",(int32)(variables + parameter));
-				PUSHONSTACK( (int)(objectData + sizeof(int) + sizeof(_standardHeader) + sizeof(_object_hub) + parameter));
+			case CP_PUSH_DEREFERENCED_STRUCTURE:
+				// Push the address of a dereferenced structure
+				Read32ip(parameter);
+				DEBUG("Push address of far variable (%x)", (int32) (variables + parameter));
+				PUSHONSTACK((int) (objectData + sizeof(int) + sizeof(_standardHeader) + sizeof(_object_hub) + parameter));
 				break;
-			}
 
-			case OP_GTTHANE:		// 35 >=
-				DEBUG3("%d > %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] >= stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] >= stack2[stackPointer2-1]) );
+			case OP_GTTHANE:
+				// '>='
+				DEBUG("%d > %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] >= stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] >= stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_LSTHANE:		// 36 <=
-				DEBUG3("%d < %d -> %d",		stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] <= stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] <= stack2[stackPointer2-1]) );
+			case OP_LSTHANE:
+				// '<='
+				DEBUG("%d < %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] <= stack2[stackPointer2 - 1]);
+				DOOPERATION(stack2[stackPointer2 - 2] <= stack2[stackPointer2 - 1]);
 				break;
 
-			case OP_OROR:			// 37
-				DEBUG3("%d || %d -> %d",	stack2[stackPointer2-2],
-											stack2[stackPointer2-1],
-											stack2[stackPointer2-2] || stack2[stackPointer2-1]);
-				DOOPERATION ( (stack2[stackPointer2-2] || stack2[stackPointer2-1]) );
+			case OP_OROR:
+				// '||'
+				DEBUG("%d || %d -> %d",
+					stack2[stackPointer2 - 2],
+					stack2[stackPointer2 - 1],
+					stack2[stackPointer2 - 2] || stack2[stackPointer2 - 1]);
+				DOOPERATION (stack2[stackPointer2 - 2] || stack2[stackPointer2 - 1]);
 				break;
 
-
 			default:
-#ifdef INSIDE_LINC
-				AfxMessageBox(CVString("Invalid interpreter token %d",curCommand));
-#else
 				Con_fatal_error("Interpreter error: Invalid token %d", curCommand);
-#endif
-				return(3);
+				return 3;
 		}
-
 	}
 
-	return(1);
+	return 1;
 }

Index: interpreter.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/bs2/interpreter.h,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- interpreter.h	7 Sep 2003 03:18:26 -0000	1.6
+++ interpreter.h	20 Sep 2003 12:41:41 -0000	1.7
@@ -17,157 +17,81 @@
  * $Header$
  */
 
-// Interpreter return codes
-
-#define IR_STOP		0
-#define IR_CONT		1
-#define IR_TERMINATE	2	
-#define IR_REPEAT	3
-#define IR_GOSUB	4
-
-
-#ifdef INSIDE_LINC			// Are we running in linc?
-
-extern int g_debugFlag;
-
-#ifdef _SWORD2_DEBUG
-
-#define DEBUG1(x,y)		if(g_debugFlag){engine.AddTextLine(CVString(x,y),VS_COL_DEBUG);}
-#define DEBUG2(x,y,z)	if(g_debugFlag){engine.AddTextLine(CVString(x,y,z),VS_COL_DEBUG);}
-#define DEBUG3(x,y,z,a)	if(g_debugFlag){engine.AddTextLine(CVString(x,y,z,a),VS_COL_DEBUG);}
-
-#else //_SWORD2_DEBUG
-
-#define DEBUG1
-#define DEBUG2
-#define DEBUG3
-
-#endif //_SWORD2_DEBUG
-
-#else //INSIDE_LINC
+#ifndef _INTERPRETER
+#define _INTERPRETER
 
-//#include "src\driver96.h"
 #include "debug.h"
 #include "header.h"
 
-#define DEBUG1				if(g_debugFlag)Zdebug
-#define DEBUG2				if(g_debugFlag)Zdebug
-#define DEBUG3				if(g_debugFlag)Zdebug
+// Interpreter return codes
 
-#define ASSERT(x) {if(!(x)){Zdebug("Interpreter ASSERT %s,%d",__FILE__,__LINE__);Con_fatal_error("Assert error in interpreter");}}
+#define IR_STOP				0
+#define IR_CONT				1
+#define IR_TERMINATE			2	
+#define IR_REPEAT			3
+#define IR_GOSUB			4
 
+#define DEBUG				if (g_debugFlag) Zdebug
 
-#endif
+#define ASSERT(x)		 	{ if (!(x)) { Zdebug("Interpreter ASSERT %s,%d", __FILE__, __LINE__); Con_fatal_error("Assert error in interpreter"); } }
 
+// Get parameter fix so that the playstation version can handle words not on
+// word boundaries
 
-	// Get parameter fix so that the playstation version can handle words not on word boundaries
-#define Read16ip(var)			{var = (int16)READ_LE_UINT16(code+ip);ip+=sizeof(int16);}
-#define Read32ip(var)			{var = (int32)READ_LE_UINT32(code+ip);ip+=sizeof(int32);}
-#define Read32ipLeaveip(var)		{var = (int32)READ_LE_UINT32(code+ip);}
+#define Read8ip(var)			{ var = *((const int8 *) (code + ip)); ip++; }
+#define Read16ip(var)			{ var = (int16) READ_LE_UINT16(code + ip); ip += sizeof(int16); }
+#define Read32ip(var)			{ var = (int32) READ_LE_UINT32(code + ip); ip += sizeof(int32); }
+#define Read32ipLeaveip(var)		{ var = (int32) READ_LE_UINT32(code + ip); }
 
 void SetGlobalInterpreterVariables(int32 *vars);
+int RunScript (char *scriptData, char *objectData, uint32 *offset);
 
-#ifdef INSIDE_LINC			// Are we running in linc?
-int RunScript ( MCBOVirtualSword &engine , const char * scriptData , char * /*objectData*/ , uint32 *offset );
-#else
-int RunScript ( char * scriptData , char * /*objectData*/ , uint32 *offset );
-#endif
-
-
-
-//		Command tokens
-
-#define	CT_COMMENT						1				// A program comment
-#define	CT_IF							2				// An if statement
-#define	CT_OPENBRACKET					3				// (
-#define	CT_CLOSEBRACKET					4				// )
-#define	CT_VAR							5				// Define a variable
-#define	CT_SEMICOLON					6				// ;
-#define	CT_COMMA						7				// ,
-#define	CT_OPENBRACE					8				// {
-#define	CT_CLOSEBRACE					9				// }
-#define	CT_STRUCT						10				// Struct
-#define	CT_SWITCH						11				// Switch
-#define	CT_CASE							12				// Case
-#define	CT_BREAK						13				// break
-#define	CT_DEFAULT						14				// default
-#define	CT_ASSIGN						14				// =
-#define	CT_PLUSEQ						15				// '+='
-#define	CT_MINUSEQ						16				// '-='
-#define	CT_FOR							17				// for
-#define	CT_DO							18				// do
-#define	CT_WHILE						19				// while
-#define	CT_DEBUGON						20				// Turn debugging on
-#define	CT_DEBUGOFF						21				// Turn debugging off
-#define	CT_QUIT							22				// Quit for a cycle
-#define	CT_ENDIF						23				// Endif
-#define	CT_TEXTOBJECT					24				// Speaker: text line
-#define	CT_ANIM							25				// An animation
-#define	CT_ELSE							26				// else to an if
-#define	CT_CHOOSE						27				// Start a chooser
-#define	CT_END							28				// end, usually followed by something else
-#define	CT_END_CHOICE					29				// end choice
-#define	CT_TERMINATE					30				// Terminate
-#define	CT_PAUSE						31				// Pause
-#define	CT_RESTART						32				// Restart script
-#define	CT_START						33				// Start conversation
-#define	CT_CALL							34				// Call a character
-#define	CT_ACTORSCOMMENT				35				// A comment for an actor
-#define	CT_TALKER						36				// A set talker command
-
-//		Special functions
-
-#define	SF_RUNLIST						1
-#define	SF_DOUBLEQUOTE					2
-#define	SF_BACKGROUND					3
-#define	SF_SCALEA						4
-#define	SF_SCALEB						5
-#define	SF_SPEECHSCRIPT					6
+// Compiled tokens
 
-//		Compiled tokens
+#define	CP_END_SCRIPT			0
+#define	CP_PUSH_LOCAL_VAR32		1	// Push a local variable on to the stack
+#define	CP_PUSH_GLOBAL_VAR32		2	// Push a global variable
+#define	CP_POP_LOCAL_VAR32		3	// Pop a local variable from the stack
+#define	CP_CALL_MCODE			4	// Call a machine code function
+#define	CP_PUSH_LOCAL_ADDR		5	// Push the address of a local variable
+#define	CP_PUSH_INT32			6	// Adjust the stack after calling an fn function
+#define	CP_SKIPONFALSE			7	// Skip if the bottom value on the stack is false
+#define	CP_SKIPALWAYS			8	// Skip a block of code
+#define	CP_SWITCH			9	// Switch on last stack value
+#define	CP_ADDNPOP_LOCAL_VAR32		10	// Add to a local varible
+#define	CP_SUBNPOP_LOCAL_VAR32		11	// Subtract to a local variable
+#define	CP_SKIPONTRUE			12	// Skip if the bottom value on the stack is true
+#define	CP_POP_GLOBAL_VAR32		13	// Pop a global variable
+#define	CP_ADDNPOP_GLOBAL_VAR32		14
+#define	CP_SUBNPOP_GLOBAL_VAR32		15
+#define	CP_DEBUGON			16	// Turn debugging on
+#define	CP_DEBUGOFF			17	// Turn debugging off
+#define	CP_QUIT				18	// Quit for a cycle
+#define	CP_TERMINATE			19	// Quit script completely
 
-#define	CP_END_SCRIPT					0
-#define	CP_PUSH_LOCAL_VAR32				1				// Push a local variable on to the stack
-#define	CP_PUSH_GLOBAL_VAR32			2				// Push a global variable
-#define	CP_POP_LOCAL_VAR32				3				// Pop a local variable from the stack
-#define	CP_CALL_MCODE					4				// Call a machine code function
-#define	CP_PUSH_LOCAL_ADDR				5				// Push the address of a local variable
-#define	CP_PUSH_INT32					6				// Adjust the stack after calling an fn function
-#define	CP_SKIPONFALSE					7				// Skip if the bottom value on the stack is false
-#define	CP_SKIPALLWAYS					8				// Skip a block of code
-#define	CP_SWITCH						9				// Switch on last stack value
-#define	CP_ADDNPOP_LOCAL_VAR32			10				// Add to a local varible
-#define	CP_SUBNPOP_LOCAL_VAR32			11				// Subtract to a local variable
-#define	CP_SKIPONTRUE					12				// Skip if the bottom value on the stack is true
-#define	CP_POP_GLOBAL_VAR32				13				// Pop a global variable
-#define	CP_ADDNPOP_GLOBAL_VAR32			14
-#define	CP_SUBNPOP_GLOBAL_VAR32			15
-#define	CP_DEBUGON						16				// Turn debugging on
-#define	CP_DEBUGOFF						17				// Turn debugging off
-#define	CP_QUIT							18				// Quit for a cycle
-#define	CP_TERMINATE					19				// Quit script completely
+// Operators
 
-//		Operators
+#define	OP_ISEQUAL			20	// '=='
+#define	OP_PLUS				21	// '+'
+#define	OP_MINUS			22	// '-'
+#define	OP_TIMES			23	// '*'
+#define	OP_DIVIDE			24	// '/'
+#define	OP_NOTEQUAL			25	// '=='
+#define	OP_ANDAND			26	// '&&'
+#define	OP_GTTHAN			27	// '>'
+#define	OP_LSTHAN			28	// '<'
 
-#define	OP_ISEQUAL						20				// '=='
-#define	OP_PLUS							21				// '+'
-#define	OP_MINUS						22				// '-'
-#define	OP_TIMES						23				// '*'
-#define	OP_DEVIDE						24				// '/'
-#define	OP_NOTEQUAL						25				// '=='
-#define	OP_ANDAND						26				// &&
-#define	OP_GTTHAN						27				// >
-#define	OP_LSTHAN						28				// <
+// More tokens, mixed types
 
-//		More tokens, mixed types
+#define	CP_JUMP_ON_RETURNED		29	// Use table of jumps with value returned from fn_mcode
+#define	CP_TEMP_TEXT_PROCESS		30	// A dummy text process command for me
+#define	CP_SAVE_MCODE_START		31	// Save the mcode code start for restarting when necessary
+#define	CP_RESTART_SCRIPT		32	// Start the script from the beginning
+#define	CP_PUSH_STRING			33	// Push a pointer to a string on the stack
+#define	CP_PUSH_DEREFERENCED_STRUCTURE	34	// Push the address of a structure thing
 
-#define	CP_JUMP_ON_RETURNED				29				// Use table of jumps with value returned from fn_mcode
-#define	CP_TEMP_TEXT_PROCESS			30				// A dummy text process command for me
-#define	CP_SAVE_MCODE_START				31				// Save the mcode code start for restarting when necessary
-#define	CP_RESTART_SCRIPT				32				// Start the script from the beginning
-#define	CP_PUSH_STRING					33				// Push a pointer to a string on the stack
-#define	CP_PUSH_DEREFERENCED_STRUCTURE	34				// Push the address of a structure thing
+#define	OP_GTTHANE			35	// >=
+#define	OP_LSTHANE			36	// <=
+#define	OP_OROR				37	// || or OR
 
-#define	OP_GTTHANE						35				// >=
-#define	OP_LSTHANE						36				// <=
-#define	OP_OROR							37				// || or OR
+#endif





More information about the Scummvm-git-logs mailing list