mirror of
https://github.com/libretro/scummvm.git
synced 2025-03-06 02:10:28 +00:00
TRECISION: Rename Smacker audio toggling functions. Some cleanup
This commit is contained in:
parent
cc48935153
commit
6390587914
@ -93,10 +93,10 @@ void AnimTypeManager::executeAtFrameDoit(ATFHandle *h, int doit, int obj) {
|
||||
if (!(_vm->_dialogMgr->_choice[616]._flag & kObjFlagDone) && // if the fmv is not done
|
||||
(_vm->isObjectVisible(oTUBOA34)) && // if there's a cut pipe
|
||||
!(_vm->isObjectVisible(oTUBOFT34))) // if there's not tube outside
|
||||
_vm->_animMgr->smkVolumePan(0, 2, 1);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 2, true);
|
||||
break;
|
||||
case fVALVEOFF34:
|
||||
_vm->_animMgr->smkVolumePan(0, 2, 0);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 2, false);
|
||||
break;
|
||||
|
||||
case fCHARACTEROFF:
|
||||
@ -124,12 +124,12 @@ void AnimTypeManager::executeAtFrameDoit(ATFHandle *h, int doit, int obj) {
|
||||
case fANIMOFF1:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag |= SMKANIM_OFF1;
|
||||
if ((_vm->_curRoom == kRoom11) || (_vm->_curRoom == kRoom1D) || (_vm->_curRoom == kRoom14) || (_vm->_curRoom == kRoom22) || (_vm->_curRoom == kRoom48) || (_vm->_curRoom == kRoom4P))
|
||||
_vm->_animMgr->smkVolumePan(0, 1, 0);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 1, false);
|
||||
break;
|
||||
case fANIMOFF2:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag |= SMKANIM_OFF2;
|
||||
if ((_vm->_curRoom == kRoom2E))
|
||||
_vm->_animMgr->smkVolumePan(0, 2, 0);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 2, false);
|
||||
break;
|
||||
case fANIMOFF3:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag |= SMKANIM_OFF3;
|
||||
@ -137,19 +137,19 @@ void AnimTypeManager::executeAtFrameDoit(ATFHandle *h, int doit, int obj) {
|
||||
case fANIMOFF4:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag |= SMKANIM_OFF4;
|
||||
if (_vm->_curRoom == kRoom28)
|
||||
_vm->_animMgr->smkVolumePan(0, 1, 0);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 1, false);
|
||||
break;
|
||||
|
||||
case fANIMON1:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag &= ~SMKANIM_OFF1;
|
||||
if ((_vm->_curRoom == kRoom14) || (_vm->_curRoom == kRoom1D) || (_vm->_curRoom == kRoom22) || (_vm->_curRoom == kRoom48) || (_vm->_curRoom == kRoom4P)) {
|
||||
_vm->_animMgr->smkVolumePan(0, 1, 1);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 1, true);
|
||||
}
|
||||
break;
|
||||
case fANIMON2:
|
||||
_vm->_animMgr->_animTab[_vm->_room[_vm->_curRoom]._bkgAnim]._flag &= ~SMKANIM_OFF2;
|
||||
if ((_vm->_curRoom == kRoom2E)) {
|
||||
_vm->_animMgr->smkVolumePan(0, 2, 1);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 2, true);
|
||||
}
|
||||
break;
|
||||
case fANIMON3:
|
||||
@ -252,7 +252,7 @@ void AnimTypeManager::processAtFrame(ATFHandle *h, int type, int atf) {
|
||||
_vm->read3D(filename);
|
||||
_vm->_room[_vm->_curRoom]._flag |= kObjFlagExtra;
|
||||
if (_vm->_curRoom == kRoom37)
|
||||
_vm->_animMgr->smkVolumePan(0, 1, 1);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 1, true);
|
||||
} break;
|
||||
default:
|
||||
break;
|
||||
|
@ -137,7 +137,7 @@ void DialogManager::playDialog(uint16 i) {
|
||||
if ((_dialog[i]._startLen > 0) && !skip)
|
||||
_vm->_animMgr->playMovie(_dialog[i]._startAnim, 0, _dialog[i]._startLen - 1);
|
||||
else {
|
||||
_vm->_animMgr->smkSoundOnOff(1, false);
|
||||
_vm->_animMgr->smkToggleAudio(1, false);
|
||||
afterChoice();
|
||||
}
|
||||
}
|
||||
@ -374,7 +374,7 @@ void DialogManager::afterChoice() {
|
||||
|
||||
case dF371:
|
||||
_vm->setObjectAnim(oSCAFFALE36, a3615AAPRENDESCAFFALE);
|
||||
_vm->_animMgr->smkVolumePan(0, 1, 1);
|
||||
_vm->_animMgr->smkToggleTrackAudio(0, 1, true);
|
||||
break;
|
||||
|
||||
case dF431:
|
||||
|
@ -263,14 +263,14 @@ void AnimManager::smkGoto(int slot, int frame) {
|
||||
_smkAnims[slot]->forceSeekToFrame(frame);
|
||||
}
|
||||
|
||||
void AnimManager::smkVolumePan(int slot, int track, int vol) {
|
||||
void AnimManager::smkToggleTrackAudio(int slot, int track, bool on) {
|
||||
if (_smkAnims[slot] == nullptr)
|
||||
return;
|
||||
|
||||
_smkAnims[slot]->muteTrack(track, vol == 0);
|
||||
_smkAnims[slot]->muteTrack(track, !on);
|
||||
}
|
||||
|
||||
void AnimManager::smkSoundOnOff(int slot, bool on) {
|
||||
void AnimManager::smkToggleAudio(int slot, bool on) {
|
||||
if (_smkAnims[slot] == nullptr)
|
||||
return;
|
||||
|
||||
@ -296,57 +296,61 @@ void AnimManager::startSmkAnim(uint16 animation) {
|
||||
else
|
||||
slot = kSmackerAction;
|
||||
|
||||
if (_playingAnims[slot] != 0) {
|
||||
smkStop(slot);
|
||||
}
|
||||
smkStop(slot);
|
||||
|
||||
_playingAnims[slot] = animation;
|
||||
|
||||
// choose how to open
|
||||
if (animFlag & SMKANIM_BKG) {
|
||||
if (slot == kSmackerBackground) {
|
||||
openSmkAnim(kSmackerBackground, _animTab[animation]._name);
|
||||
_bgAnimRestarted = false;
|
||||
|
||||
// Turns off when not needed
|
||||
if (animation == aBKG11 && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG14 && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG1C && (_vm->_obj[oFAX17]._flag & kObjFlagExtra)) {
|
||||
_animTab[animation]._flag |= SMKANIM_OFF1;
|
||||
smkVolumePan(0, 1, 0);
|
||||
} else if (animation == aBKG1D && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG22 && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG48 && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG4P && (animFlag & SMKANIM_OFF1))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG28 && (animFlag & SMKANIM_OFF4))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG37 && (!(_vm->_room[_vm->_curRoom]._flag & kObjFlagExtra)))
|
||||
smkVolumePan(0, 1, 0);
|
||||
else if (animation == aBKG2E && (animFlag & SMKANIM_OFF2))
|
||||
smkVolumePan(0, 2, 0);
|
||||
else if (animation == aBKG2G && (_vm->_dialogMgr->_choice[556]._flag & kObjFlagDone))
|
||||
smkVolumePan(0, 2, 0);
|
||||
else if (animation == aBKG34 && // If it's BKG 34 and
|
||||
((_vm->_dialogMgr->_choice[616]._flag & kObjFlagDone) || // if the FMV is already done or
|
||||
_vm->isObjectVisible(oTUBOT34) || // if the whole tube is available or
|
||||
_vm->isObjectVisible(oTUBOFT34) || // if the outside of the tube is available or
|
||||
_vm->isObjectVisible(oVALVOLAC34))) // if the valve is closed
|
||||
smkVolumePan(0, 2, 0);
|
||||
} else if (animFlag & SMKANIM_ICON) {
|
||||
toggleMuteBgAnim(animation);
|
||||
} else if (slot == kSmackerIcon) {
|
||||
openSmkAnim(kSmackerIcon, _animTab[animation]._name);
|
||||
} else {
|
||||
uint32 st = _vm->readTime();
|
||||
|
||||
openSmkAnim(kSmackerAction, _animTab[animation]._name);
|
||||
_vm->_nextRefresh += _vm->readTime() - st; // fixup opening time
|
||||
}
|
||||
}
|
||||
|
||||
void AnimManager::toggleMuteBgAnim(uint16 animation) {
|
||||
uint16 animFlag = _animTab[animation]._flag;
|
||||
NightlongSmackerDecoder *decoder = _smkAnims[kSmackerBackground];
|
||||
|
||||
// Turns off when not needed
|
||||
if (animation == aBKG11 && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG14 && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG1C && (_vm->_obj[oFAX17]._flag & kObjFlagExtra)) {
|
||||
_animTab[animation]._flag |= SMKANIM_OFF1;
|
||||
decoder->muteTrack(1, true);
|
||||
} else if (animation == aBKG1D && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG22 && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG48 && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG4P && (animFlag & SMKANIM_OFF1))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG28 && (animFlag & SMKANIM_OFF4))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG37 && (!(_vm->_room[_vm->_curRoom]._flag & kObjFlagExtra)))
|
||||
decoder->muteTrack(1, true);
|
||||
else if (animation == aBKG2E && (animFlag & SMKANIM_OFF2))
|
||||
decoder->muteTrack(2, true);
|
||||
else if (animation == aBKG2G && (_vm->_dialogMgr->_choice[556]._flag & kObjFlagDone))
|
||||
decoder->muteTrack(2, true);
|
||||
else if (animation == aBKG34 && // If it's BKG 34 and
|
||||
((_vm->_dialogMgr->_choice[616]._flag & kObjFlagDone) || // if the FMV is already done or
|
||||
_vm->isObjectVisible(oTUBOT34) || // if the whole tube is available or
|
||||
_vm->isObjectVisible(oTUBOFT34) || // if the outside of the tube is available or
|
||||
_vm->isObjectVisible(oVALVOLAC34))) // if the valve is closed
|
||||
decoder->muteTrack(2, true);
|
||||
}
|
||||
|
||||
void AnimManager::smkStop(uint16 slot) {
|
||||
_playingAnims[slot] = 0;
|
||||
|
||||
|
@ -79,6 +79,7 @@ private:
|
||||
|
||||
void openSmk(int slot, Common::SeekableReadStream *stream);
|
||||
void openSmkAnim(int slot, const Common::String &name);
|
||||
void toggleMuteBgAnim(uint16 animation);
|
||||
void closeSmk(int slot);
|
||||
void drawFrame(NightlongSmackerDecoder *smkDecoder, uint16 x, uint16 y, bool updateScreen);
|
||||
void drawFrameSubtitles(Graphics::Surface *surface, int frameNum);
|
||||
@ -96,8 +97,8 @@ public:
|
||||
SAnim _animTab[MAXANIM];
|
||||
|
||||
void smkGoto(int slot, int frame);
|
||||
void smkSoundOnOff(int slot, bool on);
|
||||
void smkVolumePan(int slot, int track, int vol);
|
||||
void smkToggleAudio(int slot, bool on);
|
||||
void smkToggleTrackAudio(int slot, int track, bool on);
|
||||
int16 smkCurFrame(int slot);
|
||||
void smkStop(uint16 slot);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user