mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2025-12-24 00:03:11 +01:00
16
src/editor.c
16
src/editor.c
@@ -932,18 +932,18 @@ static int editor_read_s6(const char *path)
|
||||
w->saved_view_x = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_X, sint16);
|
||||
w->saved_view_y = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_Y, sint16);
|
||||
|
||||
int zoom_difference = (RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_ZOOM_AND_ROTATION, sint16) & 0xFF) - viewport->zoom;
|
||||
viewport->zoom = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_ZOOM_AND_ROTATION, uint16) & 0xFF;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_CURRENT_ROTATION, uint8) = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_ZOOM_AND_ROTATION, uint16) >> 8;
|
||||
|
||||
int cx = RCT2_GLOBAL(RCT2_ADDRESS_SAVED_VIEW_ZOOM_AND_ROTATION, sint16) - viewport->zoom;
|
||||
if (cx != 0) {
|
||||
if (cx >= 0) {
|
||||
viewport->view_width <<= cx;
|
||||
viewport->view_height <<= cx;
|
||||
if (zoom_difference != 0) {
|
||||
if (zoom_difference >= 0) {
|
||||
viewport->view_width <<= zoom_difference;
|
||||
viewport->view_height <<= zoom_difference;
|
||||
} else {
|
||||
cx = -cx;
|
||||
viewport->view_width >>= cx;
|
||||
viewport->view_height >>= cx;
|
||||
zoom_difference = -zoom_difference;
|
||||
viewport->view_width >>= zoom_difference;
|
||||
viewport->view_height >>= zoom_difference;
|
||||
}
|
||||
}
|
||||
w->saved_view_x -= viewport->view_width >> 1;
|
||||
|
||||
@@ -163,10 +163,14 @@ int sawyercoding_write_chunk_buffer(uint8 *dst_file, uint8* buffer, sawyercoding
|
||||
free(encode_buffer);
|
||||
break;
|
||||
case CHUNK_ENCODING_ROTATE:
|
||||
encode_chunk_rotate(buffer, chunkHeader.length);
|
||||
encode_buffer = malloc(chunkHeader.length);
|
||||
memcpy(encode_buffer, buffer, chunkHeader.length);
|
||||
encode_chunk_rotate(encode_buffer, chunkHeader.length);
|
||||
memcpy(dst_file, &chunkHeader, sizeof(sawyercoding_chunk_header));
|
||||
dst_file += sizeof(sawyercoding_chunk_header);
|
||||
memcpy(dst_file, buffer, chunkHeader.length);
|
||||
memcpy(dst_file, encode_buffer, chunkHeader.length);
|
||||
|
||||
free(encode_buffer);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user