diff options
author | Torbjörn Andersson | 2003-09-03 17:00:33 +0000 |
---|---|---|
committer | Torbjörn Andersson | 2003-09-03 17:00:33 +0000 |
commit | 94df02c799c5ef59ecd9c829b43a5d41f9fb3e2e (patch) | |
tree | 847a50ebb196ac589c5c67a3ceef96ac8e5d47a5 /scumm/script_v8.cpp | |
parent | a0f69481504f32e2ccb32d7581aeb1274da4b321 (diff) | |
download | scummvm-rg350-94df02c799c5ef59ecd9c829b43a5d41f9fb3e2e.tar.gz scummvm-rg350-94df02c799c5ef59ecd9c829b43a5d41f9fb3e2e.tar.bz2 scummvm-rg350-94df02c799c5ef59ecd9c829b43a5d41f9fb3e2e.zip |
Implement the ACTOR_PAN opcode. The only place I know of where it's used is
between between ship-to-ship combats, so I didn't bother yet to store it in
savegames.
svn-id: r9988
Diffstat (limited to 'scumm/script_v8.cpp')
-rw-r--r-- | scumm/script_v8.cpp | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/scumm/script_v8.cpp b/scumm/script_v8.cpp index f019e9e343..2819d862b6 100644 --- a/scumm/script_v8.cpp +++ b/scumm/script_v8.cpp @@ -1070,9 +1070,18 @@ void Scumm_v8::o8_actorOps() { a->talkFrequency = pop(); break; case 0x89: // SO_ACTOR_PAN - // TODO - implement this! - i = pop(); - warning("o8_actorOps: setActorPan(%d) not implemented", i); + // FIXME: This should be stored in savegames. + // 0 = left, 64 = middle, 127 = right. + a->talkPan = pop(); + + // If the actor is talking at the moment, adjust the panning + // on the current talk channel handle. (If the handle is 0, + // setChannelPan() won't do anything.) + + if (_actorToPrintStrFor == a->number) + _mixer->setChannelPan(_sound->_talkChannelHandle, + (a->talkPan != 64) ? 2 * a->talkPan - 127 : 0); + break; default: error("o8_actorOps: default case 0x%x", subOp); |