[Scummvm-cvs-logs] SF.net SVN: scummvm:[44152] scummvm/trunk/engines/sci

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Thu Sep 17 15:21:43 CEST 2009


Revision: 44152
          http://scummvm.svn.sourceforge.net/scummvm/?rev=44152&view=rev
Author:   fingolfin
Date:     2009-09-17 13:21:42 +0000 (Thu, 17 Sep 2009)

Log Message:
-----------
SCI: Rename selector_map_t -> SelectorCache and _selectorMap -> _selectorCache

Modified Paths:
--------------
    scummvm/trunk/engines/sci/console.cpp
    scummvm/trunk/engines/sci/engine/kernel.cpp
    scummvm/trunk/engines/sci/engine/kernel.h
    scummvm/trunk/engines/sci/engine/kgraphics.cpp
    scummvm/trunk/engines/sci/engine/kmovement.cpp
    scummvm/trunk/engines/sci/engine/script.cpp
    scummvm/trunk/engines/sci/engine/state.cpp
    scummvm/trunk/engines/sci/engine/state.h
    scummvm/trunk/engines/sci/engine/vm.cpp
    scummvm/trunk/engines/sci/engine/vm.h

Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/console.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -3133,7 +3133,7 @@
 	int have_rects = 0;
 	Common::Rect nsrect, nsrect_clipped, brrect;
 
-	if (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsBottom, NULL) == kSelectorVariable) {
+	if (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsBottom, NULL) == kSelectorVariable) {
 		GETRECT(nsLeft, nsRight, nsBottom, nsTop);
 		GETRECT(lsLeft, lsRight, lsBottom, lsTop);
 		GETRECT(brLeft, brRight, brBottom, brTop);
@@ -3147,7 +3147,7 @@
 	x = GET_SELECTOR(pos, x);
 	y = GET_SELECTOR(pos, y);
 	priority = GET_SELECTOR(pos, priority);
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.z > 0) {
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.z > 0) {
 		z = GET_SELECTOR(pos, z);
 		printf("(%d,%d,%d)\n", x, y, z);
 	} else
@@ -3211,10 +3211,10 @@
 	}
 
 
-	is_view = (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorMap.x, NULL) == kSelectorVariable) &&
-	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorMap.brLeft, NULL) == kSelectorVariable) &&
-	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorMap.signal, NULL) == kSelectorVariable) &&
-	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsTop, NULL) == kSelectorVariable);
+	is_view = (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorCache.x, NULL) == kSelectorVariable) &&
+	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorCache.brLeft, NULL) == kSelectorVariable) &&
+	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorCache.signal, NULL) == kSelectorVariable) &&
+	    (lookup_selector(s->segMan, pos, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsTop, NULL) == kSelectorVariable);
 
 	if (!is_view) {
 		printf("Not a dynamic View object.\n");

Modified: scummvm/trunk/engines/sci/engine/kernel.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/kernel.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -380,8 +380,6 @@
 };
 
 Kernel::Kernel(ResourceManager *resMan) : _resMan(resMan) {
-	memset(&_selectorMap, 0, sizeof(_selectorMap));	// FIXME: Remove this once/if we C++ify selector_map_t
-
 	loadSelectorNames();
 	detectSciFeatures();
 
@@ -404,7 +402,7 @@
 	if (version == SCI_VERSION_0_EARLY) {
 		features |= kFeatureOldScriptHeader | kFeatureOldGfxFunctions;
 	} else if (version == SCI_VERSION_0_LATE) {
-		if (_selectorMap.motionCue == -1)
+		if (_selectorCache.motionCue == -1)
 			features |= kFeatureOldGfxFunctions;
 	}
 

Modified: scummvm/trunk/engines/sci/engine/kernel.h
===================================================================
--- scummvm/trunk/engines/sci/engine/kernel.h	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/kernel.h	2009-09-17 13:21:42 UTC (rev 44152)
@@ -99,7 +99,7 @@
 	void dumpScriptObject(char *data, int seeker, int objsize);
 	void dumpScriptClass(char *data, int seeker, int objsize);
 
-	selector_map_t _selectorMap; /**< Shortcut list for important selectors */
+	SelectorCache _selectorCache; /**< Shortcut list for important selectors */
 	Common::Array<KernelFuncWithSignature> _kernelFuncs; /**< Table of kernel functions */
 
 private:
@@ -172,32 +172,32 @@
 	kContinueOnInvalidSelector = 1
 };
 
-#define GET_SEL32(_o_, _slc_) read_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorMap._slc_, __FILE__, __LINE__)
+#define GET_SEL32(_o_, _slc_) read_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorCache._slc_, __FILE__, __LINE__)
 #define GET_SEL32V(_o_, _slc_) (GET_SEL32(_o_, _slc_).offset)
 /* Retrieves a selector from an object
 ** Parameters: (reg_t) object: The address of the object which the selector should be read from
 **             (selector_name) selector: The selector to read
 ** Returns   : (int16/uint16/reg_t) The selector value
 ** This macro halts on error. 'selector' must be a selector name registered in vm.h's
-** selector_map_t and mapped in script.c.
+** SelectorCache and mapped in script.cpp.
 */
 
-#define PUT_SEL32(_o_, _slc_, _val_) write_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorMap._slc_, _val_, __FILE__, __LINE__)
-#define PUT_SEL32V(_o_, _slc_, _val_) write_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorMap._slc_, make_reg(0, _val_), __FILE__, __LINE__)
+#define PUT_SEL32(_o_, _slc_, _val_) write_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorCache._slc_, _val_, __FILE__, __LINE__)
+#define PUT_SEL32V(_o_, _slc_, _val_) write_selector(segMan, _o_, ((SciEngine*)g_engine)->getKernel()->_selectorCache._slc_, make_reg(0, _val_), __FILE__, __LINE__)
 /* Writes a selector value to an object
 ** Parameters: (reg_t) object: The address of the object which the selector should be written to
 **             (selector_name) selector: The selector to read
 **             (int16) value: The value to write
 ** Returns   : (void)
 ** This macro halts on error. 'selector' must be a selector name registered in vm.h's
-** selector_map_t and mapped in script.c.
+** SelectorCache and mapped in script.cpp.
 */
 
 
 enum { WAS_FUNCT_NR = -1 };
 
 #define INV_SEL(_object_, _selector_, _noinvalid_) \
-	s, _object_,  ((SciEngine*)g_engine)->getKernel()->_selectorMap._selector_, _noinvalid_, WAS_FUNCT_NR, argv, argc, __FILE__, __LINE__
+	s, _object_,  ((SciEngine*)g_engine)->getKernel()->_selectorCache._selector_, _noinvalid_, WAS_FUNCT_NR, argv, argc, __FILE__, __LINE__
 /* Kludge for use with invoke_selector(). Used for compatibility with compilers that can't
 ** handle vararg macros.
 */

Modified: scummvm/trunk/engines/sci/engine/kgraphics.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/kgraphics.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -1046,7 +1046,7 @@
 	x = (int16)GET_SEL32V(object, x);
 	original_y = y = (int16)GET_SEL32V(object, y);
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.z > -1)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.z > -1)
 		z = (int16)GET_SEL32V(object, z);
 	else
 		z = 0;
@@ -1097,7 +1097,7 @@
 	SegManager *segMan = s->segMan;
 	Common::Rect absrect = set_base(s, object);
 
-	if (lookup_selector(s->segMan, object, ((SciEngine*)g_engine)->getKernel()->_selectorMap.brLeft, NULL, NULL) != kSelectorVariable)
+	if (lookup_selector(s->segMan, object, ((SciEngine*)g_engine)->getKernel()->_selectorCache.brLeft, NULL, NULL) != kSelectorVariable)
 		return; // non-fatal
 
 	// Note: there was a check here for a very old version of SCI, which supposedly needed
