[Scummvm-cvs-logs] CVS: scummvm/kyra kyra.cpp,1.74,1.75 script_v1.cpp,1.28,1.29 staticres.cpp,1.20,1.21

Johannes Schickel lordhoto at users.sourceforge.net
Sun Nov 27 02:03:05 CET 2005


Update of /cvsroot/scummvm/scummvm/kyra
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28547

Modified Files:
	kyra.cpp script_v1.cpp staticres.cpp 
Log Message:
Added voices for cd version in the game.
Also increased RESFILE_VERSION for the new kyra.dat for the cd version.


Index: kyra.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/kyra.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- kyra.cpp	26 Nov 2005 16:37:20 -0000	1.74
+++ kyra.cpp	27 Nov 2005 10:02:22 -0000	1.75
@@ -344,6 +344,8 @@
 	_marbleVaseItem = -1;
 	_mouseState = _itemInHand = -1;
 	_handleInput = false;
+	
+	_currentRoom = 0xFFFF;
 
 	return 0;
 }
@@ -1186,18 +1188,36 @@
 	
 	assert(sceneId < _roomTableSize);
 	Room *currentRoom = &_roomTable[sceneId];
-
+	
+	if (_currentRoom != 0xFFFF && (_features & GF_TALKIE)) {
+		char file[32];
+		assert(_currentRoom < _roomTableSize);
+		int tableId = _roomTable[_currentRoom].nameIndex;
+		assert(tableId < _roomFilenameTableSize);
+		strcpy(file, _roomFilenameTable[tableId]);
+		strcat(file, ".VRM");
+		_res->unloadPakFile(file);
+	}
+	
+	_currentRoom = sceneId;
+	
 	assert(_currentCharacter->sceneId < _roomTableSize);
 	int tableId = _roomTable[_currentCharacter->sceneId].nameIndex;
 	assert(tableId < _roomFilenameTableSize);
-	char datFileNameBuffer[32];
-	strcpy(datFileNameBuffer, _roomFilenameTable[tableId]);
-	strcat(datFileNameBuffer, ".DAT");
-	_sprites->loadDAT(datFileNameBuffer, _sceneExits);
+	char fileNameBuffer[32];
+	strcpy(fileNameBuffer, _roomFilenameTable[tableId]);
+	strcat(fileNameBuffer, ".DAT");
+	_sprites->loadDAT(fileNameBuffer, _sceneExits);
 	_sprites->setupSceneAnims();
 	_scriptInterpreter->unloadScript(_scriptClickData);
 	loadSceneMSC();
 	
+	if ((_features & GF_TALKIE)) {
+		strcpy(fileNameBuffer, _roomFilenameTable[tableId]);
+		strcat(fileNameBuffer, ".VRM");
+		_res->loadPakFile(fileNameBuffer);
+	}
+	
 	_walkBlockNorth = currentRoom->northExit;
 	_walkBlockEast = currentRoom->eastExit;
 	_walkBlockSouth = currentRoom->southExit;

Index: script_v1.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/script_v1.cpp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- script_v1.cpp	27 Nov 2005 05:49:35 -0000	1.28
+++ script_v1.cpp	27 Nov 2005 10:02:23 -0000	1.29
@@ -314,6 +314,12 @@
 
 	if (_features & GF_TALKIE) {
 		debug(3, "cmd_characterSays(0x%X) (%d, '%s', %d, %d)", script, stackPos(0), stackPosString(1), stackPos(2), stackPos(3));
+		while (snd_voicePlaying()) {
+			_sprites->updateSceneAnims();
+			updateAllObjectShapes();
+			_system->delayMillis(10);
+		}
+		snd_playVoiceFile(stackPos(0));
 		characterSays(stackPosString(1), stackPos(2), stackPos(3));
 	} else {
 		debug(3, "cmd_characterSays(0x%X) ('%s', %d, %d)", script, stackPosString(0), stackPos(1), stackPos(2));
@@ -773,6 +779,12 @@
 int KyraEngine::cmd_customPrintTalkString(ScriptState *script) {
 	if (_features & GF_TALKIE) {
 		debug(3, "cmd_customPrintTalkString(0x%X) ('%s', %d, %d, %d)", script, stackPosString(1), stackPos(2), stackPos(3), stackPos(4) & 0xFF);
+		while (snd_voicePlaying()) {
+			_sprites->updateSceneAnims();
+			updateAllObjectShapes();
+			_system->delayMillis(10);
+		}
+		snd_playVoiceFile(stackPos(0));
 		printTalkTextMessage(stackPosString(1), stackPos(2), stackPos(3), stackPos(4) & 0xFF, 0, 2);
 	} else {
 		debug(3, "cmd_customPrintTalkString(0x%X) ('%s', %d, %d, %d)", script, stackPosString(0), stackPos(1), stackPos(2), stackPos(3) & 0xFF);
@@ -1428,10 +1440,10 @@
 
 int KyraEngine::cmd_message(ScriptState *script) {
 	if (_features & GF_TALKIE) {
-		debug(9, "cmd_message(0x%X)", script);
+		debug(3, "cmd_message(0x%X) (%d, '%s', %d)", script, stackPos(0), stackPosString(1), stackPos(2));
 		drawSentenceCommand(stackPosString(1), stackPos(2));
 	} else {
-		debug(9, "cmd_message(0x%X)", script);
+		debug(3, "cmd_message(0x%X) ('%s', %d)", script, stackPosString(0), stackPos(1));
 		drawSentenceCommand(stackPosString(0), stackPos(1));
 	}
 

Index: staticres.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/kyra/staticres.cpp,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- staticres.cpp	26 Nov 2005 16:37:20 -0000	1.20
+++ staticres.cpp	27 Nov 2005 10:02:23 -0000	1.21
@@ -26,7 +26,7 @@
 
 namespace Kyra {
 
-#define RESFILE_VERSION 2
+#define RESFILE_VERSION 3
 
 #define GAME_FLAGS (GF_FLOPPY | GF_TALKIE | GF_DEMO | GF_AUDIOCD)
 #define LANGUAGE_FLAGS (GF_ENGLISH | GF_FRENCH | GF_GERMAN | GF_SPANISH | GF_LNGUNK)





More information about the Scummvm-git-logs mailing list