X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=ff6757f659ffcb5a4484f2d45588370a6591fcb1;hb=0f4c0818f5491fc65dd95aae33bfc3c603506305;hp=04ffd90df4089a2ff64649478ad1ba764fbfebbc;hpb=546a929a401a64c32fda3380c3fe71306fd54eb1;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index 04ffd90..ff6757f 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -171,16 +171,17 @@ begin g_dbg_scale := TempScale + 1; end; + menu := TGUIMenu(g_GUI_GetWindow('OptionsControlsMenu').GetControl('mOptionsControlsMenu')); with menu do begin g_Console_BindKey(g_Console_FindBind(1, 'screenshot'), ''); - g_Console_BindKey(g_Console_FindBind(1, '+p1_scores', '-p1_scores'), ''); + g_Console_BindKey(g_Console_FindBind(1, '+scores', '-scores'), ''); g_Console_BindKey(g_Console_FindBind(1, 'togglechat'), ''); g_Console_BindKey(g_Console_FindBind(1, 'toggleteamchat'), ''); g_Console_BindKey(TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_SCREENSHOT])).Key, 'screenshot'); - g_Console_BindKey(TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_STAT])).Key, '+p1_scores', '-p1_scores'); + g_Console_BindKey(TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_STAT])).Key, '+scores', '-scores'); g_Console_BindKey(TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_CHAT])).Key, 'togglechat'); g_Console_BindKey(TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_TEAMCHAT])).Key, 'toggleteamchat'); end; @@ -330,11 +331,9 @@ begin end; menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP1Menu').GetControl('mOptionsPlayersP1Menu')); - gPlayer1Settings.Name := b_Text_Unformat(TGUIEdit(menu.GetControl('edP1Name')).Text); gPlayer1Settings.Team := IfThen(TGUISwitch(menu.GetControl('swP1Team')).ItemIndex = 0, TEAM_RED, TEAM_BLUE); - with TGUIModelView(g_GUI_GetWindow('OptionsPlayersP1Menu').GetControl('mvP1Model')) do begin gPlayer1Settings.Model := Model.Name; @@ -342,7 +341,6 @@ begin end; menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2Menu').GetControl('mOptionsPlayersP2Menu')); - gPlayer2Settings.Name := b_Text_Unformat(TGUIEdit(menu.GetControl('edP2Name')).Text); gPlayer2Settings.Team := IfThen(TGUISwitch(menu.GetControl('swP2Team')).ItemIndex = 0, TEAM_RED, TEAM_BLUE); @@ -352,6 +350,32 @@ begin gPlayer2Settings.Color := Model.Color; end; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP1WeaponMenu').GetControl('mOptionsPlayersP1WeaponMenu')); + gPlayer1Settings.WeaponSwitch := TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex; + gPlayer1Settings.SwitchToEmpty := TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex; + gPlayer1Settings.SkipFist := TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu')); + with menu do + begin + for i := WP_FIRST to WP_LAST+1 do + begin + gPlayer1Settings.WeaponPreferences[i] := TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex; + end; + end; + + menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2WeaponMenu').GetControl('mOptionsPlayersP2WeaponMenu')); + gPlayer2Settings.WeaponSwitch := TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex; + gPlayer2Settings.SwitchToEmpty := TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex; + gPlayer2Settings.SkipFist := TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu')); + with menu do + begin + for i := WP_FIRST to WP_LAST+1 do + begin + gPlayer2Settings.WeaponPreferences[i] := TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex; + end; + end; + if gPlayer1Settings.Name = '' then gPlayer1Settings.Name := GenPlayerName(1); if gPlayer2Settings.Name = '' then gPlayer2Settings.Name := GenPlayerName(2); @@ -366,7 +390,10 @@ begin else if gPlayer1.Team <> gPlayer1Settings.Team then gPlayer1.SwitchTeam; - + gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch; + gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences); + gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty; + gPlayer1.SkipFist := gPlayer1Settings.SkipFist; if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer1.UID); end; @@ -374,15 +401,24 @@ begin begin gPlayer2.SetModel(gPlayer2Settings.Model); gPlayer2.Name := gPlayer2Settings.Name; - if (gGameSettings.GameMode <> GM_TDM) and (gGameSettings.GameMode <> GM_CTF) then + if not (gGameSettings.GameMode in [GM_TDM, GM_CTF]) then gPlayer2.SetColor(gPlayer2Settings.Color) else if gPlayer2.Team <> gPlayer2Settings.Team then gPlayer2.SwitchTeam; + gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch; + gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences); + gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty; + gPlayer2.SkipFist := gPlayer2Settings.SkipFist; + //if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer2.UID); end; end; - if g_Game_IsClient then MC_SEND_PlayerSettings; + if g_Game_IsClient then + begin + MC_SEND_PlayerSettings; + gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences); + end; g_Console_WriteGameConfig; end; @@ -540,7 +576,7 @@ begin with menu do begin TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_SCREENSHOT])).Key := g_Console_FindBind(1, 'screenshot'); - TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_STAT])).Key := g_Console_FindBind(1, '+p1_scores', '-p1_scores'); + TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_STAT])).Key := g_Console_FindBind(1, '+scores', '-scores'); TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_CHAT])).Key := g_Console_FindBind(1, 'togglechat'); TGUIKeyRead(GetControl(_lc[I_MENU_CONTROL_TEAMCHAT])).Key := g_Console_FindBind(1, 'toggleteamchat'); end; @@ -607,6 +643,28 @@ begin TGUIScroll(menu.GetControl('scP1Green')).Value := Round(gPlayer1Settings.Color.G/16); TGUIScroll(menu.GetControl('scP1Blue')).Value := Round(gPlayer1Settings.Color.B/16); + menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP1WeaponMenu').GetControl('mOptionsPlayersP1WeaponMenu')); + TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex := gPlayer1Settings.WeaponSwitch; + TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex := gPlayer1Settings.SwitchToEmpty; + TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex := gPlayer1Settings.SkipFist; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu')); + for i := WP_FIRST to WP_LAST+1 do + begin + if (gPlayer1Settings.WeaponPreferences[i] > 0) and (gPlayer1Settings.WeaponPreferences[i] <= WP_LAST+1) then TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex := gPlayer1Settings.WeaponPreferences[i] + else TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex := 0; + end; + + menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2WeaponMenu').GetControl('mOptionsPlayersP2WeaponMenu')); + TGUISwitch(menu.GetControl('swWeaponAutoswitch')).ItemIndex := gPlayer2Settings.WeaponSwitch; + TGUISwitch(menu.GetControl('swWeaponAllowEmpty')).ItemIndex := gPlayer2Settings.SwitchToEmpty; + TGUISwitch(menu.GetControl('swWeaponAllowFist')).ItemIndex := gPlayer2Settings.SkipFist; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu')); + for i := WP_FIRST to WP_LAST+1 do + begin + if (gPlayer2Settings.WeaponPreferences[i] > 0) and (gPlayer2Settings.WeaponPreferences[i] <= WP_LAST+1) then TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex := gPlayer2Settings.WeaponPreferences[i] + else TGUISwitch(menu.GetControl(IntToStr(i))).ItemIndex := 0; + end; + menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2Menu').GetControl('mOptionsPlayersP2Menu')); TGUIListBox(menu.GetControl('lsP2Model')).SelectItem(gPlayer2Settings.Model); @@ -675,7 +733,7 @@ begin Result := TGUISwitch(GetControl('swGameMode')).ItemIndex+1; gsGameMode := TGUISwitch(GetControl('swGameMode')).GetText; gsTimeLimit := StrToIntDef(TGUIEdit(GetControl('edTimeLimit')).Text, 0); - gsGoalLimit := StrToIntDef(TGUIEdit(GetControl('edGoalLimit')).Text, 0); + gsScoreLimit := StrToIntDef(TGUIEdit(GetControl('edScoreLimit')).Text, 0); gsMaxLives := StrToIntDef(TGUIEdit(GetControl('edMaxLives')).Text, 0); gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0); gsPlayers := TGUISwitch(GetControl('swPlayers')).ItemIndex; @@ -726,7 +784,7 @@ begin if GameMode = GM_NONE then Exit; g_Console_WriteGameConfig; - g_Game_StartCustom(gsMap, GameMode, gsTimeLimit, gsGoalLimit, + g_Game_StartCustom(gsMap, GameMode, gsTimeLimit, gsScoreLimit, gsMaxLives, gsGameFlags, gsPlayers); end; @@ -749,7 +807,7 @@ begin end; g_Console_WriteGameConfig; - g_Game_StartServer(gsMap, GameMode, gsTimeLimit, gsGoalLimit, gsMaxLives, + g_Game_StartServer(gsMap, GameMode, gsTimeLimit, gsScoreLimit, gsMaxLives, gsGameFlags, gsPlayers, 0, NetPort); end; @@ -1397,6 +1455,34 @@ begin g_GUI_ShowWindow('OptionsPlayersMIMenu'); end; +procedure ProcOptionsPlayerP1WeaponMenu(); +var + a: string; +begin + a := TGUIListBox(TGUIMenu(g_ActiveWindow.GetControl('mOptionsPlayers'+'P1'+'Menu')).GetControl('ls'+'P1'+'Model')).SelectedItem; + if a = '' then Exit; + g_GUI_ShowWindow('OptionsPlayersP1WeaponMenu'); +end; + +procedure ProcOptionsPlayerP1WeaponPreferencesMenu(); +begin + g_GUI_ShowWindow('OptionsPreferencesP1WeaponMenu'); +end; + +procedure ProcOptionsPlayerP2WeaponMenu(); +var + a: string; +begin + a := TGUIListBox(TGUIMenu(g_ActiveWindow.GetControl('mOptionsPlayers'+'P2'+'Menu')).GetControl('ls'+'P2'+'Model')).SelectedItem; + if a = '' then Exit; + g_GUI_ShowWindow('OptionsPlayersP2WeaponMenu'); +end; + +procedure ProcOptionsPlayerP2WeaponPreferencesMenu(); +begin + g_GUI_ShowWindow('OptionsPreferencesP2WeaponMenu'); +end; + procedure ProcOptionsPlayersAnim(); var s: String; @@ -1682,7 +1768,7 @@ begin ItemIndex := 2; TGUIEdit(menu.GetControl('edTimeLimit')).Text := IntToStr(TimeLimit); - TGUIEdit(menu.GetControl('edGoalLimit')).Text := IntToStr(GoalLimit); + TGUIEdit(menu.GetControl('edScoreLimit')).Text := IntToStr(ScoreLimit); TGUIEdit(menu.GetControl('edMaxLives')).Text := IntToStr(MaxLives); with TGUISwitch(menu.GetControl('swBotsVS')) do @@ -1711,8 +1797,8 @@ begin end; TGUIEdit(menu.GetControl('edTimeLimit')).Enabled := True; TGUILabel(menu.GetControlsText('edTimeLimit')).Color := MENU_ITEMSTEXT_COLOR; - TGUIEdit(menu.GetControl('edGoalLimit')).Enabled := True; - TGUILabel(menu.GetControlsText('edGoalLimit')).Color := MENU_ITEMSTEXT_COLOR; + TGUIEdit(menu.GetControl('edScoreLimit')).Enabled := True; + TGUILabel(menu.GetControlsText('edScoreLimit')).Color := MENU_ITEMSTEXT_COLOR; TGUIEdit(menu.GetControl('edMaxLives')).Enabled := True; TGUILabel(menu.GetControlsText('edMaxLives')).Color := MENU_ITEMSTEXT_COLOR; TGUISwitch(menu.GetControl('swBotsVS')).Enabled := True; @@ -1730,12 +1816,12 @@ begin Text := ''; end; TGUILabel(menu.GetControlsText('edTimeLimit')).Color := MENU_UNACTIVEITEMS_COLOR; - with TGUIEdit(menu.GetControl('edGoalLimit')) do + with TGUIEdit(menu.GetControl('edScoreLimit')) do begin Enabled := False; Text := ''; end; - TGUILabel(menu.GetControlsText('edGoalLimit')).Color := MENU_UNACTIVEITEMS_COLOR; + TGUILabel(menu.GetControlsText('edScoreLimit')).Color := MENU_UNACTIVEITEMS_COLOR; with TGUIEdit(menu.GetControl('edMaxLives')) do begin Enabled := False; @@ -1800,12 +1886,12 @@ begin end; end; - if TGUIEdit(menu.GetControl('edGoalLimit')).Enabled then + if TGUIEdit(menu.GetControl('edScoreLimit')).Enabled then begin - n := StrToIntDef(TGUIEdit(menu.GetControl('edGoalLimit')).Text, GoalLimit); + n := StrToIntDef(TGUIEdit(menu.GetControl('edScoreLimit')).Text, ScoreLimit); if n = 0 then - GoalLimit := 0 + ScoreLimit := 0 else begin b := 0; @@ -1818,15 +1904,15 @@ begin b := stat[a].Frags; end else // CTF - b := Max(gTeamStat[TEAM_RED].Goals, gTeamStat[TEAM_BLUE].Goals); + b := Max(gTeamStat[TEAM_RED].Score, gTeamStat[TEAM_BLUE].Score); - GoalLimit := Max(n, b); + ScoreLimit := Max(n, b); end; end; if TGUIEdit(menu.GetControl('edMaxLives')).Enabled then begin - n := StrToIntDef(TGUIEdit(menu.GetControl('edMaxLives')).Text, GoalLimit); + n := StrToIntDef(TGUIEdit(menu.GetControl('edMaxLives')).Text, MaxLives); if n < 0 then n := 0; if n > 255 then n := 255; if n = 0 then @@ -1877,7 +1963,7 @@ begin // don't forget to latch this shit gsGameFlags := Options; gsMaxLives := MaxLives; - gsGoalLimit := GoalLimit; + gsScoreLimit := ScoreLimit; gsTimeLimit := TimeLimit; end; @@ -1902,7 +1988,7 @@ begin if list <> nil then begin Items := list; - ItemIndex := Length(list) + ItemIndex := -1; (* nothing selected *) end else begin @@ -1918,7 +2004,7 @@ begin TempResScale := Round(r_pixel_scale - 1); with TGUISwitch(menu.GetControl('swResFactor')) do - ItemIndex := Min(TempResScale, gRC_Width div 640 - 1); + ItemIndex := Max(Min(TempResScale, gRC_Width div 640 - 1), 0); end; procedure ProcApplyVideoOptions(); @@ -2069,7 +2155,8 @@ begin AddButton(@ProcOptionsPlayersAnim, _lc[I_MENU_MODEL_ANIMATION]); AddButton(@ProcOptionsPlayersWeap, _lc[I_MENU_MODEL_CHANGE_WEAPON]); AddButton(@ProcOptionsPlayersRot, _lc[I_MENU_MODEL_ROTATE]); - + if s = 'P1' then AddButton(@ProcOptionsPlayerP1WeaponMenu, _lc[I_MENU_WEAPON]) + else AddButton(@ProcOptionsPlayerP2WeaponMenu, _lc[I_MENU_WEAPON]); with TGUIModelView(Menu.AddChild(TGUIModelView.Create)) do begin Name := 'mv'+s+'Model'; @@ -2115,8 +2202,8 @@ begin Name := 'mmNewGameMenu'; AddButton(@ProcSingle1Player, _lc[I_MENU_1_PLAYER]); AddButton(@ProcSingle2Players, _lc[I_MENU_2_PLAYERS]); - AddButton(nil, _lc[I_MENU_CUSTOM_GAME], 'CustomGameMenu'); AddButton(@ProcSelectCampaignMenu, _lc[I_MENU_CAMPAIGN], 'CampaignMenu'); + AddButton(nil, _lc[I_MENU_CUSTOM_GAME], 'CustomGameMenu'); end; Menu.DefControl := 'mmNewGameMenu'; g_GUI_AddWindow(Menu); @@ -2211,14 +2298,14 @@ begin if gsTimeLimit > 0 then Text := IntToStr(gsTimeLimit); end; - with AddEdit(_lc[I_MENU_GOAL_LIMIT]) do + with AddEdit(_lc[I_MENU_SCORE_LIMIT]) do begin - Name := 'edGoalLimit'; + Name := 'edScoreLimit'; OnlyDigits := True; Width := 4; MaxLength := 5; - if gsGoalLimit > 0 then - Text := IntToStr(gsGoalLimit); + if gsScoreLimit > 0 then + Text := IntToStr(gsScoreLimit); end; with AddEdit(_lc[I_MENU_MAX_LIVES]) do begin @@ -2459,14 +2546,14 @@ begin if gsTimeLimit > 0 then Text := IntToStr(gsTimeLimit); end; - with AddEdit(_lc[I_MENU_GOAL_LIMIT]) do + with AddEdit(_lc[I_MENU_SCORE_LIMIT]) do begin - Name := 'edGoalLimit'; + Name := 'edScoreLimit'; OnlyDigits := True; Width := 4; MaxLength := 5; - if gsGoalLimit > 0 then - Text := IntToStr(gsGoalLimit); + if gsScoreLimit > 0 then + Text := IntToStr(gsScoreLimit); end; with AddEdit(_lc[I_MENU_MAX_LIVES]) do begin @@ -2695,7 +2782,7 @@ begin FixedLength := 10; Enabled := False; end; - with AddMemo(_lc[I_MENU_MAP_DESCRIPTION], 12, 4) do + with AddMemo(_lc[I_MENU_MAP_DESCRIPTION], 20, 4) do begin Name := 'meMapDescription'; end; @@ -3175,6 +3262,123 @@ begin Menu.DefControl := 'mOptionsPlayersMIMenu'; g_GUI_AddWindow(Menu); + Menu := TGUIWindow.Create('OptionsPlayersP1WeaponMenu'); + with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_WEAPON]))) do + begin + Name := 'mOptionsPlayersP1WeaponMenu'; + with AddSwitch(_lc[I_MENU_WEAPON_SWITCH]) do + begin + Name := 'swWeaponAutoswitch'; + AddItem(_lc[I_MENU_NO]); + AddItem(_lc[I_MENU_WEAPON_SWITCH_LINEAR]); + AddItem(_lc[I_MENU_WEAPON_SWITCH_PREFERENCE]); + end; + with AddSwitch(_lc[I_MENU_WEAPON_ALLOW_EMPTY]) do + begin + Name := 'swWeaponAllowEmpty'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + end; + with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do + begin + Name := 'swWeaponAllowFist'; + AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]); + AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]); + end; + AddButton(@ProcOptionsPlayerP1WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]); + ReAlign(); + end; + Menu.DefControl := 'mOptionsPlayersP1WeaponMenu'; + g_GUI_AddWindow(Menu); + + Menu := TGUIWindow.Create('OptionsPreferencesP1WeaponMenu'); + with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_WEAPON_PRIORITY_PLAYER_1]))) do + begin + Name := 'mOptionsPreferencesP1WeaponMenu'; + for i := WP_FIRST to WP_LAST do + begin + with AddSwitch(_lc[TStrings_Locale(Cardinal(I_GAME_WEAPON0) + i)]) do + begin + Name := IntToStr(i); + for a := WP_FIRST to WP_LAST+1 do + begin + AddItem(IntToStr(a)); + end; + ItemIndex := i + end; + end; + with AddSwitch(_lc[I_GAME_WEAPON_BERSERK]) do + begin + Name := IntToStr(WP_LAST+1); + for a := WP_FIRST to WP_LAST+1 do + begin + AddItem(IntToStr(a)); + end; + ItemIndex := WP_LAST + 1; + end; + end; + Menu.DefControl := 'mOptionsPreferencesP1WeaponMenu'; + g_GUI_AddWindow(Menu); + + + Menu := TGUIWindow.Create('OptionsPlayersP2WeaponMenu'); + with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_WEAPON]))) do + begin + Name := 'mOptionsPlayersP2WeaponMenu'; + with AddSwitch(_lc[I_MENU_WEAPON_SWITCH]) do + begin + Name := 'swWeaponAutoswitch'; + AddItem(_lc[I_MENU_NO]); + AddItem(_lc[I_MENU_WEAPON_SWITCH_LINEAR]); + AddItem(_lc[I_MENU_WEAPON_SWITCH_PREFERENCE]); + end; + with AddSwitch(_lc[I_MENU_WEAPON_ALLOW_EMPTY]) do + begin + Name := 'swWeaponAllowEmpty'; + AddItem(_lc[I_MENU_YES]); + AddItem(_lc[I_MENU_NO]); + end; + with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do + begin + Name := 'swWeaponAllowFist'; + AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]); + AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]); + end; + AddButton(@ProcOptionsPlayerP2WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]); + ReAlign(); + end; + Menu.DefControl := 'mOptionsPlayersP2WeaponMenu'; + g_GUI_AddWindow(Menu); + + Menu := TGUIWindow.Create('OptionsPreferencesP2WeaponMenu'); + with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_WEAPON_PRIORITY_PLAYER_2]))) do + begin + Name := 'mOptionsPreferencesP2WeaponMenu'; + for i := WP_FIRST to WP_LAST do + begin + with AddSwitch(_lc[TStrings_Locale(Cardinal(I_GAME_WEAPON0) + i)]) do + begin + Name := IntToStr(i); + for a := WP_FIRST to WP_LAST+1 do + begin + AddItem(IntToStr(a)); + end; + ItemIndex := i + end; + end; + with AddSwitch(_lc[I_GAME_WEAPON_BERSERK]) do + begin + Name := IntToStr(WP_LAST+1); + for a := WP_FIRST to WP_LAST+1 do + begin + AddItem(IntToStr(a)); + end; + ItemIndex := WP_LAST + 1; + end; + end; + Menu.DefControl := 'mOptionsPreferencesP2WeaponMenu'; + g_GUI_AddWindow(Menu); + Menu := TGUIWindow.Create('OptionsLanguageMenu'); with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_LANGUAGE_OPTIONS]))) do begin @@ -3441,9 +3645,9 @@ begin Width := 4; MaxLength := 5; end; - with AddEdit(_lc[I_MENU_GOAL_LIMIT]) do + with AddEdit(_lc[I_MENU_SCORE_LIMIT]) do begin - Name := 'edGoalLimit'; + Name := 'edScoreLimit'; OnlyDigits := True; Width := 4; MaxLength := 5;