[Scummvm-cvs-logs] SF.net SVN: scummvm:[55126] scummvm/trunk/engines/hugo

strangerke at users.sourceforge.net strangerke at users.sourceforge.net
Wed Jan 5 23:28:38 CET 2011


Revision: 55126
          http://scummvm.svn.sourceforge.net/scummvm/?rev=55126&view=rev
Author:   strangerke
Date:     2011-01-05 22:28:37 +0000 (Wed, 05 Jan 2011)

Log Message:
-----------
HUGO: Use Win2 fonts in intro. 

Win1 font is loaded too, but fails as it's not yet supported

Modified Paths:
--------------
    scummvm/trunk/engines/hugo/intro.h
    scummvm/trunk/engines/hugo/intro_v1d.cpp
    scummvm/trunk/engines/hugo/intro_v2d.cpp
    scummvm/trunk/engines/hugo/intro_v3d.cpp
    scummvm/trunk/engines/hugo/intro_v3w.cpp
    scummvm/trunk/engines/hugo/menu.cpp

Modified: scummvm/trunk/engines/hugo/intro.h
===================================================================
--- scummvm/trunk/engines/hugo/intro.h	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/intro.h	2011-01-05 22:28:37 UTC (rev 55126)
@@ -32,6 +32,7 @@
 
 #ifndef INTRO_H
 #define INTRO_H
+#include "graphics/fonts/winfont.h"
 
 namespace Hugo {
 
@@ -44,6 +45,9 @@
 class IntroHandler {
 public:
 	IntroHandler(HugoEngine *vm);
+	Graphics::Surface surf;
+	Graphics::WinFont font;
+
 	virtual ~IntroHandler();
 
 	virtual void preNewGame() = 0;

Modified: scummvm/trunk/engines/hugo/intro_v1d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/intro_v1d.cpp	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/intro_v1d.cpp	2011-01-05 22:28:37 UTC (rev 55126)
@@ -48,6 +48,11 @@
 
 void intro_v1d::introInit() {
 	introTicks = 0;
+	surf.w = 320;
+	surf.h = 200;
+	surf.pixels = _vm->_screen->getFrontBuffer();
+	surf.pitch = 320;
+	surf.bytesPerPixel = 1;
 }
 
 bool intro_v1d::introPlay() {
@@ -65,99 +70,102 @@
 			_vm->_screen->drawShape(20, 92,_TLIGHTMAGENTA,_TMAGENTA);
 			_vm->_screen->drawShape(250,92,_TLIGHTMAGENTA,_TMAGENTA);
 
-			// HACK: use of TROMAN, size 10-5
-			_vm->_screen->loadFont(0);
+			// TROMAN, size 10-5
+			if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 8)))
+				error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 8");
 
 			char buffer[80];
 			if (_boot.registered)
 				strcpy(buffer, "Registered Version");
 			else
 				strcpy(buffer, "Shareware Version");
-			_vm->_screen->writeStr(CENTER, 163, buffer, _TLIGHTMAGENTA);
-			_vm->_screen->writeStr(CENTER, 176, COPYRIGHT, _TLIGHTMAGENTA);
 
+			font.drawString(&surf, buffer, 0, 163, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
+			font.drawString(&surf, COPYRIGHT, 0, 176, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
+
 			if (scumm_stricmp(_boot.distrib, "David P. Gray")) {
 				sprintf(buffer, "Distributed by %s.", _boot.distrib);
-				_vm->_screen->writeStr(CENTER, 75, buffer, _TMAGENTA);
+				font.drawString(&surf, buffer, 0, 75, 320, _TMAGENTA, Graphics::kTextAlignCenter);
 			}
 
-			// HACK: use of SCRIPT size 24-16
-			_vm->_screen->loadFont(2);
-
+			// SCRIPT, size 24-16
 			strcpy(buffer, "Hugo's");
-			_vm->_screen->writeStr(CENTER, 20, buffer, _TMAGENTA);
 
-			// HACK: use of TROMAN, size 30-24
+			if (font.loadFromFON("SCRIPT.FON", Graphics::WinFontDirEntry("Script", 16))) {
+				font.drawString(&surf, buffer, 0, 20, 320, _TMAGENTA, Graphics::kTextAlignCenter);
+			} else {
+				// Workaround: SCRIPT.FON doesn't load properly at the moment
+				_vm->_screen->loadFont(2);
+				_vm->_screen->writeStr(CENTER, 20, buffer, _TMAGENTA);
+			}
+
+			// TROMAN, size 30-24
+			if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 24)))
+				error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 24");
+
 			strcpy(buffer, "House of Horrors !");
