@ -124,19 +124,21 @@ void selgame_GameSelection_Init()
UiAddBackground ( & vecSelGameDialog ) ;
UiAddLogo ( & vecSelGameDialog ) ;
SDL_Rect rectScrollbar = { ( Sint16 ) ( PANEL_LEFT + 590 ) , ( Sint16 ) ( UI_OFFSET_Y + 244 ) , 25 , 178 } ;
const Point uiPosition = GetUIRectangle ( ) . position ;
SDL_Rect rectScrollbar = { ( Sint16 ) ( uiPosition . x + 590 ) , ( Sint16 ) ( uiPosition . y + 244 ) , 25 , 178 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiScrollbar > ( & ArtScrollBarBackground , & ArtScrollBarThumb , & ArtScrollBarArrow , rectScrollbar ) ) ;
SDL_Rect rect1 = { ( Sint16 ) ( PANEL_LEFT + 24 ) , ( Sint16 ) ( UI_OFFSET_Y + 161 ) , 590 , 35 } ;
SDL_Rect rect1 = { ( Sint16 ) ( uiPosition . x + 24 ) , ( Sint16 ) ( uiPosition . y + 161 ) , 590 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( ConnectionNames [ provider ] ) . c_str ( ) , rect1 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect2 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 205 , 192 } ;
SDL_Rect rect2 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 205 , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Description: " ) . c_str ( ) , rect2 , UiFlags : : FontSize24 | UiFlags : : ColorUiSilver ) ) ;
SDL_Rect rect3 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
SDL_Rect rect3 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Description , rect3 , UiFlags : : FontSize12 | UiFlags : : ColorUiSilverDark , 1 , 16 ) ) ;
SDL_Rect rect4 = { ( Sint16 ) ( PANEL_LEFT + 300 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 295 , 33 } ;
SDL_Rect rect4 = { ( Sint16 ) ( uiPosition . x + 300 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 295 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Select Action " ) . c_str ( ) , rect4 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
# ifdef PACKET_ENCRYPTION
@ -162,12 +164,12 @@ void selgame_GameSelection_Init()
}
}
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , 6 , PANEL_LEFT + 305 , ( UI_OFFSET_Y + 255 ) , 285 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 ) ) ;
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , 6 , uiPosition . x + 305 , ( uiPosition . y + 255 ) , 285 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 ) ) ;
SDL_Rect rect5 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect5 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " OK " ) , & UiFocusNavigationSelect , rect5 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect6 = { ( Sint16 ) ( PANEL_LEFT + 449 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect6 = { ( Sint16 ) ( uiPosition . x + 449 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " CANCEL " ) , & UiFocusNavigationEsc , rect6 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
auto selectFn = [ ] ( int index ) {
@ -279,13 +281,15 @@ void selgame_GameSelection_Select(int value)
UiAddBackground ( & vecSelGameDialog ) ;
UiAddLogo ( & vecSelGameDialog ) ;
SDL_Rect rect1 = { ( Sint16 ) ( PANEL_LEFT + 24 ) , ( Sint16 ) ( UI_OFFSET_Y + 161 ) , 590 , 35 } ;
const Point uiPosition = GetUIRectangle ( ) . position ;
SDL_Rect rect1 = { ( Sint16 ) ( uiPosition . x + 24 ) , ( Sint16 ) ( uiPosition . y + 161 ) , 590 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( & title , rect1 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect2 = { ( Sint16 ) ( PANEL_LEFT + 34 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 205 , 33 } ;
SDL_Rect rect2 = { ( Sint16 ) ( uiPosition . x + 34 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 205 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Label , rect2 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect3 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
SDL_Rect rect3 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Description , rect3 , UiFlags : : FontSize12 | UiFlags : : ColorUiSilverDark , 1 , 16 ) ) ;
switch ( value ) {
@ -293,19 +297,19 @@ void selgame_GameSelection_Select(int value)
case 1 : {
title = _ ( " Create Game " ) . c_str ( ) ;
SDL_Rect rect4 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 295 , 35 } ;
SDL_Rect rect4 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 295 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Select Difficulty " ) . c_str ( ) , rect4 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Normal " ) , DIFF_NORMAL ) ) ;
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Nightmare " ) , DIFF_NIGHTMARE ) ) ;
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Hell " ) , DIFF_HELL ) ) ;
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , vecSelGameDlgItems . size ( ) , PANEL_LEFT + 300 , ( UI_OFFSET_Y + 282 ) , 295 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , vecSelGameDlgItems . size ( ) , uiPosition . x + 300 , ( uiPosition . y + 282 ) , 295 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect5 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect5 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " OK " ) , & UiFocusNavigationSelect , rect5 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect6 = { ( Sint16 ) ( PANEL_LEFT + 449 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect6 = { ( Sint16 ) ( uiPosition . x + 449 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " CANCEL " ) , & UiFocusNavigationEsc , rect6 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
UiInitList ( selgame_Diff_Focus , selgame_Diff_Select , selgame_Diff_Esc , vecSelGameDialog , true ) ;
@ -322,16 +326,16 @@ void selgame_GameSelection_Select(int value)
inputHint = _ ( " Enter address " ) . c_str ( ) ;
}
SDL_Rect rect4 = { ( Sint16 ) ( PANEL_LEFT + 305 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 285 , 33 } ;
SDL_Rect rect4 = { ( Sint16 ) ( uiPosition . x + 305 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 285 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( inputHint , rect4 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect5 = { ( Sint16 ) ( PANEL_LEFT + 305 ) , ( Sint16 ) ( UI_OFFSET_Y + 314 ) , 285 , 33 } ;
SDL_Rect rect5 = { ( Sint16 ) ( uiPosition . x + 305 ) , ( Sint16 ) ( uiPosition . y + 314 ) , 285 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiEdit > ( inputHint , selgame_Ip , 128 , false , rect5 , UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect6 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect6 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " OK " ) , & UiFocusNavigationSelect , rect6 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect7 = { ( Sint16 ) ( PANEL_LEFT + 449 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect7 = { ( Sint16 ) ( uiPosition . x + 449 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " CANCEL " ) , & UiFocusNavigationEsc , rect7 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
HighlightedItem = 0 ;
@ -449,16 +453,18 @@ void selgame_GameSpeedSelection()
UiAddBackground ( & vecSelGameDialog ) ;
UiAddLogo ( & vecSelGameDialog ) ;
SDL_Rect rect1 = { ( Sint16 ) ( PANEL_LEFT + 24 ) , ( Sint16 ) ( UI_OFFSET_Y + 161 ) , 590 , 35 } ;
const Point uiPosition = GetUIRectangle ( ) . position ;
SDL_Rect rect1 = { ( Sint16 ) ( uiPosition . x + 24 ) , ( Sint16 ) ( uiPosition . y + 161 ) , 590 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Create Game " ) . c_str ( ) , rect1 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect2 = { ( Sint16 ) ( PANEL_LEFT + 34 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 205 , 33 } ;
SDL_Rect rect2 = { ( Sint16 ) ( uiPosition . x + 34 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 205 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Label , rect2 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect3 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
SDL_Rect rect3 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Description , rect3 , UiFlags : : FontSize12 | UiFlags : : ColorUiSilverDark , 1 , 16 ) ) ;
SDL_Rect rect4 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 295 , 35 } ;
SDL_Rect rect4 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 295 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Select Game Speed " ) . c_str ( ) , rect4 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Normal " ) , 20 ) ) ;
@ -466,12 +472,12 @@ void selgame_GameSpeedSelection()
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Faster " ) , 40 ) ) ;
vecSelGameDlgItems . push_back ( std : : make_unique < UiListItem > ( _ ( " Fastest " ) , 50 ) ) ;
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , vecSelGameDlgItems . size ( ) , PANEL_LEFT + 300 , ( UI_OFFSET_Y + 279 ) , 295 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
vecSelGameDialog . push_back ( std : : make_unique < UiList > ( vecSelGameDlgItems , vecSelGameDlgItems . size ( ) , uiPosition . x + 300 , ( uiPosition . y + 279 ) , 295 , 26 , UiFlags : : AlignCenter | UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect5 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect5 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " OK " ) , & UiFocusNavigationSelect , rect5 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect6 = { ( Sint16 ) ( PANEL_LEFT + 449 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect6 = { ( Sint16 ) ( uiPosition . x + 449 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " CANCEL " ) , & UiFocusNavigationEsc , rect6 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
UiInitList ( selgame_Speed_Focus , selgame_Speed_Select , selgame_Speed_Esc , vecSelGameDialog , true ) ;
@ -526,27 +532,29 @@ void selgame_Password_Init(int /*value*/)
UiAddBackground ( & vecSelGameDialog ) ;
UiAddLogo ( & vecSelGameDialog ) ;
SDL_Rect rect1 = { ( Sint16 ) ( PANEL_LEFT + 24 ) , ( Sint16 ) ( UI_OFFSET_Y + 161 ) , 590 , 35 } ;
const Point uiPosition = GetUIRectangle ( ) . position ;
SDL_Rect rect1 = { ( Sint16 ) ( uiPosition . x + 24 ) , ( Sint16 ) ( uiPosition . y + 161 ) , 590 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( ConnectionNames [ provider ] ) . c_str ( ) , rect1 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
SDL_Rect rect2 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 205 , 192 } ;
SDL_Rect rect2 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 205 , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Description: " ) . c_str ( ) , rect2 , UiFlags : : FontSize24 | UiFlags : : ColorUiSilver ) ) ;
SDL_Rect rect3 = { ( Sint16 ) ( PANEL_LEFT + 35 ) , ( Sint16 ) ( UI_OFFSET_Y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
SDL_Rect rect3 = { ( Sint16 ) ( uiPosition . x + 35 ) , ( Sint16 ) ( uiPosition . y + 256 ) , DESCRIPTION_WIDTH , 192 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( selgame_Description , rect3 , UiFlags : : FontSize12 | UiFlags : : ColorUiSilverDark , 1 , 16 ) ) ;
SDL_Rect rect4 = { ( Sint16 ) ( PANEL_LEFT + 305 ) , ( Sint16 ) ( UI_OFFSET_Y + 211 ) , 285 , 33 } ;
SDL_Rect rect4 = { ( Sint16 ) ( uiPosition . x + 305 ) , ( Sint16 ) ( uiPosition . y + 211 ) , 285 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtText > ( _ ( " Enter Password " ) . c_str ( ) , rect4 , UiFlags : : AlignCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiSilver , 3 ) ) ;
// Allow password to be empty only when joining games
bool allowEmpty = selgame_selectedGame = = 2 ;
SDL_Rect rect5 = { ( Sint16 ) ( PANEL_LEFT + 305 ) , ( Sint16 ) ( UI_OFFSET_Y + 314 ) , 285 , 33 } ;
SDL_Rect rect5 = { ( Sint16 ) ( uiPosition . x + 305 ) , ( Sint16 ) ( uiPosition . y + 314 ) , 285 , 33 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiEdit > ( _ ( " Enter Password " ) , selgame_Password , 15 , allowEmpty , rect5 , UiFlags : : FontSize24 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect6 = { ( Sint16 ) ( PANEL_LEFT + 299 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect6 = { ( Sint16 ) ( uiPosition . x + 299 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " OK " ) , & UiFocusNavigationSelect , rect6 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
SDL_Rect rect7 = { ( Sint16 ) ( PANEL_LEFT + 449 ) , ( Sint16 ) ( UI_OFFSET_Y + 427 ) , 140 , 35 } ;
SDL_Rect rect7 = { ( Sint16 ) ( uiPosition . x + 449 ) , ( Sint16 ) ( uiPosition . y + 427 ) , 140 , 35 } ;
vecSelGameDialog . push_back ( std : : make_unique < UiArtTextButton > ( _ ( " CANCEL " ) , & UiFocusNavigationEsc , rect7 , UiFlags : : AlignCenter | UiFlags : : VerticalCenter | UiFlags : : FontSize30 | UiFlags : : ColorUiGold ) ) ;
UiInitList ( nullptr , selgame_Password_Select , selgame_Password_Esc , vecSelGameDialog ) ;