mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-17 20:13:07 +01:00
Add MoveTo function
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user