-			_vm->_screen->writeStr(CENTER, 50, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 50, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 2:
 			_vm->_screen->drawRectangle(true, 82, 92, 237, 138, _TBLACK);
-			// HACK: use of TROMAN, size 16-9
-			_vm->_screen->loadFont(2);
 
+			// TROMAN, size 16-9
+			if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 10)))
+				error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 10");
+
 			strcpy(buffer, "S t a r r i n g :");
-			_vm->_screen->writeStr(CENTER, 95, buffer, _TMAGENTA);
+			font.drawString(&surf, buffer, 0, 95, 320, _TMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 3:
-			// HACK: use of TROMAN size 20-9
-			_vm->_screen->loadFont(2);
-
+			// TROMAN, size 20-9
 			strcpy(buffer, "Hugo !");
-			_vm->_screen->writeStr(CENTER, 115, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 115, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 4:
 			_vm->_screen->drawRectangle(true, 82, 92, 237, 138, _TBLACK);
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
 
+			// TROMAN, size 16-9
 			strcpy(buffer, "P r o d u c e d  b y :");
-			_vm->_screen->writeStr(CENTER, 95, buffer, _TMAGENTA);
+			font.drawString(&surf, buffer, 0, 95, 320, _TMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 5:
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
-
+			// TROMAN size 16-9
 			strcpy(buffer, "David P Gray !");
-			_vm->_screen->writeStr(CENTER, 115, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 115, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 6:
 			_vm->_screen->drawRectangle(true, 82, 92, 237, 138, _TBLACK);
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
 
+			// TROMAN, size 16-9
 			strcpy(buffer, "D i r e c t e d   b y :");
-			_vm->_screen->writeStr(CENTER, 95, buffer, _TMAGENTA);
+			font.drawString(&surf, buffer, 0, 95, 320, _TMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 7:
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
-
+			// TROMAN, size 16-9
 			strcpy(buffer, "David P Gray !");
-			_vm->_screen->writeStr(CENTER, 115, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 115, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 8:
 			_vm->_screen->drawRectangle(true, 82, 92, 237, 138, _TBLACK);
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
 
+			// TROMAN, size 16-9
 			strcpy(buffer, "M u s i c   b y :");
-			_vm->_screen->writeStr(CENTER, 95, buffer, _TMAGENTA);
+			font.drawString(&surf, buffer, 0, 95, 320, _TMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 9:
-			// HACK: use of TROMAN size 16-9
-			_vm->_screen->loadFont(2);
-
+			// TROMAN, size 16-9
 			strcpy(buffer, "David P Gray !");
-			_vm->_screen->writeStr(CENTER, 115, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 115, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		case 10:
 			_vm->_screen->drawRectangle(true, 82, 92, 237, 138, _TBLACK);
-			// HACK: use of TROMAN size 20-14
-			_vm->_screen->loadFont(2);
 
+			// TROMAN, size 20-14
+			if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 14)))
+				error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 14");
+
 			strcpy(buffer, "E n j o y !");
-			_vm->_screen->writeStr(CENTER, 100, buffer, _TLIGHTMAGENTA);
+			font.drawString(&surf, buffer, 0, 100, 320, _TLIGHTMAGENTA, Graphics::kTextAlignCenter);
 			break;
 		}
 

Modified: scummvm/trunk/engines/hugo/intro_v2d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/intro_v2d.cpp	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/intro_v2d.cpp	2011-01-05 22:28:37 UTC (rev 55126)
@@ -49,8 +49,14 @@
 }
 
 void intro_v2d::introInit() {
-	_vm->_screen->loadFont(0);
+	Graphics::WinFont font;
+
 	_vm->_file->readBackground(_vm->_numScreens - 1); // display splash screen
+	surf.w = 320;
+	surf.h = 200;
+	surf.pixels = _vm->_screen->getFrontBuffer();
+	surf.pitch = 320;
+	surf.bytesPerPixel = 1;
 
 	char buffer[128];
 
@@ -58,11 +64,24 @@
 		sprintf(buffer, "%s  Registered Version", COPYRIGHT);
 	else
 		sprintf(buffer, "%s  Shareware Version", COPYRIGHT);
-	_vm->_screen->writeStr(CENTER, 186, buffer, _TLIGHTRED);
 
+	// TROMAN, size 10-5
+	if (font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 8))) {
+		font.drawString(&surf, buffer, 0, 186, 320, _TLIGHTRED, Graphics::kTextAlignCenter);
+	} else {
+		_vm->_screen->loadFont(0);
+		_vm->_screen->writeStr(CENTER, 186, buffer, _TLIGHTRED);
+	}
+
 	if (scumm_stricmp(_boot.distrib, "David P. Gray")) {
 		sprintf(buffer, "Distributed by %s.", _boot.distrib);
-		_vm->_screen->writeStr(CENTER, 1, buffer, _TLIGHTRED);
+		// TROMAN, size 10-5
+		if (font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 8))) {
+			font.drawString(&surf, buffer, 0, 1, 320, _TLIGHTRED, Graphics::kTextAlignCenter);
+		} else {
+			_vm->_screen->loadFont(0);
+			_vm->_screen->writeStr(CENTER, 1, buffer, _TLIGHTRED);
+		}
 	}
 
 	_vm->_screen->displayBackground();

