[Scummvm-cvs-logs] scummvm master -> e0ad8a9ef56095df91273b1d27c6511d702546fd

dreammaster dreammaster at scummvm.org
Mon Sep 7 02:57:45 CEST 2015


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

Summary:
e0ad8a9ef5 SHERLOCK: 3DO: Set up RGB color constants for 3DO


Commit: e0ad8a9ef56095df91273b1d27c6511d702546fd
    https://github.com/scummvm/scummvm/commit/e0ad8a9ef56095df91273b1d27c6511d702546fd
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2015-09-06T20:52:15-04:00

Commit Message:
SHERLOCK: 3DO: Set up RGB color constants for 3DO

Changed paths:
    engines/sherlock/scalpel/scalpel.cpp
    engines/sherlock/scalpel/scalpel.h
    engines/sherlock/scalpel/scalpel_screen.cpp
    engines/sherlock/scalpel/scalpel_screen.h
    engines/sherlock/screen.cpp
    engines/sherlock/screen.h
    engines/sherlock/surface.cpp
    engines/sherlock/surface.h



diff --git a/engines/sherlock/scalpel/scalpel.cpp b/engines/sherlock/scalpel/scalpel.cpp
index c3915a1..d1dad93 100644
--- a/engines/sherlock/scalpel/scalpel.cpp
+++ b/engines/sherlock/scalpel/scalpel.cpp
@@ -174,12 +174,71 @@ const PeopleData PEOPLE_DATA[MAX_PEOPLE] = {
 	{ "INSP", "Inspector Lestrade", { 4, 0, 0 }, { 2, 0, 0 } }
 };
 
+uint INFO_BLACK;
+uint BORDER_COLOR;
+uint COMMAND_BACKGROUND;
+uint BUTTON_BACKGROUND;
+uint TALK_FOREGROUND;
+uint TALK_NULL;
+uint BUTTON_TOP;
+uint BUTTON_MIDDLE;
+uint BUTTON_BOTTOM;
+uint COMMAND_FOREGROUND;
+uint COMMAND_HIGHLIGHTED;
+uint COMMAND_NULL;
+uint INFO_FOREGROUND;
+uint INFO_BACKGROUND;
+uint INV_FOREGROUND;
+uint INV_BACKGROUND;
+uint PEN_COLOR;
+
 /*----------------------------------------------------------------*/
 
+#define FROM_RGB(r, g, b) pixelFormatRGB565.ARGBToColor(0, r, g, b)
+
 ScalpelEngine::ScalpelEngine(OSystem *syst, const SherlockGameDescription *gameDesc) :
 		SherlockEngine(syst, gameDesc) {
 	_darts = nullptr;
 	_mapResult = 0;
+
+	if (getPlatform() == Common::kPlatform3DO) {
+		const Graphics::PixelFormat pixelFormatRGB565 = Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0);
+		INFO_BLACK = FROM_RGB(0, 0, 0x48);
+		BORDER_COLOR = FROM_RGB(0x6d, 0x38, 0x10);
+		COMMAND_BACKGROUND = FROM_RGB(0x38, 0x38, 0xce);
+		BUTTON_BACKGROUND = FROM_RGB(0x95, 0x5d, 0x24);
+		TALK_FOREGROUND = FROM_RGB(0xff, 0x55, 0x55);
+		TALK_NULL = FROM_RGB(0xce, 0xc6, 0xc2);
+		BUTTON_TOP = FROM_RGB(0xbe, 0x85, 0x3c);
+		BUTTON_MIDDLE = FROM_RGB(0x9d, 0x40, 0);
+		BUTTON_BOTTOM = FROM_RGB(0x69, 0x24, 0);
+		COMMAND_FOREGROUND = FROM_RGB(0xFF, 0xFF, 0xFF);
+		COMMAND_HIGHLIGHTED = FROM_RGB(0x55, 0xff, 0x55);
+		COMMAND_NULL = FROM_RGB(0x69, 0x24, 0);
+		INFO_FOREGROUND = FROM_RGB(0x55, 0xff, 0xff);
+		INFO_BACKGROUND = FROM_RGB(0, 0, 0x48);
+		INV_FOREGROUND = FROM_RGB(0xff, 0xff, 0x55);
+		INV_BACKGROUND = FROM_RGB(0, 0, 0x48);
+		PEN_COLOR = FROM_RGB(0x50, 0x18, 0);
+	} else {
+		INFO_BLACK = 1;
+		BORDER_COLOR = 237;
+		COMMAND_BACKGROUND = 4;
+		BUTTON_BACKGROUND = 235;
+		TALK_FOREGROUND = 12;
+		TALK_NULL = 16;
+		BUTTON_TOP = 233;
+		BUTTON_MIDDLE = 244;
+		BUTTON_BOTTOM = 248;
+		COMMAND_FOREGROUND = 15;
+		COMMAND_HIGHLIGHTED = 10;
+		COMMAND_NULL = 248;
+		INFO_FOREGROUND = 11;
+		INFO_BACKGROUND = 1;
+		INV_FOREGROUND = 14;
+		INV_BACKGROUND = 1;
+		PEN_COLOR = 250;
+	}
 }
 
 ScalpelEngine::~ScalpelEngine() {
diff --git a/engines/sherlock/scalpel/scalpel.h b/engines/sherlock/scalpel/scalpel.h
index cb1cb20..6ae8563 100644
--- a/engines/sherlock/scalpel/scalpel.h
+++ b/engines/sherlock/scalpel/scalpel.h
@@ -30,19 +30,23 @@ namespace Sherlock {
 
 namespace Scalpel {
 
-enum {
-	BUTTON_TOP			= 233,
-	BUTTON_MIDDLE		= 244,
-	BUTTON_BOTTOM		= 248,
-	COMMAND_FOREGROUND	= 15,
-	COMMAND_HIGHLIGHTED = 10,
-	COMMAND_NULL		= 248,
-	INFO_FOREGROUND		= 11,
-	INFO_BACKGROUND		= 1,
-	INV_FOREGROUND		= 14,
-	INV_BACKGROUND		= 1,
-	PEN_COLOR			= 250
-};
+extern uint BUTTON_TOP;
+extern uint BUTTON_MIDDLE;
+extern uint BUTTON_BOTTOM;
+extern uint COMMAND_FOREGROUND;
+extern uint COMMAND_HIGHLIGHTED;
+extern uint COMMAND_NULL;
+extern uint INFO_FOREGROUND;
+extern uint INFO_BACKGROUND;
+extern uint INV_FOREGROUND;
+extern uint INV_BACKGROUND;
+extern uint PEN_COLOR;
+extern uint INFO_BLACK;
+extern uint BORDER_COLOR;
+extern uint COMMAND_BACKGROUND;
+extern uint BUTTON_BACKGROUND;
+extern uint TALK_FOREGROUND;
+extern uint TALK_NULL;
 
 class ScalpelEngine : public SherlockEngine {
 private:
diff --git a/engines/sherlock/scalpel/scalpel_screen.cpp b/engines/sherlock/scalpel/scalpel_screen.cpp
index 2096dab..44113b2 100644
--- a/engines/sherlock/scalpel/scalpel_screen.cpp
+++ b/engines/sherlock/scalpel/scalpel_screen.cpp
@@ -45,7 +45,7 @@ void ScalpelScreen::makeButton(const Common::Rect &bounds, int textX,
 		COMMAND_FOREGROUND, "%s", str.c_str() + 1);
 }
 
-void ScalpelScreen::buttonPrint(const Common::Point &pt, byte color, bool slamIt,
+void ScalpelScreen::buttonPrint(const Common::Point &pt, uint color, bool slamIt,
 		const Common::String &str) {
 	int xStart = pt.x - stringWidth(str) / 2;
 
diff --git a/engines/sherlock/scalpel/scalpel_screen.h b/engines/sherlock/scalpel/scalpel_screen.h
index 472fe9e..0277bcd 100644
--- a/engines/sherlock/scalpel/scalpel_screen.h
+++ b/engines/sherlock/scalpel/scalpel_screen.h
@@ -45,7 +45,7 @@ public:
 	 * Prints an interface command with the first letter highlighted to indicate
 	 * what keyboard shortcut is associated with it
 	 */
-	void buttonPrint(const Common::Point &pt, byte color, bool slamIt, const Common::String &str);
+	void buttonPrint(const Common::Point &pt, uint color, bool slamIt, const Common::String &str);
 
 	/**
 	 * Draw a panel in the back buffer with a raised area effect around the edges
diff --git a/engines/sherlock/screen.cpp b/engines/sherlock/screen.cpp
index 4233bca..a524152 100644
--- a/engines/sherlock/screen.cpp
+++ b/engines/sherlock/screen.cpp
@@ -460,7 +460,7 @@ void Screen::blockMove() {
 	blockMove(Common::Rect(0, 0, w(), h()));
 }
 
-void Screen::print(const Common::Point &pt, byte color, const char *formatStr, ...) {
+void Screen::print(const Common::Point &pt, uint color, const char *formatStr, ...) {
 	// Create the string to display
 	va_list args;
 	va_start(args, formatStr);
@@ -488,7 +488,7 @@ void Screen::print(const Common::Point &pt, byte color, const char *formatStr, .
 	slamRect(textBounds);
 }
 
-void Screen::gPrint(const Common::Point &pt, byte color, const char *formatStr, ...) {
+void Screen::gPrint(const Common::Point &pt, uint color, const char *formatStr, ...) {
 	// Create the string to display
 	va_list args;
 	va_start(args, formatStr);
@@ -499,7 +499,7 @@ void Screen::gPrint(const Common::Point &pt, byte color, const char *formatStr,
 	writeString(str, pt, color);
 }
 
-void Screen::writeString(const Common::String &str, const Common::Point &pt, byte overrideColor) {
+void Screen::writeString(const Common::String &str, const Common::Point &pt, uint overrideColor) {
 	Fonts::writeString(_backBuffer, str, pt, overrideColor);
 }
 
diff --git a/engines/sherlock/screen.h b/engines/sherlock/screen.h
index 2e0cef7..43e6ea8 100644
--- a/engines/sherlock/screen.h
+++ b/engines/sherlock/screen.h
@@ -35,22 +35,12 @@ namespace Sherlock {
 #define PALETTE_COUNT 256
 #define VGA_COLOR_TRANS(x) ((x) * 255 / 63)
 #define BG_GREYSCALE_RANGE_END 229
-
-enum {
-	BLACK				= 0,
-	INFO_BLACK			= 1,
-	BORDER_COLOR		= 237,
-	COMMAND_BACKGROUND	= 4,
-	BUTTON_BACKGROUND	= 235,
-	TALK_FOREGROUND		= 12,
-	TALK_NULL			= 16
-};
+#define BLACK 0
 
 class SherlockEngine;
 
 class Screen : public Surface {
 private:
-	SherlockEngine *_vm;
 	Common::List<Common::Rect> _dirtyRects;
 	uint32 _transitionSeed;
 	Surface _sceneSurface;
@@ -69,6 +59,8 @@ private:
 	 */
 	bool unionRectangle(Common::Rect &destRect, const Common::Rect &src1, const Common::Rect &src2);
 protected:
+	SherlockEngine *_vm;
+
 	/**
 	 * Adds a rectangle to the list of modified areas of the screen during the
 	 * current frame
@@ -144,12 +136,12 @@ public:
 	 * Prints the text passed onto the back buffer at the given position and color.
 	 * The string is then blitted to the screen
 	 */
-	void print(const Common::Point &pt, byte color, const char *formatStr, ...) GCC_PRINTF(4, 5);
+	void print(const Common::Point &pt, uint color, const char *formatStr, ...) GCC_PRINTF(4, 5);
 
 	/**
 	 * Print a strings onto the back buffer without blitting it to the screen
 	 */
-	void gPrint(const Common::Point &pt, byte color, const char *formatStr, ...) GCC_PRINTF(4, 5);
+	void gPrint(const Common::Point &pt, uint color, const char *formatStr, ...) GCC_PRINTF(4, 5);
 
 	/**
 	 * Copies a section of the second back buffer into the main back buffer
@@ -223,7 +215,7 @@ public:
 	/**
 	 * Draws the given string into the back buffer using the images stored in _font
 	 */
-	virtual void writeString(const Common::String &str, const Common::Point &pt, byte overrideColor);
+	virtual void writeString(const Common::String &str, const Common::Point &pt, uint overrideColor);
 
 
 	// Rose Tattoo specific methods
diff --git a/engines/sherlock/surface.cpp b/engines/sherlock/surface.cpp
index b56692c..b8ceae2 100644
--- a/engines/sherlock/surface.cpp
+++ b/engines/sherlock/surface.cpp
@@ -201,16 +201,16 @@ void Surface::transBlitFromUnscaled(const Graphics::Surface &src, const Common::
 	}
 }
 
-void Surface::fillRect(int x1, int y1, int x2, int y2, byte color) {
+void Surface::fillRect(int x1, int y1, int x2, int y2, uint color) {
 	fillRect(Common::Rect(x1, y1, x2, y2), color);
 }
 
-void Surface::fillRect(const Common::Rect &r, byte color) {
+void Surface::fillRect(const Common::Rect &r, uint color) {
 	_surface.fillRect(r, color);
 	addDirtyRect(r);
 }
 
-void Surface::fill(uint16 color) {
+void Surface::fill(uint color) {
 	_surface.fillRect(Common::Rect(_surface.w, _surface.h), color);
 }
 
diff --git a/engines/sherlock/surface.h b/engines/sherlock/surface.h
index 385fb17..97424a1 100644
--- a/engines/sherlock/surface.h
+++ b/engines/sherlock/surface.h
@@ -133,14 +133,14 @@ public:
 	/**
 	 * Fill a given area of the surface with a given color
 	 */
-	void fillRect(int x1, int y1, int x2, int y2, byte color);
+	void fillRect(int x1, int y1, int x2, int y2, uint color);
 	
 	/**
 	 * Fill a given area of the surface with a given color
 	 */
-	void fillRect(const Common::Rect &r, byte color);
+	void fillRect(const Common::Rect &r, uint color);
 
-	void fill(uint16 color);
+	void fill(uint color);
 
 	/**
 	 * Clear the surface






More information about the Scummvm-git-logs mailing list