[Scummvm-cvs-logs] scummvm master -> 4852a38f3648d7778da29402addb87590662a1ce

dreammaster dreammaster at scummvm.org
Wed Apr 13 13:32:35 CEST 2011


This automated email contains information about 3 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e6090415b6 Merge remote branch 'remotes/dreammaster/tsage'
0600f0c018 TSAGE: Change palette code from 4-byte to 3-byte palettes
4852a38f36 Merge branch 'master' of github.com:scummvm/scummvm


Commit: e6090415b62907b1ccc3163a43e04e8cea992693
    https://github.com/scummvm/scummvm/commit/e6090415b62907b1ccc3163a43e04e8cea992693
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-04-13T04:08:05-07:00

Commit Message:
Merge remote branch 'remotes/dreammaster/tsage'

Changed paths:
  A engines/tsage/converse.cpp
  A engines/tsage/converse.h
  A engines/tsage/core.cpp
  A engines/tsage/core.h
  A engines/tsage/debugger.cpp
  A engines/tsage/debugger.h
  A engines/tsage/detection.cpp
  A engines/tsage/detection_tables.h
  A engines/tsage/dialogs.cpp
  A engines/tsage/dialogs.h
  A engines/tsage/events.cpp
  A engines/tsage/events.h
  A engines/tsage/globals.cpp
  A engines/tsage/globals.h
  A engines/tsage/graphics.cpp
  A engines/tsage/graphics.h
  A engines/tsage/module.mk
  A engines/tsage/resources.cpp
  A engines/tsage/resources.h
  A engines/tsage/ringworld_logic.cpp
  A engines/tsage/ringworld_logic.h
  A engines/tsage/ringworld_scenes1.cpp
  A engines/tsage/ringworld_scenes1.h
  A engines/tsage/ringworld_scenes10.cpp
  A engines/tsage/ringworld_scenes10.h
  A engines/tsage/ringworld_scenes2.cpp
  A engines/tsage/ringworld_scenes2.h
  A engines/tsage/ringworld_scenes3.cpp
  A engines/tsage/ringworld_scenes3.h
  A engines/tsage/ringworld_scenes4.cpp
  A engines/tsage/ringworld_scenes4.h
  A engines/tsage/ringworld_scenes5.cpp
  A engines/tsage/ringworld_scenes5.h
  A engines/tsage/ringworld_scenes6.cpp
  A engines/tsage/ringworld_scenes6.h
  A engines/tsage/ringworld_scenes8.cpp
  A engines/tsage/ringworld_scenes8.h
  A engines/tsage/saveload.cpp
  A engines/tsage/saveload.h
  A engines/tsage/scenes.cpp
  A engines/tsage/scenes.h
  A engines/tsage/sound.cpp
  A engines/tsage/sound.h
  A engines/tsage/staticres.cpp
  A engines/tsage/staticres.h
  A engines/tsage/tsage.cpp
  A engines/tsage/tsage.h
    base/plugins.cpp
    configure
    engines/engines.mk





Commit: 0600f0c018942c2a3e09b1696b2dc71b2e00d0b3
    https://github.com/scummvm/scummvm/commit/0600f0c018942c2a3e09b1696b2dc71b2e00d0b3
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-04-13T04:25:57-07:00

Commit Message:
TSAGE: Change palette code from 4-byte to 3-byte palettes

Changed paths:
    engines/tsage/core.cpp
    engines/tsage/core.h
    engines/tsage/graphics.cpp
    engines/tsage/resources.cpp
    engines/tsage/resources.h
    engines/tsage/ringworld_scenes10.cpp



diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 5ccb48f..2f6ba42 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -1055,8 +1055,11 @@ void PaletteRotation::synchronise(Serialiser &s) {
 	s.syncAsSint32LE(_end);
 	s.syncAsSint32LE(_rotationMode);
 	s.syncAsSint32LE(_duration);
-	for (int i = 0; i < 256; ++i)
-		s.syncAsUint32LE(_palette[i]);
+	for (int i = 0; i < 256; ++i) {
+		s.syncAsByte(_palette[i].r);
+		s.syncAsByte(_palette[i].g);
+		s.syncAsByte(_palette[i].b);
+	}
 }
 
 void PaletteRotation::signal() {
@@ -1189,8 +1192,11 @@ void PaletteUnknown::synchronise(Serialiser &s) {
 	s.syncAsSint16LE(_percent);
 	s.syncAsSint16LE(_field12);
 	s.syncAsSint16LE(_field14);
-	for (int i = 0; i < 256; ++i)
-		s.syncAsUint32LE(_palette[i]);
+	for (int i = 0; i < 256; ++i) {
+		s.syncAsByte(_palette[i].r);
+		s.syncAsByte(_palette[i].g);
+		s.syncAsByte(_palette[i].b);
+	}
 }
 
 void PaletteUnknown::signal() {
@@ -1221,7 +1227,7 @@ void PaletteUnknown::remove() {
 ScenePalette::ScenePalette() { 
 	// Set a default gradiant range
 	for (int idx = 0; idx < 256; ++idx)
-		_palette[idx] = idx | (idx << 8) | (idx << 16);
+		_palette[idx].r = _palette[idx].g = _palette[idx].b = idx;
 
 	_field412 = 0;
 }
@@ -1239,12 +1245,10 @@ bool ScenePalette::loadPalette(int paletteNum) {
 	int palSize = READ_LE_UINT16(palData + 2);
 	assert(palSize <= 256);
 
-	uint32 *destP = &_palette[palStart];
-	byte *srcP = palData + 6;
+	RGB8 *destP = &_palette[palStart];
+	RGB8 *srcP = (RGB8 *)(palData + 6);
 
-
-	for (int i = 0; i < palSize; ++i, srcP += 3, ++destP)
-		*destP = *srcP | (*(srcP + 1) << 8) | (*(srcP + 2) << 16);
+	Common::copy(&srcP[0], &srcP[palSize], destP);
 
 	DEALLOCATE(palData);
 	return true;
@@ -1284,12 +1288,9 @@ uint8 ScenePalette::indexOf(uint r, uint g, uint b, int threshold) {
 	int palIndex = -1;
 
 	for (int i = 0; i < 256; ++i) {
-		int ir = _palette[i] & 0xff;
-		int ig = (_palette[i] >> 8) & 0xff;
-		int ib = (_palette[i] >> 16) & 0xff;
-		int rDiff = abs(ir - (int)r);
-		int gDiff = abs(ig - (int)g);
-		int bDiff = abs(ib - (int)b);
+		int rDiff = abs(_palette[i].r - (int)r);
+		int gDiff = abs(_palette[i].g - (int)g);
+		int bDiff = abs(_palette[i].b - (int)b);
 		
 		int idxThreshold = rDiff * rDiff + gDiff * gDiff + bDiff * bDiff;
 		if (idxThreshold <= threshold) {
@@ -1326,14 +1327,14 @@ void ScenePalette::clearListeners() {
 }
 
 void ScenePalette::fade(const byte *adjustData, bool fullAdjust, int percent) {
-	uint32 tempPalette[256];
+	RGB8 tempPalette[256];
 
 	// Ensure the percent adjustment is within 0 - 100%
 	percent = CLIP(percent, 0, 100);
 
 	for (int palIndex = 0; palIndex < 256; ++palIndex) {
 		const byte *srcP = (const byte *)&_palette[palIndex];
-		byte *destP = (byte *)&tempPalette[palIndex];
+		byte *destP = (byte *)&tempPalette[palIndex].r;
 
 		for (int rgbIndex = 0; rgbIndex < 3; ++rgbIndex, ++srcP, ++destP) {
 			*destP = *srcP - ((*srcP - adjustData[rgbIndex]) * (100 - percent)) / 100;
@@ -1359,7 +1360,7 @@ PaletteRotation *ScenePalette::addRotation(int start, int end, int rotationMode,
 	return obj;
 }
 
-PaletteUnknown *ScenePalette::addUnkPal(uint32 *arrBufferRGB, int unkNumb, bool disabled, Action *action) {
+PaletteUnknown *ScenePalette::addUnkPal(RGB8 *arrBufferRGB, int unkNumb, bool disabled, Action *action) {
 	PaletteUnknown *paletteUnk = new PaletteUnknown();
 	paletteUnk->_action = action;
 	for (int i = 0; i < 256; i++) {
@@ -1400,8 +1401,11 @@ void ScenePalette::changeBackground(const Rect &bounds, FadeMode fadeMode) {
 }
 
 void ScenePalette::synchronise(Serialiser &s) {
-	for (int i = 0; i < 256; ++i)
-		s.syncAsUint32LE(_palette[i]);
+	for (int i = 0; i < 256; ++i) {
+		s.syncAsByte(_palette[i].r);
+		s.syncAsByte(_palette[i].g);
+		s.syncAsByte(_palette[i].b);
+	}
 	s.syncAsSint32LE(_colours.foreground);
 	s.syncAsSint32LE(_colours.background);
 
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index 5e3da6a..cfd2867 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -328,7 +328,7 @@ public:
 	int _end;
 	int _rotationMode;
 	int _duration;
-	uint32 _palette[256];
+	RGB8 _palette[256];
 public:
 	PaletteRotation();
 
@@ -349,7 +349,7 @@ public:
 class PaletteUnknown: public PaletteModifier {
 public:
 	int _step, _percent, _field12, _field14;
-	uint32 _palette[256];
+	RGB8 _palette[256];
 public:
 	virtual Common::String getClassName() { return "PaletteUnknown"; }
 	virtual void synchronise(Serialiser &s);
@@ -361,7 +361,7 @@ enum FadeMode {FADEMODE_NONE = 0, FADEMODE_GRADUAL = 1, FADEMODE_IMMEDIATE = 2};
 
 class ScenePalette: public SavedObject {
 public:
-	uint32 _palette[256];
+	RGB8 _palette[256];
 	GfxColours _colours;
 	List<PaletteModifier *> _listeners;
 	int _field412;
@@ -385,7 +385,7 @@ public:
 	void clearListeners();
 	void fade(const byte *adjustData, bool fullAdjust, int percent);
 	PaletteRotation *addRotation(int start, int end, int rotationMode, int duration = 0, Action *action = NULL);
-	PaletteUnknown *addUnkPal(uint32 *arrBufferRGB, int unkNumb, bool disabled, Action *action);
+	PaletteUnknown *addUnkPal(RGB8 *arrBufferRGB, int unkNumb, bool disabled, Action *action);
 
 	static void changeBackground(const Rect &bounds, FadeMode fadeMode);
 
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index 9a13abc..f497fac 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -1061,9 +1061,9 @@ void GfxManager::fillRect2(int xs, int ys, int width, int height, int colour) {
  */
 void GfxManager::setDialogPalette() {
 	// Get the main palette information
-	uint32 palData[256];
+	RGB8 palData[256];
 	uint count, start;
-	_vm->_dataManager->getPalette(0, (byte *)&palData[0], &start, &count);
+	_vm->_dataManager->getPalette(0, &palData[0], &start, &count);
 	g_system->getPaletteManager()->setPalette((byte *)&palData[0], start, count);
 
 	// Miscellaneous
diff --git a/engines/tsage/resources.cpp b/engines/tsage/resources.cpp
index 619f818..2e75c19 100644
--- a/engines/tsage/resources.cpp
+++ b/engines/tsage/resources.cpp
@@ -356,22 +356,18 @@ void RlbManager::loadIndex() {
  *
  * @paletteNum Specefies the palette number
  */
-void RlbManager::getPalette(int paletteNum, uint8 *palData, uint *startNum, uint *numEntries) {
+void RlbManager::getPalette(int paletteNum, RGB8 *palData, uint *startNum, uint *numEntries) {
 	// Get the specified palette
 	byte *dataIn = getResource(RES_PALETTE, 0, paletteNum);
 	assert(dataIn);
 
 	*startNum = READ_LE_UINT16(dataIn);
 	*numEntries = READ_LE_UINT16(dataIn + 2);
+	RGB8 *srcPal = (RGB8 *)(dataIn + 6);
 	assert((*startNum < 256) && ((*startNum + *numEntries) <= 256));
 
 	// Copy over the data
-	for (uint i = 0; i < *numEntries; ++i) {
-		*palData++ = dataIn[6 + i * 3];
-		*palData++ = dataIn[7 + i * 3];
-		*palData++ = dataIn[8 + i * 3];
-		*palData++ = 0;
-	}
+	Common::copy(&srcPal[0], &srcPal[*numEntries], palData);
 
 	_memoryManager.deallocate(dataIn);
 }
diff --git a/engines/tsage/resources.h b/engines/tsage/resources.h
index 5d00e5f..1aa9aff 100644
--- a/engines/tsage/resources.h
+++ b/engines/tsage/resources.h
@@ -45,6 +45,16 @@ enum ResourceType { RES_LIBRARY, RES_STRIP, RES_IMAGE, RES_PALETTE, RES_VISAGE,
 		RES_FONT, RES_POINTER, RES_BANK, RES_SND_DRIVER, RES_PRIORITY, RES_CONTROL, RES_WALKRGNS,
 		RES_BITMAP, RES_SAVE, RES_SEQUENCE };
 
+#include "common/pack-start.h"	// START STRUCT PACKING
+
+struct RGB8 {
+	uint8 r;
+	uint8 g;
+	uint8 b;
+} PACKED_STRUCT;
+
+#include "common/pack-end.h"	// END STRUCT PACKING
+
 class MemoryHeader {
 public:
 	uint32 id;
@@ -155,7 +165,7 @@ public:
 
 	byte *getResource(uint16 id, bool suppressErrors = false);
 	byte *getResource(ResourceType resType, uint16 resNum, uint16 rlbNum, bool suppressErrors = false);
-	void getPalette(int paletteNum, uint8 *palData, uint *startNum, uint *numEntries);
+	void getPalette(int paletteNum, RGB8 *palData, uint *startNum, uint *numEntries);
 	byte *getSubResource(int resNum, int rlbNum, int index, uint *size);
 	Common::String getMessage(int resNum, int lineNum);
 };
diff --git a/engines/tsage/ringworld_scenes10.cpp b/engines/tsage/ringworld_scenes10.cpp
index 5ea5077..3e92a60 100644
--- a/engines/tsage/ringworld_scenes10.cpp
+++ b/engines/tsage/ringworld_scenes10.cpp
@@ -1633,8 +1633,9 @@ void Scene9850::postInit(SceneObjectList *OwnerList) {
  *
  *--------------------------------------------------------------------------*/
 void Scene9900::strAction1::signal() {
-	static uint32 mask1 = 0xFFFFFF00;
-	static uint32 mask2 = 0x00000000;
+	RGB8 mask1, mask2;
+	mask1.r = mask1.g = mask1.b = 0xff;
+	mask2.r = mask2.g = mask2.b = 0;
 
 	Scene9900 *scene = (Scene9900 *)_globals->_sceneManager._scene;
 
@@ -1769,8 +1770,9 @@ void Scene9900::strAction2::dispatch() {
 }
 
 void Scene9900::strAction3::signal() {
-	static uint32 mask3 = 0xFF000000;
-	static uint32 mask4 = 0x00000000;
+	RGB8 mask3, mask4;
+	mask3.r = 0xff; mask3.g = mask3.b = 0;
+	mask4.r = mask4.g = mask4.b = 0;
 
 	switch (_actionIndex++) {
 	case 0:


Commit: 4852a38f3648d7778da29402addb87590662a1ce
    https://github.com/scummvm/scummvm/commit/4852a38f3648d7778da29402addb87590662a1ce
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2011-04-13T04:30:26-07:00

Commit Message:
Merge branch 'master' of github.com:scummvm/scummvm

Changed paths:
  A audio/decoders/adpcm_intern.h
  A engines/tinsel/adpcm.cpp
  A engines/tinsel/adpcm.h
    audio/decoders/adpcm.cpp
    audio/decoders/adpcm.h
    engines/scumm/imuse_digi/dimuse_codecs.cpp
    engines/tinsel/module.mk
    engines/tinsel/music.cpp
    engines/tinsel/sound.cpp
    engines/toon/audio.cpp
    video/coktel_decoder.cpp
    video/coktel_decoder.h









More information about the Scummvm-git-logs mailing list