@@ -1175,7 +1175,7 @@
 	x = (int16)GET_SEL32V(object, x);
 	y = (int16)GET_SEL32V(object, y);
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.z > -1)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.z > -1)
 		z = (int16)GET_SEL32V(object, z);
 	else
 		z = 0;
@@ -1200,7 +1200,7 @@
 	SegManager *segMan = s->segMan;
 	Common::Rect absrect = get_nsrect(s, object, 0);
 
-	if (lookup_selector(s->segMan, object, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsTop, NULL, NULL) != kSelectorVariable) {
+	if (lookup_selector(s->segMan, object, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsTop, NULL, NULL) != kSelectorVariable) {
 		return;
 	} // This isn't fatal
 
@@ -1702,7 +1702,7 @@
 		 * if ((widget->signal & (_K_VIEW_SIG_FLAG_PRIVATE | _K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_NO_UPDATE)) == _K_VIEW_SIG_FLAG_PRIVATE) {
 		 */
 		if ((widget->signal & (_K_VIEW_SIG_FLAG_REMOVE | _K_VIEW_SIG_FLAG_NO_UPDATE)) == 0) {
-			int has_nsrect = lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsBottom, NULL, NULL) == kSelectorVariable;
+			int has_nsrect = lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsBottom, NULL, NULL) == kSelectorVariable;
 
 			if (has_nsrect) {
 				int temp;
@@ -1724,7 +1724,7 @@
 			}
 #ifdef DEBUG_LSRECT
 			else
-				fprintf(stderr, "Not lsRecting %04x:%04x because %d\n", PRINT_REG(obj), lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsBottom, NULL, NULL));
+				fprintf(stderr, "Not lsRecting %04x:%04x because %d\n", PRINT_REG(obj), lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsBottom, NULL, NULL));
 #endif
 
 			if (widget->signal & _K_VIEW_SIG_FLAG_HIDDEN)
@@ -1880,7 +1880,7 @@
 	loop = oldloop = sign_extend_byte(GET_SEL32V(obj, loop));
 	cel = oldcel = sign_extend_byte(GET_SEL32V(obj, cel));
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.palette)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.palette)
 		palette = GET_SEL32V(obj, palette);
 	else
 		palette = 0;
@@ -1901,7 +1901,7 @@
 	}
 
 	ObjVarRef under_bitsp;
-	if (lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorMap.underBits, &(under_bitsp), NULL) != kSelectorVariable) {
+	if (lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorCache.underBits, &(under_bitsp), NULL) != kSelectorVariable) {
 		under_bitsp.obj = NULL_REG;
 		under_bits = NULL_REG;
 		debugC(2, kDebugLevelGraphics, "Object at %04x:%04x has no underBits\n", PRINT_REG(obj));
@@ -1909,7 +1909,7 @@
 		under_bits = *under_bitsp.getPointer(s->segMan);
 
 	ObjVarRef signalp;
-	if (lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorMap.signal, &(signalp), NULL) != kSelectorVariable) {
+	if (lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorCache.signal, &(signalp), NULL) != kSelectorVariable) {
 		signalp.obj = NULL_REG;
 		signal = 0;
 		debugC(2, kDebugLevelGraphics, "Object at %04x:%04x has no signal selector\n", PRINT_REG(obj));
@@ -2004,7 +2004,7 @@
 	while (view) {
 		reg_t obj = make_reg(view->_ID, view->_subID);
 		int priority, _priority;
-		int has_nsrect = (view->_ID <= 0) ? 0 : lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorMap.nsBottom, NULL, NULL) == kSelectorVariable;
+		int has_nsrect = (view->_ID <= 0) ? 0 : lookup_selector(s->segMan, obj, ((SciEngine*)g_engine)->getKernel()->_selectorCache.nsBottom, NULL, NULL) == kSelectorVariable;
 		int oldsignal = view->signal;
 
 		_k_set_now_seen(s, obj);

Modified: scummvm/trunk/engines/sci/engine/kmovement.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kmovement.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/kmovement.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -269,7 +269,7 @@
 			return;
 		}
 
