@ -4,13 +4,15 @@
# include "controls/menu_controls.h"
# include "controls/menu_controls.h"
# include "discord/discord.h"
# include "discord/discord.h"
# include "engine/load_pcx.hpp"
# include "engine/load_pcx.hpp"
# include "engine/load_pcx_as_cel.hpp"
# include "utils/language.h"
# include "utils/language.h"
# include "utils/sdl_geometry.h"
# include "utils/sdl_geometry.h"
# include "utils/stdcompat/optional.hpp"
namespace devilution {
namespace devilution {
namespace {
namespace {
std : : optional < OwnedPcxSpriteSheet > DiabloTitleLogo ;
std : : vector < std : : unique_ptr < UiItemBase > > vecTitleScreen ;
std : : vector < std : : unique_ptr < UiItemBase > > vecTitleScreen ;
void TitleLoad ( )
void TitleLoad ( )
@ -20,7 +22,7 @@ void TitleLoad()
ArtBackgroundWidescreen = LoadPcxAsset ( " ui_art \\ hf_titlew.pcx " ) ;
ArtBackgroundWidescreen = LoadPcxAsset ( " ui_art \\ hf_titlew.pcx " ) ;
} else {
} else {
LoadBackgroundArt ( " ui_art \\ title.pcx " ) ;
LoadBackgroundArt ( " ui_art \\ title.pcx " ) ;
ArtLogos [ LOGO_BIG ] = LoadPcxAssetAsCel ( " ui_art \\ logo.pcx " , /*numFrames=*/ 15 , /*generateFrameHeaders=*/ false , /* transparentColorIndex =*/ 250 ) ;
DiabloTitleLogo = LoadPcxSpriteSheetAsset ( " ui_art \\ logo.pcx " , /*numFrames=*/ 15 , /*transparentColor=*/ 250 ) ;
}
}
}
}
@ -28,7 +30,7 @@ void TitleFree()
{
{
ArtBackground = std : : nullopt ;
ArtBackground = std : : nullopt ;
ArtBackgroundWidescreen = std : : nullopt ;
ArtBackgroundWidescreen = std : : nullopt ;
ArtLogos [ LOGO_BIG ] = std : : nullopt ;
DiabloTitleLogo = std : : nullopt ;
vecTitleScreen . clear ( ) ;
vecTitleScreen . clear ( ) ;
}
}
@ -46,7 +48,9 @@ void UiTitleDialog()
vecTitleScreen . push_back ( std : : make_unique < UiImageAnimatedPcx > ( PcxSpriteSheet { * ArtBackground } , rect , UiFlags : : AlignCenter ) ) ;
vecTitleScreen . push_back ( std : : make_unique < UiImageAnimatedPcx > ( PcxSpriteSheet { * ArtBackground } , rect , UiFlags : : AlignCenter ) ) ;
} else {
} else {
UiAddBackground ( & vecTitleScreen ) ;
UiAddBackground ( & vecTitleScreen ) ;
UiAddLogo ( & vecTitleScreen , LOGO_BIG , 182 ) ;
vecTitleScreen . push_back ( std : : make_unique < UiImageAnimatedPcx > (
PcxSpriteSheet { * DiabloTitleLogo } , MakeSdlRect ( 0 , uiPosition . y + 182 , 0 , 0 ) , UiFlags : : AlignCenter ) ) ;
SDL_Rect rect = MakeSdlRect ( uiPosition . x , uiPosition . y + 410 , 640 , 26 ) ;
SDL_Rect rect = MakeSdlRect ( uiPosition . x , uiPosition . y + 410 , 640 , 26 ) ;
vecTitleScreen . push_back ( std : : make_unique < UiArtText > ( _ ( " Copyright © 1996-2001 Blizzard Entertainment " ) . data ( ) , rect , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiSilver ) ) ;
vecTitleScreen . push_back ( std : : make_unique < UiArtText > ( _ ( " Copyright © 1996-2001 Blizzard Entertainment " ) . data ( ) , rect , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiSilver ) ) ;