Subversion Repositories Games.Carmageddon

Rev

Rev 20 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 20 Rev 21
Line 340... Line 340...
340
int S3SyncSampleVolumeAndPan(tS3_channel* chan) {
340
int S3SyncSampleVolumeAndPan(tS3_channel* chan) {
341
 
341
 
342
    float pan_ratio; // [esp+38h] [ebp-8h]
342
    float pan_ratio; // [esp+38h] [ebp-8h]
343
    float total_vol; // [esp+3Ch] [ebp-4h]
343
    float total_vol; // [esp+3Ch] [ebp-4h]
344
 
344
 
345
    int volume_db;
-
 
346
    int pan;
345
    int pan;
347
    //float linear_volume; // Pierre-Marie Baty -- unused variable
-
 
348
 
346
 
349
    if (chan->type != eS3_ST_sample) {
347
    if (chan->type != eS3_ST_sample) {
350
        return 1;
348
        return 1;
351
    }
349
    }
352
    total_vol = (float) (chan->left_volume + chan->right_volume); // Pierre-Marie Baty -- added type cast
350
    total_vol = (float) (chan->left_volume + chan->right_volume); // Pierre-Marie Baty -- added type cast
353
    if (total_vol == 0.0f) {
351
    if (total_vol == 0.0f) {
354
        total_vol = 1.0f;
352
        total_vol = 1.0f;
355
    }
353
    }
356
    if (chan->descriptor && chan->descriptor->type == chan->type) {
354
    if (chan->descriptor && chan->descriptor->type == chan->type) {
357
        volume_db = (int) (510.0f / total_vol * -5.0f - 350.0f); // Pierre-Marie Baty -- added type cast
-
 
358
        if (volume_db >= 0) {
-
 
359
            volume_db = 0;
-
 
360
        }
-
 
361
 
355
 
362
        if (AudioBackend_SetVolume(chan, volume_db) == eAB_success && chan->spatial_sound) {
356
        if (AudioBackend_SetVolume(chan, total_vol) == eAB_success && chan->spatial_sound) {
363
 
357
 
364
            if (chan->left_volume != 0 && chan->right_volume > chan->left_volume) {
358
            if (chan->left_volume != 0 && chan->right_volume > chan->left_volume) {
365
                pan_ratio = chan->right_volume / (float)chan->left_volume;
359
                pan_ratio = chan->right_volume / (float)chan->left_volume;
366
            } else if (chan->right_volume != 0) {
360
            } else if (chan->right_volume != 0) {
367
                pan_ratio = chan->left_volume / (float)chan->right_volume;
361
                pan_ratio = chan->left_volume / (float)chan->right_volume;