[Scummvm-cvs-logs] SF.net SVN: scummvm:[40465] scummvm/trunk/engines/cine

sev at users.sourceforge.net sev at users.sourceforge.net
Mon May 11 21:31:55 CEST 2009


Revision: 40465
          http://scummvm.svn.sourceforge.net/scummvm/?rev=40465&view=rev
Author:   sev
Date:     2009-05-11 19:31:55 +0000 (Mon, 11 May 2009)

Log Message:
-----------
Fix bug #2055836: "FW: Music is not restarted when loading a saved game"

Modified Paths:
--------------
    scummvm/trunk/engines/cine/cine.cpp
    scummvm/trunk/engines/cine/saveload.cpp
    scummvm/trunk/engines/cine/script_fw.cpp
    scummvm/trunk/engines/cine/various.cpp
    scummvm/trunk/engines/cine/various.h

Modified: scummvm/trunk/engines/cine/cine.cpp
===================================================================
--- scummvm/trunk/engines/cine/cine.cpp	2009-05-11 19:04:06 UTC (rev 40464)
+++ scummvm/trunk/engines/cine/cine.cpp	2009-05-11 19:31:55 UTC (rev 40465)
@@ -172,6 +172,9 @@
 
 	var2 = var3 = var4 = var5 = 0;
 
+	musicIsPlaying = 0;
+	currentDatName[0] = 0;
+
 	_preLoad = false;
 	if (ConfMan.hasKey("save_slot")) {
 		char saveNameBuffer[256];

Modified: scummvm/trunk/engines/cine/saveload.cpp
===================================================================
--- scummvm/trunk/engines/cine/saveload.cpp	2009-05-11 19:04:06 UTC (rev 40464)
+++ scummvm/trunk/engines/cine/saveload.cpp	2009-05-11 19:31:55 UTC (rev 40465)
@@ -29,6 +29,7 @@
 #include "cine/cine.h"
 #include "cine/bg_list.h"
 #include "cine/saveload.h"
+#include "cine/sound.h"
 #include "cine/various.h"
 
 namespace Cine {
@@ -646,7 +647,7 @@
 	in.read(currentDatName, 13);
 
 	// At 0x001C:
-	saveVar2 = in.readSint16BE();
+	musicIsPlaying = in.readSint16BE();
 
 	// At 0x001E:
 	in.read(currentPrcName, 13);
@@ -748,12 +749,10 @@
 	}
 
 	if (strlen(currentDatName)) {
-/*		i = saveVar2;
-		saveVar2 = 0;
-		loadMusic();
-		if (i) {
-			playMusic();
-		}*/
+		g_sound->loadMusic(currentDatName);
+		if (musicIsPlaying) {
+			g_sound->playMusic();
+		}
 	}
 
 	return !in.ioFailed();
@@ -835,7 +834,7 @@
 	out.writeUint16BE(currentDisk);
 	out.write(currentPartName, 13);
 	out.write(currentDatName, 13);
-	out.writeUint16BE(saveVar2);
+	out.writeUint16BE(musicIsPlaying);
 	out.write(currentPrcName, 13);
 	out.write(currentRelName, 13);
 	out.write(currentMsgName, 13);

Modified: scummvm/trunk/engines/cine/script_fw.cpp
===================================================================
--- scummvm/trunk/engines/cine/script_fw.cpp	2009-05-11 19:04:06 UTC (rev 40464)
+++ scummvm/trunk/engines/cine/script_fw.cpp	2009-05-11 19:31:55 UTC (rev 40465)
@@ -1632,24 +1632,37 @@
 
 	debugC(5, kCineDebugScript, "Line: %d: loadMusic(%s)", _line, param);
 	g_sound->loadMusic(param);
+
+	strncpy(currentDatName, param, 30);
+	musicIsPlaying = 0;
+
 	return 0;
 }
 
 int FWScript::o1_playMusic() {
 	debugC(5, kCineDebugScript, "Line: %d: playMusic()", _line);
 	g_sound->playMusic();
+
+	musicIsPlaying = 1;
+
 	return 0;
 }
 
 int FWScript::o1_fadeOutMusic() {
 	debugC(5, kCineDebugScript, "Line: %d: fadeOutMusic()", _line);
 	g_sound->fadeOutMusic();
+
+	musicIsPlaying = 0;
+
 	return 0;
 }
 
 int FWScript::o1_stopSample() {
 	debugC(5, kCineDebugScript, "Line: %d: stopSample()", _line);
 	g_sound->stopMusic();
+
+	musicIsPlaying = 0;
+
 	return 0;
 }
 

Modified: scummvm/trunk/engines/cine/various.cpp
===================================================================
--- scummvm/trunk/engines/cine/various.cpp	2009-05-11 19:04:06 UTC (rev 40464)
+++ scummvm/trunk/engines/cine/various.cpp	2009-05-11 19:31:55 UTC (rev 40465)
@@ -89,6 +89,7 @@
 char currentCtName[15];
 char currentPartName[15];
 char currentDatName[30];
+uint16 musicIsPlaying;
 
 byte isInPause = 0;
 

Modified: scummvm/trunk/engines/cine/various.h
===================================================================
--- scummvm/trunk/engines/cine/various.h	2009-05-11 19:04:06 UTC (rev 40464)
+++ scummvm/trunk/engines/cine/various.h	2009-05-11 19:31:55 UTC (rev 40465)
@@ -78,6 +78,7 @@
 extern int16 commandVar3[4];
 
 extern char currentDatName[30];
+extern uint16 musicIsPlaying;
 
 void setTextWindow(uint16 param1, uint16 param2, uint16 param3, uint16 param4);
 


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