[Scummvm-cvs-logs] SF.net SVN: scummvm:[46963] scummvm/trunk/engines/sci/sfx
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Mon Jan 4 00:30:24 CET 2010
Revision: 46963
http://scummvm.svn.sourceforge.net/scummvm/?rev=46963&view=rev
Author: m_kiewitz
Date: 2010-01-03 23:30:23 +0000 (Sun, 03 Jan 2010)
Log Message:
-----------
SCI/newmusic: support for SCI0 fading, doesnt work yet because channels[] is currently not correctly filled out inside SoundResource class - because it wasnt previously needed
Modified Paths:
--------------
scummvm/trunk/engines/sci/sfx/soundcmd.cpp
scummvm/trunk/engines/sci/sfx/soundcmd.h
Modified: scummvm/trunk/engines/sci/sfx/soundcmd.cpp
===================================================================
--- scummvm/trunk/engines/sci/sfx/soundcmd.cpp 2010-01-03 23:25:54 UTC (rev 46962)
+++ scummvm/trunk/engines/sci/sfx/soundcmd.cpp 2010-01-03 23:30:23 UTC (rev 46963)
@@ -209,6 +209,7 @@
reg_t obj = (argc > 1) ? argv[1] : NULL_REG;
int16 value = (argc > 2) ? argv[2].toSint16() : 0;
_acc = acc;
+ _argc = argc;
_argv = argv;
// cmdMuteSound and cmdMasterVolume do not operate on an object, but need the number of
@@ -655,11 +656,27 @@
}
int volume = musicSlot->volume;
- musicSlot->fadeTo = CLIP<uint16>(_argv[2].toUint16(), 0, MUSIC_VOLUME_MAX);
- musicSlot->fadeStep = volume > _argv[2].toUint16() ? -_argv[4].toUint16() : _argv[4].toUint16();
- musicSlot->fadeTickerStep = _argv[3].toUint16() * 16667 / _music->soundGetTempo();
- musicSlot->fadeTicker = 0;
+ switch (_argc) {
+ case 2: // SCI0
+ musicSlot->fadeTo = 0;
+ musicSlot->fadeStep = -5;
+ musicSlot->fadeTickerStep = 0x10 * 16667 / _music->soundGetTempo();
+ musicSlot->fadeTicker = 0;
+ break;
+
+ case 5: // Possibly SCI1?!
+ case 6: // SCI 1.1 TODO: find out what additional parameter is
+ musicSlot->fadeTo = CLIP<uint16>(_argv[2].toUint16(), 0, MUSIC_VOLUME_MAX);
+ musicSlot->fadeStep = volume > _argv[2].toUint16() ? -_argv[4].toUint16() : _argv[4].toUint16();
+ musicSlot->fadeTickerStep = _argv[3].toUint16() * 16667 / _music->soundGetTempo();
+ musicSlot->fadeTicker = 0;
+ break;
+
+ default:
+ error("cmdFadeSound: unsupported argc %d", _argc);
+ }
+
debugC(2, kDebugLevelSound, "cmdFadeSound: to %d, step %d, ticker %d", musicSlot->fadeTo, musicSlot->fadeStep, musicSlot->fadeTickerStep);
#endif
}
Modified: scummvm/trunk/engines/sci/sfx/soundcmd.h
===================================================================
--- scummvm/trunk/engines/sci/sfx/soundcmd.h 2010-01-03 23:25:54 UTC (rev 46962)
+++ scummvm/trunk/engines/sci/sfx/soundcmd.h 2010-01-03 23:30:23 UTC (rev 46963)
@@ -83,6 +83,7 @@
#endif
AudioPlayer *_audio;
SciVersion _soundVersion;
+ int _argc;
reg_t *_argv; // for cmdFadeSound
uint32 _midiCommand; // for cmdSendMidi
reg_t _acc;
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