Skip to content

Commit

Permalink
Render selection grid for Map ownership on the water
Browse files Browse the repository at this point in the history
  • Loading branch information
Gymnasiast committed Jan 30, 2024
1 parent ceafb68 commit 5a3ae97
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 10 deletions.
2 changes: 1 addition & 1 deletion distribution/changelog.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
0.4.8 (in development)
------------------------------------------------------------------------
- Feature: [#21062] [Plugin] Add API for managing a guest's items.
- Improved: [#18632] Land ownership and construction rights are now shown on top of the water.
- Improved: [#18632, #21306] Land ownership and construction rights are now shown on top of the water.
- Improved: [#20951] Activate OpenRCT2 window after using native file dialog on macOS.
- Improved: [#21184] The construction marker for rides, paths and large scenery is now shown on top of the water.
- Improved: [#21227] Entrance style dropdown is now sorted alphabetically everywhere.
Expand Down
23 changes: 14 additions & 9 deletions src/openrct2-ui/windows/Map.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -430,24 +430,29 @@ class MapWindow final : public Window
{
MapInvalidateSelectionRect();
gMapSelectFlags &= ~MAP_SELECT_FLAG_ENABLE;
auto mapCoords = ScreenGetMapXY(screenCoords, nullptr);
if (!mapCoords.has_value())

auto info = GetMapCoordinatesFromPos(
screenCoords, EnumsToFlags(ViewportInteractionItem::Terrain, ViewportInteractionItem::Water));
if (info.SpriteType == ViewportInteractionItem::None)
return;

auto mapCoords = info.Loc;

gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE;
gMapSelectType = MAP_SELECT_TYPE_FULL;
gMapSelectType = MAP_SELECT_TYPE_FULL_LAND_RIGHTS;

int32_t landRightsToolSize = _landRightsToolSize;
if (landRightsToolSize == 0)
landRightsToolSize = 1;

int32_t size = (landRightsToolSize * 32) - 32;
int32_t radius = (landRightsToolSize * 16) - 16;
mapCoords->x = (mapCoords->x - radius) & 0xFFE0;
mapCoords->y = (mapCoords->y - radius) & 0xFFE0;
gMapSelectPositionA = *mapCoords;
gMapSelectPositionB.x = mapCoords->x + size;
gMapSelectPositionB.y = mapCoords->y + size;
mapCoords.x -= radius;
mapCoords.y -= radius;
mapCoords = mapCoords.ToTileStart();
gMapSelectPositionA = mapCoords;
gMapSelectPositionB.x = mapCoords.x + size;
gMapSelectPositionB.y = mapCoords.y + size;
MapInvalidateSelectionRect();
}

Expand Down Expand Up @@ -687,7 +692,7 @@ class MapWindow final : public Window

MapInvalidateSelectionRect();
gMapSelectFlags |= MAP_SELECT_FLAG_ENABLE;
gMapSelectType = MAP_SELECT_TYPE_FULL;
gMapSelectType = MAP_SELECT_TYPE_FULL_LAND_RIGHTS;
gMapSelectPositionA = mapCoords;
gMapSelectPositionB = mapCoords + CoordsXY{ size, size };
MapInvalidateSelectionRect();
Expand Down

0 comments on commit 5a3ae97

Please sign in to comment.