#include "DiabloUI/diabloui.h" #include "control.h" #include "controls/input.h" #include "controls/menu_controls.h" #include "discord/discord.h" #include "utils/language.h" namespace devilution { namespace { std::vector> vecTitleScreen; void TitleLoad() { if (gbIsHellfire) { LoadBackgroundArt("ui_art\\hf_logo1.pcx", 16); LoadArt("ui_art\\hf_titlew.pcx", &ArtBackgroundWidescreen); } else { LoadBackgroundArt("ui_art\\title.pcx"); LoadMaskedArt("ui_art\\logo.pcx", &ArtLogos[LOGO_BIG], 15); } } void TitleFree() { ArtBackground.Unload(); ArtBackgroundWidescreen.Unload(); ArtLogos[LOGO_BIG].Unload(); vecTitleScreen.clear(); } } // namespace void UiTitleDialog() { if (gbIsHellfire) { SDL_Rect rect = { 0, UI_OFFSET_Y, 0, 0 }; vecTitleScreen.push_back(std::make_unique(&ArtBackgroundWidescreen, rect, UiFlags::AlignCenter, /*bAnimated=*/true)); vecTitleScreen.push_back(std::make_unique(&ArtBackground, rect, UiFlags::AlignCenter, /*bAnimated=*/true)); } else { UiAddBackground(&vecTitleScreen); UiAddLogo(&vecTitleScreen, LOGO_BIG, 182); SDL_Rect rect = { (Sint16)(PANEL_LEFT), (Sint16)(UI_OFFSET_Y + 410), 640, 26 }; vecTitleScreen.push_back(std::make_unique(_("Copyright © 1996-2001 Blizzard Entertainment").c_str(), rect, UiFlags::AlignCenter | UiFlags::FontSize24 | UiFlags::ColorUiSilver)); } TitleLoad(); bool endMenu = false; Uint32 timeOut = SDL_GetTicks() + 7000; SDL_Event event; while (!endMenu && SDL_GetTicks() < timeOut) { UiRenderItems(vecTitleScreen); UiFadeIn(); discord_manager::UpdateMenu(); while (PollEvent(&event) != 0) { if (GetMenuAction(event) != MenuAction_NONE) { endMenu = true; break; } switch (event.type) { case SDL_KEYDOWN: case SDL_MOUSEBUTTONUP: endMenu = true; break; } UiHandleEvents(&event); } } TitleFree(); } } // namespace devilution