[Scummvm-cvs-logs] CVS: scummvm/scumm actor.cpp,1.322,1.323 akos.cpp,1.209,1.210 base-costume.cpp,2.25,2.26 costume.cpp,1.161,1.162 gfx.cpp,2.404,2.405 scumm.h,1.541,1.542

Max Horn fingolfin at users.sourceforge.net
Tue Mar 15 13:49:57 CET 2005


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

Modified Files:
	actor.cpp akos.cpp base-costume.cpp costume.cpp gfx.cpp 
	scumm.h 
Log Message:
Some cleanup/costume code unification. Note: NES costume code probably should be using subclasses; and maybe we should add AKOSLoadedCostume and NESLoadedCostume ?

Index: actor.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/actor.cpp,v
retrieving revision 1.322
retrieving revision 1.323
diff -u -d -r1.322 -r1.323
--- actor.cpp	11 Mar 2005 01:09:37 -0000	1.322
+++ actor.cpp	15 Mar 2005 21:48:00 -0000	1.323
@@ -467,7 +467,7 @@
 			_needRedraw = true;
 			if (f == _initFrame)
 				_cost.reset();
-			_vm->akos_decodeData(this, f, (uint) - 1);
+			_vm->costumeDecodeData(this, f, (uint) - 1);
 			_frame = f;
 		}
 	} else {
@@ -501,10 +501,7 @@
 				_cost.reset();
 				_auxBlock.visible = false;
 			}
-			if (_vm->_features & GF_NEW_COSTUMES)
-				_vm->akos_decodeData(this, f, (uint) - 1);
-			else
-				_vm->cost_decodeData(this, f, (uint) - 1);
+			_vm->costumeDecodeData(this, f, (uint) - 1);
 			_frame = f;
 		}
 	}
@@ -573,10 +570,7 @@
 		vald = _cost.frame[i];
 		if (vald == 0xFFFF)
 			continue;
-		if (_vm->_features & GF_NEW_COSTUMES)
-			_vm->akos_decodeData(this, vald, aMask);
-		else
-			_vm->cost_decodeData(this, vald, (_vm->_version <= 2) ? 0xFFFF : aMask);
+		_vm->costumeDecodeData(this, vald, (_vm->_version <= 2) ? 0xFFFF : aMask);
 	}
 
 	_needRedraw = true;

Index: akos.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/akos.cpp,v
retrieving revision 1.209
retrieving revision 1.210
diff -u -d -r1.209 -r1.210
--- akos.cpp	11 Mar 2005 01:09:54 -0000	1.209
+++ akos.cpp	15 Mar 2005 21:48:01 -0000	1.210
@@ -148,13 +148,6 @@
 	return (akhd->flags & 2) != 0;
 }
 
-int ScummEngine::akos_frameToAnim(Actor *a, int frame) {
-	if (_version >= 7 && akos_hasManyDirections(a->_costume))
-		return toSimpleDir(1, a->getFacing()) + frame * 8;
-	else
-		return newDirToOldDir(a->getFacing()) + frame * 4;
-}
-
 void ScummEngine::akos_decodeData(Actor *a, int frame, uint usemask) {
 	uint anim;
 	const byte *akos, *r;
@@ -168,7 +161,10 @@
 	if (a->_costume == 0)
 		return;
 
-	anim = akos_frameToAnim(a, frame);
+	if (_version >= 7 && akos_hasManyDirections(a->_costume))
+		anim = toSimpleDir(1, a->getFacing()) + frame * 8;
+	else
+		anim = newDirToOldDir(a->getFacing()) + frame * 4;
 
 	akos = getResourceAddress(rtCostume, a->_costume);
 	assert(akos);

Index: base-costume.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/base-costume.cpp,v
retrieving revision 2.25
retrieving revision 2.26
diff -u -d -r2.25 -r2.26
--- base-costume.cpp	11 Mar 2005 01:09:56 -0000	2.25
+++ base-costume.cpp	15 Mar 2005 21:48:02 -0000	2.26
@@ -87,4 +87,11 @@
 	return false;
 }
 
+void ScummEngine::costumeDecodeData(Actor *a, int frame, uint usemask) {
+	if (_features & GF_NEW_COSTUMES)
+		akos_decodeData(a, frame, usemask);
+	else
+		cost_decodeData(a, frame, usemask);
+}
+
 } // End of namespace Scumm

Index: costume.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/costume.cpp,v
retrieving revision 1.161
retrieving revision 1.162
diff -u -d -r1.161 -r1.162
--- costume.cpp	15 Mar 2005 17:56:49 -0000	1.161
+++ costume.cpp	15 Mar 2005 21:48:02 -0000	1.162
@@ -808,7 +808,7 @@
 
 }
 
-extern void DecodeNESTileData(const byte *src, byte *dest);
+extern void decodeNESTileData(const byte *src, byte *dest);
 
 void ScummEngine::cost_decodeNESCostumeGfx() {
 	for (int n = 0; n < 2; n++) {
@@ -817,16 +817,12 @@
 		if (maxSprites == 0)
 			maxSprites = 256;
 		_v1MMNESCostumeGfx[n] = (byte *)calloc(maxSprites * 16, 1);
-		DecodeNESTileData(patTable,_v1MMNESCostumeGfx[n]);
+		decodeNESTileData(patTable,_v1MMNESCostumeGfx[n]);
 		// We will not need it anymore
 		nukeResource(rtCostume, v1MMNEScostTables[n][4]);
 	}
 }
 
