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

john_doe at users.sourceforge.net john_doe at users.sourceforge.net
Tue May 6 13:45:23 CEST 2008


Revision: 31895
          http://scummvm.svn.sourceforge.net/scummvm/?rev=31895&view=rev
Author:   john_doe
Date:     2008-05-06 04:45:23 -0700 (Tue, 06 May 2008)

Log Message:
-----------
- The Manhole: New and Enhanced is now (partially) playable
- Implemented cmd_objectp
- Changed how the script externals array is set up
- Cleanup

Modified Paths:
--------------
    scummvm/trunk/engines/made/database.cpp
    scummvm/trunk/engines/made/script.cpp
    scummvm/trunk/engines/made/scriptfuncs.h
    scummvm/trunk/engines/made/scriptfuncs_lgop2.cpp
    scummvm/trunk/engines/made/scriptfuncs_mhne.cpp
    scummvm/trunk/engines/made/scriptfuncs_rtz.cpp

Modified: scummvm/trunk/engines/made/database.cpp
===================================================================
--- scummvm/trunk/engines/made/database.cpp	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/database.cpp	2008-05-06 11:45:23 UTC (rev 31895)
@@ -256,8 +256,9 @@
 
 	debug(2, "textOffs = %08X; textSize = %08X; objectCount = %d; varObjectCount = %d; gameStateSize = %d; objectsOffs = %08X; objectsSize = %d\n", textOffs, textSize, objectCount, varObjectCount, _gameStateSize, objectsOffs, objectsSize);
 
-	_gameState = new byte[_gameStateSize];
+	_gameState = new byte[_gameStateSize + 2];
 	memset(_gameState, 0, _gameStateSize);
+	setVar(1, objectCount);
 
 	sourceS.seek(textOffs);
 	_gameText = new char[textSize];
@@ -271,8 +272,8 @@
 	for (uint32 i = 0; i < objectCount; i++) {
 		Object *obj = new Object();
 		int objSize = obj->loadVersion2(sourceS);
+		// objects are aligned on 2-byte-boundaries, skip unused bytes
 		objSize = objSize % 2;
-		// objects are aligned on 2-byte-boundaries, skip unused bytes
 		sourceS.skip(objSize);
 		_objects.push_back(obj);
 	}

Modified: scummvm/trunk/engines/made/script.cpp
===================================================================
--- scummvm/trunk/engines/made/script.cpp	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/script.cpp	2008-05-06 11:45:23 UTC (rev 31895)
@@ -203,10 +203,10 @@
 	while (!_terminated) {
 		byte opcode = readByte();
 		if (opcode >= 1 && opcode <= _commandsMax) {
-			debug(4, "opcode = %s\n", _commands[opcode - 1].desc);
+			debug(4, "[%04X:%04X] opcode = %s", _runningScriptObjectIndex, _codeIp - _codeBase, _commands[opcode - 1].desc);
 			(this->*_commands[opcode - 1].proc)();
 		} else {
-			warning("ScriptInterpreter::runScript(%d) Unknown opcode %02X\n", _runningScriptObjectIndex, opcode);
+			warning("ScriptInterpreter::runScript(%d) Unknown opcode %02X", _runningScriptObjectIndex, opcode);
 		}
 	}
 
@@ -219,7 +219,7 @@
 int16 ScriptInterpreter::readInt16() {
 	int16 temp = (int16)READ_LE_UINT16(_codeIp);
 	_codeIp += 2;
-	debug(4, "readInt16() value = %04X\n", temp);
+	debug(4, "readInt16() value = %04X", temp);
 	return temp;
 }
 
@@ -330,14 +330,14 @@
 
 void ScriptInterpreter::cmd_loadConstant() {
 	int16 value = readInt16();
-	debug(4, "value = %04X (%d)\n", value, value);
+	debug(4, "value = %04X (%d)", value, value);
 	_stack.setTop(value);
 }
 
 void ScriptInterpreter::cmd_loadVariable() {
 	int16 variable = readInt16();
 	int16 value = _vm->_dat->getVar(variable);
-	debug(4, "variable = %d; value = %d (%04X)\n", variable, value, value); fflush(stdout);
+	debug(4, "variable = %d; value = %d (%04X)", variable, value, value);
 	_stack.setTop(value);
 }
 
@@ -345,7 +345,7 @@
 	int16 propertyId = _stack.pop();
 	int16 objectIndex = _stack.top();
 	int16 value = _vm->_dat->getObjectProperty(objectIndex, propertyId);
