- Mostly implemented Zandronum's IWAD selection box. Currently, this change only affects Windows.

(cherry picked from commit b3bed807de)
This commit is contained in:
Rachael Alexanderson 2016-12-20 13:31:38 -05:00 committed by Christoph Oelckers
parent 36f87b7135
commit 8a9ea2eda8
3 changed files with 56 additions and 0 deletions

View file

@ -127,6 +127,9 @@ static void DestroyCustomCursor();
EXTERN_CVAR(String, language);
EXTERN_CVAR (Bool, queryiwad);
// Used on welcome/IWAD screen.
EXTERN_CVAR (Int, vid_renderer)
EXTERN_CVAR (Bool, fullscreen)
extern HWND Window, ConWindow, GameTitleWindow;
extern HANDLE StdOut;
@ -1159,6 +1162,18 @@ BOOL CALLBACK IWADBoxCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
newlabel.Format(GAMESIG " %s: %s", GetVersionString(), label);
SetWindowText(hDlg, newlabel.GetChars());
}
// [SP] Upstreamed from Zandronum
char szString[256];
// Check the current video settings.
SendDlgItemMessage( hDlg, vid_renderer ? IDC_WELCOME_OPENGL : IDC_WELCOME_SOFTWARE, BM_SETCHECK, BST_CHECKED, 0 );
SendDlgItemMessage( hDlg, IDC_WELCOME_FULLSCREEN, BM_SETCHECK, fullscreen ? BST_CHECKED : BST_UNCHECKED, 0 );
// Set up our version string.
sprintf(szString, "Version %s.", GetVersionString());
SetDlgItemText (hDlg, IDC_WELCOME_VERSION, szString);
// Populate the list with all the IWADs found
ctrl = GetDlgItem(hDlg, IDC_IWADLIST);
for (i = 0; i < NumWads; i++)
@ -1192,6 +1207,9 @@ BOOL CALLBACK IWADBoxCallback(HWND hDlg, UINT message, WPARAM wParam, LPARAM lPa
(LOWORD(wParam) == IDC_IWADLIST && HIWORD(wParam) == LBN_DBLCLK))
{
SetQueryIWad(hDlg);
// [SP] Upstreamed from Zandronum
vid_renderer = SendDlgItemMessage( hDlg, IDC_WELCOME_OPENGL, BM_GETCHECK, 0, 0 ) == BST_CHECKED;
fullscreen = SendDlgItemMessage( hDlg, IDC_WELCOME_FULLSCREEN, BM_GETCHECK, 0, 0 ) == BST_CHECKED;
ctrl = GetDlgItem (hDlg, IDC_IWADLIST);
EndDialog(hDlg, SendMessage (ctrl, LB_GETCURSEL, 0, 0));
}

View file

@ -164,3 +164,10 @@
#define _APS_NEXT_SYMED_VALUE 101
#endif
#endif
// [SP] Upstreamed from Zandronum
#define IDC_WELCOME_VERSION 4019 // [RC] "Welcome" screen.
#define IDC_WELCOME_OPENGL 4020
#define IDC_WELCOME_SOFTWARE 4021
#define IDC_WELCOME_FULLSCREEN 4022
#define IDI_ICONST 151

View file

@ -220,6 +220,7 @@ END
// Dialog
//
/*
IDD_IWADDIALOG DIALOGEX 0, 0, 212, 186
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
@ -233,6 +234,36 @@ BEGIN
LTEXT "ZDoom found more than one IWAD present.",IDC_STATIC,5,5,140,8
LTEXT "Select from the list below to determine which one to use:",IDC_STATIC,5,15,200,8
END
*/
// [SP] Upstreamed from Zandronum
IDD_IWADDIALOG DIALOGEX 0, 0, 224, 236
STYLE DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION |
WS_SYSMENU
EXSTYLE WS_EX_APPWINDOW
CAPTION "Welcome"
FONT 8, "MS Shell Dlg", 0, 0, 0x1
BEGIN
ICON IDI_ICON1,IDC_STATIC,7,7,32,32
LTEXT "Welcome to QZDoom!",IDC_STATIC,42,8,180,8
LTEXT "<Version info>",IDC_WELCOME_VERSION,42,18,180,8
GROUPBOX "IWAD selection",IDC_STATIC,8,32,224-16,102
LTEXT "Select which game file (IWAD) to run.", IDC_STATIC,12,32+12,190,8
LISTBOX IDC_IWADLIST,12,32+24,224-24,72,LBS_NOINTEGRALHEIGHT |
WS_VSCROLL | WS_TABSTOP
GROUPBOX "Video settings",IDC_STATIC,8,138,224-16,48
LTEXT "Choose how QZDoom will render the game.", IDC_STATIC,12,148,190,8
CONTROL "Hardware (OpenGL)",IDC_WELCOME_OPENGL,"Button",
BS_AUTORADIOBUTTON,12,170,93,10
CONTROL "Software (Doom)",IDC_WELCOME_SOFTWARE,"Button",
BS_AUTORADIOBUTTON,12,160,93,10
CONTROL "Fullscreen",IDC_WELCOME_FULLSCREEN,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP, 124,160,48,10
CONTROL "Don't ask me this again",IDC_DONTASKIWAD,"Button",
BS_AUTOCHECKBOX | WS_TABSTOP,72,192,87,10
DEFPUSHBUTTON "Play QZDoom",IDOK,8,236-18,90,14
PUSHBUTTON "Exit",IDCANCEL,224-58,236-18,50,14
END
IDD_EAXPROPERTYLIST DIALOGEX 0, 0, 265, 404
STYLE DS_SETFONT | DS_3DLOOK | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VSCROLL