1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-21 22:13:07 +01:00

refactor some of the track design place code

This commit is contained in:
Ted John
2016-04-28 19:43:20 +01:00
parent 68520765fc
commit e9935fee09
7 changed files with 203 additions and 285 deletions

View File

@@ -5494,3 +5494,25 @@ rct_map_element *map_get_track_element_at_with_direction_from_ride(int x, int y,
return NULL;
};
void map_offset_with_rotation(sint16 *x, sint16 *y, sint16 offsetX, sint16 offsetY, uint8 rotation)
{
switch (rotation & 3) {
case MAP_ELEMENT_DIRECTION_WEST:
*x += offsetX;
*y += offsetY;
break;
case MAP_ELEMENT_DIRECTION_NORTH:
*x += offsetY;
*y -= offsetX;
break;
case MAP_ELEMENT_DIRECTION_EAST:
*x -= offsetX;
*y -= offsetY;
break;
case MAP_ELEMENT_DIRECTION_SOUTH:
*x -= offsetY;
*y += offsetX;
break;
}
}

View File

@@ -425,6 +425,8 @@ bool map_large_scenery_get_origin(
int *outX, int *outY, int *outZ, rct_map_element** outElement
);
void map_offset_with_rotation(sint16 *x, sint16 *y, sint16 offsetX, sint16 offsetY, uint8 rotation);
rct_map_element *map_get_track_element_at(int x, int y, int z);
rct_map_element *map_get_track_element_at_of_type(int x, int y, int z, int trackType);
rct_map_element *map_get_track_element_at_of_type_seq(int x, int y, int z, int trackType, int sequence);