speed changes to play smush movies
svn-id: r4941
This commit is contained in:
parent
fb91bdd21d
commit
2f91c18b22
5 changed files with 19 additions and 7 deletions
|
@ -2709,8 +2709,13 @@ void Scumm::o6_miscOps()
|
|||
case 4:
|
||||
grabCursor(args[1], args[2], args[3], args[4]);
|
||||
break;
|
||||
case 6: {
|
||||
ScummRenderer sr(this);
|
||||
case 6: {
|
||||
uint32 speed;
|
||||
if (strcmp((char*)getStringAddressVar(VAR_VIDEONAME), "sq3.san") == 0)
|
||||
speed = 71;
|
||||
else
|
||||
speed = 1000 / _insaneFlag;
|
||||
ScummRenderer sr(this, speed);
|
||||
SmushPlayer sp(&sr);
|
||||
char filename[512];
|
||||
strcpy(filename, _gameDataPath);
|
||||
|
@ -2718,6 +2723,7 @@ void Scumm::o6_miscOps()
|
|||
strcat(filename, (char*)getStringAddressVar(VAR_VIDEONAME));
|
||||
sp.play(filename);
|
||||
}
|
||||
break;
|
||||
case 7:
|
||||
warning("o6_miscOps: stub7()");
|
||||
break;
|
||||
|
|
|
@ -188,7 +188,10 @@ bool scumm_mixer::stop() {
|
|||
return true;
|
||||
}
|
||||
|
||||
ScummRenderer::ScummRenderer(Scumm * scumm) : _scumm(scumm), _smixer(0) {
|
||||
ScummRenderer::ScummRenderer(Scumm * scumm, uint32 speed) :
|
||||
_scumm(scumm),
|
||||
_smixer(0),
|
||||
_insaneSpeed(speed) {
|
||||
}
|
||||
|
||||
static ScummRenderer * s_renderer;
|
||||
|
@ -203,7 +206,7 @@ Mixer * ScummRenderer::getMixer() {
|
|||
_smixer = new scumm_mixer(_scumm->_mixer);
|
||||
if(!_smixer) error("unable to allocate a smush mixer");
|
||||
s_renderer = this;
|
||||
_scumm->_timer->installProcedure(&smush_handler, 83);
|
||||
_scumm->_timer->installProcedure(&smush_handler, _insaneSpeed);
|
||||
}
|
||||
return _smixer;
|
||||
}
|
||||
|
|
|
@ -44,9 +44,10 @@ class ScummRenderer : public BaseRenderer {
|
|||
private:
|
||||
Scumm * _scumm;
|
||||
scumm_mixer * _smixer;
|
||||
uint32 _insaneSpeed;
|
||||
volatile bool _wait;
|
||||
public:
|
||||
ScummRenderer(Scumm * scumm);
|
||||
ScummRenderer(Scumm * scumm, uint32 speed);
|
||||
virtual ~ScummRenderer();
|
||||
virtual bool wait(int32 ms);
|
||||
bool update();
|
||||
|
|
|
@ -105,7 +105,7 @@ void Sound::processSoundQues() {
|
|||
#endif
|
||||
|
||||
if ((_scumm->_gameId == GID_DIG) && (data[0] == 4096)){
|
||||
playBundleMusic(data[1] - 1);
|
||||
// playBundleMusic(data[1] - 1);
|
||||
}
|
||||
|
||||
if (!(_scumm->_features & GF_AFTER_V7)) {
|
||||
|
|
|
@ -656,11 +656,13 @@ void SoundMixer::ChannelStream::mix(int16 * data, uint len) {
|
|||
} else {
|
||||
mixer_helper_table[_flags & 0x07] (data, &len, &_pos, &fp_pos, fp_speed, vol_tab, _endOfBuffer);
|
||||
if (len != 0) {
|
||||
//FIXME: what is wrong ?
|
||||
warning("bad play sound in stream(wrap around)");
|
||||
_pos = _ptr;
|
||||
mixer_helper_table[_flags & 0x07] (data, &len, &_pos, &fp_pos, fp_speed, vol_tab, end_of_data);
|
||||
}
|
||||
}
|
||||
_timeOut = 2;
|
||||
_timeOut = 3;
|
||||
_fpPos = fp_pos;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue