/***************************************************************************** * Copyright (c) 2014-2022 OpenRCT2 developers * * For a complete list of all authors, please refer to contributors.md * Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2 * * OpenRCT2 is licensed under the GNU General Public License version 3. *****************************************************************************/ #include #include #include #include #include #include static constexpr const int32_t WW = 232; static constexpr const int32_t WH = 136; enum { WIDX_LOGO }; static rct_widget window_title_logo_widgets[] = { MakeWidget({ 0, 0 }, { WW + 1, WH + 1 }, WindowWidgetType::ImgBtn, WindowColour::Primary), WIDGETS_END, }; class TitleLogoWindow final : public Window { public: /** * Creates the window containing the logo and the expansion packs on the title screen. * rct2: 0x0066B679 (part of 0x0066B3E8) */ void OnOpen() override { widgets = window_title_logo_widgets; WindowInitScrollWidgets(*this); colours[0] = TRANSLUCENT(COLOUR_GREY); colours[1] = TRANSLUCENT(COLOUR_GREY); colours[2] = TRANSLUCENT(COLOUR_GREY); } void OnMouseUp(WidgetIndex widgetIndex) override { switch (widgetIndex) { case WIDX_LOGO: WindowAboutOpen(); break; } } /** * * rct2: 0x0066B872 */ void OnDraw(rct_drawpixelinfo& dpi) override { auto screenCoords = windowPos + ScreenCoordsXY{ 2, 2 }; gfx_draw_sprite(&dpi, ImageId(SPR_G2_LOGO), screenCoords); gfx_draw_sprite(&dpi, ImageId(SPR_G2_TITLE), screenCoords + ScreenCoordsXY{ 104, 18 }); } }; rct_window* WindowTitleLogoOpen() { auto* window = window_bring_to_front_by_class(WindowClass::TitleLogo); if (window == nullptr) { window = WindowCreate( WindowClass::TitleLogo, ScreenCoordsXY(0, 0), WW, WH, WF_STICK_TO_BACK | WF_TRANSPARENT); } return window; }