mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-06 06:32:56 +01:00
Make use of ride preview images clearer and more future-proof
This commit is contained in:
@@ -863,13 +863,17 @@ static void window_new_ride_scrollpaint(rct_window *w, rct_drawpixelinfo *dpi, s
|
||||
|
||||
// Draw ride image with feathered border
|
||||
rideEntry = get_ride_entry(listItem->entry_index);
|
||||
sint32 image_id = rideEntry->images_offset;
|
||||
if (listItem->type != rideEntry->ride_type[0]) {
|
||||
image_id++;
|
||||
if (listItem->type != rideEntry->ride_type[1])
|
||||
image_id++;
|
||||
sint32 imageId = rideEntry->images_offset;
|
||||
|
||||
for (size_t i = 0; i < MAX_RIDE_TYPES_PER_RIDE_ENTRY; i++)
|
||||
{
|
||||
if (rideEntry->ride_type[i] == listItem->type)
|
||||
break;
|
||||
else
|
||||
imageId++;
|
||||
}
|
||||
gfx_draw_sprite_raw_masked(dpi, x + 2, y + 2, SPR_NEW_RIDE_MASK, image_id);
|
||||
|
||||
gfx_draw_sprite_raw_masked(dpi, x + 2, y + 2, SPR_NEW_RIDE_MASK, imageId);
|
||||
|
||||
// Next position
|
||||
x += 116;
|
||||
|
||||
@@ -134,7 +134,7 @@ void RideObject::Load()
|
||||
_legacyType.images_offset = gfx_object_allocate_images(GetImageTable()->GetImages(), GetImageTable()->GetCount());
|
||||
_legacyType.vehicle_preset_list = &_presetColours;
|
||||
|
||||
sint32 cur_vehicle_images_offset = _legacyType.images_offset + 3;
|
||||
sint32 cur_vehicle_images_offset = _legacyType.images_offset + MAX_RIDE_TYPES_PER_RIDE_ENTRY;
|
||||
for (sint32 i = 0; i < RCT2_MAX_VEHICLES_PER_RIDE_ENTRY; i++)
|
||||
{
|
||||
rct_ride_entry_vehicle * vehicleEntry = &_legacyType.vehicles[i];
|
||||
@@ -324,14 +324,15 @@ void RideObject::Unload()
|
||||
void RideObject::DrawPreview(rct_drawpixelinfo * dpi, sint32 width, sint32 height) const
|
||||
{
|
||||
uint32 imageId = _legacyType.images_offset;
|
||||
if (_legacyType.ride_type[0] == 0xFF)
|
||||
|
||||
for (size_t i = 0; i < MAX_RIDE_TYPES_PER_RIDE_ENTRY; i++)
|
||||
{
|
||||
imageId++;
|
||||
if (_legacyType.ride_type[1] == 0xFF)
|
||||
{
|
||||
if (_legacyType.ride_type[i] != RIDE_TYPE_NULL)
|
||||
break;
|
||||
else
|
||||
imageId++;
|
||||
}
|
||||
}
|
||||
|
||||
gfx_draw_sprite(dpi, imageId, 0, 0, 0);
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,7 @@ assert_struct_size(rct_ride_name, 4);
|
||||
*/
|
||||
typedef struct rct_ride_entry {
|
||||
rct_ride_name naming;
|
||||
uint32 images_offset; // 0x004
|
||||
uint32 images_offset; // 0x004. The first three images are previews. They correspond to the ride_type[] array.
|
||||
uint32 flags; // 0x008
|
||||
uint8 ride_type[RCT2_MAX_RIDE_TYPES_PER_RIDE_ENTRY];// 0x00C
|
||||
uint8 min_cars_in_train; // 0x00F
|
||||
|
||||
Reference in New Issue
Block a user