diff --git a/BaseMenu.cpp b/BaseMenu.cpp index 47ab997b..13506643 100755 --- a/BaseMenu.cpp +++ b/BaseMenu.cpp @@ -601,6 +601,9 @@ void UI_CloseMenu( void ) void UI_CloseClientMenu( void ) { + if( !uiStatic.client.IsActive() ) + return; + uiStatic.client.Clean(); EngFuncs::KEY_ClearStates(); EngFuncs::KEY_SetDest( KEY_GAME ); diff --git a/menus/LoadGame.cpp b/menus/LoadGame.cpp index 6a535701..772565df 100644 --- a/menus/LoadGame.cpp +++ b/menus/LoadGame.cpp @@ -276,7 +276,15 @@ void CMenuSavesListModel::Update( void ) Q_strncpy( s, title, sizeof( s )); if( type ) - snprintf( save.comment, sizeof( save.comment ), "[%.16s]%s", type, L( s )); + { + // Localize known save-type identifiers (quick/autosave). Otherwise, fall back to original behavior. + if( !stricmp( type, "quick" )) + snprintf( save.comment, sizeof( save.comment ), "%s%s", L( "GameUI_QuickSave" ), L( s )); + else if( !stricmp( type, "autosave" )) + snprintf( save.comment, sizeof( save.comment ), "%s%s", L( "GameUI_AutoSave" ), L( s )); + else + snprintf( save.comment, sizeof( save.comment ), "[%.16s]%s", type, L( s )); + } else Q_strncpy( save.comment, L( s ), sizeof( save.comment )); } else diff --git a/udll_int.cpp b/udll_int.cpp index 0ff772df..b0b01ec4 100644 --- a/udll_int.cpp +++ b/udll_int.cpp @@ -159,6 +159,10 @@ static class CGameMenuExports : public IGameMenuExports void ShowVGUIMenu( int menuType, int param1, int param2 ) override { + // Clear button states to prevent stuck input + // when opening the menu while a key is held down + EngFuncs::KEY_ClearStates(); + switch( menuType ) { case MENU_TEAM: UI_JoinGame_Show( param1, param2 ); break;