From 1eefe841b6c7ee5a222088913995bc8c50107ded Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Mon, 10 Feb 2020 23:15:32 +0000 Subject: [PATCH] mainmenu: Focus on the exit item before exiting This affects both the B and the Esc key Fixes #603 --- SourceX/DiabloUI/diabloui.cpp | 3 ++- SourceX/DiabloUI/diabloui.h | 2 ++ SourceX/DiabloUI/mainmenu.cpp | 6 +++++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/SourceX/DiabloUI/diabloui.cpp b/SourceX/DiabloUI/diabloui.cpp index 0b7397afa..bc5407ee1 100644 --- a/SourceX/DiabloUI/diabloui.cpp +++ b/SourceX/DiabloUI/diabloui.cpp @@ -49,11 +49,12 @@ bool UiItemsWraps; char *UiTextInput; int UiTextInputLen; +int SelectedItem = 0; + namespace { DWORD fadeTc; int fadeValue = 0; -int SelectedItem = 0; struct { bool upArrowPressed = false; diff --git a/SourceX/DiabloUI/diabloui.h b/SourceX/DiabloUI/diabloui.h index cfb5d1cd4..0d1529d99 100644 --- a/SourceX/DiabloUI/diabloui.h +++ b/SourceX/DiabloUI/diabloui.h @@ -8,6 +8,8 @@ namespace dvl { +extern int SelectedItem; + typedef enum _artFocus { FOCUS_SMALL, FOCUS_MED, diff --git a/SourceX/DiabloUI/mainmenu.cpp b/SourceX/DiabloUI/mainmenu.cpp index 60204b4fb..0ee165ddd 100644 --- a/SourceX/DiabloUI/mainmenu.cpp +++ b/SourceX/DiabloUI/mainmenu.cpp @@ -29,7 +29,11 @@ void UiMainMenuSelect(int value) void mainmenu_Esc() { - UiMainMenuSelect(MAINMENU_EXIT_DIABLO); + if (SelectedItem == MAINMENU_EXIT_DIABLO) { + UiMainMenuSelect(MAINMENU_EXIT_DIABLO); + } else { + SelectedItem = MAINMENU_EXIT_DIABLO; + } } void mainmenu_restart_repintro()