diff --git a/src/openrct2/rct1.h b/src/openrct2/rct1.h index a548c82ea8..5dfceae5e4 100644 --- a/src/openrct2/rct1.h +++ b/src/openrct2/rct1.h @@ -1122,21 +1122,24 @@ enum { }; enum { - STEEL_RC_FRONT = 0, - STEEL_RC_CARRIAGE = 1, - WOODEN_RC_TRAIN = 2, - MINIATURE_RAILWAY_TENDER = 15, - MINIATURE_RAILWAY_LOCOMOTIVE = 16, - MINIATURE_RAILWAY_CARRIAGE = 17, - MINE_TRAIN_FRONT = 35, - MINE_TRAIN_CARRIAGE = 36, - CORKSCREW_RC_FRONT = 38, - CORKSCREW_RC_CARRIAGE = 39, - TWISTER_RC_SPOILER = 64, - TWISTER_RC_CARRIAGE = 65, - STANDUP_TWISTER_RC_CARRIAGE = 72, - HYPERCOASTER_FRONT = 96, - HYPERCOASTER_CARRIAGE = 97, + STEEL_RC_FRONT = 0, + STEEL_RC_CARRIAGE = 1, + WOODEN_RC_TRAIN = 2, + MONORAIL_CARRIAGE = 10, + MONORAIL_FRONT = 11, + MONORAIL_BACK = 12, + MINIATURE_RAILWAY_TENDER = 15, + MINIATURE_RAILWAY_LOCOMOTIVE = 16, + MINIATURE_RAILWAY_CARRIAGE = 17, + MINE_TRAIN_FRONT = 35, + MINE_TRAIN_CARRIAGE = 36, + CORKSCREW_RC_FRONT = 38, + CORKSCREW_RC_CARRIAGE = 39, + TWISTER_RC_SPOILER = 64, + TWISTER_RC_CARRIAGE = 65, + STANDUP_TWISTER_RC_CARRIAGE = 72, + HYPERCOASTER_FRONT = 96, + HYPERCOASTER_CARRIAGE = 97, }; #define RCT1_MAX_STATIONS 4 diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index ed868b779f..6ebfbca59a 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -799,7 +799,6 @@ private: void ImportRideMeasurement(rct_ride_measurement * dst, rct_ride_measurement * src) { - // Not yet supported *dst = *src; for (sint32 i = 0; i < RIDE_MEASUREMENT_MAX_ITEMS; i++) { @@ -853,13 +852,6 @@ private: void ImportVehicle(rct_vehicle * dst, rct1_vehicle * src) { - // TODO perform vehicle type conversion - // this will be whether the vehicle is the head of the train or a seat etc. -// uint8 vehicleEntryIndex = 0; -// if (src->vehicle_type == 36) -// { -// vehicleEntryIndex = 1; -// } char buf[64]; sprintf(buf, "%d", src->vehicle_type); log_error(buf); @@ -1025,6 +1017,20 @@ private: FixVehiclePeepLinks(vehicle, spriteIndexMap); } } + + int i; + rct_ride *ride; + rct_peep *peep; + + FOR_ALL_RIDES(i, ride) + { + FixRidePeepLinks(ride, spriteIndexMap); + } + + FOR_ALL_GUESTS(i, peep) + { + FixPeepNextInQueue(peep, spriteIndexMap); + } } void ImportPeep(rct_peep * dst, rct1_peep * src) @@ -1068,6 +1074,15 @@ private: dst->outside_of_park = src->outside_of_park; dst->state = src->state; + dst->sub_state = src->sub_state; + dst->next_x = src->next_x; + dst->next_y = src->next_y; + dst->next_z = src->next_z / 2; + dst->next_var_29 = src->next_var_29; + dst->var_37 = src->var_37; + dst->var_42 = src->var_42; + dst->var_73 = src->var_73; + dst->var_EF = src->var_EF; dst->type = src->type; @@ -1207,6 +1222,7 @@ private: void ImportLitter() { + for (size_t i = 0; i < RCT1_MAX_SPRITES; i++) { if (_s4.sprites[i].unknown.sprite_identifier == SPRITE_IDENTIFIER_LITTER) diff --git a/src/openrct2/rct1/tables.cpp b/src/openrct2/rct1/tables.cpp index 1ca3a7ca92..65fc8e4c95 100644 --- a/src/openrct2/rct1/tables.cpp +++ b/src/openrct2/rct1/tables.cpp @@ -328,9 +328,9 @@ namespace RCT1 0, 0, 0, - 0, - 0, - 0, + 0, // MONORAIL_CARRIAGE + 1, // MONORAIL_FRONT + 2, // MONORAIL_BACK 0, 0, 1, // MINIATURE_RAILWAY_TENDER