diff --git a/src/openrct2/windows/tile_inspector.c b/src/openrct2/windows/tile_inspector.c index c77ea68bcf..0b3f44151f 100644 --- a/src/openrct2/windows/tile_inspector.c +++ b/src/openrct2/windows/tile_inspector.c @@ -694,23 +694,16 @@ static void window_tile_inspector_copy_element(rct_window *w) static void window_tile_inspector_paste_element(rct_window *w) { // Construct the data to send using the surface's properties - sint32 bytes[2] = { 0 }; - bytes[0] |= tileInspectorCopiedElement.type << 24; - bytes[0] |= tileInspectorCopiedElement.flags << 16; - bytes[0] |= tileInspectorCopiedElement.base_height << 8; - bytes[0] |= tileInspectorCopiedElement.clearance_height; - bytes[1] |= tileInspectorCopiedElement.properties.surface.slope << 24; - bytes[1] |= tileInspectorCopiedElement.properties.surface.terrain << 16; - bytes[1] |= tileInspectorCopiedElement.properties.surface.grass_length << 8; - bytes[1] |= tileInspectorCopiedElement.properties.surface.ownership; + sint32 data[2]; + memcpy(&data[0], &tileInspectorCopiedElement, 8); game_do_command( TILE_INSPECTOR_ANY_PASTE, GAME_COMMAND_FLAG_APPLY, windowTileInspectorTileX | (windowTileInspectorTileY << 8), - bytes[0], + data[0], GAME_COMMAND_MODIFY_TILE, - bytes[1], + data[1], 0 ); } diff --git a/src/openrct2/world/map.c b/src/openrct2/world/map.c index db34fb48c2..f7a8a6ec3b 100644 --- a/src/openrct2/world/map.c +++ b/src/openrct2/world/map.c @@ -5642,14 +5642,8 @@ void game_command_modify_tile(sint32* eax, sint32* ebx, sint32* ecx, sint32* edx case TILE_INSPECTOR_ANY_PASTE: { rct_map_element element_to_paste; - element_to_paste.type = *edx >> 24; - element_to_paste.flags = *edx >> 16; - element_to_paste.base_height = *edx >> 8; - element_to_paste.clearance_height = *edx; - element_to_paste.properties.surface.slope = *edi >> 24; - element_to_paste.properties.surface.terrain = *edi >> 16; - element_to_paste.properties.surface.grass_length = *edi >> 8; - element_to_paste.properties.surface.ownership = *edi; + sint32 data[] = { *edx, *edi }; + memcpy(&element_to_paste, data, 8); *ebx = tile_inspector_paste_element_at(x, y, element_to_paste, flags); return; }