[Scummvm-cvs-logs] SF.net SVN: scummvm:[41162] scummvm/branches/gsoc2009-16bit/engines/scumm

Kirben at users.sourceforge.net Kirben at users.sourceforge.net
Thu Jun 4 13:03:45 CEST 2009


Revision: 41162
          http://scummvm.svn.sourceforge.net/scummvm/?rev=41162&view=rev
Author:   Kirben
Date:     2009-06-04 11:03:45 +0000 (Thu, 04 Jun 2009)

Log Message:
-----------
Fix the color of Poodles Galore's finger nails in Spy Fox 3.

Modified Paths:
--------------
    scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/actor.h
    scummvm/branches/gsoc2009-16bit/engines/scumm/akos.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/akos.h
    scummvm/branches/gsoc2009-16bit/engines/scumm/base-costume.h
    scummvm/branches/gsoc2009-16bit/engines/scumm/costume.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/costume.h
    scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v90he.cpp
    scummvm/branches/gsoc2009-16bit/engines/scumm/saveload.h

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/actor.cpp	2009-06-04 11:03:45 UTC (rev 41162)
@@ -2484,9 +2484,10 @@
 		MKLINE(Actor, _flip, sleByte, VER(32)),
 		MKLINE(Actor, _heSkipLimbs, sleByte, VER(32)),
 
-		// Actor palette grew from 64 to 256 bytes
+		// Actor palette grew from 64 to 256 bytes and switched to uint16 in HE games
 		MKARRAY_OLD(Actor, _palette[0], sleByte, 64, VER(8), VER(9)),
-		MKARRAY(Actor, _palette[0], sleByte, 256, VER(10)),
+		MKARRAY_OLD(Actor, _palette[0], sleByte, 256, VER(10), VER(77)),
+		MKARRAY(Actor, _palette[0], sleUint16, 256, VER(78)),
 
 		MK_OBSOLETE(Actor, _mask, sleByte, VER(8), VER(9)),
 		MKLINE(Actor, _shadowMode, sleByte, VER(8)),

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/actor.h
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/actor.h	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/actor.h	2009-06-04 11:03:45 UTC (rev 41162)
@@ -157,7 +157,7 @@
 	};
 
 
-	byte _palette[256];
+	uint16 _palette[256];
 	int _elevation;
 	uint16 _facing;
 	uint16 _targetFacing;

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/akos.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/akos.cpp	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/akos.cpp	2009-06-04 11:03:45 UTC (rev 41162)
@@ -289,7 +289,7 @@
 	} while ((uint16)mask);
 }
 
-void AkosRenderer::setPalette(byte *new_palette) {
+void AkosRenderer::setPalette(uint16 *new_palette) {
 	uint size, i;
 
 	size = _vm->getResourceDataSize(akpl);

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/akos.h
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/akos.h	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/akos.h	2009-06-04 11:03:45 UTC (rev 41162)
@@ -107,7 +107,7 @@
 	int16 _actorHitX, _actorHitY;
 	bool _actorHitResult;
 
-	void setPalette(byte *_palette);
+	void setPalette(uint16 *_palette);
 	void setFacing(const Actor *a);
 	void setCostume(int costume, int shadow);
 

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/base-costume.h
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/base-costume.h	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/base-costume.h	2009-06-04 11:03:45 UTC (rev 41162)
@@ -145,7 +145,7 @@
 	}
 	virtual ~BaseCostumeRenderer() {}
 
-	virtual void setPalette(byte *palette) = 0;
+	virtual void setPalette(uint16 *palette) = 0;
 	virtual void setFacing(const Actor *a) = 0;
 	virtual void setCostume(int costume, int shadow) = 0;
 

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/costume.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/costume.cpp	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/costume.cpp	2009-06-04 11:03:45 UTC (rev 41162)
@@ -791,7 +791,7 @@
 
 }
 
-void NESCostumeRenderer::setPalette(byte *palette) {
+void NESCostumeRenderer::setPalette(uint16 *palette) {
 	// TODO
 }
 
@@ -874,17 +874,20 @@
 	} while (mask&0xFFFF);
 }
 
-void ClassicCostumeRenderer::setPalette(byte *palette) {
+void ClassicCostumeRenderer::setPalette(uint16 *palette) {
 	int i;
 	byte color;
 
 	if (_loaded._format == 0x57) {
-		memcpy(_palette, palette, 13);
+		for (i = 0; i < 13; i++)
+			_palette[i] = color;
 	} else if (_vm->_game.features & GF_OLD_BUNDLE) {
 		if (_vm->getCurrentLights() & LIGHTMODE_actor_use_colors) {
-			memcpy(_palette, palette, 16);
+			for (i = 0; i < 16; i++)
+				_palette[i] = color;
 		} else {
-			memset(_palette, 8, 16);
+			for (i = 0; i < 16; i++)
+				_palette[i] = 8;
 			_palette[12] = 0;
 		}
 		_palette[_loaded._palette[0]] = _palette[0];

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/costume.h
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/costume.h	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/costume.h	2009-06-04 11:03:45 UTC (rev 41162)
@@ -94,7 +94,7 @@
 public:
 	ClassicCostumeRenderer(ScummEngine *vm) : BaseCostumeRenderer(vm), _loaded(vm) {}
 
-	void setPalette(byte *palette);
+	void setPalette(uint16 *palette);
 	void setFacing(const Actor *a);
 	void setCostume(int costume, int shadow);
 
@@ -116,7 +116,7 @@
 public:
 	NESCostumeRenderer(ScummEngine *vm) : BaseCostumeRenderer(vm), _loaded(vm) {}
 
-	void setPalette(byte *palette);
+	void setPalette(uint16 *palette);
 	void setFacing(const Actor *a);
 	void setCostume(int costume, int shadow);
 
@@ -131,7 +131,7 @@
 public:
 	C64CostumeRenderer(ScummEngine *vm) : BaseCostumeRenderer(vm), _loaded(vm) {}
 
-	void setPalette(byte *palette) {}
+	void setPalette(uint16 *palette) {}
 	void setFacing(const Actor *a) {}
 	void setCostume(int costume, int shadow);
 

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v100he.cpp	2009-06-04 11:03:45 UTC (rev 41162)
@@ -2617,11 +2617,7 @@
 		r = MAX(0, r);
 		r = MIN(r, 255);
 		if (_game.features & GF_16BIT_COLOR) {
-			uint32 ar = ((r >> 3) << 10) & 0xFFFF;
-			uint32 ag = ((g >> 3) <<  5) & 0xFFFF;
-			uint32 ab = ((b >> 3) <<  0) & 0xFFFF;
-			uint32 col = ar | ag | ab;
-			push(col);
+			push(get16BitColor(r, g, b));
 		} else {
 			push(getHEPaletteSimilarColor(1, r, g, 10, 245));
 		}

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v90he.cpp
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v90he.cpp	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/he/script_v90he.cpp	2009-06-04 11:03:45 UTC (rev 41162)
@@ -2147,11 +2147,7 @@
 		r = MIN(r, 255);
 
 		if (_game.features & GF_16BIT_COLOR) {
-			uint32 ar = ((r >> 3) << 10) & 0xFFFF;
-			uint32 ag = ((g >> 3) <<  5) & 0xFFFF;
-			uint32 ab = ((b >> 3) <<  0) & 0xFFFF;
-			uint32 col = ar | ag | ab;
-			push(col);
+			push(get16BitColor(r, g, b));
 		} else {
 			push(getHEPaletteSimilarColor(1, r, g, 10, 245));
 		}

Modified: scummvm/branches/gsoc2009-16bit/engines/scumm/saveload.h
===================================================================
--- scummvm/branches/gsoc2009-16bit/engines/scumm/saveload.h	2009-06-04 09:49:06 UTC (rev 41161)
+++ scummvm/branches/gsoc2009-16bit/engines/scumm/saveload.h	2009-06-04 11:03:45 UTC (rev 41162)
@@ -50,7 +50,7 @@
  * only saves/loads those which are valid for the version of the savegame
  * which is being loaded/saved currently.
  */
-#define CURRENT_VER 77
+#define CURRENT_VER 78
 
 /**
  * An auxillary macro, used to specify savegame versions. We use this instead


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