-		if (lookup_selector(s->segMan, motion_class, ((SciEngine*)g_engine)->getKernel()->_selectorMap.doit, NULL, &fptr) != kSelectorMethod) {
+		if (lookup_selector(s->segMan, motion_class, ((SciEngine*)g_engine)->getKernel()->_selectorCache.doit, NULL, &fptr) != kSelectorMethod) {
 			warning("bresenham_autodetect failed");
 			handle_movecnt = INCREMENT_MOVECNT; // Most games do this, so best guess
 			return;
@@ -365,7 +365,7 @@
 
 	debugC(2, kDebugLevelBresen, "New data: (x,y)=(%d,%d), di=%d\n", x, y, bdi);
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.cantBeHere != -1)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.cantBeHere != -1)
 		invoke_selector(INV_SEL(client, cantBeHere, kStopOnInvalidSelector), 0);
 	else
 		invoke_selector(INV_SEL(client, canBeHere, kStopOnInvalidSelector), 0);

Modified: scummvm/trunk/engines/sci/engine/script.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/script.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/script.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -113,18 +113,18 @@
 
 #if 1
 
-#define FIND_SELECTOR(_slc_) _selectorMap._slc_ = findSelector(#_slc_)
-#define FIND_SELECTOR2(_slc_, _slcstr_) _selectorMap._slc_ = findSelector(_slcstr_)
+#define FIND_SELECTOR(_slc_) _selectorCache._slc_ = findSelector(#_slc_)
+#define FIND_SELECTOR2(_slc_, _slcstr_) _selectorCache._slc_ = findSelector(_slcstr_)
 
 #else
 
 // The defines below can be used to construct static selector tables for games which don't have
 // a vocab.997 resource, by dumping the selector table from other similar versions or games
