diff --git a/src/object/SmallSceneryObject.cpp b/src/object/SmallSceneryObject.cpp index 9c97b08bd5..6c39059b79 100644 --- a/src/object/SmallSceneryObject.cpp +++ b/src/object/SmallSceneryObject.cpp @@ -43,7 +43,7 @@ void SmallSceneryObject::ReadLegacy(IReadObjectContext * context, IStream * stre _legacyType.small_scenery.tool_id = stream->ReadValue(); _legacyType.small_scenery.price = stream->ReadValue(); _legacyType.small_scenery.removal_price = stream->ReadValue(); - _legacyType.small_scenery.var_10 = stream->ReadValue(); + stream->Seek(4, STREAM_SEEK_CURRENT); _legacyType.small_scenery.var_14 = stream->ReadValue(); _legacyType.small_scenery.var_16 = stream->ReadValue(); _legacyType.small_scenery.var_18 = stream->ReadValue(); @@ -93,7 +93,7 @@ void SmallSceneryObject::Load() if (_legacyType.small_scenery.flags & SMALL_SCENERY_FLAG16) { - _legacyType.small_scenery.var_10 = (uint32)_var10data; + _legacyType.small_scenery.var_10 = _var10data; } } diff --git a/src/paint/map_element/scenery.c b/src/paint/map_element/scenery.c index 474a39a66c..4c625e7cdd 100644 --- a/src/paint/map_element/scenery.c +++ b/src/paint/map_element/scenery.c @@ -230,7 +230,7 @@ void scenery_paint(uint8 direction, int height, rct_map_element* mapElement) { esi &= entry->small_scenery.var_16; int image_id = 0; if (esi < entry->small_scenery.var_18) { - image_id = ((uint8*)entry->small_scenery.var_10)[esi]; + image_id = entry->small_scenery.var_10[esi]; } image_id = (image_id * 4) + direction + entry->image; if (entry->small_scenery.flags & (SMALL_SCENERY_FLAG21 | SMALL_SCENERY_FLAG17)) { diff --git a/src/world/scenery.h b/src/world/scenery.h index 5914e695b8..6e95c654a8 100644 --- a/src/world/scenery.h +++ b/src/world/scenery.h @@ -28,13 +28,15 @@ typedef struct rct_small_scenery_entry { uint8 tool_id; // 0x0B sint16 price; // 0x0C sint16 removal_price; // 0x0E - uint32 var_10; + uint8 *var_10; uint16 var_14; uint16 var_16; uint16 var_18; uint8 scenery_tab_id; // 0x1A } rct_small_scenery_entry; +#ifdef PLATFORM_32BIT assert_struct_size(rct_small_scenery_entry, 21); +#endif typedef enum { SMALL_SCENERY_FLAG_FULL_TILE = (1 << 0), // 0x1