1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-15 19:13:07 +01:00

Copy vehicle structure for S6

This commit is contained in:
Ted John
2019-02-20 18:44:04 +00:00
parent c0e4eff9f1
commit b77bc56a52
2 changed files with 117 additions and 3 deletions

View File

@@ -302,6 +302,120 @@ struct rct_scores_entry
};
assert_struct_size(rct_scores_entry, 0x02B0);
struct RCT2SpriteVehicle : RCT12SpriteBase
{
uint8_t vehicle_sprite_type; // 0x1F
uint8_t bank_rotation; // 0x20
uint8_t pad_21[3];
int32_t remaining_distance; // 0x24
int32_t velocity; // 0x28
int32_t acceleration; // 0x2C
ride_id_t ride; // 0x30
uint8_t vehicle_type; // 0x31
rct_vehicle_colour colours; // 0x32
union
{
uint16_t track_progress; // 0x34
struct
{
int8_t var_34;
uint8_t var_35;
};
};
union
{
int16_t track_direction; // 0x36
int16_t track_type; // 0x36
LocationXY8 boat_location; // 0x36
};
uint16_t track_x; // 0x38
uint16_t track_y; // 0x3A
uint16_t track_z; // 0x3C
uint16_t next_vehicle_on_train; // 0x3E
uint16_t prev_vehicle_on_ride; // 0x40
uint16_t next_vehicle_on_ride; // 0x42
uint16_t var_44;
uint16_t mass; // 0x46
uint16_t update_flags; // 0x48
uint8_t swing_sprite;
uint8_t current_station; // 0x4B
union
{
int16_t swinging_car_var_0; // 0x4C
int16_t current_time; // 0x4C
struct
{
int8_t ferris_wheel_var_0; // 0x4C
int8_t ferris_wheel_var_1; // 0x4D
};
};
union
{
int16_t var_4E;
int16_t crash_z; // 0x4E
};
uint8_t status; // 0x50
uint8_t sub_state; // 0x51
uint16_t peep[32]; // 0x52
uint8_t peep_tshirt_colours[32]; // 0x92
uint8_t num_seats; // 0xB2
uint8_t num_peeps; // 0xB3
uint8_t next_free_seat; // 0xB4
uint8_t restraints_position; // 0xB5
union
{
int16_t spin_speed; // 0xB6
int16_t crash_x; // 0xB6
};
uint16_t sound2_flags; // 0xB8
uint8_t spin_sprite; // 0xBA
uint8_t sound1_id; // 0xBB
uint8_t sound1_volume; // 0xBC
uint8_t sound2_id; // 0xBD
uint8_t sound2_volume; // 0xBE
int8_t sound_vector_factor;
union
{
uint16_t var_C0;
int16_t crash_y; // 0xC0
uint16_t time_waiting; // 0xC0
uint16_t cable_lift_target; // 0xC0
};
uint8_t speed; // 0xC2
uint8_t powered_acceleration; // 0xC3
union
{
uint8_t dodgems_collision_direction; // 0xC4
uint8_t var_C4;
};
uint8_t animation_frame; // 0xC5
uint8_t pad_C6[0x2];
uint16_t var_C8;
uint16_t var_CA;
uint8_t scream_sound_id; // 0xCC
uint8_t var_CD;
union
{
uint8_t var_CE;
uint8_t num_laps; // 0xCE
};
union
{
uint8_t var_CF;
uint8_t brake_speed; // 0xCF
};
uint16_t lost_time_out; // 0xD0
int8_t vertical_drop_countdown; // 0xD1
uint8_t var_D3;
uint8_t mini_golf_current_animation;
uint8_t mini_golf_flags; // 0xD5
uint8_t ride_subtype; // 0xD6
uint8_t colours_extended; // 0xD7
uint8_t seat_rotation; // 0xD8
uint8_t target_seat_rotation; // 0xD9
};
assert_struct_size(RCT2SpriteVehicle, 0xDA);
struct RCT2SpritePeep : RCT12SpriteBase
{
uint8_t pad_1F[0x22 - 0x1F];
@@ -466,7 +580,7 @@ private:
public:
RCT12SpriteBase unknown;
rct_vehicle vehicle;
RCT2SpriteVehicle vehicle;
RCT2SpritePeep peep;
RCT12SpriteLitter litter;
RCT12SpriteBalloon balloon;

View File

@@ -1084,9 +1084,9 @@ public:
}
}
void ImportSpriteVehicle(rct_vehicle* dst, const rct_vehicle* src)
void ImportSpriteVehicle(rct_vehicle* dst, const RCT2SpriteVehicle* src)
{
ImportSpriteCommonProperties((rct_sprite_common*)dst, (const RCT12SpriteBase*)src);
ImportSpriteCommonProperties((rct_sprite_common*)dst, src);
dst->vehicle_sprite_type = src->vehicle_sprite_type;
dst->bank_rotation = src->bank_rotation;
dst->remaining_distance = src->remaining_distance;