From 66793e664aa066be9739b20cfbf665541b73dd66 Mon Sep 17 00:00:00 2001 From: Matt Date: Thu, 15 Aug 2019 20:16:13 +0200 Subject: [PATCH] Refactor some unnecessary Invalidate calls and call member function if available --- src/openrct2/peep/Guest.cpp | 86 +++---------------------------------- src/openrct2/peep/Peep.cpp | 50 +++++---------------- src/openrct2/peep/Staff.cpp | 51 +++------------------- 3 files changed, 22 insertions(+), 165 deletions(-) diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 236f101f52..cfaee668f8 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -439,7 +439,7 @@ void Guest::GivePassingPeepsPurpleClothes(Guest* passingPeep) { passingPeep->tshirt_colour = COLOUR_BRIGHT_PURPLE; passingPeep->trousers_colour = COLOUR_BRIGHT_PURPLE; - invalidate_sprite_2((rct_sprite*)passingPeep); + passingPeep->Invalidate(); } void Guest::GivePassingPeepsPizza(Guest* passingPeep) @@ -455,15 +455,12 @@ void Guest::GivePassingPeepsPizza(Guest* passingPeep) { if (passingPeep->action == PEEP_ACTION_NONE_1 || passingPeep->action == PEEP_ACTION_NONE_2) { - Invalidate(); passingPeep->action = PEEP_ACTION_WAVE_2; passingPeep->action_frame = 0; passingPeep->action_sprite_image_offset = 0; passingPeep->UpdateCurrentActionSpriteType(); - invalidate_sprite_2((rct_sprite*)passingPeep); } } - invalidate_sprite_2((rct_sprite*)passingPeep); } void Guest::MakePassingPeepsSick(Guest* passingPeep) @@ -479,7 +476,6 @@ void Guest::MakePassingPeepsSick(Guest* passingPeep) passingPeep->action_frame = 0; passingPeep->action_sprite_image_offset = 0; passingPeep->UpdateCurrentActionSpriteType(); - invalidate_sprite_2((rct_sprite*)passingPeep); } } @@ -525,7 +521,6 @@ void Guest::UpdateEasterEggInteractions() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } } @@ -1053,7 +1048,6 @@ void Guest::Tick128UpdateGuest(int32_t index) action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - invalidate_sprite_2((rct_sprite*)this); } } } @@ -1236,11 +1230,9 @@ void Guest::UpdateSitting() z, }; - Invalidate(); MoveTo(loc.x, loc.y, loc.z); sprite_direction = ((var_37 + 2) & 3) * 8; - Invalidate(); action = PEEP_ACTION_NONE_1; next_action_sprite_type = PEEP_ACTION_SPRITE_TYPE_SITTING_IDLE; SwitchNextActionSpriteType(); @@ -1292,7 +1284,6 @@ void Guest::UpdateSitting() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } @@ -1321,7 +1312,6 @@ void Guest::UpdateSitting() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } } @@ -2416,7 +2406,6 @@ void Guest::ReadMap() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } @@ -3419,7 +3408,6 @@ void Guest::UpdateBuying() action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); ride->no_primary_items_sold++; } @@ -3486,8 +3474,6 @@ void Guest::UpdateRideAtEntrance() // this is the state it will return to. if (destination_tolerance != 0) { - Invalidate(); - int16_t xy_distance; if (auto loc = UpdateAction(xy_distance)) { @@ -3498,12 +3484,12 @@ void Guest::UpdateRideAtEntrance() actionZ = entrance.z * 8 + 2; } MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); } else { destination_tolerance = 0; sprite_direction ^= (1 << 4); + Invalidate(); } } @@ -3703,8 +3689,6 @@ void Guest::UpdateRideAdvanceThroughEntrance() sub_state = PEEP_RIDE_FREE_VEHICLE_CHECK; } - Invalidate(); - actionZ = ride->stations[current_ride_station].Height * 8; distanceThreshold += 4; @@ -3714,7 +3698,6 @@ void Guest::UpdateRideAdvanceThroughEntrance() } MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); return; } @@ -3823,8 +3806,7 @@ static void peep_go_to_ride_exit(Peep* peep, Ride* ride, int16_t x, int16_t y, i { z += RideData5[ride->type].z; - sprite_move(x, y, z, (rct_sprite*)peep); - peep->Invalidate(); + peep->MoveTo(x, y, z); Guard::Assert(peep->current_ride_station < MAX_STATIONS); auto exit = ride_get_exit_location(ride, peep->current_ride_station); @@ -4058,9 +4040,7 @@ void Guest::UpdateRideApproachVehicle() { if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } sub_state = PEEP_RIDE_ENTER_VEHICLE; @@ -4098,9 +4078,7 @@ void Guest::UpdateRideEnterVehicle() ride->cur_num_customers++; vehicle->mass += seatedPeepAsGuest->mass; - seatedPeepAsGuest->Invalidate(); - sprite_move(LOCATION_NULL, 0, 0, reinterpret_cast(seatedPeepAsGuest)); - + seatedPeepAsGuest->MoveTo(LOCATION_NULL, 0, 0); seatedPeepAsGuest->SetState(PEEP_STATE_ON_RIDE); seatedPeepAsGuest->time_on_ride = 0; seatedPeepAsGuest->sub_state = PEEP_RIDE_ON_RIDE; @@ -4114,7 +4092,6 @@ void Guest::UpdateRideEnterVehicle() vehicle->mass += mass; invalidate_sprite_2(reinterpret_cast(vehicle)); - Invalidate(); MoveTo(LOCATION_NULL, 0, 0); SetState(PEEP_STATE_ON_RIDE); @@ -4321,7 +4298,6 @@ void Guest::UpdateRideLeaveVehicle() exitWaypointLoc.z += 15; MoveTo(exitWaypointLoc.x, exitWaypointLoc.y, exitWaypointLoc.z); - Invalidate(); waypointLoc.x += vehicleEntry->peep_loading_waypoints[var_37 / 4][1].x; waypointLoc.y += vehicleEntry->peep_loading_waypoints[var_37 / 4][1].y; @@ -4387,9 +4363,7 @@ void Guest::UpdateRideApproachExit() { if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -4410,21 +4384,17 @@ void Guest::UpdateRideInExit() if (auto loc = UpdateAction(xy_distance)) { - Invalidate(); - if (xy_distance >= 16) { int16_t actionZ = ride->stations[current_ride_station].Height * 8; actionZ += RideData5[ride->type].z; MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); return; } SwitchToSpecialSprite(0); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); } if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_RIDE_PHOTO) @@ -4475,9 +4445,7 @@ void Guest::UpdateRideApproachVehicleWaypoints() { actionZ = z; } - Invalidate(); MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); return; } @@ -4549,9 +4517,7 @@ void Guest::UpdateRideApproachExitWaypoints() { actionZ = z; } - Invalidate(); MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); return; } @@ -4630,9 +4596,7 @@ void Guest::UpdateRideApproachSpiralSlide() if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -4761,7 +4725,6 @@ void Guest::UpdateRideOnSpiralSlide() MoveTo(newX, newY, z); sprite_direction = (var_37 & 0xC) * 2; - Invalidate(); var_37++; return; @@ -4773,11 +4736,10 @@ void Guest::UpdateRideOnSpiralSlide() if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } + uint8_t waypoint = 2; var_37 = (var_37 * 4 & 0x30) + waypoint; @@ -4805,9 +4767,7 @@ void Guest::UpdateRideLeaveSpiralSlide() // waypoint 0. Then it readies to leave the ride by the entrance. if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -4887,9 +4847,7 @@ void Guest::UpdateRideMazePathfinding() { if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -4911,7 +4869,6 @@ void Guest::UpdateRideMazePathfinding() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } @@ -5033,9 +4990,7 @@ void Guest::UpdateRideMazePathfinding() if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } } @@ -5052,9 +5007,7 @@ void Guest::UpdateRideLeaveExit() { if (ride != nullptr) { - Invalidate(); MoveTo((*loc).x, (*loc).y, ride->stations[current_ride_station].Height * 8); - Invalidate(); } return; } @@ -5093,7 +5046,6 @@ void Guest::UpdateRideLeaveExit() continue; MoveTo(x, y, height); - Invalidate(); return; } while (!(tileElement++)->IsLastForTile()); } @@ -5106,9 +5058,7 @@ void Guest::UpdateRideShopApproach() { if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -5178,9 +5128,7 @@ void Guest::UpdateRideShopLeave() { if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); if ((x & 0xFFE0) != next_x) return; @@ -5338,14 +5286,11 @@ void Guest::UpdateWalking() { if ((0xFFFF & scenario_rand()) < 936) { - Invalidate(); - action = PEEP_ACTION_WAVE_2; action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } } @@ -5356,14 +5301,11 @@ void Guest::UpdateWalking() { if ((0xFFFF & scenario_rand()) < 936) { - Invalidate(); - action = PEEP_ACTION_TAKE_PHOTO; action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } } @@ -5374,14 +5316,11 @@ void Guest::UpdateWalking() { if ((0xFFFF & scenario_rand()) < 936) { - Invalidate(); - action = PEEP_ACTION_DRAW_PICTURE; action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } } } @@ -5469,11 +5408,8 @@ void Guest::UpdateWalking() int32_t water_height = surfaceElement->GetWaterHeight(); if (water_height) { - Invalidate(); water_height *= 16; MoveTo(x, y, water_height); - Invalidate(); - SetState(PEEP_STATE_FALLING); return; } @@ -5678,7 +5614,6 @@ void Guest::UpdateQueuing() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (time_in_queue >= 3500 && (0xFFFF & scenario_rand()) <= 93) { @@ -5719,7 +5654,6 @@ void Guest::UpdateQueuing() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); break; default: break; @@ -5757,9 +5691,7 @@ void Guest::UpdateEnteringPark() } if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } SetState(PEEP_STATE_FALLING); @@ -5790,9 +5722,7 @@ void Guest::UpdateLeavingPark() if (auto loc = UpdateAction()) { - Invalidate(); MoveTo((*loc).x, (*loc).y, z); - Invalidate(); return; } @@ -5808,7 +5738,7 @@ void Guest::UpdateLeavingPark() PerformNextAction(pathingResult); if (!(pathingResult & PATHING_OUTSIDE_PARK)) return; - peep_sprite_remove(this); + Remove(); } /** @@ -5830,7 +5760,6 @@ void Guest::UpdateWatching() destination_y = y; sprite_direction = (var_37 & 3) * 8; - Invalidate(); action = PEEP_ACTION_NONE_1; next_action_sprite_type = PEEP_ACTION_SPRITE_TYPE_WATCH_RIDE; @@ -5863,7 +5792,6 @@ void Guest::UpdateWatching() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } } @@ -5874,7 +5802,6 @@ void Guest::UpdateWatching() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } @@ -5886,7 +5813,6 @@ void Guest::UpdateWatching() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } } diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 306d672aa5..d61a06d816 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -347,7 +347,9 @@ void Peep::Invalidate() void Peep::MoveTo(int16_t destX, int16_t destY, int16_t destZ) { + Invalidate(); // Invalidate current position. sprite_move(destX, destY, destZ, (rct_sprite*)this); + Invalidate(); // Invalidate new position. } uint8_t Peep::GetNextDirection() const @@ -641,7 +643,6 @@ std::optional Peep::UpdateAction(int16_t& xy_distance) action_sprite_image_offset = 0; action = PEEP_ACTION_NONE_2; UpdateCurrentActionSpriteType(); - Invalidate(); return { { x, y } }; } action_sprite_image_offset = peepAnimation[action_sprite_type].frame_offsets[action_frame]; @@ -649,7 +650,6 @@ std::optional Peep::UpdateAction(int16_t& xy_distance) // If not throwing up and not at the frame where sick appears. if (action != PEEP_ACTION_THROW_UP || action_frame != 15) { - Invalidate(); return { { x, y } }; } @@ -671,7 +671,6 @@ std::optional Peep::UpdateAction(int16_t& xy_distance) auto soundId = coughs[scenario_rand() & 3]; audio_play_sound_at_location(soundId, { x, y, z }); - Invalidate(); return { { x, y } }; } @@ -732,9 +731,7 @@ void Peep::Pickup() { guest->RemoveFromRide(); } - Invalidate(); - - sprite_move(LOCATION_NULL, y, z, (rct_sprite*)this); + MoveTo(LOCATION_NULL, y, z); SetState(PEEP_STATE_PICKED); sub_state = 0; } @@ -744,8 +741,7 @@ void Peep::PickupAbort(int32_t old_x) if (state != PEEP_STATE_PICKED) return; - sprite_move(old_x, y, z + 8, (rct_sprite*)this); - Invalidate(); + MoveTo(old_x, y, z + 8); if (x != (int16_t)LOCATION_NULL) { @@ -797,8 +793,7 @@ bool Peep::Place(TileCoordsXYZ location, bool apply) if (apply) { - sprite_move(destination.x, destination.y, destination.z, (rct_sprite*)this); - Invalidate(); + MoveTo(destination.x, destination.y, destination.z); SetState(PEEP_STATE_FALLING); action = PEEP_ACTION_NONE_2; special_sprite = 0; @@ -933,7 +928,6 @@ void Peep::UpdateFalling() if (height - 4 >= z && height < z + 20) { // Looks like we are drowning! - Invalidate(); MoveTo(x, y, height); auto guest = AsGuest(); @@ -950,7 +944,6 @@ void Peep::UpdateFalling() action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); peep_window_state_update(this); return; } @@ -969,7 +962,6 @@ void Peep::UpdateFalling() // This will be null if peep is falling if (saved_map == nullptr) { - Invalidate(); if (z <= 1) { // Remove peep if it has gone to the void @@ -977,13 +969,10 @@ void Peep::UpdateFalling() return; } MoveTo(x, y, z - 2); - Invalidate(); return; } - Invalidate(); MoveTo(x, y, saved_height); - Invalidate(); next_x = x & 0xFFE0; next_y = y & 0xFFE0; @@ -1466,7 +1455,6 @@ void peep_applause() peep->action_frame = 0; peep->action_sprite_image_offset = 0; peep->UpdateCurrentActionSpriteType(); - peep->Invalidate(); } } @@ -1587,7 +1575,6 @@ void Peep::InsertNewThought(PeepThoughtType thoughtType, uint8_t thoughtArgument action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } for (int32_t i = 0; i < PEEP_MAX_THOUGHTS; ++i) @@ -1648,11 +1635,8 @@ Peep* Peep::Generate(const CoordsXYZ coords) peep->sprite_height_negative = spriteBounds[peep->action_sprite_type].sprite_height_negative; peep->sprite_height_positive = spriteBounds[peep->action_sprite_type].sprite_height_positive; + peep->MoveTo(coords.x, coords.y, coords.z); peep->sprite_direction = 0; - - sprite_move(coords.x, coords.y, coords.z, (rct_sprite*)peep); - peep->Invalidate(); - peep->mass = (scenario_rand() & 0x1F) + 45; peep->path_check_optimisation = 0; peep->interaction_ride_index = RIDE_ID_NULL; @@ -2507,10 +2491,7 @@ static void peep_interact_with_entrance(Peep* peep, int16_t x, int16_t y, TileEl peep->destination_x += CoordsDirectionDelta[peep->direction].x; peep->destination_y += CoordsDirectionDelta[peep->direction].y; peep->destination_tolerance = 9; - peep->Invalidate(); - sprite_move(x, y, peep->z, (rct_sprite*)peep); - peep->Invalidate(); - + peep->MoveTo(x, y, peep->z); peep->SetState(PEEP_STATE_LEAVING_PARK); peep->var_37 = 0; @@ -2649,10 +2630,7 @@ static void peep_interact_with_entrance(Peep* peep, int16_t x, int16_t y, TileEl peep->destination_x += CoordsDirectionDelta[peep->direction].x; peep->destination_y += CoordsDirectionDelta[peep->direction].y; peep->destination_tolerance = 7; - - peep->Invalidate(); - sprite_move(x, y, peep->z, (rct_sprite*)peep); - peep->Invalidate(); + peep->MoveTo(x, y, peep->z); } } @@ -2671,9 +2649,7 @@ static void peep_footpath_move_forward(Peep* peep, int16_t x, int16_t y, TileEle if (peep->type == PEEP_TYPE_STAFF) { - peep->Invalidate(); - sprite_move(x, y, z, (rct_sprite*)peep); - peep->Invalidate(); + peep->MoveTo(x, y, z); return; } @@ -2797,9 +2773,7 @@ static void peep_footpath_move_forward(Peep* peep, int16_t x, int16_t y, TileEle } } - peep->Invalidate(); - sprite_move(x, y, z, (rct_sprite*)peep); - peep->Invalidate(); + peep->MoveTo(x, y, z); } /** @@ -3102,9 +3076,7 @@ void Peep::PerformNextAction(uint8_t& pathing_result, TileElement*& tile_result) if ((newLoc.x & 0xFFE0) == next_x && (newLoc.y & 0xFFE0) == next_y) { int16_t height = GetZOnSlope(newLoc.x, newLoc.y); - Invalidate(); MoveTo(newLoc.x, newLoc.y, height); - Invalidate(); return; } @@ -3202,9 +3174,7 @@ void Peep::PerformNextAction(uint8_t& pathing_result, TileElement*& tile_result) SetNextFlags(0, false, true); height = GetZOnSlope(newLoc.x, newLoc.y); - Invalidate(); MoveTo(newLoc.x, newLoc.y, height); - Invalidate(); return; } } diff --git a/src/openrct2/peep/Staff.cpp b/src/openrct2/peep/Staff.cpp index e0f20efe49..f4c9b67232 100644 --- a/src/openrct2/peep/Staff.cpp +++ b/src/openrct2/peep/Staff.cpp @@ -1052,14 +1052,11 @@ static int32_t staff_path_finding_entertainer(Peep* peep) { if (((scenario_rand() & 0xFFFF) <= 0x4000) && (peep->action == PEEP_ACTION_NONE_1 || peep->action == PEEP_ACTION_NONE_2)) { - peep->Invalidate(); - peep->action = (scenario_rand() & 1) ? PEEP_ACTION_WAVE_2 : PEEP_ACTION_JOY; peep->action_frame = 0; peep->action_sprite_image_offset = 0; peep->UpdateCurrentActionSpriteType(); - peep->Invalidate(); staff_entertainer_update_nearby_peeps(peep); } @@ -1176,14 +1173,12 @@ void Staff::UpdateMowing() if (!CheckForPath()) return; - Invalidate(); while (true) { if (auto loc = UpdateAction()) { int16_t checkZ = tile_element_height(*loc); MoveTo((*loc).x, (*loc).y, checkZ); - Invalidate(); return; } @@ -1239,7 +1234,6 @@ void Staff::UpdateWatering() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); sub_state = 1; } @@ -1291,6 +1285,7 @@ void Staff::UpdateEmptyingBin() { if (!CheckForPath()) return; + uint8_t pathingResult; PerformNextAction(pathingResult); if (!(pathingResult & PATHING_DESTINATION_REACHED)) @@ -1301,7 +1296,6 @@ void Staff::UpdateEmptyingBin() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); sub_state = 1; } @@ -1368,8 +1362,6 @@ void Staff::UpdateSweeping() if (!CheckForPath()) return; - Invalidate(); - if (action == PEEP_ACTION_STAFF_SWEEP && action_frame == 8) { // Remove sick at this location @@ -1381,7 +1373,6 @@ void Staff::UpdateSweeping() { int16_t actionZ = GetZOnSlope((*loc).x, (*loc).y); MoveTo((*loc).x, (*loc).y, actionZ); - Invalidate(); return; } @@ -1392,7 +1383,6 @@ void Staff::UpdateSweeping() action_frame = 0; action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); return; } StateReset(); @@ -1487,8 +1477,6 @@ void Staff::UpdateHeadingToInspect() // Falls through into sub_state 4 } - Invalidate(); - int16_t delta_y = abs(y - destination_y); if (auto loc = UpdateAction()) { @@ -1500,7 +1488,6 @@ void Staff::UpdateHeadingToInspect() } MoveTo((*loc).x, (*loc).y, newZ); - Invalidate(); return; } @@ -1528,7 +1515,6 @@ void Staff::UpdateAnswering() action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); sub_state = 1; peep_window_state_update(this); @@ -1601,8 +1587,6 @@ void Staff::UpdateAnswering() // Falls through into sub_state 4 } - Invalidate(); - int16_t delta_y = abs(y - destination_y); if (auto loc = UpdateAction()) { @@ -1614,7 +1598,6 @@ void Staff::UpdateAnswering() } MoveTo((*loc).x, (*loc).y, newZ); - Invalidate(); return; } @@ -1923,11 +1906,8 @@ void Staff::UpdatePatrolling() int32_t water_height = surfaceElement->GetWaterHeight(); if (water_height) { - Invalidate(); water_height *= 16; MoveTo(x, y, water_height); - Invalidate(); - SetState(PEEP_STATE_FALLING); return; } @@ -2218,11 +2198,9 @@ bool Staff::UpdateFixingMoveToBrokenDownVehicle(bool firstRun, Ride* ride) destination_tolerance = 2; } - Invalidate(); if (auto loc = UpdateAction()) { - sprite_move((*loc).x, (*loc).y, z, (rct_sprite*)this); - Invalidate(); + MoveTo(loc->x, loc->y, z); return false; } @@ -2248,7 +2226,6 @@ bool Staff::UpdateFixingFixVehicle(bool firstRun, Ride* ride) action_sprite_image_offset = 0; action_frame = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action == PEEP_ACTION_NONE_2) @@ -2290,7 +2267,6 @@ bool Staff::UpdateFixingFixVehicleMalfunction(bool firstRun, Ride* ride) action_frame = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action == PEEP_ACTION_NONE_2) @@ -2375,12 +2351,9 @@ bool Staff::UpdateFixingMoveToStationEnd(bool firstRun, Ride* ride) destination_tolerance = 2; } - Invalidate(); if (auto loc = UpdateAction()) { - sprite_move((*loc).x, (*loc).y, z, (rct_sprite*)this); - Invalidate(); - + MoveTo(loc->x, loc->y, z); return false; } @@ -2403,7 +2376,6 @@ bool Staff::UpdateFixingFixStationEnd(bool firstRun) action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action == PEEP_ACTION_NONE_2) @@ -2490,12 +2462,9 @@ bool Staff::UpdateFixingMoveToStationStart(bool firstRun, Ride* ride) destination_tolerance = 2; } - Invalidate(); if (auto loc = UpdateAction()) { - sprite_move((*loc).x, (*loc).y, z, (rct_sprite*)this); - Invalidate(); - + MoveTo(loc->x, loc->y, z); return false; } @@ -2525,7 +2494,6 @@ bool Staff::UpdateFixingFixStationStart(bool firstRun, Ride* ride) action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action == PEEP_ACTION_NONE_2) @@ -2554,7 +2522,6 @@ bool Staff::UpdateFixingFixStationBrakes(bool firstRun, Ride* ride) action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action == PEEP_ACTION_NONE_2) @@ -2612,11 +2579,9 @@ bool Staff::UpdateFixingMoveToStationExit(bool firstRun, Ride* ride) destination_tolerance = 2; } - Invalidate(); if (auto loc = UpdateAction()) { - sprite_move((*loc).x, (*loc).y, z, (rct_sprite*)this); - Invalidate(); + MoveTo(loc->x, loc->y, z); return false; } else @@ -2655,7 +2620,6 @@ bool Staff::UpdateFixingFinishFixOrInspect(bool firstRun, int32_t steps, Ride* r action_sprite_image_offset = 0; UpdateCurrentActionSpriteType(); - Invalidate(); } if (action != PEEP_ACTION_NONE_2) @@ -2705,7 +2669,6 @@ bool Staff::UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride) destination_tolerance = 2; } - Invalidate(); int16_t xy_distance; if (auto loc = UpdateAction(xy_distance)) { @@ -2716,9 +2679,7 @@ bool Staff::UpdateFixingLeaveByEntranceExit(bool firstRun, Ride* ride) stationHeight += RideData5[ride->type].z; } - sprite_move((*loc).x, (*loc).y, stationHeight, (rct_sprite*)this); - Invalidate(); - + MoveTo(loc->x, loc->y, stationHeight); return false; } SetState(PEEP_STATE_FALLING);