[Scummvm-git-logs] scummvm master -> 95dd627c9d7d468968672e89127795e65ed34ab9
NMIError
60350957+NMIError at users.noreply.github.com
Tue Dec 8 20:29:25 UTC 2020
This automated email contains information about 5 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
7642698fd7 LURE: Fix door sounds
f3848ea5be LURE: Fix town shop clock
3b41b6a16b LURE: Fix water sound when opening or closing door
5dfd6d0665 LURE: Fix bells sounding in town
95dd627c9d LURE: Play town ambient sound when first entering
Commit: 7642698fd7ba43f014b4bea259aea8fb9acaf4eb
https://github.com/scummvm/scummvm/commit/7642698fd7ba43f014b4bea259aea8fb9acaf4eb
Author: NMIError (crampen at gmail.com)
Date: 2020-12-08T21:27:56+01:00
Commit Message:
LURE: Fix door sounds
ScummVM did not seem to trigger door opening and closing sounds, f.e. the cell
door at the start of the game. The checks in the roomExitAnimHandler compared
hotspot IDs to room numbers, which are different sets of IDs AFAICT. Also, the
door opening part would decrease the frame counter first, then compare to the
set destination frame. The opening sound should often be triggered at the start
of the animation, but because the frame counter is decreased first, it does not
trigger at the first frame. I moved the frame counter decrease after the check
to fix this.
Changed paths:
engines/lure/hotspots.cpp
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 2aa08382a0..8baf0685fe 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -2909,21 +2909,21 @@ void HotspotTickHandlers::roomExitAnimHandler(Hotspot &h) {
h.setOccupied(true);
++rs.currentFrame;
- if ((rs.currentFrame == rs.destFrame) && (h.hotspotId() == room.roomNumber()))
+ if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber()))
Sound.addSound(rs.closeSound);
} else if ((rec->blocked == 0) && (rs.currentFrame != 0)) {
// Opening the door
h.setOccupied(false);
- --rs.currentFrame;
- if ((rs.currentFrame == rs.destFrame) && (h.hotspotId() == room.roomNumber())) {
+ if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber())) {
Sound.addSound(rs.openSound);
// If in the outside village, trash reverb
if (fields.getField(AREA_FLAG) == 1)
Sound.musicInterface_TrashReverb();
}
+ --rs.currentFrame;
}
h.setFrameNumber(rs.currentFrame);
Commit: f3848ea5be0d4b4fbe431127dff4beec35272c36
https://github.com/scummvm/scummvm/commit/f3848ea5be0d4b4fbe431127dff4beec35272c36
Author: NMIError (crampen at gmail.com)
Date: 2020-12-08T21:27:57+01:00
Commit Message:
LURE: Fix town shop clock
The sound of the clock in the town shop was played much too frequently. Fixed
this to match the one tick per second of the original interpreter.
Changed paths:
engines/lure/luredefs.h
diff --git a/engines/lure/luredefs.h b/engines/lure/luredefs.h
index 6df2aa3886..f01de75e98 100644
--- a/engines/lure/luredefs.h
+++ b/engines/lure/luredefs.h
@@ -271,7 +271,9 @@ enum CursorType {CURSOR_ARROW = 0, CURSOR_DISK = 1, CURSOR_TIME_START = 2,
// Milliseconds delay between game frames
#define GAME_FRAME_DELAY 80
-#define GAME_TICK_DELAY 20
+
+// Milliseconds delay between clock ticks in shop
+#define GAME_TICK_DELAY 1000
// Tick proc constants
#define NULL_TICK_PROC_ID 1
Commit: 3b41b6a16b61a45a32f227408fb3d790629503ed
https://github.com/scummvm/scummvm/commit/3b41b6a16b61a45a32f227408fb3d790629503ed
Author: NMIError (crampen at gmail.com)
Date: 2020-12-08T21:27:57+01:00
Commit Message:
LURE: Fix water sound when opening or closing door
Some room exit data have the door opening or door closing sound defined as 0
(f.e. the cave doors). This means no sound should be played. ScummVM would play
sound 0 instead, which is the running water sound. This change fixes this by
checking for value 0 and not playing a sound in that case.
Changed paths:
engines/lure/hotspots.cpp
diff --git a/engines/lure/hotspots.cpp b/engines/lure/hotspots.cpp
index 8baf0685fe..9130cd7d44 100644
--- a/engines/lure/hotspots.cpp
+++ b/engines/lure/hotspots.cpp
@@ -2909,14 +2909,14 @@ void HotspotTickHandlers::roomExitAnimHandler(Hotspot &h) {
h.setOccupied(true);
++rs.currentFrame;
- if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber()))
+ if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber()) && (rs.closeSound != 0))
Sound.addSound(rs.closeSound);
} else if ((rec->blocked == 0) && (rs.currentFrame != 0)) {
// Opening the door
h.setOccupied(false);
- if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber())) {
+ if ((rs.currentFrame == rs.destFrame) && (h.roomNumber() == room.roomNumber()) && (rs.openSound != 0)) {
Sound.addSound(rs.openSound);
// If in the outside village, trash reverb
Commit: 5dfd6d06655fe848028784b1e706fb3b4f4fc37a
https://github.com/scummvm/scummvm/commit/5dfd6d06655fe848028784b1e706fb3b4f4fc37a
Author: NMIError (crampen at gmail.com)
Date: 2020-12-08T21:27:58+01:00
Commit Message:
LURE: Fix bells sounding in town
When entering town after escaping from prison, after a little while bells start
chiming constantly. This does not happen in the original interpreter.
This is caused by a script that generates the ambient thunder sounds in the
prison. After the prison escape the clearSequenceDelayList function is called,
but this did not remove the script because it is not marked as "can be cleared".
Because this script is not running in town in the original interpreter, I think
the clearSequenceDelayList function is supposed to clear all scripts, even the
ones not marked as "can be cleared". The only other scripts that this affects
are two more ambient sound scripts that are now removed after entering the
castle towards the end of the game (the only other place where
clearSequenceDelayList is called). These scripts only play sounds while in town,
so removing them has no effect (but does remove some unnecessary processing).
Changed paths:
engines/lure/scripts.cpp
diff --git a/engines/lure/scripts.cpp b/engines/lure/scripts.cpp
index 1c3762f2fd..ab24c3c767 100644
--- a/engines/lure/scripts.cpp
+++ b/engines/lure/scripts.cpp
@@ -95,7 +95,7 @@ void Script::setHotspotFlagMask(uint16 maskVal, uint16 v2, uint16 v3) {
// Clears the sequence delay list
void Script::clearSequenceDelayList(uint16 v1, uint16 scriptIndex, uint16 v3) {
- Resources::getReference().delayList().clear();
+ Resources::getReference().delayList().clear(true);
}
// Deactivates a set of predefined of hotspots in a given list index
Commit: 95dd627c9d7d468968672e89127795e65ed34ab9
https://github.com/scummvm/scummvm/commit/95dd627c9d7d468968672e89127795e65ed34ab9
Author: NMIError (crampen at gmail.com)
Date: 2020-12-08T21:27:58+01:00
Commit Message:
LURE: Play town ambient sound when first entering
When outside in the town, the game plays an ambient sound of twittering birds.
When first entering town after falling through the chute, this sound does not
play; it first starts after you enter and exit a building. This issue is
present with the original interpreter as well.
This change fixes this by calling removeSounds after playing the chute
animation. This function calls the bellsBodge function, which manages the
ambient sounds in town. Because there are no other sounds playing when first
entering town, this has no unwanted side effects.
Changed paths:
engines/lure/game.cpp
diff --git a/engines/lure/game.cpp b/engines/lure/game.cpp
index 9a7dcb9b2b..ebe448b917 100644
--- a/engines/lure/game.cpp
+++ b/engines/lure/game.cpp
@@ -420,6 +420,15 @@ void Game::displayChuteAnimation() {
Sound.killSounds();
mouse.cursorOn();
fields.setField(AREA_FLAG, 1);
+
+ // WORKAROUND When outside in the town, the game plays an ambient sound
+ // of twittering birds. When first entering town after falling through
+ // the chute, this sound does not play; it starts playing after you
+ // enter and exit a building. Calling removeSounds here triggers the
+ // function which manages the ambient sounds in town, so the bird
+ // sounds start playing. Because all other sounds have already been
+ // removed, this has no side effects.
+ Sound.removeSounds();
}
void Game::displayBarrelAnimation() {
More information about the Scummvm-git-logs
mailing list