mirror of https://github.com/OpenRCT2/OpenRCT2.git
Add known ride offsets
This commit is contained in:
parent
3f5bd26913
commit
5e198dfa1f
|
@ -544,12 +544,14 @@ int paint_ride_entry(int flags, int ebx, int ecx, int edx, rct_drawpixelinfo* dp
|
|||
b = rideVehicleEntry->var_16 * 80;
|
||||
image_index += b;
|
||||
}
|
||||
|
||||
// Verticle
|
||||
if (rideVehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_VERTICAL_SLOPES) {
|
||||
rideVehicleEntry->var_28 = image_index;
|
||||
b = rideVehicleEntry->var_16 * 116;
|
||||
image_index += b;
|
||||
}
|
||||
|
||||
// Unknown
|
||||
if (rideVehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_SLOPES) {
|
||||
rideVehicleEntry->var_2C = image_index;
|
||||
|
@ -576,12 +578,14 @@ int paint_ride_entry(int flags, int ebx, int ecx, int edx, rct_drawpixelinfo* dp
|
|||
b = rideVehicleEntry->var_16 * 128;
|
||||
image_index += b;
|
||||
}
|
||||
|
||||
// Unknown
|
||||
if (rideVehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_DIAGONAL_GENTLE_SLOPE_BANKED_TRANSITIONS) {
|
||||
rideVehicleEntry->var_3C = image_index;
|
||||
b = rideVehicleEntry->var_16 * 16;
|
||||
image_index += b;
|
||||
}
|
||||
|
||||
// Unknown
|
||||
if (rideVehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_GENTLE_SLOPE_BANKED_TRANSITIONS) {
|
||||
rideVehicleEntry->var_40 = image_index;
|
||||
|
@ -606,6 +610,7 @@ int paint_ride_entry(int flags, int ebx, int ecx, int edx, rct_drawpixelinfo* dp
|
|||
b = rideVehicleEntry->var_16 * 80;
|
||||
image_index += b;
|
||||
}
|
||||
|
||||
// Unknown
|
||||
if (rideVehicleEntry->sprite_flags & VEHICLE_SPRITE_FLAG_RESTRAINT_ANIMATION) {
|
||||
rideVehicleEntry->var_1C = image_index;
|
||||
|
|
|
@ -6597,8 +6597,8 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
int totalFriction = 0;
|
||||
for (int i = 0; i < numCars; i++) {
|
||||
vehicleEntry = &rideEntry->vehicles[trainLayout[i]];
|
||||
trainLength += vehicleEntry->var_04;
|
||||
totalFriction += vehicleEntry->car_friction;
|
||||
trainLength += vehicleEntry->spacing;
|
||||
totalFriction += vehicleEntry->friction;
|
||||
}
|
||||
|
||||
if (trainLength <= stationLength && totalFriction <= maxFriction) {
|
||||
|
@ -6629,7 +6629,7 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
trainLength = 0;
|
||||
for (int i = 0; i < newCarsPerTrain; i++) {
|
||||
vehicleEntry = &rideEntry->vehicles[trainLayout[i]];
|
||||
trainLength += vehicleEntry->var_04;
|
||||
trainLength += vehicleEntry->spacing;
|
||||
}
|
||||
|
||||
int totalLength = trainLength / 2;
|
||||
|
@ -6655,7 +6655,7 @@ void ride_update_max_vehicles(int rideIndex)
|
|||
int totalSpacing = 0;
|
||||
for (int i = 0; i < newCarsPerTrain; i++) {
|
||||
vehicleEntry = &rideEntry->vehicles[trainLayout[i]];
|
||||
totalSpacing += vehicleEntry->var_04;
|
||||
totalSpacing += vehicleEntry->spacing;
|
||||
}
|
||||
|
||||
totalSpacing >>= 13;
|
||||
|
|
|
@ -78,11 +78,11 @@ typedef struct{
|
|||
uint16 var_00; // 0x00 , 0x1A
|
||||
uint8 var_02; // 0x02 , 0x1C
|
||||
uint8 var_03; // 0x03 , 0x1D
|
||||
uint32 var_04; // 0x04 , 0x1E
|
||||
uint16 var_08; // 0x08 , 0x22
|
||||
uint32 spacing; // 0x04 , 0x1E
|
||||
uint16 friction; // 0x08 , 0x22
|
||||
sint8 var_0A; // 0x0A , 0x24
|
||||
uint8 pad_0B;
|
||||
uint16 var_0C; // 0x0C , 0x26
|
||||
uint16 available_sprites; // 0x0C , 0x26
|
||||
uint8 var_0E; // 0x0E , 0x28
|
||||
uint8 var_0F; // 0x0F , 0x29
|
||||
uint8 var_10; // 0x10 , 0x2A
|
||||
|
@ -106,10 +106,11 @@ typedef struct{
|
|||
uint32 var_4C; // 0x4C , 0x66
|
||||
uint32 no_vehicle_images; // 0x50 , 0x6A
|
||||
uint8 no_seating_rows; // 0x54 , 0x6E
|
||||
uint8 pad_55[0x2];
|
||||
uint8 spinning_inertia; // 0x55 , 0x6F
|
||||
uint8 spinning_friction; // 0x56 , 0x70
|
||||
uint8 var_57; // 0x57 , 0x71
|
||||
uint8 pad_58;
|
||||
uint8 sound_range; // 0x59 , 0x73
|
||||
uint8 sound_range; // 0x59 , 0x73
|
||||
uint8 var_5A; // 0x5A , 0x74
|
||||
uint8 pad_5B; // 0x5B , 0x75
|
||||
uint8 var_5C; // 0x5C , 0x76
|
||||
|
@ -124,28 +125,33 @@ typedef struct{
|
|||
* size: unknown
|
||||
*/
|
||||
typedef struct {
|
||||
rct_string_id name; // 0x000
|
||||
rct_string_id description; // 0x002
|
||||
uint32 images_offset; // 0x004
|
||||
uint32 flags; // 0x008
|
||||
uint8 ride_type[3]; // 0x00C
|
||||
uint8 min_cars_in_train; // 0x00F
|
||||
uint8 max_cars_in_train; // 0x010
|
||||
uint8 cars_per_flat_ride; // 0x011
|
||||
uint8 zero_cars; // 0x012
|
||||
uint8 tab_vehicle; // 0x013
|
||||
uint8 default_vehicle; // 0x014
|
||||
uint8 front_vehicle; // 0x015
|
||||
uint8 second_vehicle; // 0x016
|
||||
uint8 rear_vehicle; // 0x017
|
||||
uint8 third_vehicle; // 0x018
|
||||
rct_string_id name; // 0x000
|
||||
rct_string_id description; // 0x002
|
||||
uint32 images_offset; // 0x004
|
||||
uint32 flags; // 0x008
|
||||
uint8 ride_type[3]; // 0x00C
|
||||
uint8 min_cars_in_train; // 0x00F
|
||||
uint8 max_cars_in_train; // 0x010
|
||||
uint8 cars_per_flat_ride; // 0x011
|
||||
// Number of cars that can't hold passengers
|
||||
uint8 zero_cars; // 0x012
|
||||
// The index to the vehicle type displayed in
|
||||
// the vehicle tab.
|
||||
uint8 tab_vehicle; // 0x013
|
||||
uint8 default_vehicle; // 0x014
|
||||
// Convert from first - fourth vehicle to
|
||||
// vehicle structure
|
||||
uint8 front_vehicle; // 0x015
|
||||
uint8 second_vehicle; // 0x016
|
||||
uint8 rear_vehicle; // 0x017
|
||||
uint8 third_vehicle; // 0x018
|
||||
uint8 pad_019;
|
||||
rct_ride_type_vehicle vehicles[4]; // 0x01A
|
||||
vehicle_colour_preset_list *vehicle_preset_list; // 0x1AE
|
||||
sint8 excitement_multipler; // 0x1B2
|
||||
sint8 intensity_multipler; // 0x1B3
|
||||
sint8 nausea_multipler; // 0x1B4
|
||||
uint8 max_height; // 0x1B5
|
||||
rct_ride_type_vehicle vehicles[4]; // 0x1A
|
||||
uint32 var_1AE;
|
||||
sint8 excitement_multipler; // 0x1B2
|
||||
sint8 intensity_multipler; // 0x1B3
|
||||
sint8 nausea_multipler; // 0x1B4
|
||||
uint8 additional_max_height; // 0x1B5
|
||||
union {
|
||||
uint64 enabledTrackPieces; // 0x1B6
|
||||
struct {
|
||||
|
|
|
@ -2647,8 +2647,8 @@ static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dp
|
|||
// For each car in train
|
||||
for (j = 0; j < ride->num_cars_per_train; j++) {
|
||||
rct_ride_type_vehicle* rideVehicleEntry = &rideEntry->vehicles[trainLayout[j]];
|
||||
x += rideVehicleEntry->var_04 / 17432;
|
||||
y -= (rideVehicleEntry->var_04 / 2) / 17432;
|
||||
x += rideVehicleEntry->spacing / 17432;
|
||||
y -= (rideVehicleEntry->spacing / 2) / 17432;
|
||||
|
||||
// Get colour of vehicle
|
||||
switch (ride->colour_scheme_type & 3) {
|
||||
|
@ -2680,8 +2680,8 @@ static void window_ride_vehicle_scrollpaint(rct_window *w, rct_drawpixelinfo *dp
|
|||
nextSpriteToDraw->tertiary_colour = vehicleColour.additional_2;
|
||||
nextSpriteToDraw++;
|
||||
|
||||
x += rideVehicleEntry->var_04 / 17432;
|
||||
y -= (rideVehicleEntry->var_04 / 2) / 17432;
|
||||
x += rideVehicleEntry->spacing / 17432;
|
||||
y -= (rideVehicleEntry->spacing / 2) / 17432;
|
||||
}
|
||||
|
||||
if (ride->type == RIDE_TYPE_REVERSER_ROLLER_COASTER) {
|
||||
|
|
Loading…
Reference in New Issue