Refactor paint twist to use ImageId

This commit is contained in:
Ted John 2021-12-04 17:51:02 +00:00
parent c01049a500
commit a8505dc689
1 changed files with 13 additions and 14 deletions

View File

@ -33,7 +33,6 @@ static void paint_twist_structure(
}
height += 7;
uint32_t baseImageId = rideEntry->vehicles[0].base_image_id;
if (ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK && ride->vehicles[0] != SPRITE_INDEX_NULL)
{
@ -51,28 +50,28 @@ static void paint_twist_structure(
frameNum = frameNum % 216;
}
uint32_t imageColourFlags = session->TrackColours[SCHEME_MISC];
if (imageColourFlags == IMAGE_TYPE_REMAP)
auto imageFlags = session->TrackColours[SCHEME_MISC];
auto imageTemplate = ImageId(0, ride->vehicle_colours[0].Body, ride->vehicle_colours[0].Trim);
if (imageFlags != IMAGE_TYPE_REMAP)
{
imageColourFlags = SPRITE_ID_PALETTE_COLOUR_2(ride->vehicle_colours[0].Body, ride->vehicle_colours[0].Trim);
imageTemplate = ImageId::FromUInt32(imageFlags);
}
uint32_t structureFrameNum = frameNum % 24;
uint32_t imageId = (baseImageId + structureFrameNum) | imageColourFlags;
auto baseImageId = rideEntry->vehicles[0].base_image_id;
auto structureFrameNum = frameNum % 24;
auto imageId = imageTemplate.WithIndex(baseImageId + structureFrameNum);
PaintAddImageAsParent(
session, imageId, { xOffset, yOffset, height }, { 24, 24, 48 }, { xOffset + 16, yOffset + 16, height });
rct_drawpixelinfo* dpi = &session->DPI;
if (dpi->zoom_level < ZoomLevel{ 1 } && ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK && vehicle != nullptr)
if (session->DPI.zoom_level < ZoomLevel{ 1 } && ride->lifecycle_flags & RIDE_LIFECYCLE_ON_TRACK && vehicle != nullptr)
{
for (int32_t i = 0; i < vehicle->num_peeps; i += 2)
{
imageColourFlags = SPRITE_ID_PALETTE_COLOUR_2(vehicle->peep_tshirt_colours[i], vehicle->peep_tshirt_colours[i + 1]);
uint32_t peepFrameNum = (frameNum + i * 12) % 216;
imageId = (baseImageId + 24 + peepFrameNum) | imageColourFlags;
PaintAddImageAsChild(session, imageId, xOffset, yOffset, 24, 24, 48, height, xOffset + 16, yOffset + 16, height);
imageTemplate = ImageId(0, vehicle->peep_tshirt_colours[i], vehicle->peep_tshirt_colours[i + 1]);
auto peepFrameNum = (frameNum + i * 12) % 216;
imageId = imageId.WithIndex(baseImageId + 24 + peepFrameNum);
PaintAddImageAsChild(
session, imageId, { xOffset, yOffset, height }, { 24, 24, 48 }, { xOffset + 16, yOffset + 16, height });
}
}