-int ScummEngine::cost_frameToAnim(Actor *a, int frame) {
-	return newDirToOldDir(a->getFacing()) + frame * 4;
-}
-
 void ScummEngine::cost_decodeData(Actor *a, int frame, uint usemask) {
 	const byte *r;
 	uint mask, j;
@@ -837,7 +833,7 @@
 
 	lc.loadCostume(a->_costume);
 
-	anim = cost_frameToAnim(a, frame);
+	anim = newDirToOldDir(a->getFacing()) + frame * 4;
 
 	if (anim > lc._numAnim) {
 		return;

Index: gfx.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/gfx.cpp,v
retrieving revision 2.404
retrieving revision 2.405
diff -u -d -r2.404 -r2.405
--- gfx.cpp	15 Mar 2005 21:15:29 -0000	2.404
+++ gfx.cpp	15 Mar 2005 21:48:03 -0000	2.405
@@ -1816,7 +1816,7 @@
 	}
 }
 
-void DecodeNESTileData(const byte *src, byte *dest) {
+void decodeNESTileData(const byte *src, byte *dest) {
 	int len = READ_LE_UINT16(src);	src += 2;
 	const byte *end = src + len;
 	int numtiles;
@@ -1834,23 +1834,23 @@
 	if (_NESBaseTiles == 0) {
 		byte *basetiles = _vm->getResourceAddress(rtCostume,37);
 		_NESBaseTiles = basetiles[2];
-		DecodeNESTileData(basetiles,_NESPatTable);
+		decodeNESTileData(basetiles,_NESPatTable);
 	}
 	const byte *gdata = room + READ_LE_UINT16(room + 0x0A);
 	int tileset = *gdata++;
 	int width = READ_LE_UINT16(room + 0x04);
 	// int height = READ_LE_UINT16(room + 0x06);
-	int i;
+	int i, j, n;
 
-	DecodeNESTileData(_vm->getResourceAddress(rtCostume, 37 + tileset), _NESPatTable + _NESBaseTiles * 16);
+	decodeNESTileData(_vm->getResourceAddress(rtCostume, 37 + tileset), _NESPatTable + _NESBaseTiles * 16);
 	for (i = 0; i < 16; i++)
 		_NESPalette[i] = *gdata++;
 	for (i = 0; i < 16; i++) {
-		int n = 0;
 		_NESNametable[i][0] = _NESNametable[i][1] = 0;
+		n = 0;
 		while (n < width) {
 			byte data = *gdata++;
-			for (int j = 0; j < (data & 0x7F); j++)
+			for (j = 0; j < (data & 0x7F); j++)
 				_NESNametable[i][2 + n++] = (data & 0x80) ? (*gdata++) : (*gdata);
 			if (!(data & 0x80))
 				gdata++;
@@ -1859,9 +1859,9 @@
 	}
 
 	const byte *adata = room + READ_LE_UINT16(room + 0x0C);
-	for (int n = 0; n < 64;) {
+	for (n = 0; n < 64;) {
 		byte data = *adata++;
-		for (int j = 0; j < (data & 0x7F); j++)
+		for (j = 0; j < (data & 0x7F); j++)
 			_NESAttributes[n++] = (data & 0x80) ? (*adata++) : (*adata);
 		if (!(n & 7) && (width == 0x1C))
 			n += 8;

Index: scumm.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/scumm.h,v
retrieving revision 1.541
retrieving revision 1.542
diff -u -d -r1.541 -r1.542
--- scumm.h	15 Mar 2005 21:20:44 -0000	1.541
+++ scumm.h	15 Mar 2005 21:48:06 -0000	1.542
@@ -810,8 +810,6 @@
 	void processUpperActors();
 	int getActorFromPos(int x, int y);
 	
-	bool isCostumeInUse(int i) const;
-
 public:
 	/* Actor AuxQueue stuff (HE) */	
 	AuxBlock _auxBlocks[16];
@@ -836,9 +834,12 @@
 	int getTalkingActor();		// Wrapper around VAR_TALK_ACTOR for V1 Maniac
 	void setTalkingActor(int variable);
 
+	// Generic costume code
+	void costumeDecodeData(Actor *a, int frame, uint usemask);
+	bool isCostumeInUse(int i) const;
+
 	// Costume class
 	void cost_decodeData(Actor *a, int frame, uint usemask);
-	int cost_frameToAnim(Actor *a, int frame);
 	void cost_decodeNESCostumeGfx();
 
 	// Akos Class
@@ -857,7 +858,6 @@
 	void akos_queCommand(byte cmd, Actor *a, int param_1, int param_2);
 	void akos_processQueue();
 	void akos_decodeData(Actor *a, int frame, uint usemask);
-	int akos_frameToAnim(Actor *a, int frame);
 	bool akos_hasManyDirections(int costume);
 
 protected:





More information about the Scummvm-git-logs mailing list