[Scummvm-cvs-logs] SF.net SVN: scummvm: [24875] scummvm/trunk/engines/gob

drmccoy at users.sourceforge.net drmccoy at users.sourceforge.net
Mon Dec 18 21:38:32 CET 2006


Revision: 24875
          http://scummvm.svn.sourceforge.net/scummvm/?rev=24875&view=rev
Author:   drmccoy
Date:     2006-12-18 12:38:31 -0800 (Mon, 18 Dec 2006)

Log Message:
-----------
Fixed the note-pad, font changing and date/time-display

Modified Paths:
--------------
    scummvm/trunk/engines/gob/game_v2.cpp
    scummvm/trunk/engines/gob/gob.cpp
    scummvm/trunk/engines/gob/gob.h
    scummvm/trunk/engines/gob/inter.h
    scummvm/trunk/engines/gob/inter_v2.cpp

Modified: scummvm/trunk/engines/gob/game_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/game_v2.cpp	2006-12-18 14:33:37 UTC (rev 24874)
+++ scummvm/trunk/engines/gob/game_v2.cpp	2006-12-18 20:38:31 UTC (rev 24875)
@@ -71,7 +71,8 @@
 
 	if (skipPlay <= 0) {
 		while (!_vm->_quitRequested) {
-			_vm->_draw->animateCursor(4);
+			if (_vm->_global->_inter_variables != 0)
+				_vm->_draw->animateCursor(4);
 			if (_vm->_features & GF_MAC)
 				_vm->_music->stopPlay();
 			else

Modified: scummvm/trunk/engines/gob/gob.cpp
===================================================================
--- scummvm/trunk/engines/gob/gob.cpp	2006-12-18 14:33:37 UTC (rev 24874)
+++ scummvm/trunk/engines/gob/gob.cpp	2006-12-18 20:38:31 UTC (rev 24875)
@@ -575,6 +575,11 @@
 			_video->freeSurfDesc(srcDesc);
 		} else
 			retSize = in->read(buf, size);
+		if (index == 21) {
+			_video->drawSprite(_draw->_backSurface, _draw->_frontSurface, 0, 0,
+					_draw->_frontSurface->width - 1, _draw->_frontSurface->height - 1, 0, 0, 0);
+			_video->waitRetrace(_global->_videoMode);
+		}
 	} else
 		retSize = readDataEndian(*in, buf, _global->_inter_variablesSizes + dataVar, size);
 

Modified: scummvm/trunk/engines/gob/gob.h
===================================================================
--- scummvm/trunk/engines/gob/gob.h	2006-12-18 14:33:37 UTC (rev 24874)
+++ scummvm/trunk/engines/gob/gob.h	2006-12-18 20:38:31 UTC (rev 24875)
@@ -109,7 +109,8 @@
 
 enum SaveFiles {
 	SAVE_CAT = 0, // Saves
-	SAVE_SAV,     // Draw::_backSurface (why?)
+	SAVE_SAV,     // Draw::_backSurface (as a temporary buffer when using the notepad
+	              // and changing the font. TODO: That probably should be worked around
 	SAVE_BLO      // Notes
 };
 

