[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.348,1.349 gfx.cpp,2.440,2.441 intern.h,2.470,2.471 scumm.cpp,1.474,1.475

kirben kirben at users.sourceforge.net
Thu Apr 28 18:42:07 CEST 2005


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

Modified Files:
	actor.cpp gfx.cpp intern.h scumm.cpp 
Log Message:

Add HE90 version of processActors().
Add HE71 class, for HE71+ specifics.


Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.348
retrieving revision 1.349
diff -u -d -r1.348 -r1.349
--- actor.cpp	28 Apr 2005 22:17:21 -0000	1.348
+++ actor.cpp	29 Apr 2005 01:36:28 -0000	1.349
@@ -1016,30 +1016,31 @@
 		akos_processQueue();
 }
 
-void ScummEngine_v70he::processActors() {
-	// TODO: The HE 90 stuff should be moved to a new method, too,
-	// if possible (ScummEngine_v90he::processActors).
-	if (_heversion >= 71) {
-		preProcessAuxQueue();
-	}
-	if (_heversion >= 90) {
-		((ScummEngine_v90he *)this)->spritesMarkDirty(0);
-		((ScummEngine_v90he *)this)->spritesProcessWiz(true);
-	}
+void ScummEngine_v71he::processActors() {
+	preProcessAuxQueue();
 
 	if (!_skipProcessActors)
 		ScummEngine::processActors();
 
-	if (_heversion >= 71) {
-		postProcessAuxQueue();
-	}
-	if (_heversion >= 90) {
-		((ScummEngine_v90he *)this)->spritesMarkDirty(1);
-		((ScummEngine_v90he *)this)->spritesProcessWiz(false);
-	}
+	postProcessAuxQueue();
 }
 
 
+void ScummEngine_v90he::processActors() {
+	preProcessAuxQueue();
+
+	spritesMarkDirty(0);
+	spritesProcessWiz(true);
+
+	if (!_skipProcessActors)
+		ScummEngine::processActors();
+
+	postProcessAuxQueue();
+
+	spritesMarkDirty(1);
+	spritesProcessWiz(false);
+}
+
 // Used in Scumm v8, to allow the verb coin to be drawn over the inventory
 // chest. I'm assuming that draw order won't matter here.
 void ScummEngine::processUpperActors() {
@@ -1969,7 +1970,7 @@
 	return (_heCondMask & (1 << (slot - 1))) != 0;
 }
 
-void ScummEngine_v70he::preProcessAuxQueue() {
+void ScummEngine_v71he::preProcessAuxQueue() {
 	if (!_skipProcessActors) {
 		for (int i = 0; i < _auxBlocksNum; ++i) {
 			AuxBlock *ab = &_auxBlocks[i];
@@ -1982,7 +1983,7 @@
 	_auxBlocksNum = 0;
 }
 
-void ScummEngine_v70he::postProcessAuxQueue() {
+void ScummEngine_v71he::postProcessAuxQueue() {
 	if (!_skipProcessActors) {
 		for (int i = 0; i < _auxEntriesNum; ++i) {
 			AuxEntry *ae = &_auxEntries[i];

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.440
retrieving revision 2.441
diff -u -d -r2.440 -r2.441
--- gfx.cpp	28 Apr 2005 22:34:54 -0000	2.440
+++ gfx.cpp	29 Apr 2005 01:36:28 -0000	2.441
@@ -798,12 +798,7 @@
 	_bgNeedsRedraw = false;
 }
 
-void ScummEngine_v70he::redrawBGAreas() {
-	if (_heversion == 70) {
-		ScummEngine::redrawBGAreas();
-		return;
-	}
-
+void ScummEngine_v71he::redrawBGAreas() {
 	if (camera._cur.x != camera._last.x && _charset->_hasMask)
 		stopTalk();
 

Index: intern.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/intern.h,v
retrieving revision 2.470
retrieving revision 2.471
diff -u -d -r2.470 -r2.471
--- intern.h	28 Apr 2005 22:34:54 -0000	2.470
+++ intern.h	29 Apr 2005 01:36:30 -0000	2.471
@@ -758,12 +758,6 @@
 	virtual void readGlobalObjects();
 	virtual void readIndexBlock(uint32 blocktype, uint32 itemsize);
 
-	virtual void redrawBGAreas();
-
-	virtual void processActors();
-	void preProcessAuxQueue();
-	void postProcessAuxQueue();
-
 	int getStringCharWidth(byte chr);
 	virtual int setupStringArray(int size);
 	void appendSubstring(int dst, int src, int len2, int len);
@@ -798,7 +792,20 @@
 	byte VAR_NUM_SOUND_CHANNELS;
 };
 
-class ScummEngine_v72he : public ScummEngine_v70he {
+class ScummEngine_v71he : public ScummEngine_v70he {
+public:
+	ScummEngine_v71he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16]) : ScummEngine_v70he(detector, syst, gs, md5sum) {}
+
+protected:
+	virtual void redrawBGAreas();
+
+	virtual void processActors();
+	void preProcessAuxQueue();
+	void postProcessAuxQueue();
+
+};
+
+class ScummEngine_v72he : public ScummEngine_v71he {
 protected:
 	typedef void (ScummEngine_v72he::*OpcodeProcV72he)();
 	struct OpcodeEntryV72he {
@@ -1049,6 +1056,8 @@
 
 	virtual void readMAXS(int blockSize);
 
+	virtual void processActors();
+
 	void createWizEmptyImage(const WizParameters *params);
 	void fillWizRect(const WizParameters *params);
 	void fillWizParallelogram(const WizParameters *params);

Index: scumm.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.cpp,v
retrieving revision 1.474
retrieving revision 1.475
diff -u -d -r1.474 -r1.475
--- scumm.cpp	29 Apr 2005 01:08:56 -0000	1.474
+++ scumm.cpp	29 Apr 2005 01:36:30 -0000	1.475
@@ -1276,7 +1276,7 @@
 }
 
 ScummEngine_v72he::ScummEngine_v72he(GameDetector *detector, OSystem *syst, const ScummGameSettings &gs, uint8 md5sum[16])
- : ScummEngine_v70he(detector, syst, gs, md5sum) {
+ : ScummEngine_v71he(detector, syst, gs, md5sum) {
 	VAR_NUM_ACTIVE_SOUND_CHANNELS = 0xFF;
 
 	VAR_NUM_ROOMS = 0xFF;
@@ -2762,9 +2762,9 @@
 		case 99:
 			engine = new ScummEngine_v99he(detector, syst, game, md5sum);
 			break;
-		case 90:
 		case 98:
 		case 95:
+		case 90:
 			engine = new ScummEngine_v90he(detector, syst, game, md5sum);
 			break;
 		case 80:
@@ -2774,6 +2774,8 @@
 			engine = new ScummEngine_v72he(detector, syst, game, md5sum);
 			break;
 		case 71:
+			engine = new ScummEngine_v71he(detector, syst, game, md5sum);
+			break;
 		case 70:
 			engine = new ScummEngine_v70he(detector, syst, game, md5sum);
 			break;





More information about the Scummvm-git-logs mailing list