X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_gui.pas;h=55302688c55c807547219faa4d47d2c81bf5d1e1;hb=67d37ea13feeca0671d60d88b1963cf1e0e901c4;hp=3181e6969102e55d77b1be621b7e46ab32158a79;hpb=d8e9a85e92260e0982cddfecb66c9dbc940f8eb1;p=d2df-sdl.git diff --git a/src/game/g_gui.pas b/src/game/g_gui.pas index 3181e69..5530268 100644 --- a/src/game/g_gui.pas +++ b/src/game/g_gui.pas @@ -552,7 +552,7 @@ implementation uses {$INCLUDE ../nogl/noGLuses.inc} g_textures, g_sound, SysUtils, e_res, - g_game, Math, StrUtils, g_player, g_options, + g_game, Math, StrUtils, g_player, g_options, g_console, g_map, g_weapons, xdynrec, wadreader; @@ -2443,58 +2443,40 @@ begin with Msg do case Msg of WM_KEYDOWN: - case wParam of - VK_ESCAPE: - begin - if FIsQuery then actDefCtl(); - FIsQuery := False; - end; - IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK: - begin - if not FIsQuery then - begin - with FWindow do - if FActiveControl <> Self then - SetActive(Self); - - FIsQuery := True; - end - else if (wParam < VK_FIRSTKEY) and (wParam > VK_LASTKEY) then - begin - // FKey := IK_ENTER; // - FKey := wParam; - FIsQuery := False; - actDefCtl(); - end; - end; - IK_BACKSPACE: // clear keybinding if we aren't waiting for a key - begin - if not FIsQuery then + if not FIsQuery then + begin + case wParam of + IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK: + begin + with FWindow do + if FActiveControl <> Self then + SetActive(Self); + FIsQuery := True; + end; + IK_BACKSPACE: // clear keybinding if we aren't waiting for a key begin FKey := 0; actDefCtl(); end; - end; - end; - - MESSAGE_DIKEY: + else + FIsQuery := False; + actDefCtl(); + end; + end + else begin - if not FIsQuery and (wParam = IK_BACKSPACE) then - begin - FKey := 0; + case wParam of + VK_FIRSTKEY..VK_LASTKEY: // do not allow to bind virtual keys + begin + FIsQuery := False; + actDefCtl(); + end; + else + if (e_KeyNames[wParam] <> '') and not g_Console_MatchBind(wParam, 'togglemenu') then + FKey := wParam; + FIsQuery := False; actDefCtl(); end - else if FIsQuery then - begin - case wParam of - IK_ENTER, IK_KPRETURN, VK_FIRSTKEY..VK_LASTKEY (*, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK*): // Not '' then - FKey := wParam; - FIsQuery := False; - actDefCtl(); - end - end; end; end; @@ -2599,72 +2581,52 @@ begin with Msg do case Msg of WM_KEYDOWN: - case wParam of - VK_ESCAPE: - begin - if FIsQuery then actDefCtl(); - FIsQuery := False; - end; - IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK: - begin - if not FIsQuery then - begin - with FWindow do - if FActiveControl <> Self then - SetActive(Self); - - FIsQuery := True; - end - else if (wParam < VK_FIRSTKEY) and (wParam > VK_LASTKEY) then - begin - // if (FKeyIdx = 0) then FKey0 := IK_ENTER else FKey1 := IK_ENTER; // - if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam; - FIsQuery := False; - actDefCtl(); - end; - end; - IK_BACKSPACE: // clear keybinding if we aren't waiting for a key - begin - if not FIsQuery then + if not FIsQuery then + begin + case wParam of + IK_RETURN, IK_KPRETURN, VK_FIRE, VK_OPEN, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK: + begin + with FWindow do + if FActiveControl <> Self then + SetActive(Self); + FIsQuery := True; + end; + IK_BACKSPACE: // clear keybinding if we aren't waiting for a key begin if (FKeyIdx = 0) then FKey0 := 0 else FKey1 := 0; actDefCtl(); end; - end; - IK_LEFT, IK_KPLEFT, VK_LEFT, JOY0_LEFT, JOY1_LEFT, JOY2_LEFT, JOY3_LEFT: - if not FIsQuery then - begin - FKeyIdx := 0; - actDefCtl(); - end; - IK_RIGHT, IK_KPRIGHT, VK_RIGHT, JOY0_RIGHT, JOY1_RIGHT, JOY2_RIGHT, JOY3_RIGHT: - if not FIsQuery then - begin - FKeyIdx := 1; - actDefCtl(); - end; - end; - - MESSAGE_DIKEY: - begin - if not FIsQuery and (wParam = IK_BACKSPACE) then - begin - if (FKeyIdx = 0) then FKey0 := 0 else FKey1 := 0; - actDefCtl(); - end - else if FIsQuery then - begin - case wParam of - IK_ENTER, IK_KPRETURN, VK_FIRSTKEY..VK_LASTKEY (*, JOY0_ATTACK, JOY1_ATTACK, JOY2_ATTACK, JOY3_ATTACK*): // Not '' then + IK_LEFT, IK_KPLEFT, VK_LEFT, JOY0_LEFT, JOY1_LEFT, JOY2_LEFT, JOY3_LEFT: begin - if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam; + FKeyIdx := 0; + actDefCtl(); + end; + IK_RIGHT, IK_KPRIGHT, VK_RIGHT, JOY0_RIGHT, JOY1_RIGHT, JOY2_RIGHT, JOY3_RIGHT: + begin + FKeyIdx := 1; + actDefCtl(); end; - FIsQuery := False; - actDefCtl() - end + else + FIsQuery := False; + actDefCtl(); end; + end + else + begin + case wParam of + VK_FIRSTKEY..VK_LASTKEY: // do not allow to bind virtual keys + begin + FIsQuery := False; + actDefCtl(); + end; + else + if (e_KeyNames[wParam] <> '') and not g_Console_MatchBind(wParam, 'togglemenu') then + begin + if (FKeyIdx = 0) then FKey0 := wParam else FKey1 := wParam; + end; + FIsQuery := False; + actDefCtl() + end end; end; @@ -2713,10 +2675,9 @@ begin if FModel = nil then Exit; - if FModel.Weapon < WP_LAST then - FModel.SetWeapon(FModel.Weapon+1) - else - FModel.SetWeapon(WEAPON_KASTET); + if FModel.Weapon < WP_LAST + then FModel.SetWeapon(FModel.Weapon+1) + else FModel.SetWeapon(WEAPON_IRONFIST); end; procedure TGUIModelView.OnMessage(var Msg: TMessage); @@ -3270,13 +3231,13 @@ begin begin if FItems[FIndex] = #29 + '..' then begin - e_LogWritefln('TGUIFileListBox: Upper dir "%s" -> "%s"', [FSubPath, e_UpperDir(FSubPath)]); + //e_LogWritefln('TGUIFileListBox: Upper dir "%s" -> "%s"', [FSubPath, e_UpperDir(FSubPath)]); FSubPath := e_UpperDir(FSubPath) end else begin s := Copy(AnsiString(FItems[FIndex]), 2); - e_LogWritefln('TGUIFileListBox: Enter dir "%s" -> "%s"', [FSubPath, e_CatPath(FSubPath, s)]); + //e_LogWritefln('TGUIFileListBox: Enter dir "%s" -> "%s"', [FSubPath, e_CatPath(FSubPath, s)]); FSubPath := e_CatPath(FSubPath, s); end; ScanDirs;