[Scummvm-git-logs] scummvm master -> 1985b8363d36c6c23b71ab93b6358652d939ca46

mgerhardy noreply at scummvm.org
Thu Dec 2 09:21:55 UTC 2021


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
1985b8363d TWINE: Adeline software jingle keeps looping through the startup screens


Commit: 1985b8363d36c6c23b71ab93b6358652d939ca46
    https://github.com/scummvm/scummvm/commit/1985b8363d36c6c23b71ab93b6358652d939ca46
Author: Martin Gerhardy (martin.gerhardy at gmail.com)
Date: 2021-12-02T06:11:23+01:00

Commit Message:
TWINE: Adeline software jingle keeps looping through the startup screens

https://bugs.scummvm.org/ticket/11989

Changed paths:
    engines/twine/audio/music.cpp
    engines/twine/audio/music.h
    engines/twine/renderer/screens.cpp
    engines/twine/scene/gamestate.cpp


diff --git a/engines/twine/audio/music.cpp b/engines/twine/audio/music.cpp
index 67c812e6b1..c55b9acc8f 100644
--- a/engines/twine/audio/music.cpp
+++ b/engines/twine/audio/music.cpp
@@ -75,7 +75,7 @@ TwinEMidiPlayer::TwinEMidiPlayer(TwinEEngine* engine) : _engine(engine) {
 	}
 }
 
-void TwinEMidiPlayer::play(byte *buf, int size) {
+void TwinEMidiPlayer::play(byte *buf, int size, bool loop) {
 	if (_parser == nullptr) {
 		if (_engine->_cfgfile.MidiType == MIDIFILE_DOS) {
 			_parser = MidiParser::createParser_XMIDI();
@@ -95,8 +95,7 @@ void TwinEMidiPlayer::play(byte *buf, int size) {
 
 	syncVolume();
 
-	// All the tracks are supposed to loop
-	_isLooping = true;
+	_isLooping = loop;
 	_isPlaying = true;
 }
 
@@ -263,7 +262,7 @@ bool Music::playMidiMusic(int32 midiIdx, int32 loop) {
 		return false;
 	}
 	debug("Play midi file for index %i", midiIdx);
-	_midiPlayer.play(midiPtr, midiSize);
+	_midiPlayer.play(midiPtr, midiSize, loop == 0 || loop > 1);
 	return true;
 }
 
diff --git a/engines/twine/audio/music.h b/engines/twine/audio/music.h
index e0e8109198..6c732549a6 100644
--- a/engines/twine/audio/music.h
+++ b/engines/twine/audio/music.h
@@ -36,7 +36,7 @@ private:
 	TwinEEngine *_engine;
 public:
 	TwinEMidiPlayer(TwinEEngine *engine);
-	void play(byte *buf, int size);
+	void play(byte *buf, int size, bool loop);
 };
 
 class Music {
@@ -80,7 +80,7 @@ public:
 	 * @param midiIdx music index under mini_mi_win.hqr
 	 * @note valid indices for lba1 are [1-32]
 	 */
-	bool playMidiMusic(int32 midiIdx, int32 loop = 0);
+	bool playMidiMusic(int32 midiIdx, int32 loop = 1);
 	/** Stop MIDI music */
 	void stopMidiMusic();
 
diff --git a/engines/twine/renderer/screens.cpp b/engines/twine/renderer/screens.cpp
index 54eef328e6..e3e96a1201 100644
--- a/engines/twine/renderer/screens.cpp
+++ b/engines/twine/renderer/screens.cpp
@@ -32,7 +32,7 @@
 namespace TwinE {
 
 bool Screens::adelineLogo() {
-	_engine->_music->playMidiMusic(31, 1);
+	_engine->_music->playMidiMusic(31);
 
 	return loadImageDelay(_engine->_resources->adelineLogo(), 7);
 }
diff --git a/engines/twine/scene/gamestate.cpp b/engines/twine/scene/gamestate.cpp
index f185f97432..36d496cae1 100644
--- a/engines/twine/scene/gamestate.cpp
+++ b/engines/twine/scene/gamestate.cpp
@@ -512,7 +512,7 @@ void GameState::processGameoverAnimation() {
 		}
 
 		const int32 avg = _engine->_collision->getAverageValue(40000, 3200, 500, _engine->_lbaTime - startLbaTime);
-		const int32 cdot = _engine->_screens->lerp(1, 1024, 100, (_engine->_lbaTime - startLbaTime) % 100);
+		const int32 cdot = _engine->_screens->lerp(1, ANGLE_360, 100, (_engine->_lbaTime - startLbaTime) % 100);
 
 		_engine->blitWorkToFront(rect);
 		_engine->_renderer->setCameraAngle(0, 0, 0, 0, -cdot, 0, avg);




More information about the Scummvm-git-logs mailing list