[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