Label vehicle sound2 flags

This commit is contained in:
duncanspumpkin 2018-01-10 19:02:57 +00:00 committed by Duncan
parent 4171490052
commit 93d1b7a233
6 changed files with 21 additions and 17 deletions

View File

@ -325,7 +325,7 @@ typedef struct rct1_vehicle {
uint8 next_free_seat; // 0xB4
uint8 restraints_position; // 0xB5 0 == Close, 255 == Open
sint16 spin_speed;
uint16 var_B8;
uint16 sound2_flags;
uint8 spin_sprite;
uint8 sound1_id; // 0xBB
uint8 sound1_volume; // 0xBC

View File

@ -1161,7 +1161,7 @@ private:
dst->spin_sprite = src->spin_sprite;
dst->sound_vector_factor = src->sound_vector_factor;
dst->spin_speed = src->spin_speed;
dst->var_B8 = src->var_B8;
dst->sound2_flags = src->sound2_flags;
dst->sound1_id = RCT12_SOUND_ID_NULL;
dst->sound2_id = RCT12_SOUND_ID_NULL;
dst->var_C0 = src->var_C0;

View File

@ -67,7 +67,7 @@ rct_vehicle * cable_lift_segment_create(sint32 rideIndex,
current->restraints_position = 0;
current->spin_sprite = 0;
current->spin_speed = 0;
current->var_B8 = 0;
current->sound2_flags = 0;
current->sound1_id = RCT12_SOUND_ID_NULL;
current->sound2_id = RCT12_SOUND_ID_NULL;
current->var_C4 = 0;

View File

@ -4511,7 +4511,7 @@ static rct_vehicle *vehicle_create_car(
vehicle->restraints_position = 0;
vehicle->spin_sprite = 0;
vehicle->spin_speed = 0;
vehicle->var_B8 = 0;
vehicle->sound2_flags = 0;
vehicle->sound1_id = RCT12_SOUND_ID_NULL;
vehicle->sound2_id = RCT12_SOUND_ID_NULL;
vehicle->next_vehicle_on_train = SPRITE_INDEX_NULL;

View File

@ -3344,7 +3344,7 @@ static void vehicle_update_departing(rct_vehicle * vehicle)
if (flags & VEHICLE_UPDATE_MOTION_TRACK_FLAG_VEHICLE_ON_LIFT_HILL)
{
vehicle->var_B8 |= (1 << 1);
vehicle->sound2_flags |= VEHICLE_SOUND2_FLAGS_LIFT_HILL;
if (ride->mode != RIDE_MODE_REVERSE_INCLINE_LAUNCHED_SHUTTLE)
{
sint32 speed = ride->lift_hill_speed * 31079;
@ -3784,7 +3784,7 @@ static void vehicle_update_travelling(rct_vehicle * vehicle)
if (vehicle->sub_state == 0)
{
if (vehicle->velocity != 0)
vehicle->var_B8 |= (1 << 1);
vehicle->sound2_flags |= VEHICLE_SOUND2_FLAGS_LIFT_HILL;
if (!(vehicle->update_flags & VEHICLE_UPDATE_FLAG_12))
{
@ -3794,7 +3794,7 @@ static void vehicle_update_travelling(rct_vehicle * vehicle)
if (_vehicleBreakdown == 0)
{
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
vehicle->update_flags |= VEHICLE_UPDATE_FLAG_ZERO_VELOCITY;
}
}
@ -3803,7 +3803,7 @@ static void vehicle_update_travelling(rct_vehicle * vehicle)
}
else
{
vehicle->var_B8 |= (1 << 1);
vehicle->sound2_flags |= VEHICLE_SOUND2_FLAGS_LIFT_HILL;
if (vehicle->velocity <= ride->lift_hill_speed * 31079)
{
vehicle->acceleration = 15539;
@ -3812,12 +3812,12 @@ static void vehicle_update_travelling(rct_vehicle * vehicle)
if (_vehicleBreakdown == 0)
{
vehicle->update_flags |= VEHICLE_UPDATE_FLAG_ZERO_VELOCITY;
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
}
}
else
{
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
}
}
}
@ -4332,7 +4332,7 @@ static void vehicle_update_motion_boat_hire(rct_vehicle * vehicle)
vehicle->remaining_distance += _vehicleVelocityF64E0C;
if (vehicle->remaining_distance >= 0x368A)
{
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
unk_F64E20.x = vehicle->x;
unk_F64E20.y = vehicle->y;
unk_F64E20.z = vehicle->z;
@ -5574,7 +5574,7 @@ static void vehicle_update_sound(rct_vehicle * vehicle)
// Get lift hill sound
screamId = RideLiftData[ride->type].sound_id;
screamVolume = 243;
if (!(vehicle->var_B8 & 2))
if (!(vehicle->sound2_flags & VEHICLE_SOUND2_FLAGS_LIFT_HILL))
screamId = 255;
}
}
@ -6355,7 +6355,7 @@ static sint32 vehicle_update_motion_dodgems(rct_vehicle * vehicle)
if (vehicle->remaining_distance >= 13962)
{
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
unk_F64E20.x = vehicle->x;
unk_F64E20.y = vehicle->y;
unk_F64E20.z = vehicle->z;
@ -8766,7 +8766,7 @@ loc_6DC40E:
{
goto loc_6DCE02;
}
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
unk_F64E20.x = vehicle->x;
unk_F64E20.y = vehicle->y;
unk_F64E20.z = vehicle->z;
@ -9112,7 +9112,7 @@ loc_6DC9BC:
/////////////////////////////////////////
loc_6DCA7A:
vehicle->var_B8 &= ~(1 << 1);
vehicle->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
unk_F64E20.x = vehicle->x;
unk_F64E20.y = vehicle->y;
unk_F64E20.z = vehicle->z;
@ -9660,7 +9660,7 @@ sint32 vehicle_update_track_motion(rct_vehicle * vehicle, sint32 * outStation)
regs.eax = _vehicleVelocityF64E0C + car->remaining_distance;
car->remaining_distance = regs.eax;
car->var_B8 &= ~(1 << 1);
car->sound2_flags &= ~VEHICLE_SOUND2_FLAGS_LIFT_HILL;
unk_F64E20.x = car->x;
unk_F64E20.y = car->y;
unk_F64E20.z = car->z;

View File

@ -162,7 +162,7 @@ typedef struct rct_vehicle {
sint16 spin_speed; // 0xB6
sint16 crash_x; // 0xB6
};
uint16 var_B8;
uint16 sound2_flags; // 0xB8
uint8 spin_sprite; // 0xBA lowest 3 bits not used for sprite selection (divide by 8 to use)
uint8 sound1_id; // 0xBB
uint8 sound1_volume; // 0xBC
@ -359,6 +359,10 @@ enum {
VEHICLE_UPDATE_MOTION_TRACK_FLAG_12 = 1 << 12,
};
enum {
VEHICLE_SOUND2_FLAGS_LIFT_HILL = 1 << 1 // When on a lift hill generate sound
};
#define VEHICLE_SEAT_PAIR_FLAG 0x80
#define VEHICLE_SEAT_NUM_MASK 0x7F