[Scummvm-cvs-logs] SF.net SVN: scummvm: [22263] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Mon May 1 12:13:03 CEST 2006


Revision: 22263
Author:   drmccoy
Date:     2006-05-01 12:11:57 -0700 (Mon, 01 May 2006)
ViewCVS:  http://svn.sourceforge.net/scummvm/?rev=22263&view=rev

Log Message:
-----------
- Stubbed goblinFunc(), it's completeley different; now it at least
  doesn't crash anymore
- Reduced valgrind's complains about unitialized memory

Modified Paths:
--------------
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_v2.cpp
    scummvm/trunk/engines/gob/parse.cpp
    scummvm/trunk/engines/gob/video_v2.cpp
Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2006-05-01 16:04:53 UTC (rev 22262)
+++ scummvm/trunk/engines/gob/inter.h	2006-05-01 19:11:57 UTC (rev 22263)
@@ -316,6 +316,7 @@
 	void o2_stub0x56(void);
 	void o2_stub0x80(void);
 	void o2_renderStatic(void);
+	bool o2_goblinFunc(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_evaluateStore(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_palLoad(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_loadTot(char &cmdCount, int16 &counter, int16 &retFlag);

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2006-05-01 16:04:53 UTC (rev 22262)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2006-05-01 19:11:57 UTC (rev 22263)
@@ -492,7 +492,7 @@
 		OPCODE(o1_speakerOff),
 		/* 24 */
 		OPCODE(o1_putPixel),
-		OPCODE(o1_goblinFunc),
+		OPCODE(o2_goblinFunc),
 		OPCODE(o1_createSprite),
 		OPCODE(o2_freeSprite),
 		/* 28 */
@@ -1008,6 +1008,35 @@
 	warning("GOB2 Stub! Inter_v2::loadMult()");
 }
 
+bool Inter_v2::o2_goblinFunc(char &cmdCount, int16 &counter, int16 &retFlag) {
+	int16 cmd;
+	int16 word_2F9C0;
+	int16 word_2F9BE;
+	int16 word_2F9BC;
+	int16 word_2F9BA;
+	char *dword_2F9B6;
+	char *dword_2F9B2;
+
+	cmd = load16();
+	_vm->_global->_inter_execPtr += 2;
+
+	if (cmd == 100) {
+		word_2F9C0 = VAR(load16());
+		word_2F9BE = VAR(load16());
+		dword_2F9B6 = _vm->_global->_inter_variables + (load16() >> 2);
+		dword_2F9B2 = _vm->_global->_inter_variables + (load16() >> 2);
+		word_2F9BC = VAR(load16());
+		word_2F9BA = VAR(load16());
+		warning("GOB2 Stub! sub_19BD3()");
+	} else if (cmd != 101) {
+		_vm->_global->_inter_execPtr -= 2;
+		cmd = load16();
+		_vm->_global->_inter_execPtr += cmd << 1;
+	}
+
+	return false;
+}
+
 bool Inter_v2::o2_evaluateStore(char &cmdCount, int16 &counter, int16 &retFlag) {
 	char *savedPos;
 	int16 varOff;

Modified: scummvm/trunk/engines/gob/parse.cpp
===================================================================
--- scummvm/trunk/engines/gob/parse.cpp	2006-05-01 16:04:53 UTC (rev 22262)
+++ scummvm/trunk/engines/gob/parse.cpp	2006-05-01 19:11:57 UTC (rev 22263)
@@ -37,7 +37,7 @@
 }
 
 int32 Parse::encodePtr(char *ptr, int type) {
-	int32 offset;
+	int32 offset = 0;
 
 	switch (type) {
 	case kExecPtr:

Modified: scummvm/trunk/engines/gob/video_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/video_v2.cpp	2006-05-01 16:04:53 UTC (rev 22262)
+++ scummvm/trunk/engines/gob/video_v2.cpp	2006-05-01 19:11:57 UTC (rev 22263)
@@ -127,6 +127,7 @@
 		if (descPtr->vidPtr != 0)
 			delete[] descPtr->vidPtr;
 		vidMem = new byte[320 * 200];
+		memset(vidMem, 0, 64000);
 	} else {
 		if (flags & DISABLE_SPR_ALLOC) {
 			descPtr = new SurfaceDesc;
@@ -135,6 +136,7 @@
 		} else {
 			descPtr = new SurfaceDesc;
 			descPtr->vidPtr = new byte[sprSize];
+			memset(descPtr->vidPtr, 0, sprSize);
 			vidMem = descPtr->vidPtr;
 		}
 	}


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