-	debug(4, "value = %04X(%d)\n", value, value);
+	debug(4, "value = %04X(%d)", value, value);
 	_stack.setTop(value);
 }
 
@@ -359,7 +359,7 @@
 
 void ScriptInterpreter::cmd_set() {
 	int16 variable = readInt16();
-	debug(4, "var(%d) = %04d (%d)\n", variable, _stack.top(), _stack.top());
+	debug(4, "var(%d) = %04d (%d)", variable, _stack.top(), _stack.top());
 	_vm->_dat->setVar(variable, _stack.top());
 }
 
@@ -367,7 +367,7 @@
 	// TODO: This opcode was used for printing debug messages
 	Object *obj = _vm->_dat->getObject(_stack.top());
 	const char *text = obj->getString();
-	debug(4, "%s", text); fflush(stdout);
+	debug(4, "%s", text);
 	_stack.setTop(0);
 }
 
@@ -386,20 +386,20 @@
 	int16 value = 0;
 	int16 index = _stack.pop();
 	int16 objectIndex = _stack.top();
-	debug(4, "index = %d; objectIndex = %d\n", index, objectIndex); fflush(stdout);
+	debug(4, "index = %d; objectIndex = %d", index, objectIndex);
 	if (objectIndex > 0) {
 		Object *obj = _vm->_dat->getObject(objectIndex);
 		value = obj->getVectorItem(index);
 	}
 	_stack.setTop(value);
