From 5b1c867f23280ec0c2b294e77dd49a2f45b65186 Mon Sep 17 00:00:00 2001 From: Aaron van Geffen Date: Sat, 3 Aug 2024 20:44:12 +0200 Subject: [PATCH] Add bulldozer cursor for clear scenery tool --- distribution/changelog.txt | 1 + src/openrct2-ui/CursorData.cpp | 36 ++++++++++++++++++++++++ src/openrct2-ui/windows/ClearScenery.cpp | 2 +- src/openrct2/interface/Cursors.h | 1 + src/openrct2/interface/Window.h | 1 + 5 files changed, 40 insertions(+), 1 deletion(-) diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 135f8da560..62a9fa8660 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -1,6 +1,7 @@ 0.4.14 (in development) ------------------------------------------------------------------------ - Change: [#21659] Increase the Hybrid Roller Coaster’s maximum lift speed to 17 km/h (11 mph). +- Change: [#22466] The Clear Scenery tool now uses a bulldozer cursor instead of a generic crosshair. 0.4.13 (2024-08-04) ------------------------------------------------------------------------ diff --git a/src/openrct2-ui/CursorData.cpp b/src/openrct2-ui/CursorData.cpp index 9add2b71e3..c06f6b84bd 100644 --- a/src/openrct2-ui/CursorData.cpp +++ b/src/openrct2-ui/CursorData.cpp @@ -912,6 +912,41 @@ namespace OpenRCT2::Ui " XX.........XX " " XXXXXXXXXX "); + static constexpr CursorData kBulldozerCursorData = cursorFromBitMap( + 6, 31, + " XXX " + " XX...X " + " XX....X " + " X..XX.X " + " X..X X XXXXXXX " + " XXX X.......X " + " XX X.X X.XXX.X.X " + " X.X XXX.XXXXXXXX.XXX.X.X " + " X.X X...........X.XXX.X.X " + " X.X X.XXXXXX....X.XXX.X.X " + " X.X X.XX.X......X.......X " + " X.XXXXXXXXXXX..XXXX......X " + " X.X..........X...........X " + " X.X....XXXXXXXXXXX.XX.XXX " + " X.XXXXX..X..X..X..X..X..XX " + " X.X X.XX.XX.XX.XX.XX.XX.X " + " X.X X.XX.XX.XX.XX.XX.XX.X " + " XX.X X..X..X..X..X..X..X " + "X..X XXXXXXXXXXXXXXXXX " + " XX XXXXX " + " X...X " + " X...X " + " X...X " + " X...X " + " X...X " + "XXXXX...XXXXX " + " X.........X " + " X.......X " + " X.....X " + " X...X " + " X.X " + " X "); + static constexpr const CursorData* RawCursorData[] = { nullptr, // CursorID::Arrow &kBlankCursorData, // CursorID::Blank @@ -940,6 +975,7 @@ namespace OpenRCT2::Ui &kEntranceDownCursorData, // CursorID::EntranceDown &kHandOpenDownCursorData, // CursorID::HandOpen &kHandClosedDownCursorData, // CursorID::HandClosed + &kBulldozerCursorData, // CursorID::Bulldozer }; const CursorData* getCursorData(CursorID cursorId) diff --git a/src/openrct2-ui/windows/ClearScenery.cpp b/src/openrct2-ui/windows/ClearScenery.cpp index 1a164f8bc9..6a7ddd307d 100644 --- a/src/openrct2-ui/windows/ClearScenery.cpp +++ b/src/openrct2-ui/windows/ClearScenery.cpp @@ -409,7 +409,7 @@ namespace OpenRCT2::Ui::Windows { ShowGridlines(); auto* toolWindow = ContextOpenWindow(WindowClass::ClearScenery); - ToolSet(*toolWindow, WIDX_BACKGROUND, Tool::Crosshair); + ToolSet(*toolWindow, WIDX_BACKGROUND, Tool::Bulldozer); InputSetFlag(INPUT_FLAG_6, true); } } diff --git a/src/openrct2/interface/Cursors.h b/src/openrct2/interface/Cursors.h index 4915f47e79..b848810ec9 100644 --- a/src/openrct2/interface/Cursors.h +++ b/src/openrct2/interface/Cursors.h @@ -41,6 +41,7 @@ enum class CursorID : uint8_t EntranceDown, HandOpen, HandClosed, + Bulldozer, Count, Undefined = 0xFF diff --git a/src/openrct2/interface/Window.h b/src/openrct2/interface/Window.h index 77046016d4..91585de122 100644 --- a/src/openrct2/interface/Window.h +++ b/src/openrct2/interface/Window.h @@ -470,6 +470,7 @@ enum class Tool WalkDown = 22, PaintDown = 23, EntranceDown = 24, + Bulldozer = 27, }; using modal_callback = void (*)(int32_t result);