Merge pull request #1203 from trigger-death/MOM-saftey-checks

Added some M.O.M. safety checks.
This commit is contained in:
Ted John 2015-06-02 22:41:57 +01:00
commit 3e9e17e679
2 changed files with 14 additions and 6 deletions

View File

@ -1201,7 +1201,7 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
map_element = ride_get_station_start_track_element(ride, peep->current_ride_station);
uint8 direction_track = map_element->type & MAP_ELEMENT_DIRECTION_MASK;
uint8 direction_track = (!map_element ? 0 : map_element->type & MAP_ELEMENT_DIRECTION_MASK);
peep->var_37 = (direction_entrance << 2) | (direction_track << 4);
@ -1246,7 +1246,7 @@ void peep_update_ride_sub_state_1(rct_peep* peep){
map_element = ride_get_station_start_track_element(ride, peep->current_ride_station);
uint8 direction_track = map_element->type & MAP_ELEMENT_DIRECTION_MASK;
uint8 direction_track = (!map_element ? 0 : map_element->type & MAP_ELEMENT_DIRECTION_MASK);
vehicle = GET_VEHICLE(ride->vehicles[peep->current_train]);
ride_entry = GET_RIDE_ENTRY(vehicle->ride_subtype);
@ -1726,7 +1726,7 @@ static void peep_update_ride_sub_state_7(rct_peep* peep){
map_element = ride_get_station_start_track_element(ride, peep->current_ride_station);
uint8 station_direction = map_element->type & MAP_ELEMENT_DIRECTION_MASK;
uint8 station_direction = (!map_element ? 0 : map_element->type & MAP_ELEMENT_DIRECTION_MASK);
vehicle = GET_VEHICLE(ride->vehicles[peep->current_train]);

View File

@ -1707,9 +1707,17 @@ static void ride_prepare_breakdown(int rideIndex, int breakdownReason)
// Set flag on broken car
vehicle = &(g_sprite_list[ride->vehicles[ride->broken_vehicle]].vehicle);
for (i = ride->broken_car; i > 0; i--)
vehicle = &(g_sprite_list[vehicle->next_vehicle_on_train].vehicle);
vehicle->var_48 |= 0x100;
for (i = ride->broken_car; i > 0; i--) {
if (vehicle->next_vehicle_on_train == (uint16)0xFFFFFFFF) {
vehicle = NULL;
break;
}
else {
vehicle = &(g_sprite_list[vehicle->next_vehicle_on_train].vehicle);
}
}
if (vehicle != NULL)
vehicle->var_48 |= 0x100;
break;
case BREAKDOWN_VEHICLE_MALFUNCTION:
// Choose a random train