-	debug(4, "--> value = %d\n", value); fflush(stdout);
+	debug(4, "--> value = %d", value);
 }
 
 void ScriptInterpreter::cmd_vset() {
 	int16 value = _stack.pop();
 	int16 index = _stack.pop();
 	int16 objectIndex = _stack.top();
-	debug(4, "index = %d; objectIndex = %d; value = %d\n", index, objectIndex, value); fflush(stdout);
+	debug(4, "index = %d; objectIndex = %d; value = %d", index, objectIndex, value);
 	if (objectIndex > 0) {
 		Object *obj = _vm->_dat->getObject(objectIndex);
 		obj->setVectorItem(index, value);
@@ -432,11 +432,11 @@
 	byte argc = _stack.pop();
 	_stack.free(argc);
 	_stack.setTop(funcResult);
-	debug(4, "LEAVE: stackPtr = %d; _localStackPos = %d\n\n\n", _stack.getStackPos(), _localStackPos);
+	debug(4, "LEAVE: stackPtr = %d; _localStackPos = %d\n", _stack.getStackPos(), _localStackPos);
 }
 
 void ScriptInterpreter::cmd_call() {
-	debug(4, "\n\n\nENTER: stackPtr = %d; _localStackPos = %d\n", _stack.getStackPos(), _localStackPos);
+	debug(4, "\nENTER: stackPtr = %d; _localStackPos = %d", _stack.getStackPos(), _localStackPos);
 	byte argc = readByte();
 	_stack.push(argc);
 	_stack.push(_codeIp - _codeBase);
@@ -444,7 +444,7 @@
 	_stack.push(kScriptStackLimit - _localStackPos);
 	_localStackPos = _stack.getStackPos();
 	_runningScriptObjectIndex = _stack.peek(_localStackPos + argc + 4);
-	debug(4, "argc = %d; _runningScriptObjectIndex = %04X\n", argc, _runningScriptObjectIndex); fflush(stdout);
+	debug(4, "argc = %d; _runningScriptObjectIndex = %04X", argc, _runningScriptObjectIndex);
 	_codeBase = _vm->_dat->getObject(_runningScriptObjectIndex)->getData();
 	_codeIp = _codeBase;
 }
@@ -480,31 +480,31 @@
 
 void ScriptInterpreter::cmd_arg() {
 	int16 argIndex = readByte();
-	debug(4, "argIndex = %d; value = %04X (%d)\n", argIndex, _stack.peek(_localStackPos + 4 + argIndex), _stack.peek(_localStackPos + 4 + argIndex));
+	debug(4, "argIndex = %d; value = %04X (%d)", argIndex, _stack.peek(_localStackPos + 4 + argIndex), _stack.peek(_localStackPos + 4 + argIndex));
 	_stack.setTop(_stack.peek(_localStackPos + 4 + argIndex));
 }
 
 void ScriptInterpreter::cmd_aset() {
 	int16 argIndex = readByte();
-	debug(4, "argIndex = %d; value = %d\n", argIndex, _stack.peek(_localStackPos + 4 + argIndex));
+	debug(4, "argIndex = %d; value = %d", argIndex, _stack.peek(_localStackPos + 4 + argIndex));
 	_stack.poke(_localStackPos + 4 + argIndex, _stack.top());
 }
 
 void ScriptInterpreter::cmd_tmp() {
 	int16 tempIndex = readByte();
-	debug(4, "tempIndex = %d; value = %d\n", tempIndex, _stack.peek(_localStackPos - tempIndex - 1));
+	debug(4, "tempIndex = %d; value = %d", tempIndex, _stack.peek(_localStackPos - tempIndex - 1));
 	_stack.setTop(_stack.peek(_localStackPos - tempIndex - 1));
 }
 
 void ScriptInterpreter::cmd_tset() {
 	int16 tempIndex = readByte();
-	debug(4, "tempIndex = %d; value = %d\n", tempIndex, _stack.top());
+	debug(4, "tempIndex = %d; value = %d", tempIndex, _stack.top());
 	_stack.poke(_localStackPos - tempIndex - 1, _stack.top());
 }
 
 void ScriptInterpreter::cmd_tspace() {
 	int16 tempCount = readByte();
-	debug(4, "tempCount = %d\n", tempCount);
+	debug(4, "tempCount = %d", tempCount);
 	_stack.alloc(tempCount);
 }
 
@@ -513,7 +513,11 @@
 }
 
 void ScriptInterpreter::cmd_objectp() {
-	warning("Unimplemented command: cmd_objectp");
+	Object *obj = _vm->_dat->getObject(_stack.top());
+	if (obj->isObject())
+		_stack.setTop(-1);
+	else
+		_stack.setTop(0);
 }
 
 void ScriptInterpreter::cmd_vectorp() {
@@ -535,11 +539,11 @@
 
 void ScriptInterpreter::cmd_send() {
 
-	debug(4, "\n\n\nENTER: stackPtr = %d; _localStackPos = %d\n", _stack.getStackPos(), _localStackPos);
+	debug(4, "\nENTER: stackPtr = %d; _localStackPos = %d", _stack.getStackPos(), _localStackPos);
 
 	byte argc = readByte();
 	
-	debug(4, "argc = %d\n", argc);
+	debug(4, "argc = %d", argc);
 	
 	_stack.push(argc);
 	_stack.push(_codeIp - _codeBase);
@@ -550,7 +554,7 @@
  	int16 propertyId = _stack.peek(_localStackPos + argc + 2);
 	int16 objectIndex = _stack.peek(_localStackPos + argc + 4);
 
-	debug(4, "objectIndex = %d (%04X); propertyId = %d(%04X)\n", objectIndex, objectIndex, propertyId, propertyId); fflush(stdout);
+	debug(4, "objectIndex = %d (%04X); propertyId = %d(%04X)", objectIndex, objectIndex, propertyId, propertyId);
 		
 	if (objectIndex != 0) {
 		objectIndex = _vm->_dat->getObject(objectIndex)->getClass();
@@ -558,7 +562,7 @@
 		objectIndex = _stack.peek(_localStackPos + argc + 3);
 	}
 
-	debug(4, "--> objectIndex = %d(%04X)\n", objectIndex, objectIndex); fflush(stdout);
+	debug(4, "--> objectIndex = %d(%04X)", objectIndex, objectIndex);
 
 	if (objectIndex != 0) {
 		_runningScriptObjectIndex = _vm->_dat->getObjectProperty(objectIndex, propertyId);
@@ -583,13 +587,13 @@
 	byte argc = readByte();
 	int16 *argv = _stack.getStackPtr();
 
-	//debug(4, "func = %d (%s); argc = %d\n", func, extendFuncNames[func], argc);
-	debug(4, "func = %d; argc = %d\n", func, argc);
+	//debug(4, "func = %d (%s); argc = %d", func, extendFuncNames[func], argc);
+	debug(4, "func = %d; argc = %d", func, argc);
 	for (int i = 0; i < argc; i++)
-		debug(4, "argv[%02d] = %04X (%d)\n", i, argv[i], argv[i]);
+		debug(4, "argv[%02d] = %04X (%d)", i, argv[i], argv[i]);
 
 	int16 result = _functions->callFunction(func, argc, argv);
-	debug(4, "result = %04X (%d)\n", result, result);
+	debug(4, "result = %04X (%d)", result, result);
 	
 	_stack.free(argc);
 	

Modified: scummvm/trunk/engines/made/scriptfuncs.h
===================================================================
--- scummvm/trunk/engines/made/scriptfuncs.h	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/scriptfuncs.h	2008-05-06 11:45:23 UTC (rev 31895)
@@ -40,12 +40,16 @@
 class ScriptFunctions {
 public:
 	ScriptFunctions(MadeEngine *vm) : _vm(vm) {}
-	virtual ~ScriptFunctions() {}
+	virtual ~ScriptFunctions() {
+		for (int i = 0; i < _externalFuncs.size(); ++i)
+			delete _externalFuncs[i];
+	}
 	int16 callFunction(uint16 index, int16 argc, int16 *argv)  {
 		if (index >= _externalFuncs.size()) {
 			// TODO: ERROR!
 			return 0;
 		}
+		debug(4, "%s", _externalFuncNames[index]);
 		return (*_externalFuncs[index])(argc, argv);
 	}
 	virtual void setupExternalsTable() = 0;
@@ -55,13 +59,13 @@
 	Audio::SoundHandle _voiceStreamHandle;
 
 	Common::Array<const ExternalFunc*> _externalFuncs;
+	Common::Array<const char *> _externalFuncNames;
 
 };
 
 class ScriptFunctionsLgop2 : public ScriptFunctions {
 public:
 	ScriptFunctionsLgop2(MadeEngine *vm) : ScriptFunctions(vm) {}
-	~ScriptFunctionsLgop2() {}
 	void setupExternalsTable();
 protected:
 
@@ -122,7 +126,6 @@
 class ScriptFunctionsRtz : public ScriptFunctions {
 public:
 	ScriptFunctionsRtz(MadeEngine *vm) : ScriptFunctions(vm) {}
-	~ScriptFunctionsRtz() {}
 	void setupExternalsTable();
 protected:
 
@@ -231,7 +234,6 @@
 class ScriptFunctionsMhne : public ScriptFunctions {
 public:
 	ScriptFunctionsMhne(MadeEngine *vm) : ScriptFunctions(vm) {}
-	~ScriptFunctionsMhne() {}
 	void setupExternalsTable();
 protected:
 

Modified: scummvm/trunk/engines/made/scriptfuncs_lgop2.cpp
===================================================================
--- scummvm/trunk/engines/made/scriptfuncs_lgop2.cpp	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/scriptfuncs_lgop2.cpp	2008-05-06 11:45:23 UTC (rev 31895)
@@ -43,66 +43,64 @@
 /* ScriptFunctionsLgop2 */
 
 typedef Common::Functor2Mem<int16, int16*, int16, ScriptFunctionsLgop2> ExternalFuncLgop2;
-#define External(x) ExternalFuncLgop2(this, &ScriptFunctionsLgop2::x)
+#define External(x) \
+	_externalFuncs.push_back(new ExternalFuncLgop2(this, &ScriptFunctionsLgop2::x));  \
+	_externalFuncNames.push_back(#x);
 void ScriptFunctionsLgop2::setupExternalsTable() {
-	static const ExternalFuncLgop2 externalsTable[] = {
-		External(o1_SYSTEM),
-		External(o1_INITGRAF),
-		External(o1_RESTOREGRAF),
-		External(o1_DRAWPIC),
-		External(o1_CLS),
-		External(o1_SHOWPAGE),
-		External(o1_EVENT),
-		External(o1_EVENTX),
-		External(o1_EVENTY),
-		External(o1_EVENTKEY),
-		External(o1_VISUALFX),
-		External(o1_PLAYSND),
-		External(o1_PLAYMUS),
-		External(o1_STOPMUS),
-		External(o1_ISMUS),
-		External(o1_TEXTPOS),
-		External(o1_FLASH),
-		External(o1_PLAYNOTE),
-		External(o1_STOPNOTE),
-		External(o1_PLAYTELE),
-		External(o1_STOPTELE),
-		External(o1_HIDECURS),
-		External(o1_SHOWCURS),
-		External(o1_MUSICBEAT),
-		External(o1_SCREENLOCK),
-		External(o1_ADDSPRITE),
-		External(o1_FREEANIM),
-		External(o1_DRAWSPRITE),
-		External(o1_ERASESPRITES),
-		External(o1_UPDATESPRITES),
-		External(o1_GETTIMER),
-		External(o1_SETTIMER),
-		External(o1_RESETTIMER),
-		External(o1_ALLOCTIMER),
-		External(o1_FREETIMER),
-		External(o1_PALETTELOCK),
-		External(o1_FONT),
-		External(o1_DRAWTEXT),
-		External(o1_HOMETEXT),
-		External(o1_TEXTRECT),
-		External(o1_TEXTXY),
-		External(o1_DROPSHADOW),
-		External(o1_TEXTCOLOR),
-		External(o1_OUTLINE),
-		External(o1_LOADCURSOR),
-		External(o1_SETGROUND),
-		External(o1_RESTEXT),
-		External(o1_ADDMASK),
-		External(o1_SETMASK),
-		External(o1_ISSND),
-		External(o1_STOPSND),
-		External(o1_PLAYVOICE)
-	};
 
-	for (int i = 0; i < ARRAYSIZE(externalsTable); ++i)
-		_externalFuncs.push_back(&externalsTable[i]);
-
+	External(o1_SYSTEM);
+	External(o1_INITGRAF);
+	External(o1_RESTOREGRAF);
+	External(o1_DRAWPIC);
+	External(o1_CLS);
+	External(o1_SHOWPAGE);
+	External(o1_EVENT);
+	External(o1_EVENTX);
+	External(o1_EVENTY);
+	External(o1_EVENTKEY);
+	External(o1_VISUALFX);
+	External(o1_PLAYSND);
+	External(o1_PLAYMUS);
+	External(o1_STOPMUS);
+	External(o1_ISMUS);
+	External(o1_TEXTPOS);
+	External(o1_FLASH);
+	External(o1_PLAYNOTE);
+	External(o1_STOPNOTE);
+	External(o1_PLAYTELE);
+	External(o1_STOPTELE);
+	External(o1_HIDECURS);
+	External(o1_SHOWCURS);
+	External(o1_MUSICBEAT);
+	External(o1_SCREENLOCK);
+	External(o1_ADDSPRITE);
+	External(o1_FREEANIM);
+	External(o1_DRAWSPRITE);
+	External(o1_ERASESPRITES);
+	External(o1_UPDATESPRITES);
+	External(o1_GETTIMER);
+	External(o1_SETTIMER);
+	External(o1_RESETTIMER);
+	External(o1_ALLOCTIMER);
+	External(o1_FREETIMER);
+	External(o1_PALETTELOCK);
+	External(o1_FONT);
+	External(o1_DRAWTEXT);
+	External(o1_HOMETEXT);
+	External(o1_TEXTRECT);
+	External(o1_TEXTXY);
+	External(o1_DROPSHADOW);
+	External(o1_TEXTCOLOR);
+	External(o1_OUTLINE);
+	External(o1_LOADCURSOR);
+	External(o1_SETGROUND);
+	External(o1_RESTEXT);
+	External(o1_ADDMASK);
+	External(o1_SETMASK);
+	External(o1_ISSND);
+	External(o1_STOPSND);
+	External(o1_PLAYVOICE);
+	
 }
 #undef External
 

Modified: scummvm/trunk/engines/made/scriptfuncs_mhne.cpp
===================================================================
--- scummvm/trunk/engines/made/scriptfuncs_mhne.cpp	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/scriptfuncs_mhne.cpp	2008-05-06 11:45:23 UTC (rev 31895)
@@ -43,70 +43,68 @@
 /* ScriptFunctionsMhne */
 
 typedef Common::Functor2Mem<int16, int16*, int16, ScriptFunctionsMhne> ExternalFuncMhne;
-#define External(x) ExternalFuncMhne(this, &ScriptFunctionsMhne::x)
+#define External(x) \
+	_externalFuncs.push_back(new ExternalFuncMhne(this, &ScriptFunctionsMhne::x));  \
+	_externalFuncNames.push_back(#x);
 void ScriptFunctionsMhne::setupExternalsTable() {
-	static const ExternalFuncMhne externalsTable[] = {
-		External(o1_SYSTEM),
-		External(o1_INITGRAF),
-		External(o1_RESTOREGRAF),
-		External(o1_DRAWPIC),
-		External(o1_CLS),
-		External(o1_SHOWPAGE),
-		External(o1_EVENT),
-		External(o1_EVENTX),
-		External(o1_EVENTY),
-		External(o1_EVENTKEY),
-		External(o1_VISUALFX),
-		External(o1_PLAYSND),
-		External(o1_PLAYMUS),
-		External(o1_STOPMUS),
-		External(o1_ISMUS),
-		External(o1_TEXTPOS),
-		External(o1_FLASH),
-		External(o1_PLAYNOTE),
-		External(o1_STOPNOTE),
-		External(o1_PLAYTELE),
-		External(o1_STOPTELE),
-		External(o1_HIDECURS),
-		External(o1_SHOWCURS),
-		External(o1_MUSICBEAT),
-		External(o1_SCREENLOCK),
-		External(o1_ADDSPRITE),
-		External(o1_FREEANIM),
-		External(o1_DRAWSPRITE),
-		External(o1_ERASESPRITES),
-		External(o1_UPDATESPRITES),
-		External(o1_GETTIMER),
-		External(o1_SETTIMER),
-		External(o1_RESETTIMER),
-		External(o1_ALLOCTIMER),
-		External(o1_FREETIMER),
-		External(o1_PALETTELOCK),
-		External(o1_FONT),
-		External(o1_DRAWTEXT),
-		External(o1_HOMETEXT),
-		External(o1_TEXTRECT),
-		External(o1_TEXTXY),
-		External(o1_DROPSHADOW),
-		External(o1_TEXTCOLOR),
-		External(o1_OUTLINE),
-		External(o1_LOADCURSOR),
-		External(o1_SETGROUND),
-		External(o1_RESTEXT),
-		External(o1_ADDMASK),
-		External(o1_SETMASK),
-		External(o1_ISSND),
-		External(o1_STOPSND),
-		External(o1_PLAYVOICE),
-		External(o1_CDPLAY),
-		External(o1_STOPCD),
-		External(o1_CDSTATUS),
-		External(o1_CDTIME),
-		External(o1_CDPLAYSEG),
-	};
 
-	for (int i = 0; i < ARRAYSIZE(externalsTable); ++i)
-		_externalFuncs.push_back(&externalsTable[i]);
+	External(o1_SYSTEM);
+	External(o1_INITGRAF);
+	External(o1_RESTOREGRAF);
+	External(o1_DRAWPIC);
+	External(o1_CLS);
+	External(o1_SHOWPAGE);
+	External(o1_EVENT);
+	External(o1_EVENTX);
+	External(o1_EVENTY);
+	External(o1_EVENTKEY);
+	External(o1_VISUALFX);
+	External(o1_PLAYSND);
+	External(o1_PLAYMUS);
+	External(o1_STOPMUS);
+	External(o1_ISMUS);
+	External(o1_TEXTPOS);
+	External(o1_FLASH);
+	External(o1_PLAYNOTE);
+	External(o1_STOPNOTE);
+	External(o1_PLAYTELE);
+	External(o1_STOPTELE);
+	External(o1_HIDECURS);
+	External(o1_SHOWCURS);
+	External(o1_MUSICBEAT);
+	External(o1_SCREENLOCK);
+	External(o1_ADDSPRITE);
+	External(o1_FREEANIM);
+	External(o1_DRAWSPRITE);
+	External(o1_ERASESPRITES);
+	External(o1_UPDATESPRITES);
+	External(o1_GETTIMER);
+	External(o1_SETTIMER);
+	External(o1_RESETTIMER);
+	External(o1_ALLOCTIMER);
+	External(o1_FREETIMER);
+	External(o1_PALETTELOCK);
+	External(o1_FONT);
+	External(o1_DRAWTEXT);
+	External(o1_HOMETEXT);
+	External(o1_TEXTRECT);
+	External(o1_TEXTXY);
+	External(o1_DROPSHADOW);
+	External(o1_TEXTCOLOR);
+	External(o1_OUTLINE);
+	External(o1_LOADCURSOR);
+	External(o1_SETGROUND);
+	External(o1_RESTEXT);
+	External(o1_ADDMASK);
+	External(o1_SETMASK);
+	External(o1_ISSND);
+	External(o1_STOPSND);
+	External(o1_PLAYVOICE);
+	External(o1_CDPLAY);
+	External(o1_STOPCD);
+	External(o1_CDSTATUS);
+	External(o1_CDTIME);
+	External(o1_CDPLAYSEG);
 
 }
 #undef External

Modified: scummvm/trunk/engines/made/scriptfuncs_rtz.cpp
===================================================================
--- scummvm/trunk/engines/made/scriptfuncs_rtz.cpp	2008-05-06 10:12:53 UTC (rev 31894)
+++ scummvm/trunk/engines/made/scriptfuncs_rtz.cpp	2008-05-06 11:45:23 UTC (rev 31895)
@@ -43,113 +43,111 @@
 /* ScriptFunctionsRtz */
 
 typedef Common::Functor2Mem<int16, int16*, int16, ScriptFunctionsRtz> ExternalFuncRtz;
-#define External(x) ExternalFuncRtz(this, &ScriptFunctionsRtz::x)
+#define External(x) \
+	_externalFuncs.push_back(new ExternalFuncRtz(this, &ScriptFunctionsRtz::x));  \
+	_externalFuncNames.push_back(#x);
 void ScriptFunctionsRtz::setupExternalsTable() {
-	static const ExternalFuncRtz externalsTable[] = {
-		External(o1_SYSTEM),
-		External(o1_INITGRAF),
-		External(o1_RESTOREGRAF),
-		External(o1_DRAWPIC),
-		External(o1_CLS),
-		External(o1_SHOWPAGE),
-		External(o1_EVENT),
-		External(o1_EVENTX),
-		External(o1_EVENTY),
-		External(o1_EVENTKEY),
-		External(o1_VISUALFX),
-		External(o1_PLAYSND),
-		External(o1_PLAYMUS),
-		External(o1_STOPMUS),
-		External(o1_ISMUS),
-		External(o1_TEXTPOS),
-		External(o1_FLASH),
-		External(o1_PLAYNOTE),
-		External(o1_STOPNOTE),
-		External(o1_PLAYTELE),
-		External(o1_STOPTELE),
-		External(o1_HIDECURS),
-		External(o1_SHOWCURS),
-		External(o1_MUSICBEAT),
-		External(o1_SCREENLOCK),
-		External(o1_ADDSPRITE),
-		External(o1_FREEANIM),
-		External(o1_DRAWSPRITE),
-		External(o1_ERASESPRITES),
-		External(o1_UPDATESPRITES),
-		External(o1_GETTIMER),
-		External(o1_SETTIMER),
-		External(o1_RESETTIMER),
-		External(o1_ALLOCTIMER),
-		External(o1_FREETIMER),
-		External(o1_PALETTELOCK),
-		External(o1_FONT),
-		External(o1_DRAWTEXT),
-		External(o1_HOMETEXT),
-		External(o1_TEXTRECT),
-		External(o1_TEXTXY),
-		External(o1_DROPSHADOW),
-		External(o1_TEXTCOLOR),
-		External(o1_OUTLINE),
-		External(o1_LOADCURSOR),
-		External(o1_SETGROUND),
-		External(o1_RESTEXT),
-		External(o1_CLIPAREA),
-		External(o1_SETCLIP),
-		External(o1_ISSND),
-		External(o1_STOPSND),
-		External(o1_PLAYVOICE),
-		External(o1_CDPLAY),
-		External(o1_STOPCD),
-		External(o1_CDSTATUS),
-		External(o1_CDTIME),
-		External(o1_CDPLAYSEG),
-		External(o1_PRINTF),
-		External(o1_MONOCLS),
-		External(o1_SNDENERGY),
-		External(o1_CLEARTEXT),
-		External(o1_ANIMTEXT),
-		External(o1_TEXTWIDTH),
-		External(o1_PLAYMOVIE),
-		External(o1_LOADSND),
-		External(o1_LOADMUS),
-		External(o1_LOADPIC),
-		External(o1_MUSICVOL),
-		External(o1_RESTARTEVENTS),
-		External(o1_PLACESPRITE),
-		External(o1_PLACETEXT),
-		External(o1_DELETECHANNEL),
-		External(o1_CHANNELTYPE),
-		External(o1_SETSTATE),
-		External(o1_SETLOCATION),
-		External(o1_SETCONTENT),
-		External(o1_EXCLUDEAREA),
-		External(o1_SETEXCLUDE),
-		External(o1_GETSTATE),
-		External(o1_PLACEANIM),
-		External(o1_SETFRAME),
-		External(o1_GETFRAME),
-		External(o1_GETFRAMECOUNT),
-		External(o1_PICWIDTH),
-		External(o1_PICHEIGHT),
-		External(o1_SOUNDRATE),
-		External(o1_DRAWANIMPIC),
-		External(o1_LOADANIM),
-		External(o1_READTEXT),
-		External(o1_READMENU),
-		External(o1_DRAWMENU),
-		External(o1_MENUCOUNT),
-		External(o1_SAVEGAME),
-		External(o1_LOADGAME),
-		External(o1_GAMENAME),
-		External(o1_SHAKESCREEN),
-		External(o1_PLACEMENU),
-		External(o1_SETVOLUME),
-		External(o1_WHATSYNTH),
-		External(o1_SLOWSYSTEM)
-	};
 
-	for (int i = 0; i < ARRAYSIZE(externalsTable); ++i)
-		_externalFuncs.push_back(&externalsTable[i]);
+	External(o1_SYSTEM);
+	External(o1_INITGRAF);
+	External(o1_RESTOREGRAF);
+	External(o1_DRAWPIC);
+	External(o1_CLS);
+	External(o1_SHOWPAGE);
+	External(o1_EVENT);
+	External(o1_EVENTX);
+	External(o1_EVENTY);
+	External(o1_EVENTKEY);
+	External(o1_VISUALFX);
+	External(o1_PLAYSND);
+	External(o1_PLAYMUS);
+	External(o1_STOPMUS);
+	External(o1_ISMUS);
+	External(o1_TEXTPOS);
+	External(o1_FLASH);
+	External(o1_PLAYNOTE);
+	External(o1_STOPNOTE);
+	External(o1_PLAYTELE);
+	External(o1_STOPTELE);
+	External(o1_HIDECURS);
+	External(o1_SHOWCURS);
+	External(o1_MUSICBEAT);
+	External(o1_SCREENLOCK);
+	External(o1_ADDSPRITE);
+	External(o1_FREEANIM);
+	External(o1_DRAWSPRITE);
+	External(o1_ERASESPRITES);
+	External(o1_UPDATESPRITES);
+	External(o1_GETTIMER);
+	External(o1_SETTIMER);
+	External(o1_RESETTIMER);
+	External(o1_ALLOCTIMER);
+	External(o1_FREETIMER);
+	External(o1_PALETTELOCK);
+	External(o1_FONT);
+	External(o1_DRAWTEXT);
+	External(o1_HOMETEXT);
+	External(o1_TEXTRECT);
+	External(o1_TEXTXY);
+	External(o1_DROPSHADOW);
+	External(o1_TEXTCOLOR);
+	External(o1_OUTLINE);
+	External(o1_LOADCURSOR);
+	External(o1_SETGROUND);
+	External(o1_RESTEXT);
+	External(o1_CLIPAREA);
+	External(o1_SETCLIP);
+	External(o1_ISSND);
+	External(o1_STOPSND);
+	External(o1_PLAYVOICE);
+	External(o1_CDPLAY);
+	External(o1_STOPCD);
+	External(o1_CDSTATUS);
+	External(o1_CDTIME);
+	External(o1_CDPLAYSEG);
+	External(o1_PRINTF);
+	External(o1_MONOCLS);
+	External(o1_SNDENERGY);
+	External(o1_CLEARTEXT);
+	External(o1_ANIMTEXT);
+	External(o1_TEXTWIDTH);
+	External(o1_PLAYMOVIE);
+	External(o1_LOADSND);
+	External(o1_LOADMUS);
+	External(o1_LOADPIC);
+	External(o1_MUSICVOL);
+	External(o1_RESTARTEVENTS);
+	External(o1_PLACESPRITE);
+	External(o1_PLACETEXT);
+	External(o1_DELETECHANNEL);
+	External(o1_CHANNELTYPE);
+	External(o1_SETSTATE);
+	External(o1_SETLOCATION);
+	External(o1_SETCONTENT);
+	External(o1_EXCLUDEAREA);
+	External(o1_SETEXCLUDE);
+	External(o1_GETSTATE);
+	External(o1_PLACEANIM);
+	External(o1_SETFRAME);
+	External(o1_GETFRAME);
+	External(o1_GETFRAMECOUNT);
+	External(o1_PICWIDTH);
+	External(o1_PICHEIGHT);
+	External(o1_SOUNDRATE);
+	External(o1_DRAWANIMPIC);
+	External(o1_LOADANIM);
+	External(o1_READTEXT);
+	External(o1_READMENU);
+	External(o1_DRAWMENU);
+	External(o1_MENUCOUNT);
+	External(o1_SAVEGAME);
+	External(o1_LOADGAME);
+	External(o1_GAMENAME);
+	External(o1_SHAKESCREEN);
+	External(o1_PLACEMENU);
+	External(o1_SETVOLUME);
+	External(o1_WHATSYNTH);
+	External(o1_SLOWSYSTEM);
 
 }
 #undef External


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