aboutsummaryrefslogtreecommitdiff
path: root/sound/mods/tfmx.cpp
diff options
context:
space:
mode:
authorNorbert Lange2009-06-19 20:17:53 +0000
committerNorbert Lange2009-06-19 20:17:53 +0000
commit4865863f6cff6c141edaf4f6cb6ce4ef2687d12a (patch)
treee15add1bf2871b2499598ac84f043bff22541917 /sound/mods/tfmx.cpp
parentc7697fb200a10f2c6406239b32d66cc7163c3d59 (diff)
downloadscummvm-rg350-4865863f6cff6c141edaf4f6cb6ce4ef2687d12a.tar.gz
scummvm-rg350-4865863f6cff6c141edaf4f6cb6ce4ef2687d12a.tar.bz2
scummvm-rg350-4865863f6cff6c141edaf4f6cb6ce4ef2687d12a.zip
Enabled signals and made ScummVM use them (they specify when a song should be stopped)
Cleanups in player_v4a. svn-id: r41685
Diffstat (limited to 'sound/mods/tfmx.cpp')
-rw-r--r--sound/mods/tfmx.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/sound/mods/tfmx.cpp b/sound/mods/tfmx.cpp
index be9f9ebf73..8a9fc0d962 100644
--- a/sound/mods/tfmx.cpp
+++ b/sound/mods/tfmx.cpp
@@ -439,7 +439,8 @@ FORCEINLINE bool Tfmx::macroStep(ChannelContext &channel) {
return channel.deferWait;
case 0x20: // Signal. Parameters: signalnumber/value
- warnMacroUnimplemented(macroPtr, 0);
+ if (macroPtr[1] < ARRAYSIZE(_playerCtx.signal))
+ _playerCtx.signal[macroPtr[1]] = READ_BE_UINT16(&macroPtr[2]);
return true;
case 0x21: // Play macro. Parameters: macro/chan/detune
@@ -622,8 +623,8 @@ FORCEINLINE bool Tfmx::patternStep(PatternContext &pattern) {
return true;
case 13: // Cue
- warnPatternUnimplemented(patternPtr, 1);
- debug("Cue/Signal %02X %04X", patternPtr[1], READ_BE_UINT16(&patternPtr[2]));
+ if (patternPtr[1] < ARRAYSIZE(_playerCtx.signal))
+ _playerCtx.signal[patternPtr[1]] = READ_BE_UINT16(&patternPtr[2]);
return true;
case 15: // NOP