Fix sound bugs

This commit is contained in:
duncanspumpkin 2015-12-11 20:26:26 +00:00
parent a372637bd8
commit c94d362077
1 changed files with 8 additions and 14 deletions

View File

@ -85,7 +85,7 @@ const uint8 byte_9A3A14[] = { SOUND_SCREAM_8, SOUND_SCREAM_1 };
const uint8 byte_9A3A16[] = { SOUND_SCREAM_1, SOUND_SCREAM_6 };
const uint8 byte_9A3A18[] = {
SOUND_SCREAM_3, SOUND_SCREAM_1, SOUND_SCREAM_5, SOUND_SCREAM_6,
SOUND_SCREAM_7, SOUND_SCREAM_2, SOUND_SCREAM_4, SOUND_LIFT_1
SOUND_SCREAM_7, SOUND_SCREAM_2, SOUND_SCREAM_4
};
static const rct_vehicle_info *vehicle_get_move_info(int cd, int typeAndDirection, int offset)
@ -3532,9 +3532,6 @@ static void vehicle_update_crash(rct_vehicle *vehicle){
*/
static void vehicle_update_sound(rct_vehicle *vehicle)
{
//RCT2_CALLPROC_X(0x006D7888, 0, 0, 0, 0, (int)vehicle, 0, 0); return;
// PROBLEMS
rct_ride *ride;
rct_ride_type *rideEntry;
// bl should be set before hand
@ -3552,10 +3549,7 @@ static void vehicle_update_sound(rct_vehicle *vehicle)
if (ecx >= 0) {
dl = vehicleEntry->var_57;
ecx >>= 15;
if (208 + (ecx & 0xFF) > 255)
bl = 255;
else
bl = 208 + (ecx & 0xFF);
bl = min(208 + ecx & 0xFF, 255);
}
switch (vehicleEntry->sound_range) {
@ -3571,7 +3565,7 @@ static void vehicle_update_sound(rct_vehicle *vehicle)
break;
}
}
if (screamId != 254) screamId = 255;
if (screamId == NO_SCREAM) screamId = 255;
screamVolume = 255;
break;
@ -3587,7 +3581,7 @@ static void vehicle_update_sound(rct_vehicle *vehicle)
break;
}
}
if (screamId != 254) screamId = 255;
if (screamId == NO_SCREAM) screamId = 255;
screamVolume = 255;
break;
@ -3623,8 +3617,8 @@ static void vehicle_update_sound(rct_vehicle *vehicle)
{
int ebx = RCT2_ADDRESS(0x009A3684, sint16)[vehicle->sprite_direction];
int eax = ((vehicle->velocity >> 14) * ebx) >> 14;
eax = max(eax, 0xFF81);
eax = min(eax, 0x7F);
eax = clamp(-127, eax, 127);
vehicle->var_BF = eax & 0xFF;
}
}
@ -3636,7 +3630,7 @@ static void vehicle_update_sound(rct_vehicle *vehicle)
*/
static int vehicle_update_scream_sound(rct_vehicle *vehicle)
{
int r;
uint32 r;
uint16 spriteIndex;
rct_ride_type *rideEntry;
rct_vehicle *vehicle2;
@ -3694,7 +3688,7 @@ produceScream:
vehicle->scream_sound_id = byte_9A3A14[r % 2];
break;
case 1:
vehicle->scream_sound_id = byte_9A3A18[r % 8];
vehicle->scream_sound_id = byte_9A3A18[r % 7];
break;
case 2:
vehicle->scream_sound_id = byte_9A3A16[r % 2];