[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