Modified: scummvm/trunk/engines/hugo/intro_v3d.cpp
===================================================================
--- scummvm/trunk/engines/hugo/intro_v3d.cpp	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/intro_v3d.cpp	2011-01-05 22:28:37 UTC (rev 55126)
@@ -50,8 +50,12 @@
 }
 
 void intro_v3d::introInit() {
-	_vm->_screen->loadFont(0);
 	_vm->_file->readBackground(_vm->_numScreens - 1); // display splash screen
+	surf.w = 320;
+	surf.h = 200;
+	surf.pixels = _vm->_screen->getFrontBuffer();
+	surf.pitch = 320;
+	surf.bytesPerPixel = 1;
 
 	char buffer[128];
 	if (_boot.registered)
@@ -59,11 +63,15 @@
 	else
 		sprintf(buffer,"%s  Shareware Version", COPYRIGHT);
 
-	_vm->_screen->writeStr(CENTER, 190, buffer, _TBROWN);
+	// TROMAN, size 10-5
+	if (!font.loadFromFON("TMSRB.FON", Graphics::WinFontDirEntry("Tms Rmn", 8)))
+		error("Unable to load font TMSRB.FON, face 'Tms Rmn', size 8");
 
+	font.drawString(&surf, buffer, 0, 190, 320, _TBROWN, Graphics::kTextAlignCenter);
+
 	if (scumm_stricmp(_boot.distrib, "David P. Gray")) {
 		sprintf(buffer, "Distributed by %s.", _boot.distrib);
-		_vm->_screen->writeStr(CENTER, 0, buffer, _TBROWN);
+		font.drawString(&surf, buffer, 0, 0, 320, _TBROWN, Graphics::kTextAlignCenter);
 	}
 
 	_vm->_screen->displayBackground();
@@ -80,12 +88,10 @@
 * Called every tick.  Returns TRUE when complete
 */
 bool intro_v3d::introPlay() {
-	byte introSize = _vm->getIntroSize();
-
 //TODO : Add proper check of story mode
 //#if STORY
-	if (introTicks < introSize) {
-		_vm->_screen->writeStr(_vm->_introX[introTicks], _vm->_introY[introTicks] - DIBOFF_Y, "x", _TBRIGHTWHITE);
+	if (introTicks < _vm->getIntroSize()) {
+		font.drawString(&surf, "x", _vm->_introX[introTicks], _vm->_introY[introTicks] - DIBOFF_Y, 320, _TBRIGHTWHITE);
 		_vm->_screen->displayBackground();
 
 		// Text boxes at various times
@@ -102,7 +108,7 @@
 		}
 	}
 
-	return (++introTicks >= introSize);
+	return (++introTicks >= _vm->getIntroSize());
 //#else //STORY
 //	return true;
 //#endif //STORY

Modified: scummvm/trunk/engines/hugo/intro_v3w.cpp
===================================================================
--- scummvm/trunk/engines/hugo/intro_v3w.cpp	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/intro_v3w.cpp	2011-01-05 22:28:37 UTC (rev 55126)
@@ -73,16 +73,13 @@
 * Called every tick.  Returns TRUE when complete
 */
 bool intro_v3w::introPlay() {
-	byte introSize = _vm->getIntroSize();
-
 //TODO : Add proper check of story mode
 //#if STORY
-	if (introTicks < introSize) {
+	if (introTicks < _vm->getIntroSize()) {
 		// Scale viewport x_intro,y_intro to screen (offsetting y)
 		_vm->_screen->writeStr(_vm->_introX[introTicks], _vm->_introY[introTicks] - DIBOFF_Y, "x", _TBRIGHTWHITE);
 		_vm->_screen->displayBackground();
 
-
 		// Text boxes at various times
 		switch (introTicks) {
 		case 4:
@@ -97,7 +94,7 @@
 		}
 	}
 
-	return (++introTicks >= introSize);
+	return (++introTicks >= _vm->getIntroSize());
 //#else //STORY
 //	return true;
 //#endif //STORY

Modified: scummvm/trunk/engines/hugo/menu.cpp
===================================================================
--- scummvm/trunk/engines/hugo/menu.cpp	2011-01-05 18:06:46 UTC (rev 55125)
+++ scummvm/trunk/engines/hugo/menu.cpp	2011-01-05 22:28:37 UTC (rev 55126)
@@ -201,7 +201,6 @@
 		}
 		break;
 	case kCmdRecall:
-
 		close();
 		_vm->getGameStatus().recallFl = true;
 		break;


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