… | |
… | |
226 | for (grep $_->[0] >= Event::time, @{(delete $AUDIO_PLAY{$face}) || []}) { |
226 | for (grep $_->[0] >= Event::time, @{(delete $AUDIO_PLAY{$face}) || []}) { |
227 | my (undef, $dx, $dy, $vol) = @$_; |
227 | my (undef, $dx, $dy, $vol) = @$_; |
228 | |
228 | |
229 | my $channel = CFPlus::Channel::find; |
229 | my $channel = CFPlus::Channel::find; |
230 | $channel->volume ($vol * $CFG->{effects_volume} * 128 / 255); |
230 | $channel->volume ($vol * $CFG->{effects_volume} * 128 / 255); |
231 | $dx = $dx / 10 * 255; |
|
|
232 | $channel->set_panning (255 - $dx, 255 + $dx); |
|
|
233 | |
|
|
234 | # my $angle = $dx ? : $dx < 0 ? |
|
|
235 | # my $distance = -$vol; |
|
|
236 | # $channel->set_position ($angle, $distance); |
231 | $channel->set_position_r ($dx, $dy, 20); |
237 | |
|
|
238 | $chunk->play ($channel); |
232 | $chunk->play ($channel); |
239 | } |
233 | } |
240 | } else { |
234 | } else { |
241 | # sound_meta not set means data is in flight either way |
235 | # sound_meta not set means data is in flight either way |
242 | my $meta = $CONN->{sound_meta}{$face} |
236 | my $meta = $CONN->{sound_meta}{$face} |