mirror of https://github.com/OpenRCT2/OpenRCT2.git
integrate variables for preview min, max
This commit is contained in:
parent
7c0d3a9077
commit
09bc083a69
|
@ -242,13 +242,6 @@
|
|||
// 8 x 8 in size.
|
||||
#define RCT2_ADDRESS_CHARACTER_BITMAP 0x00F4393C
|
||||
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_X_MIN 0x00F440F9
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_X_MAX 0x00F440FB
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN 0x00F440FD
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX 0x00F440FF
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN 0x00F44101
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX 0x00F44103
|
||||
|
||||
#define RCT2_ADDRESS_ABOVE_GROUND_FLAGS 0x00F441D4
|
||||
#define RCT2_ADDRESS_TRACK_LIST 0x00F441EC
|
||||
|
||||
|
@ -595,7 +588,14 @@
|
|||
#define RCT2_ADDRESS_CONSTRUCT_PATH_SLOPE 0x00F3EF91
|
||||
|
||||
#define RCT2_ADDRESS_CONSTRUCT_PATH_VALID_DIRECTIONS 0x00F3EF9E
|
||||
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_ROTATION 0x00F440AE
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_X_MIN 0x00F440F9
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_X_MAX 0x00F440FB
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN 0x00F440FD
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX 0x00F440FF
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN 0x00F44101
|
||||
#define RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX 0x00F44103
|
||||
#define RCT2_ADDRESS_TRACK_DESIGN_CACHE 0x00F44105
|
||||
#define RCT2_ADDRESS_TRACK_DESIGN_INDEX_CACHE 0x00F44109
|
||||
#define RCT2_ADDRESS_TRACK_DESIGN_NEXT_INDEX_CACHE 0x00F44119
|
||||
|
|
|
@ -25,6 +25,8 @@ rct_track_td6 *gActiveTrackDesign;
|
|||
money32 gTrackDesignCost;
|
||||
uint8 gTrackDesignPlaceFlags;
|
||||
bool gTrackDesignSceneryToggle;
|
||||
rct_xyz16 gTrackPreviewMin;
|
||||
rct_xyz16 gTrackPreviewMax;
|
||||
|
||||
static bool track_design_preview_backup_map();
|
||||
static void track_design_preview_restore_map();
|
||||
|
@ -484,29 +486,12 @@ static void track_add_selection_tile(sint16 x, sint16 y)
|
|||
|
||||
static void track_design_update_max_min_coordinates(sint16 x, sint16 y, sint16 z)
|
||||
{
|
||||
if (x < RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16) = x;
|
||||
}
|
||||
|
||||
if (x > RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) = x;
|
||||
}
|
||||
|
||||
if (y < RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16) = y;
|
||||
}
|
||||
|
||||
if (y > RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) = y;
|
||||
}
|
||||
|
||||
if (z < RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN, sint16) = z;
|
||||
}
|
||||
|
||||
if (z > RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX, sint16)){
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX, sint16) = z;
|
||||
}
|
||||
gTrackPreviewMin.x = min(gTrackPreviewMin.x, x);
|
||||
gTrackPreviewMax.x = max(gTrackPreviewMax.x, x);
|
||||
gTrackPreviewMin.y = min(gTrackPreviewMin.y, y);
|
||||
gTrackPreviewMax.y = max(gTrackPreviewMax.y, y);
|
||||
gTrackPreviewMin.z = min(gTrackPreviewMin.z, z);
|
||||
gTrackPreviewMax.z = max(gTrackPreviewMax.z, z);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1262,12 +1247,8 @@ int sub_6D01B3(rct_track_td6 *td6, uint8 bl, uint8 rideIndex, int x, int y, int
|
|||
}
|
||||
_currentRideIndex = rideIndex;
|
||||
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) = x;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) = y;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN, sint16) = z;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX, sint16) = z;
|
||||
gTrackPreviewMin = (rct_xyz16){ x, y, z };
|
||||
gTrackPreviewMax = (rct_xyz16){ x, y, z };
|
||||
|
||||
RCT2_GLOBAL(0x00F44129, uint16) = 0;
|
||||
uint8 track_place_success = 0;
|
||||
|
@ -1692,23 +1673,23 @@ void draw_track_preview(rct_track_td6 *td6, uint8** preview)
|
|||
rct_drawpixelinfo* dpi = RCT2_ADDRESS(0x9D8151, rct_drawpixelinfo);
|
||||
int left, top, right, bottom;
|
||||
|
||||
int center_x = (RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) + RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16)) / 2 + 16;
|
||||
int center_y = (RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) + RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16)) / 2 + 16;
|
||||
int center_z = (RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MIN, sint16) + RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Z_MAX, sint16)) / 2;
|
||||
int center_x = (gTrackPreviewMin.x + gTrackPreviewMax.x) / 2 + 16;
|
||||
int center_y = (gTrackPreviewMin.y + gTrackPreviewMax.y) / 2 + 16;
|
||||
int center_z = (gTrackPreviewMin.z + gTrackPreviewMax.z) / 2;
|
||||
|
||||
int width = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) - RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16);
|
||||
int height = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) - RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16);
|
||||
|
||||
if (width < height)
|
||||
int width = gTrackPreviewMax.x - gTrackPreviewMin.x;
|
||||
int height = gTrackPreviewMax.y - gTrackPreviewMin.y;
|
||||
if (width < height) {
|
||||
width = height;
|
||||
}
|
||||
|
||||
int zoom_level = 1;
|
||||
|
||||
if (width > 1120)
|
||||
if (width > 1120) {
|
||||
zoom_level = 2;
|
||||
|
||||
if (width > 2240)
|
||||
}
|
||||
if (width > 2240) {
|
||||
zoom_level = 3;
|
||||
}
|
||||
|
||||
width = 370 << zoom_level;
|
||||
height = 217 << zoom_level;
|
||||
|
|
|
@ -161,6 +161,8 @@ extern rct_track_td6 *gActiveTrackDesign;
|
|||
extern money32 gTrackDesignCost;
|
||||
extern uint8 gTrackDesignPlaceFlags;
|
||||
extern bool gTrackDesignSceneryToggle;
|
||||
extern rct_xyz16 gTrackPreviewMin;
|
||||
extern rct_xyz16 gTrackPreviewMax;
|
||||
|
||||
rct_track_design *temp_track_get_info(char* path, uint8** preview);
|
||||
void track_design_mirror(rct_track_td6 *td6);
|
||||
|
|
|
@ -926,19 +926,8 @@ static bool track_design_save_to_td6_for_maze(uint8 rideIndex, rct_track_td6 *td
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF9;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF7;
|
||||
|
||||
x = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) -
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16);
|
||||
|
||||
y = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) -
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16);
|
||||
|
||||
x /= 32;
|
||||
y /= 32;
|
||||
x++;
|
||||
y++;
|
||||
|
||||
td6->space_required_x = (uint8)x;
|
||||
td6->space_required_y = (uint8)y;
|
||||
td6->space_required_x = ((gTrackPreviewMax.x - gTrackPreviewMin.x) / 32) + 1;
|
||||
td6->space_required_y = ((gTrackPreviewMax.y - gTrackPreviewMin.y) / 32) + 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -1177,19 +1166,8 @@ static bool track_design_save_to_td6_for_tracked_ride(uint8 rideIndex, rct_track
|
|||
RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF9;
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_MAP_SELECTION_FLAGS, sint16) &= 0xFFF7;
|
||||
|
||||
int x = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MAX, sint16) -
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_X_MIN, sint16);
|
||||
|
||||
int y = RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MAX, sint16) -
|
||||
RCT2_GLOBAL(RCT2_ADDRESS_TRACK_PREVIEW_Y_MIN, sint16);
|
||||
|
||||
x /= 32;
|
||||
y /= 32;
|
||||
x++;
|
||||
y++;
|
||||
|
||||
td6->space_required_x = x;
|
||||
td6->space_required_y = y;
|
||||
td6->space_required_x = ((gTrackPreviewMax.x - gTrackPreviewMin.x) / 32) + 1;
|
||||
td6->space_required_y = ((gTrackPreviewMax.y - gTrackPreviewMin.y) / 32) + 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue