[Scummvm-cvs-logs] CVS: scummvm/scumm intern.h,2.219,2.220 object.cpp,1.181,1.182 script_v6he.cpp,2.112,2.113 script_v80he.cpp,2.1,2.2 scumm.h,1.470,1.471

Travis Howell kirben at users.sourceforge.net
Sun Sep 5 18:11:12 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12303/scumm

Modified Files:
	intern.h object.cpp script_v6he.cpp script_v80he.cpp scumm.h 
Log Message:

HE 72+ games use a remove object from queue function.


Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.219
retrieving revision 2.220
diff -u -d -r2.219 -r2.220
--- intern.h	6 Sep 2004 00:58:40 -0000	2.219
+++ intern.h	6 Sep 2004 01:10:30 -0000	2.220
@@ -778,6 +778,7 @@
 	virtual const char *getOpcodeDesc(byte i);
 	
 	/* HE version 80 script opcodes */
+	void o80_setState();
 };
 
 class ScummEngine_v90he : public ScummEngine_v80he {

Index: object.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/object.cpp,v
retrieving revision 1.181
retrieving revision 1.182
diff -u -d -r1.181 -r1.182
--- object.cpp	5 Sep 2004 17:39:53 -0000	1.181
+++ object.cpp	6 Sep 2004 01:10:30 -0000	1.182
@@ -851,6 +851,17 @@
 	_drawObjectQue[_drawObjectQueNr++] = object;
 }
 
+void ScummEngine::removeObjectFromDrawQue(int object) {
+	if (_drawObjectQue <= 0)
+		return;
+
+	int i;
+	for (i = 0; i < _drawObjectQueNr; i++) {
+		if (_drawObjectQue[i] = object)
+			_drawObjectQue[i] = 0;
+	}
+}
+
 void ScummEngine::clearDrawObjectQueue() {
 	_drawObjectQueNr = 0;
 }

Index: script_v6he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v6he.cpp,v
retrieving revision 2.112
retrieving revision 2.113
diff -u -d -r2.112 -r2.113
--- script_v6he.cpp	6 Sep 2004 01:00:18 -0000	2.112
+++ script_v6he.cpp	6 Sep 2004 01:10:31 -0000	2.113
@@ -391,6 +391,8 @@
 	if (state & 0x8000) {
 		state = state & 0x7F00;
 		putState(obj, state);
+		if (_heversion >= 72)
+			removeObjectFromDrawQue(obj);
 		return;
 	}
 

Index: script_v80he.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/script_v80he.cpp,v
retrieving revision 2.1
retrieving revision 2.2
diff -u -d -r2.1 -r2.2
--- script_v80he.cpp	6 Sep 2004 00:58:40 -0000	2.1
+++ script_v80he.cpp	6 Sep 2004 01:10:31 -0000	2.2
@@ -185,7 +185,7 @@
 		OPCODE(o6_setClass),
 		OPCODE(o6_getState),
 		/* 70 */
-		OPCODE(o6_setState),
+		OPCODE(o80_setState),
 		OPCODE(o6_setOwner),
 		OPCODE(o6_getOwner),
 		OPCODE(o6_jump),
@@ -378,4 +378,13 @@
 	return _opcodesV80he[i].desc;
 }
 
+void ScummEngine_v80he::o80_setState() {
+	int state = pop();
+	int obj = pop();
+
+	state = state & 0x7F00;
+	putState(obj, state);
+	removeObjectFromDrawQue(obj);
+}
+
 } // End of namespace Scumm

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.470
retrieving revision 1.471
diff -u -d -r1.470 -r1.471
--- scumm.h	5 Sep 2004 15:44:29 -0000	1.470
+++ scumm.h	6 Sep 2004 01:10:31 -0000	1.471
@@ -758,6 +758,7 @@
 	void setObjectName(int obj);
 
 	void addObjectToDrawQue(int object);
+	void removeObjectFromDrawQue(int object);
 	void clearDrawObjectQueue();
 	void processDrawQue();
 





More information about the Scummvm-git-logs mailing list