diff --git a/src/openrct2-ui/windows/ViewClipping.cpp b/src/openrct2-ui/windows/ViewClipping.cpp index ef0d668230..c3d9aacfe2 100644 --- a/src/openrct2-ui/windows/ViewClipping.cpp +++ b/src/openrct2-ui/windows/ViewClipping.cpp @@ -115,8 +115,9 @@ private: CoordsXY _selectionStart; CoordsXY _previousClipSelectionA; CoordsXY _previousClipSelectionB; - bool _toolActive; - bool _dragging; + bool _toolActive{ false }; + bool _dragging{ false }; + public: void OnCloseButton() { @@ -384,6 +385,14 @@ public: return { 1000, 0 }; } + void SetClipHeight(const uint8_t clipheight) + { + gClipHeight = clipheight; + rct_widget* widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER]; + const float clip_height_ratio = static_cast(gClipHeight) / 255; + this->scrolls[0].h_left = static_cast(std::ceil(clip_height_ratio * (this->scrolls[0].h_right - (widget->width() - 1)))); + } + private: void OnClose() override { @@ -396,14 +405,6 @@ private: } } - void SetClipHeight(const uint8_t clipheight) - { - gClipHeight = clipheight; - rct_widget* widget = &window_view_clipping_widgets[WIDX_CLIP_HEIGHT_SLIDER]; - const float clip_height_ratio = static_cast(gClipHeight) / 255; - this->scrolls[0].h_left = static_cast(std::ceil(clip_height_ratio * (this->scrolls[0].h_right - (widget->width() - 1)))); - } - bool IsActive() { if (!(input_test_flag(INPUT_FLAG_TOOL_ACTIVE))) @@ -421,36 +422,22 @@ rct_window* window_view_clipping_open() if (window == nullptr) { window = WindowCreate(WC_VIEW_CLIPPING, ScreenCoordsXY(32, 32), WW, WH); + window->widgets = window_view_clipping_widgets; + window->enabled_widgets = (1ULL << WIDX_CLOSE) | (1ULL << WIDX_CLIP_CHECKBOX_ENABLE) | (1ULL << WIDX_CLIP_HEIGHT_VALUE) + | (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1ULL << WIDX_CLIP_HEIGHT_DECREASE) | (1ULL << WIDX_CLIP_HEIGHT_SLIDER) + | (1ULL << WIDX_CLIP_SELECTOR) | (1ULL << WIDX_CLIP_CLEAR); + window->hold_down_widgets = (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1UL << WIDX_CLIP_HEIGHT_DECREASE); + WindowInitScrollWidgets(window); } - return window; - /* - rct_window* window; + + // Initialise the clip height slider from the current clip height value. + dynamic_cast(window)->SetClipHeight(gClipHeight); + + window_push_others_below(window); // Get the main viewport to set the view clipping flag. rct_window* mainWindow = window_get_main(); - // Check if window is already open - window = window_find_by_class(WC_VIEW_CLIPPING); - if (window != nullptr) - { - return window; - } - - // Window is not open - create it. - window = WindowCreate(ScreenCoordsXY(32, 32), WW, WH, &window_view_clipping_events, WC_VIEW_CLIPPING, 0); - window->widgets = window_view_clipping_widgets; - window->enabled_widgets = (1ULL << WIDX_CLOSE) | (1ULL << WIDX_CLIP_CHECKBOX_ENABLE) | (1ULL << WIDX_CLIP_HEIGHT_VALUE) - | (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1ULL << WIDX_CLIP_HEIGHT_DECREASE) | (1ULL << WIDX_CLIP_HEIGHT_SLIDER) - | (1ULL << WIDX_CLIP_SELECTOR) | (1ULL << WIDX_CLIP_CLEAR); - window->hold_down_widgets = (1ULL << WIDX_CLIP_HEIGHT_INCREASE) | (1UL << WIDX_CLIP_HEIGHT_DECREASE); - - WindowInitScrollWidgets(window); - - // Initialise the clip height slider from the current clip height value. - window_view_clipping_set_clipheight(window, gClipHeight); - - window_push_others_below(window); - // Turn on view clipping when the window is opened. if (mainWindow != nullptr) { @@ -458,11 +445,7 @@ rct_window* window_view_clipping_open() mainWindow->Invalidate(); } - _toolActive = false; - _dragging = false; - return window; - */ } /* // Done