diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index 04ffd90df4089a2ff64649478ad1ba764fbfebbc..f2e3d86e2b388abb6774daf5b096d617c49ae4f4 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
g_dbg_scale := TempScale + 1;
end;
+
menu := TGUIMenu(g_GUI_GetWindow('OptionsControlsMenu').GetControl('mOptionsControlsMenu'));
with menu do
gPlayer1Settings.Color := Model.Color;
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;
+ gPlayer1Settings.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;
+
menu := TGUIMenu(g_GUI_GetWindow('OptionsPlayersP2Menu').GetControl('mOptionsPlayersP2Menu'));
gPlayer2Settings.Name := b_Text_Unformat(TGUIEdit(menu.GetControl('edP2Name')).Text);
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;
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;
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;
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);
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;
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';
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);
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