diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas
index d9a8c6d7a16d39be58481ba48c93467af4a5d7e9..fac3ca78f40f161031fbcd68254909343f475a64 100644 (file)
--- a/src/game/g_menu.pas
+++ b/src/game/g_menu.pas
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;
+ gPlayer1Settings.SkipIronFist := TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex;
menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu'));
with menu do
begin
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;
+ gPlayer2Settings.SkipIronFist := TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex;
menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu'));
with menu do
begin
gPlayer1.WeapSwitchMode := gPlayer1Settings.WeaponSwitch;
gPlayer1.setWeaponPrefs(gPlayer1Settings.WeaponPreferences);
gPlayer1.SwitchToEmpty := gPlayer1Settings.SwitchToEmpty;
- gPlayer1.SkipFist := gPlayer1Settings.SkipFist;
+ gPlayer1.SkipIronFist := gPlayer1Settings.SkipIronFist;
if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer1.UID);
end;
gPlayer2.WeapSwitchMode := gPlayer2Settings.WeaponSwitch;
gPlayer2.setWeaponPrefs(gPlayer2Settings.WeaponPreferences);
gPlayer2.SwitchToEmpty := gPlayer2Settings.SwitchToEmpty;
- gPlayer2.SkipFist := gPlayer2Settings.SkipFist;
+ gPlayer2.SkipIronFist := gPlayer2Settings.SkipIronFist;
//if g_Game_IsNet then MH_SEND_PlayerSettings(gPlayer2.UID);
end;
end;
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;
+ TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex := gPlayer1Settings.SkipIronFist;
menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP1WeaponMenu').GetControl('mOptionsPreferencesP1WeaponMenu'));
for i := WP_FIRST to WP_LAST+1 do
begin
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;
+ TGUISwitch(menu.GetControl('swWeaponAllowIronFist')).ItemIndex := gPlayer2Settings.SkipIronFist;
menu := TGUIMenu(g_GUI_GetWindow('OptionsPreferencesP2WeaponMenu').GetControl('mOptionsPreferencesP2WeaponMenu'));
for i := WP_FIRST to WP_LAST+1 do
begin
gsTimeLimit := StrToIntDef(TGUIEdit(GetControl('edTimeLimit')).Text, 0);
gsScoreLimit := StrToIntDef(TGUIEdit(GetControl('edScoreLimit')).Text, 0);
gsMaxLives := StrToIntDef(TGUIEdit(GetControl('edMaxLives')).Text, 0);
- gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0);
- gsRulezRespawnTime := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnTime')).Text, 0);
- gsRulezRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edRulezRespawnRandom')).Text, 0);
gsPlayers := TGUISwitch(GetControl('swPlayers')).ItemIndex;
gsMap := Map;
gsGameFlags := gsGameFlags or GAME_OPTION_WEAPONSTAY;
if TGUISwitch(GetControl('swMonsters')).ItemIndex = 0 then
gsGameFlags := gsGameFlags or GAME_OPTION_MONSTERS;
- if TGUISwitch(GetControl('swRulezRandom')).ItemIndex = 0 then
- gsGameFlags := gsGameFlags or GAME_OPTION_RULEZRANDOM;
case TGUISwitch(GetControl('swTeamHit')).ItemIndex of
1: gsGameFlags := gsGameFlags or GAME_OPTION_TEAMHITTRACE;
end;
// TODO: get this crap out of here
- gGameSettings.ItemRespawnTime := gsItemRespawnTime;
- gGameSettings.RulezRespawnTime := gsRulezRespawnTime;
- gGameSettings.RulezRespawnRandom := gsRulezRespawnRandom;
gGameSettings.WarmupTime := gsWarmupTime;
gGameSettings.SpawnInvul := gsSpawnInvul;
end;
+
+ // HACK: We keep the variables for the items in a different menu
+ with TGUIMenu(g_GUI_GetWindow('ItemsRespawnMenu').GetControl('mItemsRespawnMenu')) do
+ begin
+ gsItemRespawnTime := StrToIntDef(TGUIEdit(GetControl('edItemRespawnTime')).Text, 0);
+ gsItemRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edItemRespawnRandom')).Text, 0);
+ gsPowerupRespawnTime := StrToIntDef(TGUIEdit(GetControl('edPowerupRespawnTime')).Text, 0);
+ gsPowerupRespawnRandom := StrToIntDef(TGUIEdit(GetControl('edPowerupRespawnRandom')).Text, 0);
+
+ if TGUISwitch(GetControl('swPowerupRandom')).ItemIndex = 0 then
+ gsGameFlags := gsGameFlags or GAME_OPTION_POWERUPRANDOM;
+
+ case TGUISwitch(GetControl('swItemsRandom')).ItemIndex of
+ 1: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMHELPRANDOM;
+ 2: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMAMMORANDOM;
+ 3: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMWEAPONRANDOM;
+ 4: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMAMMORANDOM;
+ 5: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMWEAPONRANDOM;
+ 6: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMAMMORANDOM or GAME_OPTION_ITEMWEAPONRANDOM;
+ 0: gsGameFlags := gsGameFlags or GAME_OPTION_ITEMALLRANDOM;
+ end;
+
+ // TODO: get this crap out of here
+ gGameSettings.ItemRespawnTime := gsItemRespawnTime;
+ gGameSettings.ItemRespawnRandom := gsItemRespawnRandom;
+ gGameSettings.PowerupRespawnTime := gsPowerupRespawnTime;
+ gGameSettings.PowerupRespawnRandom := gsPowerupRespawnRandom;
+ end;
end;
procedure ProcStartCustomGame();
end;
end;
+procedure ProcItemsRespawnMenu();
+var
+ menu: TGUIMenu;
+begin
+ menu := TGUIMenu(g_GUI_GetWindow('ItemsRespawnMenu').GetControl('mItemsRespawnMenu'));
+
+ g_GUI_ShowWindow('ItemsRespawnMenu');
+end;
+
procedure ReadGameSettings();
var
menu: TGUIMenu;
if gsMaxLives > 0 then
Text := IntToStr(gsMaxLives);
end;
- with AddEdit(_lc[I_MENU_ITEM_RESPAWN_TIME]) do
- begin
- Name := 'edItemRespawnTime';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsItemRespawnTime > 0 then
- Text := IntToStr(gsItemRespawnTime);
- end;
- AddSpace(); // Rulez Respawn block
- with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_TIME]) do
- begin
- Name := 'edRulezRespawnTime';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsRulezRespawnTime > 0 then
- Text := IntToStr(gsRulezRespawnTime);
- end;
- with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_RANDOM]) do
- begin
- Name := 'edRulezRespawnRandom';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsRulezRespawnRandom > 0 then
- Text := IntToStr(gsRulezRespawnRandom);
- end;
- with AddSwitch(_lc[I_MENU_ENABLE_RULEZ_RANDOM]) do
+ with AddLabel(_lc[I_MENU_SELECT_ITEM_RESPAWN]) do
begin
- Name := 'swRulezRandom';
- AddItem(_lc[I_MENU_YES]);
- AddItem(_lc[I_MENU_NO]);
- if LongBool(gsGameFlags and GAME_OPTION_RULEZRANDOM) then
- ItemIndex := 0
- else
- ItemIndex := 1;
+ Name := 'lbItemsRespawn';
+ FixedLength := 16;
+ OnClick := @ProcItemsRespawnMenu;
end;
AddSpace();
with AddSwitch(_lc[I_MENU_PLAYERS]) do
if gsMaxLives > 0 then
Text := IntToStr(gsMaxLives);
end;
- with AddEdit(_lc[I_MENU_ITEM_RESPAWN_TIME]) do
- begin
- Name := 'edItemRespawnTime';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsItemRespawnTime > 0 then
- Text := IntToStr(gsItemRespawnTime);
- end;
- AddSpace(); // Rulez Respawn block
- with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_TIME]) do
+ with AddLabel(_lc[I_MENU_SELECT_ITEM_RESPAWN]) do
begin
- Name := 'edRulezRespawnTime';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsRulezRespawnTime > 0 then
- Text := IntToStr(gsRulezRespawnTime);
- end;
- with AddEdit(_lc[I_MENU_RULEZ_RESPAWN_RANDOM]) do
- begin
- Name := 'edRulezRespawnRandom';
- OnlyDigits := True;
- Width := 4;
- MaxLength := 5;
- if gsRulezRespawnRandom > 0 then
- Text := IntToStr(gsRulezRespawnRandom);
- end;
- with AddSwitch(_lc[I_MENU_ENABLE_RULEZ_RANDOM]) do
- begin
- Name := 'swRulezRandom';
- AddItem(_lc[I_MENU_YES]);
- AddItem(_lc[I_MENU_NO]);
- if LongBool(gsGameFlags and GAME_OPTION_RULEZRANDOM) then
- ItemIndex := 0
- else
- ItemIndex := 1;
+ Name := 'lbItemsRespawn';
+ FixedLength := 16;
+ OnClick := @ProcItemsRespawnMenu;
end;
AddSpace();
with AddSwitch(_lc[I_MENU_PLAYERS]) do
Menu.DefControl := 'mSelectMapMenu';
g_GUI_AddWindow(Menu);
+ Menu := TGUIWindow.Create('ItemsRespawnMenu');
+ with TGUIMenu(Menu.AddChild(TGUIMenu.Create(gMenuFont, gMenuSmallFont, _lc[I_MENU_ITEM_RESPAWN]))) do
+ begin
+ Name := 'mItemsRespawnMenu';
+
+ // Switches separate from the time entry fields
+ with AddSwitch(_lc[I_MENU_ENABLE_POWERUP_RANDOM]) do
+ begin
+ Name := 'swPowerupRandom';
+ AddItem(_lc[I_MENU_YES]);
+ AddItem(_lc[I_MENU_NO]);
+ if LongBool(gsGameFlags and GAME_OPTION_POWERUPRANDOM) then
+ ItemIndex := 0
+ else
+ ItemIndex := 1;
+ end;
+ with AddSwitch(_lc[I_MENU_ENABLE_ITEM_RANDOM]) do
+ begin
+ Name := 'swItemsRandom';
+ AddItem(_lc[I_MENU_ITEM_RANDOM_ALL]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_HELP_ONLY]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_AMMO_ONLY]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_WEAPON_ONLY]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_HELP_AMMO]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_HELP_WEAPON]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_WEAPON_AMMO]);
+ AddItem(_lc[I_MENU_ITEM_RANDOM_NOTHING]);
+ if LongBool(gsGameFlags and GAME_OPTION_ITEMALLRANDOM) then
+ ItemIndex := 0
+ else if LongBool(gsGameFlags and GAME_OPTION_ITEMHELPRANDOM) then
+ ItemIndex := 1
+ else if LongBool(gsGameFlags and GAME_OPTION_ITEMAMMORANDOM) then
+ ItemIndex := 2
+ else if LongBool(gsGameFlags and GAME_OPTION_ITEMWEAPONRANDOM) then
+ ItemIndex := 3
+ else if (gsGameFlags and (GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMAMMORANDOM)) = (GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMAMMORANDOM) then
+ ItemIndex := 4
+ else if (gsGameFlags and (GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMWEAPONRANDOM)) = (GAME_OPTION_ITEMHELPRANDOM or GAME_OPTION_ITEMWEAPONRANDOM) then
+ ItemIndex := 5
+ else if (gsGameFlags and (GAME_OPTION_ITEMAMMORANDOM or GAME_OPTION_ITEMWEAPONRANDOM)) = (GAME_OPTION_ITEMAMMORANDOM or GAME_OPTION_ITEMWEAPONRANDOM) then
+ ItemIndex := 6
+ else
+ ItemIndex := 7;
+ end;
+ AddSpace();// Items Respawn block
+ with AddEdit(_lc[I_MENU_ITEM_RESPAWN_TIME]) do
+ begin
+ Name := 'edItemRespawnTime';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsItemRespawnTime > 0 then
+ Text := IntToStr(gsItemRespawnTime);
+ end;
+ with AddEdit(_lc[I_MENU_ITEM_RESPAWN_RANDOM]) do
+ begin
+ Name := 'edItemRespawnRandom';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsItemRespawnTime > 0 then
+ Text := IntToStr(gsItemRespawnRandom);
+ end;
+ // Powerup Respawn block
+ with AddEdit(_lc[I_MENU_POWERUP_RESPAWN_TIME]) do
+ begin
+ Name := 'edPowerupRespawnTime';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsPowerupRespawnTime > 0 then
+ Text := IntToStr(gsPowerupRespawnTime);
+ end;
+ with AddEdit(_lc[I_MENU_POWERUP_RESPAWN_RANDOM]) do
+ begin
+ Name := 'edPowerupRespawnRandom';
+ OnlyDigits := True;
+ Width := 4;
+ MaxLength := 5;
+ if gsPowerupRespawnRandom > 0 then
+ Text := IntToStr(gsPowerupRespawnRandom);
+ end;
+ AddSpace();
+ end;
+ Menu.DefControl := 'mItemsRespawnMenu';
+ g_GUI_AddWindow(Menu);
+
Menu := TGUIWindow.Create('OptionsMenu');
with TGUIMainMenu(Menu.AddChild(TGUIMainMenu.Create(gMenuFont, '', _lc[I_MENU_OPTIONS]))) do
begin
AddItem(_lc[I_MENU_YES]);
AddItem(_lc[I_MENU_NO]);
end;
- with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do
+ with AddSwitch(_lc[I_MENU_IRONFIST_ALLOW]) do
begin
- Name := 'swWeaponAllowFist';
- AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]);
- AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]);
+ Name := 'swWeaponAllowIronFist';
+ AddItem(_lc[I_MENU_IRONFIST_ALLOW_ALWAYS]);
+ AddItem(_lc[I_MENU_IRONFIST_ALLOW_BERSERK]);
end;
AddButton(@ProcOptionsPlayerP1WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]);
ReAlign();
AddItem(_lc[I_MENU_YES]);
AddItem(_lc[I_MENU_NO]);
end;
- with AddSwitch(_lc[I_MENU_KASTET_ALLOW]) do
+ with AddSwitch(_lc[I_MENU_IRONFIST_ALLOW]) do
begin
- Name := 'swWeaponAllowFist';
- AddItem(_lc[I_MENU_KASTET_ALLOW_ALWAYS]);
- AddItem(_lc[I_MENU_KASTET_ALLOW_BERSERK]);
+ Name := 'swWeaponAllowIronFist';
+ AddItem(_lc[I_MENU_IRONFIST_ALLOW_ALWAYS]);
+ AddItem(_lc[I_MENU_IRONFIST_ALLOW_BERSERK]);
end;
AddButton(@ProcOptionsPlayerP2WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]);
ReAlign();