diff --git a/src/openrct2/Cheats.cpp b/src/openrct2/Cheats.cpp index 7403c17e18..bd0ecc6932 100644 --- a/src/openrct2/Cheats.cpp +++ b/src/openrct2/Cheats.cpp @@ -159,7 +159,7 @@ static void cheat_fix_rides() mechanic = ride_get_assigned_mechanic(ride); if (mechanic != nullptr){ - remove_peep_from_ride(mechanic); + mechanic->RemoveFromRide(); } ride_fix_breakdown(rideIndex, 0); diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index f2b5423023..93d4370c59 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -384,7 +384,7 @@ static void peep_go_to_ride_entrance(rct_peep * peep, Ride * ride) peep->rejoin_queue_timeout = 0; peep->time_on_ride = 0; - remove_peep_from_queue(peep); + peep->RemoveFromQueue(); } static bool peep_find_vehicle_to_enter(rct_peep * peep, Ride * ride, std::vector &car_array) @@ -462,10 +462,8 @@ static void peep_update_ride_at_entrance_try_leave(rct_peep * peep) // entered entrance if (peep->destination_tolerance == 0) { - remove_peep_from_queue(peep); - peep_decrement_num_riders(peep); - peep->state = PEEP_STATE_FALLING; - peep_window_state_update(peep); + peep->RemoveFromQueue(); + peep->SetState(PEEP_STATE_FALLING); } } diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 0db99fcd30..9e1a279945 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -1964,7 +1964,7 @@ void peep_window_state_update(rct_peep * peep) void peep_pickup(rct_peep * peep) { - remove_peep_from_ride(peep); + peep->RemoveFromRide(); invalidate_sprite_2((rct_sprite *)peep); sprite_move(LOCATION_NULL, peep->y, peep->z, (rct_sprite *)peep); @@ -2161,7 +2161,7 @@ void game_command_pickup_guest(sint32 * eax, sint32 * ebx, sint32 * ecx, sint32 */ void peep_sprite_remove(rct_peep * peep) { - remove_peep_from_ride(peep); + peep->RemoveFromRide(); invalidate_sprite_2((rct_sprite *)peep); window_close_by_number(WC_PEEP, peep->sprite_index); @@ -3198,10 +3198,8 @@ void rct_peep::UpdateQueuing() // Give up queueing for the ride sprite_direction ^= (1 << 4); invalidate_sprite_2((rct_sprite *)this); - remove_peep_from_queue(this); - peep_decrement_num_riders(this); - state = PEEP_STATE_1; - peep_window_state_update(this); + RemoveFromQueue(); + SetState(PEEP_STATE_1); return; } @@ -3272,10 +3270,8 @@ void rct_peep::UpdateQueuing() // Give up queueing for the ride sprite_direction ^= (1 << 4); invalidate_sprite_2((rct_sprite *)this); - remove_peep_from_queue(this); - peep_decrement_num_riders(this); - state = PEEP_STATE_1; - peep_window_state_update(this); + RemoveFromQueue(); + SetState(PEEP_STATE_1); } } @@ -6952,7 +6948,7 @@ static sint32 peep_interact_with_path(rct_peep * peep, sint16 x, sint16 y, rct_t } // Queue got disconnected from the original ride. peep->interaction_ride_index = 0xFF; - remove_peep_from_queue(peep); + peep->RemoveFromRide(); peep_decrement_num_riders(peep); peep->state = PEEP_STATE_1; peep_window_state_update(peep); @@ -7022,10 +7018,8 @@ static sint32 peep_interact_with_path(rct_peep * peep, sint16 x, sint16 y, rct_t peep->interaction_ride_index = 0xFF; if (peep->state == PEEP_STATE_QUEUING) { - remove_peep_from_queue(peep); - peep_decrement_num_riders(peep); - peep->state = PEEP_STATE_1; - peep_window_state_update(peep); + peep->RemoveFromRide(); + peep->SetState(PEEP_STATE_1); } return peep_footpath_move_forward(peep, x, y, tile_element, vandalism_present); } @@ -9369,7 +9363,7 @@ sint32 rct_peep::PerformNextAction(uint8 & pathing_result) interaction_ride_index = 0xFF; if (state == PEEP_STATE_QUEUING) { - remove_peep_from_queue(this); + RemoveFromQueue(); SetState(PEEP_STATE_1); } diff --git a/src/openrct2/peep/Peep.h b/src/openrct2/peep/Peep.h index 72e8276431..fdfb990b1b 100644 --- a/src/openrct2/peep/Peep.h +++ b/src/openrct2/peep/Peep.h @@ -691,9 +691,9 @@ struct rct_peep void UpdateCurrentActionSpriteType(); void SwitchToSpecialSprite(uint8 special_sprite_id); void RemoveFromRide(); + void RemoveFromQueue(); void OnEnterRide(uint8 rideIndex); void OnExitRide(uint8 rideIndex); - private: void UpdateFalling(); void Update1(); @@ -738,7 +738,7 @@ private: void UpdateRideShopLeave(); void TryGetUpFromSitting(); - void RemoveFromQueue(); + bool CheckForPath(); sint32 PerformNextAction(uint8 & pathing_result); @@ -893,8 +893,6 @@ void peep_decrement_num_riders(rct_peep * peep); void peep_insert_new_thought(rct_peep * peep, uint8 thought_type, uint8 thought_arguments); void peep_set_map_tooltip(rct_peep * peep); -void remove_peep_from_ride(rct_peep * peep); -void remove_peep_from_queue(rct_peep * peep); void SwitchToSpecialSprite(rct_peep * peep, uint8 special_sprite_id); void peep_update_name_sort(rct_peep * peep); diff --git a/src/openrct2/ride/Ride.cpp b/src/openrct2/ride/Ride.cpp index 0b3ec9185a..8a0f701707 100644 --- a/src/openrct2/ride/Ride.cpp +++ b/src/openrct2/ride/Ride.cpp @@ -1170,7 +1170,7 @@ void ride_remove_peeps(sint32 rideIndex) peep_decrement_num_riders(peep); if (peep->state == PEEP_STATE_QUEUING_FRONT && peep->sub_state == PEEP_RIDE_AT_ENTRANCE) - remove_peep_from_queue(peep); + peep->RemoveFromRide(); invalidate_sprite_2((rct_sprite*)peep); @@ -5619,12 +5619,8 @@ void ride_stop_peeps_queuing(sint32 rideIndex) if (peep->current_ride != rideIndex) continue; - remove_peep_from_queue(peep); - peep_decrement_num_riders(peep); - - peep->state = PEEP_STATE_FALLING; - - peep_window_state_update(peep); + peep->RemoveFromRide(); + peep->SetState(PEEP_STATE_FALLING); } }