-#define FIND_SELECTOR(_slc_) _selectorMap._slc_ = findSelector(#_slc_); \
-	printf("\t{ \"%s\", %d },\n", #_slc_, _selectorMap._slc_)
+#define FIND_SELECTOR(_slc_) _selectorCache._slc_ = findSelector(#_slc_); \
+	printf("\t{ \"%s\", %d },\n", #_slc_, _selectorCache._slc_)
  
-#define FIND_SELECTOR2(_slc_, _slcstr_) _selectorMap._slc_ = findSelector(_slcstr_); \
-	printf("\t{ \"%s\", %d },\n", _slcstr_, _selectorMap._slc_)
+#define FIND_SELECTOR2(_slc_, _slcstr_) _selectorCache._slc_ = findSelector(_slcstr_); \
+	printf("\t{ \"%s\", %d },\n", _slcstr_, _selectorCache._slc_)
 
 #endif
 

Modified: scummvm/trunk/engines/sci/engine/state.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/state.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/state.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -180,7 +180,7 @@
 kLanguage EngineState::getLanguage() {
 	kLanguage lang = K_LANG_ENGLISH;
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.printLang != -1) {
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.printLang != -1) {
 		lang = (kLanguage)GET_SEL32V(this->game_obj, printLang);
 
 		if ((segMan->sciVersion() == SCI_VERSION_1_1) || (lang == K_LANG_NONE)) {
@@ -227,7 +227,7 @@
 	kLanguage lang = getLanguage();
 	kLanguage subLang = K_LANG_NONE;
 
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.subtitleLang != -1)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.subtitleLang != -1)
 		subLang = (kLanguage)GET_SEL32V(this->game_obj, subtitleLang);
 
 	Common::String retval = getLanguageString(str, lang);
@@ -273,7 +273,7 @@
 		reg_t soundClass;
 
 		if (!parse_reg_t(this, "?Sound", &soundClass)) {
-			int sum = methodChecksum(soundClass, ((SciEngine *)g_engine)->getKernel()->_selectorMap.play, -6, 6);
+			int sum = methodChecksum(soundClass, ((SciEngine *)g_engine)->getKernel()->_selectorCache.play, -6, 6);
 
 			switch(sum) {
 			case 0x1B2: // SCI0
@@ -310,7 +310,7 @@
 
 SciVersion EngineState::detectSetCursorType() {
 	if (_setCursorType == SCI_VERSION_AUTODETECT) {
-		int sum = methodChecksum(game_obj, ((SciEngine *)g_engine)->getKernel()->_selectorMap.setCursor, 0, 21);
+		int sum = methodChecksum(game_obj, ((SciEngine *)g_engine)->getKernel()->_selectorCache.setCursor, 0, 21);
 
 		if ((sum == 0x4D5) || (sum == 0x552)) {
 			// Standard setCursor

Modified: scummvm/trunk/engines/sci/engine/state.h
===================================================================
--- scummvm/trunk/engines/sci/engine/state.h	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/state.h	2009-09-17 13:21:42 UTC (rev 44152)
@@ -330,7 +330,7 @@
 // misleading. A different name (and a different place for declaring this)
 // would be highly welcome.
 static inline reg_t not_register(EngineState *s, reg_t r) {
-	if (((SciEngine*)g_engine)->getKernel()->_selectorMap.cantBeHere != -1)
+	if (((SciEngine*)g_engine)->getKernel()->_selectorCache.cantBeHere != -1)
 		return make_reg(0, !r.offset);
 	else
 		return r;

Modified: scummvm/trunk/engines/sci/engine/vm.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.cpp	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/vm.cpp	2009-09-17 13:21:42 UTC (rev 44152)
@@ -1861,7 +1861,7 @@
 			script_init_engine(s);
 			game_init(s);
 			sfx_reset_player();
-			_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.play);
+			_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorCache.play);
 
 			send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base);
 
@@ -1880,7 +1880,7 @@
 					debugC(2, kDebugLevelVM, "Restarting with replay()\n");
 					s->_executionStack.clear(); // Restart with replay
 
-					_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.replay);
+					_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorCache.replay);
 
 					send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base);
 				}
@@ -1899,7 +1899,7 @@
 	EngineState *s = *_s;
 
 	debugC(2, kDebugLevelVM, "Calling %s::play()\n", s->_gameName.c_str());
-	_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorMap.play); // Call the play selector
+	_init_stack_base_with_selector(s, ((SciEngine *)g_engine)->getKernel()->_selectorCache.play); // Call the play selector
 
 	// Now: Register the first element on the execution stack-
 	if (!send_selector(s, s->game_obj, s->game_obj, s->stack_base, 2, s->stack_base)) {

Modified: scummvm/trunk/engines/sci/engine/vm.h
===================================================================
--- scummvm/trunk/engines/sci/engine/vm.h	2009-09-17 13:21:19 UTC (rev 44151)
+++ scummvm/trunk/engines/sci/engine/vm.h	2009-09-17 13:21:42 UTC (rev 44152)
@@ -110,7 +110,11 @@
 #define RAW_IS_OBJECT(datablock) (READ_LE_UINT16(((byte *) datablock) + SCRIPT_OBJECT_MAGIC_OFFSET) == SCRIPT_OBJECT_MAGIC_NUMBER)
 
 /** Contains selector IDs for a few selected selectors */
-struct selector_map_t {
+struct SelectorCache {
+	SelectorCache() {
+		memset(this, 0, sizeof(*this));
+	}
+
 	Selector init; /**< Init function */
 	Selector play; /**< Play function (first function to be called) */
 	Selector replay; /**< Replay function */


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