[Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.355,1.356 sound.h,1.68,1.69 string.cpp,1.227,1.228
Travis Howell
kirben at users.sourceforge.net
Sat Jul 24 06:37:06 CEST 2004
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.103,1.104 scumm.h,1.428,1.429 vars.cpp,1.93,1.94
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.356,1.357 sound.h,1.69,1.70 string.cpp,1.228,1.229
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /cvsroot/scummvm/scummvm/scumm
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29442/scumm
Modified Files:
sound.cpp sound.h string.cpp
Log Message:
Corrtection from disasm., mouth sync uses speech timing.
Fix bug #
Index: sound.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.cpp,v
retrieving revision 1.355
retrieving revision 1.356
diff -u -d -r1.355 -r1.356
--- sound.cpp 19 Jul 2004 10:50:52 -0000 1.355
+++ sound.cpp 24 Jul 2004 13:36:26 -0000 1.356
@@ -64,7 +64,6 @@
_talk_sound_b1(0),
_talk_sound_b2(0),
_talk_sound_mode(0),
- _talk_sound_frame(0),
_mouthSyncMode(false),
_endOfMouthSync(false),
_curSoundPos(0),
@@ -507,7 +506,7 @@
const int act = _vm->getTalkingActor();
if ((_sfxMode & 2) && act != 0) {
Actor *a;
- bool b, finished;
+ bool finished;
if (_vm->_imuseDigital) {
finished = !isSoundRunning(kTalkSoundID);
@@ -515,18 +514,20 @@
finished = !_talkChannelHandle.isActive();
}
- if ((uint) act < 0x80 && ((_vm->_version == 8) || (_vm->_version <= 7 && !_vm->_string[0].no_talk_anim)) && (finished || !_endOfMouthSync)) {
+ if ((uint) act < 0x80 && ((_vm->_version == 8) || (_vm->_version <= 7 && !_vm->_string[0].no_talk_anim))) {
a = _vm->derefActor(act, "processSfxQueues");
if (a->isInCurrentRoom()) {
- b = finished || isMouthSyncOff(_curSoundPos);
- if (_mouthSyncMode != b) {
- _mouthSyncMode = b;
- if (_talk_sound_frame != -1) {
- a->runActorTalkScript(_talk_sound_frame);
- _talk_sound_frame = -1;
- } else
- a->runActorTalkScript(b ? a->talkStopFrame : a->talkStartFrame);
+ if (isMouthSyncOff(_curSoundPos) && !_mouthSyncMode) {
+ if (!_endOfMouthSync)
+ a->runActorTalkScript(a->talkStopFrame);
+ _mouthSyncMode = 0;
+ } else if (isMouthSyncOff(_curSoundPos) == 0 && !_mouthSyncMode) {
+ a->runActorTalkScript(a->talkStartFrame);
+ _mouthSyncMode = 1;
}
+
+ if (_vm->_version <= 6 && finished)
+ a->runActorTalkScript(a->talkStopFrame);
}
}
@@ -883,7 +884,6 @@
_talk_sound_b2 = b;
}
- _talk_sound_frame = frame;
_talk_sound_mode |= mode;
}
Index: sound.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/sound.h,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- sound.h 14 Jul 2004 07:29:09 -0000 1.68
+++ sound.h 24 Jul 2004 13:36:26 -0000 1.69
@@ -64,7 +64,6 @@
uint32 _talk_sound_a1, _talk_sound_a2, _talk_sound_b1, _talk_sound_b2;
byte _talk_sound_mode;
- int _talk_sound_frame;
bool _mouthSyncMode;
bool _endOfMouthSync;
uint16 _mouthSyncTimes[64];
Index: string.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/string.cpp,v
retrieving revision 1.227
retrieving revision 1.228
diff -u -d -r1.227 -r1.228
--- string.cpp 22 Jul 2004 05:53:56 -0000 1.227
+++ string.cpp 24 Jul 2004 13:36:26 -0000 1.228
@@ -77,7 +77,7 @@
uint32 talk_sound_a = 0;
uint32 talk_sound_b = 0;
int s, i, t, c;
- int frme = -1;
+ int frme;
Actor *a;
byte *buffer;
@@ -231,7 +231,7 @@
case 9:
frme = *buffer++;
frme |= *buffer++ << 8;
- a->startAnimActor(frme != -1 ? frme : a->talkStartFrame);
+ a->startAnimActor(frme);
break;
case 10:
talk_sound_a = buffer[0] | (buffer[1] << 8) | (buffer[4] << 16) | (buffer[5] << 24);
- Previous message: [Scummvm-cvs-logs] CVS: scummvm/scumm scumm.cpp,1.103,1.104 scumm.h,1.428,1.429 vars.cpp,1.93,1.94
- Next message: [Scummvm-cvs-logs] CVS: scummvm/scumm sound.cpp,1.356,1.357 sound.h,1.69,1.70 string.cpp,1.228,1.229
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Scummvm-git-logs
mailing list