Modified: scummvm/trunk/engines/gob/inter.h
===================================================================
--- scummvm/trunk/engines/gob/inter.h	2006-12-18 14:33:37 UTC (rev 24874)
+++ scummvm/trunk/engines/gob/inter.h	2006-12-18 20:38:31 UTC (rev 24875)
@@ -333,6 +333,7 @@
 	bool o2_playSound(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_goblinFunc(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_evaluateStore(char &cmdCount, int16 &counter, int16 &retFlag);
+	bool o2_printText(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_palLoad(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_loadTot(char &cmdCount, int16 &counter, int16 &retFlag);
 	bool o2_freeSprite(char &cmdCount, int16 &counter, int16 &retFlag);

Modified: scummvm/trunk/engines/gob/inter_v2.cpp
===================================================================
--- scummvm/trunk/engines/gob/inter_v2.cpp	2006-12-18 14:33:37 UTC (rev 24874)
+++ scummvm/trunk/engines/gob/inter_v2.cpp	2006-12-18 20:38:31 UTC (rev 24875)
@@ -469,7 +469,7 @@
 		{NULL, ""},
 		/* 10 */
 		{NULL, ""},
-		OPCODE(o1_printText),
+		OPCODE(o2_printText),
 		OPCODE(o2_loadTot),
 		OPCODE(o2_palLoad),
 		/* 14 */
@@ -1490,7 +1490,7 @@
 	evalExpr(0);
 	varOff = _vm->_parse->parseVarIndex();
 
-	handle = 0;
+	handle = 1;
 	if (!scumm_stricmp(_vm->_global->_inter_resStr, "cat.inf"))
 		size = _vm->getSaveSize(SAVE_CAT);
 	else if (!scumm_stricmp(_vm->_global->_inter_resStr, "cat.cat"))
@@ -1682,6 +1682,66 @@
 	return false;
 }
 
+bool Inter_v2::o2_printText(char &cmdCount, int16 &counter, int16 &retFlag) {
+	char buf[60];
+	int16 i;
+
+	_vm->_draw->_destSpriteX = _vm->_parse->parseValExpr();
+	_vm->_draw->_destSpriteY = _vm->_parse->parseValExpr();
+
+	_vm->_draw->_backColor = _vm->_parse->parseValExpr();
+	_vm->_draw->_frontColor = _vm->_parse->parseValExpr();
+	_vm->_draw->_fontIndex = _vm->_parse->parseValExpr();
+	_vm->_draw->_destSurface = 21;
+	_vm->_draw->_textToPrint = buf;
+	_vm->_draw->_transparency = 0;
+
+	if (_vm->_draw->_backColor == 16) {
+		_vm->_draw->_backColor = 0;
+		_vm->_draw->_transparency = 1;
+	}
+
+	do {
+		for (i = 0; *_vm->_global->_inter_execPtr != '.' && (byte)*_vm->_global->_inter_execPtr != 200;
+			 i++, _vm->_global->_inter_execPtr++) {
+			buf[i] = *_vm->_global->_inter_execPtr;
+		}
+
+		if ((byte)*_vm->_global->_inter_execPtr != 200) {
+			_vm->_global->_inter_execPtr++;
+			switch (*_vm->_global->_inter_execPtr) {
+			case 16:
+			case 18:
+				sprintf(buf + i, "%d", (int8) READ_VARO_UINT8(_vm->_parse->parseVarIndex()));
+				break;
+
+			case 17:
+			case 24:
+			case 27:
+				sprintf(buf + i, "%d", (int16) READ_VARO_UINT16(_vm->_parse->parseVarIndex()));
+				break;
+
+			case 23:
+			case 26:
+				sprintf(buf + i, "%d", VAR_OFFSET(_vm->_parse->parseVarIndex()));
+				break;
+
+			case 25:
+			case 28:
+				sprintf(buf + i, "%s", GET_VARO_STR(_vm->_parse->parseVarIndex()));
+				break;
+			}
+			_vm->_global->_inter_execPtr++;
+		} else {
+			buf[i] = 0;
+		}
+		_vm->_draw->spriteOperation(DRAW_PRINTTEXT);
+	} while ((byte)*_vm->_global->_inter_execPtr != 200);
+	_vm->_global->_inter_execPtr++;
+
+	return false;
+}
+
 bool Inter_v2::o2_palLoad(char &cmdCount, int16 &counter, int16 &retFlag) {
 	int16 i;
 	int16 ind1;
@@ -2238,8 +2298,7 @@
 		totFile[i] = 0;
 	}
 
-	_vm->_global->_inter_execPtr++;
-	flags = *_vm->_global->_inter_execPtr;
+	flags = (byte) *_vm->_global->_inter_execPtr++;
 	_vm->_game->totSub(flags, totFile);
 }
 


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