aboutsummaryrefslogtreecommitdiff
path: root/scumm/script_v8.cpp
diff options
context:
space:
mode:
authorTorbjörn Andersson2003-09-03 17:00:33 +0000
committerTorbjörn Andersson2003-09-03 17:00:33 +0000
commit94df02c799c5ef59ecd9c829b43a5d41f9fb3e2e (patch)
tree847a50ebb196ac589c5c67a3ceef96ac8e5d47a5 /scumm/script_v8.cpp
parenta0f69481504f32e2ccb32d7581aeb1274da4b321 (diff)
downloadscummvm-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.cpp15
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);