1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-23 14:54:30 +01:00

Fix negative queue lengths, fix monorail, fix chairlift crashes

This commit is contained in:
Gymnasiast
2017-01-08 18:49:26 +01:00
committed by Ted John
parent c1d532be01
commit 63d639db5d
3 changed files with 45 additions and 26 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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