X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fgame%2Fg_menu.pas;h=fac3ca78f40f161031fbcd68254909343f475a64;hb=67d37ea13feeca0671d60d88b1963cf1e0e901c4;hp=d9a8c6d7a16d39be58481ba48c93467af4a5d7e9;hpb=d0c37e245a31713f3207059347ded7e97dfb5564;p=d2df-sdl.git diff --git a/src/game/g_menu.pas b/src/game/g_menu.pas index d9a8c6d..fac3ca7 100644 --- a/src/game/g_menu.pas +++ b/src/game/g_menu.pas @@ -353,7 +353,7 @@ begin 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 @@ -366,7 +366,7 @@ 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 @@ -393,7 +393,7 @@ 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; @@ -409,7 +409,7 @@ begin 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; @@ -646,7 +646,7 @@ begin 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 @@ -657,7 +657,7 @@ 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 @@ -735,9 +735,6 @@ 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; @@ -754,8 +751,6 @@ begin 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; @@ -776,12 +771,37 @@ begin 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(); @@ -1740,6 +1760,15 @@ begin 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; @@ -2324,43 +2353,11 @@ begin 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 @@ -2612,43 +2609,11 @@ begin 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 @@ -2899,6 +2864,93 @@ begin 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 @@ -3367,11 +3419,11 @@ 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(); @@ -3426,11 +3478,11 @@ 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(@ProcOptionsPlayerP2WeaponPreferencesMenu, _lc[I_MENU_WEAPON_SWITCH_PRIORITY]); ReAlign();