diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index 95a0da30f122c1634ea69c381f02d372d8097e8e..04ffd90df4089a2ff64649478ad1ba764fbfebbc 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
g_Console_BindKey(g_Console_FindBind(1, '+p1_jump', '-p1_jump'), '');
g_Console_BindKey(g_Console_FindBind(1, '+p1_activate', '-p1_activate'), '');
g_Console_BindKey(g_Console_FindBind(1, '+p1_strafe', '-p1_strafe'), '');
+ g_Console_BindKey(g_Console_FindBind(1, 'p1_dropflag', ''), '');
g_Console_BindKey(g_Console_FindBind(1, 'p1_weapnext', ''), '');
g_Console_BindKey(g_Console_FindBind(1, 'p1_weapprev', ''), '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_RIGHT])).Key0, '+p1_moveright', '-p1_moveright');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key0, '+p1_jump', '-p1_jump');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key0, '+p1_activate', '-p1_activate');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key0, '+p1_strafe', '-p1_strafe');
+ g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key0, 'p1_dropflag', '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key0, 'p1_weapnext', '', True);
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key0, 'p1_weapprev', '', True);
// second set
g_Console_BindKey(g_Console_FindBind(2, '+p1_jump', '-p1_jump'), '');
g_Console_BindKey(g_Console_FindBind(2, '+p1_activate', '-p1_activate'), '');
g_Console_BindKey(g_Console_FindBind(2, '+p1_strafe', '-p1_strafe'), '');
+ g_Console_BindKey(g_Console_FindBind(2, 'p1_dropflag', ''), '');
g_Console_BindKey(g_Console_FindBind(2, 'p1_weapnext', ''), '');
g_Console_BindKey(g_Console_FindBind(2, 'p1_weapprev', ''), '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_RIGHT])).Key1, '+p1_moveright', '-p1_moveright');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key1, '+p1_jump', '-p1_jump');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key1, '+p1_activate', '-p1_activate');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key1, '+p1_strafe', '-p1_strafe');
+ g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key1, 'p1_dropflag', '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key1, 'p1_weapnext', '', True);
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key1, 'p1_weapprev', '', True);
end;
g_Console_BindKey(g_Console_FindBind(1, '+p2_jump', '-p2_jump'), '');
g_Console_BindKey(g_Console_FindBind(1, '+p2_activate', '-p2_activate'), '');
g_Console_BindKey(g_Console_FindBind(1, '+p2_strafe', '-p2_strafe'), '');
+ g_Console_BindKey(g_Console_FindBind(1, 'p2_dropflag', ''), '');
g_Console_BindKey(g_Console_FindBind(1, 'p2_weapnext', ''), '');
g_Console_BindKey(g_Console_FindBind(1, 'p2_weapprev', ''), '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_RIGHT])).Key0, '+p2_moveright', '-p2_moveright');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key0, '+p2_jump', '-p2_jump');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key0, '+p2_activate', '-p2_activate');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key0, '+p2_strafe', '-p2_strafe');
+ g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key0, 'p2_dropflag', '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key0, 'p2_weapnext', '', True);
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key0, 'p2_weapprev', '', True);
// second set
g_Console_BindKey(g_Console_FindBind(2, '+p2_jump', '-p2_jump'), '');
g_Console_BindKey(g_Console_FindBind(2, '+p2_activate', '-p2_activate'), '');
g_Console_BindKey(g_Console_FindBind(2, '+p2_strafe', '-p2_strafe'), '');
+ g_Console_BindKey(g_Console_FindBind(2, 'p2_dropflag', ''), '');
g_Console_BindKey(g_Console_FindBind(2, 'p2_weapnext', ''), '');
g_Console_BindKey(g_Console_FindBind(2, 'p2_weapprev', ''), '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_RIGHT])).Key1, '+p2_moveright', '-p2_moveright');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key1, '+p2_jump', '-p2_jump');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key1, '+p2_activate', '-p2_activate');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key1, '+p2_strafe', '-p2_strafe');
+ g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key1, 'p2_dropflag', '');
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key1, 'p2_weapnext', '', True);
g_Console_BindKey(TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key1, 'p2_weapprev', '', True);
end;
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key0 := g_Console_FindBind(1, '+p1_jump', '-p1_jump');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key0 := g_Console_FindBind(1, '+p1_activate', '-p1_activate');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key0 := g_Console_FindBind(1, '+p1_strafe', '-p1_strafe');
+ TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key0 := g_Console_FindBind(1, 'p1_dropflag', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key0 := g_Console_FindBind(1, 'p1_weapnext', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key0 := g_Console_FindBind(1, 'p1_weapprev', '');
// second set
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key1 := g_Console_FindBind(2, '+p1_jump', '-p1_jump');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key1 := g_Console_FindBind(2, '+p1_activate', '-p1_activate');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key1 := g_Console_FindBind(2, '+p1_strafe', '-p1_strafe');
+ TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key1 := g_Console_FindBind(2, 'p1_dropflag', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key1 := g_Console_FindBind(2, 'p1_weapnext', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key1 := g_Console_FindBind(2, 'p1_weapprev', '');
end;
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key0 := g_Console_FindBind(1, '+p2_jump', '-p2_jump');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key0 := g_Console_FindBind(1, '+p2_activate', '-p2_activate');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key0 := g_Console_FindBind(1, '+p2_strafe', '-p2_strafe');
+ TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key0 := g_Console_FindBind(1, 'p2_dropflag', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key0 := g_Console_FindBind(1, 'p2_weapnext', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key0 := g_Console_FindBind(1, 'p2_weapprev', '');
// second set
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_JUMP])).Key1 := g_Console_FindBind(2, '+p2_jump', '-p2_jump');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_USE])).Key1 := g_Console_FindBind(2, '+p2_activate', '-p2_activate');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_STRAFE])).Key1 := g_Console_FindBind(2, '+p2_strafe', '-p2_strafe');
+ TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_DROPFLAG])).Key1 := g_Console_FindBind(2, 'p2_dropflag', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_NEXT_WEAPON])).Key1 := g_Console_FindBind(2, 'p2_weapnext', '');
TGUIKeyRead2(GetControl(_lc[I_MENU_CONTROL_PREV_WEAPON])).Key1 := g_Console_FindBind(2, 'p2_weapprev', '');
end;
else gsGameFlags := gsGameFlags or GAME_OPTION_BOTVSPLAYER;
end;
+ case TGUISwitch(GetControl('swFlagDrop')).ItemIndex of
+ 0: gsGameFlags := gsGameFlags or GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG;
+ 1: gsGameFlags := gsGameFlags or GAME_OPTION_ALLOWDROPFLAG;
+ else gsGameFlags := gsGameFlags and not (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG);
+ end;
+
// TODO: get this crap out of here
gGameSettings.ItemRespawnTime := gsItemRespawnTime;
gGameSettings.WarmupTime := gsWarmupTime;
ItemIndex := 0
else
ItemIndex := 1;
+ with TGUISwitch(menu.GetControl('swFlagDrop')) do
+ if LongBool(Options and GAME_OPTION_ALLOWDROPFLAG) and LongBool(Options and GAME_OPTION_THROWFLAG) then
+ ItemIndex := 0
+ else if LongBool(Options and GAME_OPTION_ALLOWDROPFLAG) then
+ ItemIndex := 1
+ else
+ ItemIndex := 2;
TGUIEdit(menu.GetControl('edTimeLimit')).Text := IntToStr(TimeLimit);
TGUIEdit(menu.GetControl('edGoalLimit')).Text := IntToStr(GoalLimit);
TGUIEdit(menu.GetControl('edMaxLives')).Enabled := True;
TGUILabel(menu.GetControlsText('edMaxLives')).Color := MENU_ITEMSTEXT_COLOR;
TGUISwitch(menu.GetControl('swBotsVS')).Enabled := True;
+ TGUISwitch(menu.GetControl('swFlagDrop')).Enabled := True;
end
else
begin
end;
TGUILabel(menu.GetControlsText('edMaxLives')).Color := MENU_UNACTIVEITEMS_COLOR;
TGUISwitch(menu.GetControl('swBotsVS')).Enabled := True;
+ TGUISwitch(menu.GetControl('swFlagDrop')).Enabled := False;
end;
end;
end;
end;
end;
+ if TGUISwitch(menu.GetControl('swFlagDrop')).Enabled then
+ begin
+ case TGUISwitch(menu.GetControl('swFlagDrop')).ItemIndex of
+ 0: Options := Options or GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG;
+ 1: Options := Options or GAME_OPTION_ALLOWDROPFLAG;
+ else Options := Options and not (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG);
+ end;
+ end;
+
// don't forget to latch this shit
gsGameFlags := Options;
gsMaxLives := MaxLives;
if not LongBool(gsGameFlags and GAME_OPTION_BOTVSPLAYER) then
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_FLAG_DROP]) do
+ begin
+ Name := 'swFlagDrop';
+ AddItem(_lc[I_MENU_FLAG_THROW]);
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if (gsGameFlags and (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG)) = (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG) then
+ ItemIndex := 0
+ else if LongBool(gsGameFlags and GAME_OPTION_ALLOWDROPFLAG) then
+ ItemIndex := 1
+ else
+ ItemIndex := 2;
+ end;
AddSpace();
AddButton(@ProcStartNetGame, _lc[I_MENU_START_GAME]);
if not LongBool(gsGameFlags and GAME_OPTION_BOTVSPLAYER) then
ItemIndex := 1;
end;
+ with AddSwitch(_lc[I_MENU_FLAG_DROP]) do
+ begin
+ Name := 'swFlagDrop';
+ AddItem(_lc[I_MENU_FLAG_THROW]);
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if (gsGameFlags and (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG)) = (GAME_OPTION_ALLOWDROPFLAG or GAME_OPTION_THROWFLAG) then
+ ItemIndex := 0
+ else if LongBool(gsGameFlags and GAME_OPTION_ALLOWDROPFLAG) then
+ ItemIndex := 1
+ else
+ ItemIndex := 2;
+ end;
AddSpace();
AddButton(@ProcStartCustomGame, _lc[I_MENU_START_GAME]);
AddKeyRead2(_lc[I_MENU_CONTROL_NEXT_WEAPON]).Name := _lc[I_MENU_CONTROL_NEXT_WEAPON];
AddKeyRead2(_lc[I_MENU_CONTROL_PREV_WEAPON]).Name := _lc[I_MENU_CONTROL_PREV_WEAPON];
AddKeyRead2(_lc[I_MENU_CONTROL_STRAFE]).Name := _lc[I_MENU_CONTROL_STRAFE];
+ AddKeyRead2(_lc[I_MENU_CONTROL_DROPFLAG]).Name := _lc[I_MENU_CONTROL_DROPFLAG];
end;
Menu.DefControl := 'mOptionsControlsP1Menu';
g_GUI_AddWindow(Menu);
AddKeyRead2(_lc[I_MENU_CONTROL_NEXT_WEAPON]).Name := _lc[I_MENU_CONTROL_NEXT_WEAPON];
AddKeyRead2(_lc[I_MENU_CONTROL_PREV_WEAPON]).Name := _lc[I_MENU_CONTROL_PREV_WEAPON];
AddKeyRead2(_lc[I_MENU_CONTROL_STRAFE]).Name := _lc[I_MENU_CONTROL_STRAFE];
+ AddKeyRead2(_lc[I_MENU_CONTROL_DROPFLAG]).Name := _lc[I_MENU_CONTROL_DROPFLAG];
end;
Menu.DefControl := 'mOptionsControlsP2Menu';
g_GUI_AddWindow(Menu);
AddItem(_lc[I_MENU_BOTS_VS_ALL]);
ItemIndex := 2;
end;
+ with AddSwitch(_lc[I_MENU_FLAG_DROP]) do
+ begin
+ Name := 'swFlagDrop';
+ AddItem(_lc[I_MENU_FLAG_THROW]);
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ ItemIndex := 2;
+ end;
ReAlign();
end;