From cfb28cd5117ea76f57307560e9d50c60bfec46d6 Mon Sep 17 00:00:00 2001 From: Michael Steenbeek <1478678+Gymnasiast@users.noreply.github.com> Date: Thu, 30 Jan 2025 23:02:36 +0100 Subject: [PATCH] Turn Rotate View dropdown into two buttons Co-authored-by: Gymnasiast Co-authored-by: MasterTomNL --- data/language/en-GB.txt | 1 + distribution/changelog.txt | 1 + .../g2/icons/rotate_view_anti-clockwise.png | Bin 0 -> 4933 bytes resources/g2/sprites.json | 3 + src/openrct2-ui/UiStringIds.h | 1 + src/openrct2-ui/windows/Options.cpp | 26 ++++-- src/openrct2-ui/windows/TopToolbar.cpp | 88 ++++++++---------- src/openrct2/config/Config.cpp | 2 + src/openrct2/config/Config.h | 1 + src/openrct2/sprites.h | 3 +- 10 files changed, 66 insertions(+), 60 deletions(-) create mode 100644 resources/g2/icons/rotate_view_anti-clockwise.png diff --git a/data/language/en-GB.txt b/data/language/en-GB.txt index 7bc26d4c2c..2f9f6b2840 100644 --- a/data/language/en-GB.txt +++ b/data/language/en-GB.txt @@ -3794,3 +3794,4 @@ STR_6728 :Dive Loop (right) STR_6729 :Cable lift hill must start immediately after station or block brake STR_6730 :Export emscripten data STR_6731 :Import emscripten data +STR_6732 :Show a button in the toolbar to rotate the view anti-clockwise diff --git a/distribution/changelog.txt b/distribution/changelog.txt index 8d7e9e706d..f1dcb495dc 100644 --- a/distribution/changelog.txt +++ b/distribution/changelog.txt @@ -7,6 +7,7 @@ - Improved: [#23540] The file browser now optionally shows a file size column. - Improved: [#23640] Building sprite repository with command line can use images array of JSON parkobj. - Improved: [#23660] The ‘special elements’ dropdown has been reorganised, now using multiple columns and separators. +- Improved: [#23730] Added optional button to toolbar to rotate view anti-clockwise. - Change: [#23328] All RCT2 entertainer costumes are now available in legacy parks. - Fix: [#1479] Incorrect values provided by the in game console “get location” command. - Fix: [#21794] Lay-down coaster cars reverse on first frames of downwards corkscrew. diff --git a/resources/g2/icons/rotate_view_anti-clockwise.png b/resources/g2/icons/rotate_view_anti-clockwise.png new file mode 100644 index 0000000000000000000000000000000000000000..ce13b23d8531d01fbb25f0a1823bfb391daf6e43 GIT binary patch literal 4933 zcmeHLeNaNQ5vUE!;3TpNyAi}gWJI-wXBa`I4 zd+zW2?m546?w!2sO%G7mf*{|-gxC~tT>w7wJ!gRL_H`k{;Bs+mYKA!lwNQ;F zLao)|RCB%&r{Y$v8iK6f=##VFxkR1$qJPe!ol!fC3pYRhz2N(2@5ziGo}ZbtA$;*8 zt2p$LI=bibvBZITwY%lt5gq%U%ny_HmE8^6U&KGWal=aA{fECj)p4RK_nGJFn3jjM zcZU;nIY-IwS}XiVV!qygyTJ1&f7*|3yZ*KZ?qCg!>>g-gT()qOnO(2`Q@MtKM`kTv zC`y-;o)8qwjt-1i9?eN~Ot(Qt9ht zKnjPp?H4CBCC}L{R~$=W%u4gmYf1j($x+%z_1j0x7Vtd&kp3? z{s8&jJ9HI$4|OZ94k8bf@6v3$s}S5=U#`g?ewn##^EKrT`MVz>O()+W{M&SCzSl-C zqiN+IJRl!OZ57?(OzT0@LDD!&9o|?V%FODlN?90u3 z_~n&MMrX$3!!LFpIdtL7S9!mwPS`j*X&-fEjPH{2wQ=QJKAGdQOjKI%tT@CL%i6te z3ELF@sjKgqUW&b_`)vIWiZVmW(phHPt*6cN{cpJ+%wO&hiBd{54kE&YU$rO%pEx%&NlkEb>8`F{k7Z?=re8F z)!?2U|M_t8)AP-Z1)~0^ggj@vL~b(u=}gA)?V#zbTF_h>vehDt(6dk#p~P8My%BUB z1Vu@#Mik4z%~U0>(Hg|G!A2X6s#S?;>3kVmW|ZQav0mLW@~N(mEA<*|4yHZ#tu-NK>0?@f&| zsnnvB*j3{cU?iq(GMkMe7`9j}EDM)Km^3gV6bfNB2j*~?0Kp{l4QABJG>~)$#TZ8{ zPGTml(X1s5R0k)jB=XE+8V$@-U&p66%48Gt269{lpa*P4jWEJu!+JeD*@HC4Z2=_X z0sW!}nF{tOoPv`?o(aR_w%`UceKLg#oA5X0nRL!{R2Yowa6N#MU{z$wlJSYMNjFdiOn(NOlNW+zLy3!pi%)U)e1h2U^vEP zBRoKb@Rdv@FM`cft5pIaTZjtS5tx%og^5-XCOrzusnw$z95xy>&IyO$qL}1FF^$6- zTh(bv)}dxKa1hg0YYlnUH_%kA9#@!Ahnk3h8^K0693hv_M|cSD4JZvak)RVDoCur6 zUE!Q@ltl!R0m7n=J_Q6$JIF;OHQ}h4Fr^ZNPE2zIKy`RdOv}J_QlVxv7B%C5l+EFb z*ocTDNab)u2qNNg8DPksgeO#5b^iZCJ2nqBYOLf5S`w_E?=+3=CFRCbb3n=PmbkI?`ffmWbBomx?sIt#UID%!FMcT@og20DcKbHU*8 zgki^-@jBxu_-C3#IRTRn8Q?c&1BVwl3*m{wa9lITvGXgw#%u8_t^lZ~7kMjvr{$WK z>#Y=cEAVu8P0RIG3cM9~y1V{wa(TaboWc#@SC9ofEIl8&^Adtw=OwRBjROx{E-o&v zuC6m?%y4sab9Z<5@bI8eD4w34US3{-bUK~Og{4x7LXm`FStLmm6%|!fRMpirG&Qw% zbqx*;abZXj3CWXuva$klazZTyaB)dwMWwu^F1yi2wzidY_f|_8l=Mg+A}O#iJ+u@H zt0K8)i=?)S^wv6}tGT$pt9p2_DLxp=Wm34$&0jFR-o8cfr9%)2 zL8TB>3qj2g)JuWv;4PQh3rKrywY{tJz3_n$M`xH*)+nIpzFXigAIL?S6dw!iaSurV z121DjCZO;MaC}^#gNNn=BgLF3i=#Yp37+e-_=k$q{{W`u#MqeBrHZ^8_h;>_w`{L+7p1*tc=ECgqwVglhqICv!h;AHQ)R#9`{W-;@oJ9LBotYiToolbarShowMute = reader->GetBoolean("toolbar_show_mute", false); model->ToolbarShowChat = reader->GetBoolean("toolbar_show_chat", false); model->ToolbarShowZoom = reader->GetBoolean("toolbar_show_zoom", true); + model->ToolbarShowRotateAnticlockwise = reader->GetBoolean("toolbar_show_rotate_anti_clockwise", false); model->ConsoleSmallFont = reader->GetBoolean("console_small_font", false); model->CurrentThemePreset = reader->GetString("current_theme", "*RCT2"); model->CurrentTitleSequencePreset = reader->GetString("current_title_sequence", "*OPENRCT2"); @@ -388,6 +389,7 @@ namespace OpenRCT2::Config writer->WriteBoolean("toolbar_show_mute", model->ToolbarShowMute); writer->WriteBoolean("toolbar_show_chat", model->ToolbarShowChat); writer->WriteBoolean("toolbar_show_zoom", model->ToolbarShowZoom); + writer->WriteBoolean("toolbar_show_rotate_anti_clockwise", model->ToolbarShowRotateAnticlockwise); writer->WriteBoolean("console_small_font", model->ConsoleSmallFont); writer->WriteString("current_theme", model->CurrentThemePreset); writer->WriteString("current_title_sequence", model->CurrentTitleSequencePreset); diff --git a/src/openrct2/config/Config.h b/src/openrct2/config/Config.h index ad9c1eda9f..399bb38702 100644 --- a/src/openrct2/config/Config.h +++ b/src/openrct2/config/Config.h @@ -133,6 +133,7 @@ namespace OpenRCT2::Config bool ToolbarShowMute; bool ToolbarShowChat; bool ToolbarShowZoom; + bool ToolbarShowRotateAnticlockwise; bool ConsoleSmallFont; bool RandomTitleSequence; u8string CurrentThemePreset; diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index cf2b2e6b37..9c1e7b5777 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -1698,8 +1698,9 @@ enum : ImageIndex SPR_G2_CORKSCREW_BOOSTER_NE_SW_2, SPR_G2_CORKSCREW_BOOSTER_NW_SE_2, SPR_G2_OPAQUE_WATER_OVERLAY, + SPR_G2_ICON_ROTATE_ANTI_CLOCKWISE = SPR_G2_OPAQUE_WATER_OVERLAY + 5, - SPR_G2_END = SPR_G2_OPAQUE_WATER_OVERLAY + 5, + SPR_G2_END, SPR_CSG_BEGIN = SPR_G2_END, SPR_CSG_END = SPR_CSG_BEGIN + OpenRCT2::RCT1::Limits::kNumLLCsgEntries,