diff --git a/src/win32/i_system.cpp b/src/win32/i_system.cpp index acea7a7881..ebb3d8c676 100644 --- a/src/win32/i_system.cpp +++ b/src/win32/i_system.cpp @@ -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)); } diff --git a/src/win32/resource.h b/src/win32/resource.h index 6886e83fdd..52db9de2e6 100644 --- a/src/win32/resource.h +++ b/src/win32/resource.h @@ -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 diff --git a/src/win32/zdoom.rc b/src/win32/zdoom.rc index 1f760d8ea2..4d38762e0b 100644 --- a/src/win32/zdoom.rc +++ b/src/win32/zdoom.rc @@ -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 "",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