From 2488cb9c3a1b7bc23b60d0e39037fc8db38d33c4 Mon Sep 17 00:00:00 2001 From: duncanspumpkin Date: Tue, 3 Apr 2018 19:28:27 +0100 Subject: [PATCH] Add MoveTo function --- src/openrct2/peep/Guest.cpp | 50 ++++++++++++++++++------------------- src/openrct2/peep/Peep.cpp | 15 +++++++---- src/openrct2/peep/Peep.h | 1 + src/openrct2/peep/Staff.cpp | 10 ++++---- 4 files changed, 41 insertions(+), 35 deletions(-) diff --git a/src/openrct2/peep/Guest.cpp b/src/openrct2/peep/Guest.cpp index 45da5c2e31..026e6b29e2 100644 --- a/src/openrct2/peep/Guest.cpp +++ b/src/openrct2/peep/Guest.cpp @@ -272,7 +272,7 @@ void rct_peep::UpdateSitting() }; Invalidate(); - sprite_move(loc.x, loc.y, loc.z, (rct_sprite *)this); + MoveTo(loc.x, loc.y, loc.z); sprite_direction = ((var_37 + 2) & 3) * 8; Invalidate(); @@ -1414,7 +1414,7 @@ void rct_peep::UpdateRideAtEntrance() auto entrance = ride_get_entrance_location(ride, current_ride_station); actionZ = entrance.z * 8 + 2; } - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); } else @@ -1626,7 +1626,7 @@ void rct_peep::UpdateRideAdvanceThroughEntrance() actionZ += RideData5[ride->type].z; } - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); return; } @@ -1960,7 +1960,7 @@ void rct_peep::UpdateRideApproachVehicle() } Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); } @@ -2006,7 +2006,7 @@ void rct_peep::UpdateRideEnterVehicle() invalidate_sprite_2((rct_sprite *)vehicle); Invalidate(); - sprite_move(LOCATION_NULL, 0, 0, (rct_sprite *)this); + MoveTo(LOCATION_NULL, 0, 0); SetState(PEEP_STATE_ON_RIDE); @@ -2195,7 +2195,7 @@ void rct_peep::UpdateRideLeaveVehicle() if (ride->type == RIDE_TYPE_MOTION_SIMULATOR) exitWaypointLoc.z += 15; - sprite_move(exitWaypointLoc.x, exitWaypointLoc.y, exitWaypointLoc.z, (rct_sprite *)this); + MoveTo(exitWaypointLoc.x, exitWaypointLoc.y, exitWaypointLoc.z); Invalidate(); waypointLoc.x += vehicleEntry->peep_loading_waypoints[var_37 / 4][1].x; @@ -2263,7 +2263,7 @@ void rct_peep::UpdateRideApproachExit() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2289,13 +2289,13 @@ void rct_peep::UpdateRideInExit() sint16 actionZ = ride->station_heights[current_ride_station] * 8; actionZ += RideData5[ride->type].z; - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); return; } SwitchToSpecialSprite(0); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); } @@ -2345,7 +2345,7 @@ void rct_peep::UpdateRideApproachVehicleWaypoints() actionZ = z; } Invalidate(); - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); return; } @@ -2416,7 +2416,7 @@ void rct_peep::UpdateRideApproachExitWaypoints() actionZ = z; } Invalidate(); - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); return; } @@ -2499,7 +2499,7 @@ void rct_peep::UpdateRideApproachSpiralSlide() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2512,7 +2512,7 @@ void rct_peep::UpdateRideApproachSpiralSlide() destination_x = 0; destination_y = 0; var_37 = (var_37 / 4) & 0xC; - sprite_move(LOCATION_NULL, actionY, z, (rct_sprite *)this); + MoveTo(LOCATION_NULL, actionY, z); return; } else if (waypoint == 2) @@ -2627,7 +2627,7 @@ void rct_peep::UpdateRideOnSpiralSlide() newX += _981F0C[dir].x; newY += _981F0C[dir].y; - sprite_move(newX, newY, z, (rct_sprite *)this); + MoveTo(newX, newY, z); sprite_direction = (var_37 & 0xC) * 2; Invalidate(); @@ -2645,7 +2645,7 @@ void rct_peep::UpdateRideOnSpiralSlide() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2679,7 +2679,7 @@ void rct_peep::UpdateRideLeaveSpiralSlide() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2763,7 +2763,7 @@ void rct_peep::UpdateRideMazePathfinding() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2910,7 +2910,7 @@ void rct_peep::UpdateRideMazePathfinding() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -2928,7 +2928,7 @@ void rct_peep::UpdateRideLeaveExit() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, ride->station_heights[current_ride_station] * 8, (rct_sprite *)this); + MoveTo(actionX, actionY, ride->station_heights[current_ride_station] * 8); Invalidate(); return; } @@ -2968,7 +2968,7 @@ void rct_peep::UpdateRideLeaveExit() if (z_diff > 0 || z_diff < -16) continue; - sprite_move(x, y, height, (rct_sprite *)this); + MoveTo(x, y, height); Invalidate(); return; } while (!tile_element_is_last_for_tile(tileElement++)); @@ -2985,7 +2985,7 @@ void rct_peep::UpdateRideShopApproach() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -3057,7 +3057,7 @@ void rct_peep::UpdateRideShopLeave() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); actionX = x & 0xFFE0; @@ -3294,7 +3294,7 @@ void rct_peep::UpdateWalking() { Invalidate(); water_height *= 16; - sprite_move(x, y, water_height, (rct_sprite *)this); + MoveTo(x, y, water_height); Invalidate(); SetState(PEEP_STATE_FALLING); @@ -3583,7 +3583,7 @@ void rct_peep::UpdateEnteringPark() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } @@ -3619,7 +3619,7 @@ void rct_peep::UpdateLeavingPark() if (UpdateAction(&actionX, &actionY, &xy_distance)) { Invalidate(); - sprite_move(actionX, actionY, z, (rct_sprite *)this); + MoveTo(actionX, actionY, z); Invalidate(); return; } diff --git a/src/openrct2/peep/Peep.cpp b/src/openrct2/peep/Peep.cpp index 70f2e37d50..8ee4caceac 100644 --- a/src/openrct2/peep/Peep.cpp +++ b/src/openrct2/peep/Peep.cpp @@ -395,6 +395,11 @@ void rct_peep::Invalidate() invalidate_sprite_2((rct_sprite*)this); } +void rct_peep::MoveTo(sint16 destX, sint16 destY, sint16 destZ) +{ + sprite_move(destX, destY, destZ, (rct_sprite*)this); +} + rct_peep * try_get_guest(uint16 spriteIndex) { rct_sprite * sprite = try_get_sprite(spriteIndex); @@ -2192,7 +2197,7 @@ void rct_peep::UpdateFalling() { // Looks like we are drowning! Invalidate(); - sprite_move(x, y, height, (rct_sprite *)this); + MoveTo(x, y, height); // Drop balloon if held peep_release_balloon(this, height); @@ -2229,13 +2234,13 @@ void rct_peep::UpdateFalling() Remove(); return; } - sprite_move(x, y, z - 2, (rct_sprite *)this); + MoveTo(x, y, z - 2); Invalidate(); return; } Invalidate(); - sprite_move(x, y, saved_height, (rct_sprite *)this); + MoveTo(x, y, saved_height); Invalidate(); next_x = x & 0xFFE0; @@ -4345,7 +4350,7 @@ sint32 rct_peep::PerformNextAction(uint8 & pathing_result, rct_tile_element * & { sint16 height = GetZOnSlope(actionX, actionY); Invalidate(); - sprite_move(actionX, actionY, height, (rct_sprite *)this); + MoveTo(actionX, actionY, height); Invalidate(); return 1; } @@ -4431,7 +4436,7 @@ sint32 rct_peep::PerformNextAction(uint8 & pathing_result, rct_tile_element * & height = GetZOnSlope(actionX, actionY); Invalidate(); - sprite_move(actionX, actionY, height, (rct_sprite *)this); + MoveTo(actionX, actionY, height); Invalidate(); return 1; } diff --git a/src/openrct2/peep/Peep.h b/src/openrct2/peep/Peep.h index be5f7e4e11..1940ca32f7 100644 --- a/src/openrct2/peep/Peep.h +++ b/src/openrct2/peep/Peep.h @@ -701,6 +701,7 @@ struct rct_peep bool HasDrink() const; bool HasEmptyContainer() const; bool HeadingForRideOrParkExit() const; + void MoveTo(sint16 destX, sint16 destY, sint16 destZ); private: void UpdateFalling(); void Update1(); diff --git a/src/openrct2/peep/Staff.cpp b/src/openrct2/peep/Staff.cpp index 5e34fa9573..3dcb47ec1b 100644 --- a/src/openrct2/peep/Staff.cpp +++ b/src/openrct2/peep/Staff.cpp @@ -1656,7 +1656,7 @@ void rct_peep::UpdateMowing() if (UpdateAction(&actionX, &actionY, &xy_distance)) { sint16 checkZ = tile_element_height(actionX, actionY) & 0xFFFF; - sprite_move(actionX, actionY, checkZ, (rct_sprite *)this); + MoveTo(actionX, actionY, checkZ); Invalidate(); return; } @@ -1866,7 +1866,7 @@ void rct_peep::UpdateSweeping() if (UpdateAction(&actionX, &actionY, &xy_distance)) { sint16 actionZ = GetZOnSlope(actionX, actionY); - sprite_move(actionX, actionY, actionZ, (rct_sprite *)this); + MoveTo(actionX, actionY, actionZ); Invalidate(); return; } @@ -1993,7 +1993,7 @@ void rct_peep::UpdateHeadingToInspect() newZ += RideData5[ride->type].z; } - sprite_move(actionX, actionY, newZ, (rct_sprite *)this); + MoveTo(actionX, actionY, newZ); Invalidate(); } @@ -2112,7 +2112,7 @@ void rct_peep::UpdateAnswering() newZ += RideData5[ride->type].z; } - sprite_move(actionX, actionY, newZ, (rct_sprite *)this); + MoveTo(actionX, actionY, newZ); Invalidate(); } @@ -2350,7 +2350,7 @@ void rct_peep::UpdatePatrolling() { Invalidate(); water_height *= 16; - sprite_move(x, y, water_height, (rct_sprite *)this); + MoveTo(x, y, water_height); Invalidate(); SetState(PEEP_STATE_FALLING);