rott/kf_sources/KFGui/Classes/KFMainMenu.uc
2026-07-14 20:27:09 +07:00

1094 lines
31 KiB
Ucode

class KFMainMenu extends UT2K4GUIPage;
//var KFDataObject SPAmmo;
var bool bOpenAlready;
var bool bMovingOnTraining,
bMovingOnResume,
bMovingOnSP;
var automated FloatingImage KFBackground;
var automated FloatingImage KFBackgroundOverlay;
var automated GUIImage KFLogoBit;
var automated GUILabel KFVersionNum; // Keep track of updates from now on ! :D
var automated GUILabel KFWorkshopDownload;
var transient bool bOwnsWeaponDLC;
var transient int WeaponDLCID;
var int WeaponBundle;
var array<int> WeaponDLCs;
var automated GUIImage KFWeaponDLCImage;
var automated GUIImage KFWeaponDLCOverlay;
var Texture KFWeaponDLCOwnedTexture;
var Texture KFWeaponDLCOverlayTexture;
var Texture KFWeaponDLCHoverTexture;
var transient bool bOwnsCharacterDLC;
var const string CharacterDLCName;
var automated GUIImage KFCharacterDLCImage;
var automated GUIImage KFCharacterDLCOverlay;
var Texture KFCharacterDLCOwnedTexture;
var Texture KFCharacterDLCOverlayTexture;
var Texture KFCharacterDLCHoverTexture;
#exec OBJ LOAD FILE=InterfaceContent.utx
#exec OBJ LOAD FIlE=2K4Menus.utx
#exec OBJ LOAD FIlE=2K4MenuSounds.uax
#exec OBJ LOAD FIlE=2K4Menus.utx
#exec OBJ LOAD FIlE=PatchTex.utx
#exec OBJ LOAD FIlE=KF_DLC.utx
#exec OBJ LOAD FIlE=KillingFloorHUD_SUMMER.utx
#exec OBJ LOAD FIlE=KillingFloorHUD_HALLOWEEN.utx
#exec OBJ LOAD FIlE=KillingFloorHUD_XMAS.utx
/*
Variable Name Legend
l_ GUILabel lb_ GUIListBox
i_ GUIImage li_ GUIList
b_ GUIButton tp_ GUITabPanel
t_ GUITitleBar sp_ GUISplitter
c_ GUITabControl
p_ GUIPanel
ch_ moCheckBox
co_ moComboBox
nu_ moNumericEdit
ed_ moEditBox
fl_ moFloatEdit
sl_ moSlider
*/
var automated BackgroundImage i_BkChar,
i_Background;
var automated GUIImage i_UT2Logo,
i_PanHuge,
i_PanBig,
i_PanSmall,
i_UT2Shader,
i_TV;
var automated GUIButton b_SinglePlayer,
b_MultiPlayer, b_Host,
b_InstantAction,
b_ModsAndDemo,
b_Profile,
b_DLC,
b_Workshop,
b_Settings,
b_Quit;
var bool bAllowClose;
var array<material> CharShots;
var float CharFade,
DesiredCharFade,
CharFadeTime;
var GUIButton Selected;
var() bool bNoInitDelay;
var() config string MenuSong;
var bool bNewNews;
var float FadeTime;
var bool FadeOut;
var localized string NewNewsMsg,
FireWallTitle,
FireWallMsg,
SteamMustBeRunningText,
UnknownSteamErrorText,
DownloadingText,
DownloadedText;
var globalconfig bool AcceptedEULA;
function int GetDLCListTextureIndex()
{
local int i;
for(i = 0; i < class'KFDLCList'.default.WeaponAppIDs.Length;i++)
{
if( WeaponDLCID == class'KFDLCList'.default.WeaponAppIDs[i] )
{
return i;
}
}
}
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
local byte SpecialEventType;
Super.InitComponent(MyController, MyOwner);
Background = none;
i_BkChar.Image = CharShots[rand(CharShots.Length)];
WeaponDLCID = DetermineWeaponDLC();
UpdateDLCOwnership();
SpecialEventType = class'KFGameType'.static.GetSpecialEventType();
if( SpecialEventType == 1 )
{
KFBackground.Image = MaterialSequence'KillingFloorHUD_SUMMER.MainMenu.kf_menu_seq';
KFLogoBit.Image = FinalBlend'KillingFloorHUD_SUMMER.KFLogoFB';
}
else if( SpecialEventType == 2 )
{
KFBackground.Image = MaterialSequence'KillingFloorHUD_HALLOWEEN.MainMenu.kf_menu_seq_HALLOWEEN';
KFLogoBit.Image = FinalBlend'KillingFloorHUD_HALLOWEEN.KFLogoFB_halloween';
}
else if( SpecialEventType == 3 )
{
KFBackground.Image = MaterialSequence'KillingFloorHUD_XMAS.MainMenu.kf_menu_seq_XMAS';
KFLogoBit.Image = FinalBlend'KillingFloorHUD_XMAS.KFLogoFB_XMAS';
}
}
function int DetermineWeaponDLC()
{
local int i;
local array<int> dlcsAvailable;
if( WeaponDLCs.Length == 1 )
{
return WeaponDLCs[0];
}
for( i = 0; i < WeaponDLCs.Length; i++ )
{
if( !PlayerOwner().SteamStatsAndAchievements.PlayerOwnsWeaponDLC(WeaponDLCs[i]) )
{
dlcsAvailable.Insert(0, 1);
dlcsAvailable[0] = WeaponDLCs[i] ;
}
}
if ( dlcsAvailable.Length == 0 || ( WeaponDLCs.Length == dlcsAvailable.Length && dlcsAvailable.Length != 1) )
{
return WeaponBundle;
}
else
{
return dlcsAvailable[ rand( dlcsAvailable.Length ) ];
}
}
function InternalOnOpen()
{
if ( bNoInitDelay )
{
Timer();
}
else
{
SetTimer(4.5, false);
}
Controller.PerformRestore();
/*if ( !PlayerOwner().level.game.IsA('KFCinematicGame') )
{
bOpenAlready = True;
PlayerOwner().ConsoleCommand("OPEN Entry?Game=KFMod.KFCinematicGame");
PlayerOwner().ClientSetInitialMusic(MenuSong,MTRAN_Segue);
}*/
PlayerOwner().ClientSetInitialMusic(MenuSong,MTRAN_Segue);
// if this is the first time launching the game, show the EULA.
if (!AcceptedEULA)
{
Controller.OpenMenu("KFGui.KFEULA");
}
// Begin Syncing Subscribed Steam Workshop Files(if necessary)
PlayerOwner().SyncSteamWorkshop();
}
function bool MyOnDraw(Canvas Canvas)
{
local GUIButton FButton;
local int i,x2;
local float XL,YL;
local float DeltaTime;
local int percentage;
if ( PlayerOwner().SubscribedFileDownloadTitle != "" )
{
if ( PlayerOwner().SubscribedFileDownloadIndex != -1 )
{
percentage = int(PlayerOwner().DownloadFileProgress * 100);
KFWorkshopDownload.Caption = DownloadingText @ "|" @ PlayerOwner().SubscribedFileDownloadTitle @ "|" @percentage $ "%";
}
else
{
KFWorkshopDownload.Caption = PlayerOwner().SubscribedFileDownloadTitle @ "|" @ DownloadedText;
}
}
if ( bAnimating || !Controller.bCurMenuInitialized )
{
return false;
}
DeltaTime = Controller.RenderDelta;
for ( i = 0; i < Controls.Length; i++ )
{
if ( GUIButton(Controls[i]) != None )
{
FButton = GUIButton(Controls[i]);
if ( FButton.Tag > 0 && FButton.MenuState != MSAT_Focused )
{
FButton.Tag -= 784 * DeltaTime;
if ( FButton.Tag < 0 )
{
FButton.Tag = 0;
}
}
else if ( FButton.MenuState == MSAT_Focused )
{
FButton.Tag = 200;
}
if ( FButton.Tag > 0 )
{
fButton.Style.TextSize(Canvas, MSAT_Focused, FButton.Caption, XL, YL, FButton.FontScale);
x2 = FButton.ActualLeft() + XL + 16;
Canvas.Style = 5;
Canvas.SetDrawColor(150, 25, 25, FButton.Tag);
Canvas.SetPos(0, fButton.ActualTop());
Canvas.DrawTilePartialStretched(material'Highlight', x2, FButton.ActualHeight());
}
}
}
return false;
}
event Timer()
{
if ( !bMovingOnTraining && !bMovingOnResume && !bMovingOnSP )
{
bNoInitDelay = true;
if ( !Controller.bQuietMenu )
{
PlayerOwner().PlaySound(SlideInSound,SLOT_None);
}
i_TV.Animate(-0.000977, 0.332292, 0.35);
i_UT2Logo.Animate(0.007226,0.016926,0.35);
i_UT2Shader.Animate(0.249023,0.180988,0.35);
i_TV.OnEndAnimation = MenuIn_OnArrival;
i_UT2Logo.OnEndAnimation = MenuIn_OnArrival;
i_UT2Shader.OnEndAnimation = MenuIn_OnArrival;
}
else
{
if ( bMovingOnResume )
{
bMovingOnResume = false;
Controller.ConsoleCommand("OPEN KFS-RESUMEGAME?Game=KFmod.KFSPGameType");
}
if (bMovingOnTraining)
{
bMovingOnTraining = false;
Controller.ConsoleCommand("OPEN KF-MANOR?Game=KFmod.KFGameType");
}
if (bMovingOnSP)
{
bMovingOnSP = false;
Controller.ConsoleCommand("OPEN KF-G-BIOTICSLAB?Game=KFmod.KFGameType");
}
}
}
event Opened(GUIComponent Sender)
{
Super.Opened(Sender);
if( !bOwnsWeaponDLC || !bOwnsCharacterDLC )
{
UpdateDLCOwnership();
}
if ( bOwnsWeaponDLC )
{
KFWeaponDLCImage.Image = KFWeaponDLCOwnedTexture;
KFWeaponDLCOverlay.SetVisibility(false);
}
else
{
if( WeaponDLCID != WeaponBundle )
{
KFWeaponDLCImage.Image = class'KFDLCList'.default.WeaponUnownedTextures[GetDLCListTextureIndex()];
}
KFWeaponDLCOverlay.SetVisibility(true);
}
if ( bOwnsCharacterDLC )
{
KFCharacterDLCImage.Image = KFCharacterDLCOwnedTexture;
KFCharacterDLCOverlay.SetVisibility(false);
}
}
function UpdateDLCOwnership()
{
bOwnsWeaponDLC = PlayerOwner().SteamStatsAndAchievements.PlayerOwnsWeaponDLC( WeaponDLCID );
bOwnsCharacterDLC = PlayerOwner().CharacterAvailable(CharacterDLCName);
}
function MoveOn()
{
local int i;
local bool bShowPerkInfo;
switch (Selected)
{
case b_SinglePlayer:
return;
case b_MultiPlayer:
if( !Controller.CheckSteam() )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(SteamMustBeRunningText, QBTN_Ok, QBTN_Ok);
return;
}
Profile("ServerBrowser");
Controller.OpenMenu("KFGUI.KFServerBrowser");
Profile("ServerBrowser");
return;
case b_Host:
if( !Controller.CheckSteam() )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(SteamMustBeRunningText, QBTN_Ok, QBTN_Ok);
return;
}
Profile("MPHost");
if ( PlayerOwner() != none )
{
PlayerOwner().OpenUPNPPorts();
}
Controller.OpenMenu("KFGUI.KFGamePageMP");
Profile("MPHost");
return;
case b_InstantAction:
Profile("InstantAction");
Controller.OpenMenu("KFGUI.KFGamePageSP");
Profile("InstantAction");
return;
case b_Profile:
if( !Controller.CheckSteam() )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(SteamMustBeRunningText, QBTN_Ok, QBTN_Ok);
return;
}
if ( PlayerOwner() != none )
{
if ( PlayerOwner().SteamStatsAndAchievements == none )
{
PlayerOwner().SteamStatsAndAchievements = PlayerOwner().Spawn(PlayerOwner().default.SteamStatsAndAchievementsClass, PlayerOwner());
if ( !PlayerOwner().SteamStatsAndAchievements.Initialize(PlayerOwner()) )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(UnknownSteamErrorText, QBTN_Ok, QBTN_Ok);
PlayerOwner().SteamStatsAndAchievements.Destroy();
PlayerOwner().SteamStatsAndAchievements = none;
}
else
{
PlayerOwner().SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady;
}
return;
}
else if ( !PlayerOwner().SteamStatsAndAchievements.bInitialized )
{
PlayerOwner().SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady;
PlayerOwner().SteamStatsAndAchievements.GetStatsAndAchievements();
return;
}
for ( i = 0; i < class'KFGameType'.default.LoadedSkills.Length; i++ )
{
if ( KFSteamStatsAndAchievements(PlayerOwner().SteamStatsAndAchievements).GetPerkProgress(i) < 0.0 )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(class'KFMainMenu'.default.UnknownSteamErrorText, QBTN_Ok, QBTN_Ok);
PlayerOwner().SteamStatsAndAchievements.OnDataInitialized = OnSteamStatsAndAchievementsReady;
PlayerOwner().SteamStatsAndAchievements.GetStatsAndAchievements();
return;
}
}
if ( class'KFPlayerController'.default.SelectedVeterancy == none )
{
bShowPerkInfo = true;
}
Profile("Profile");
Controller.OpenMenu("KFGUI.KFProfileAndAchievements");
Profile("Profile");
if ( bShowPerkInfo )
{
Controller.OpenMenu(Controller.QuestionMenuClass);
GUIQuestionPage(Controller.TopPage()).SetupQuestion(class'LobbyMenu'.default.SelectPerkInformationString, QBTN_Ok, QBTN_Ok);
}
}
return;
case b_DLC:
Profile("DLC");
Controller.OpenMenu("KFGUI.KFDLCPage");
Profile("DLC");
return;
case b_Workshop:
PlayerOwner().SteamStatsAndAchievements.ShowWorkshopContent();
return;
case b_ModsAndDemo:
Profile("ModsandDemos");
Controller.ViewportOwner.Console.ConsoleCommand("OPEN KF-Intro?Game=unrealgame.cinematicgame");
Controller.CloseAll(True);
SetTimer(0.5,false);
Profile("ModsandDemos");
return;
case b_Settings:
Profile("Settings");
Controller.OpenMenu("KFGUI.KFSettingsPage");
Profile("Settings");
return;
case b_Quit:
Profile("Quit");
Controller.OpenMenu(Controller.GetQuitPage());
Profile("Quit");
return;
default:
StopWatch(True);
break;
}
}
function MenuIn_OnArrival(GUIComponent Sender, EAnimationType Type)
{
Sender.OnArrival = none;
if ( bAnimating )
return;
i_UT2Shader.OnDraw = MyOnDraw;
DesiredCharFade=255;
CharFadeTime = 0.75;
if (!Controller.bQuietMenu)
PlayerOwner().PlaySound(FadeInSound);
}
function MainReopened()
{
if ( !PlayerOwner().Level.IsPendingConnection() )
{
i_BkChar.Image = CharShots[rand(CharShots.Length)];
Opened(none);
Timer();
}
}
function OnClose(optional Bool bCancelled)
{
}
function bool MyKeyEvent(out byte Key,out byte State,float delta)
{
if(Key == 0x1B && state == 1) // Escape pressed
bAllowClose = true;
return false;
}
function bool CanClose(optional bool bCancelled)
{
if(bAllowClose)
ButtonClick(b_Quit);
bAllowClose = False;
return PlayerOwner().Level.IsPendingConnection();
}
function PlayPopSound(GUIComponent Sender, EAnimationType Type)
{
if (!Controller.bQuietMenu)
PlayerOwner().PlaySound(PopInSound);
}
function MenuIn_Done(GUIComponent Sender, EAnimationType Type)
{
Sender.OnArrival = none;
PlayPopSound(Sender,Type);
}
function bool ButtonClick(GUIComponent Sender)
{
Selected = GUIButton(Sender);
if (Selected==None)
return false;
DesiredCharFade=0;
CharFadeTime = 0.35;
MoveOn();
return true;
}
function MenuOut_Done(GUIComponent Sender, EAnimationType Type)
{
Sender.OnArrival = none;
if ( bAnimating )
return;
MoveOn();
}
event bool NotifyLevelChange()
{
if ( bDebugging )
log(Name@"NotifyLevelChange PendingConnection:"$PlayerOwner().Level.IsPendingConnection());
return PlayerOwner().Level.IsPendingConnection();
}
function bool CommunityDraw(canvas c)
{
local float x,y,xl,yl,a;
if (bNewNews)
{
a = 255.0 * (FadeTime/1.0);
if (FadeOut)
a = 255 - a;
FadeTime += Controller.RenderDelta;
if (FadeTime>=1.0)
{
FadeTime = 0;
FadeOut = !FadeOut;
}
a = fclamp(a,1.0,254.0);
x = b_ModsAndDemo.ActualLeft();
y = b_Settings.ActualTop();
C.Font = Controller.GetMenuFont("UT2MenuFont").GetFont(C.ClipX);
C.Strlen("Qz,q",xl,yl);
y -= yl - 5;
C.Style=5;
C.SetPos(x+1,y+1);
C.SetDrawColor(0,0,0,A);
C.DrawText(NewNewsMsg);
C.SetPos(x,y);
C.SetDrawColor(207,185,103,A);
C.DrawText(NewNewsMsg);
}
return false;
}
function OnSteamStatsAndAchievementsReady()
{
Profile("Profile");
Controller.OpenMenu("KFGUI.KFProfileAndAchievements");
Profile("Profile");
}
function bool DLCButtonDraw(Canvas Canvas)
{
local int index;
index = GetDLCListTextureIndex();
if ( !bOwnsWeaponDLC && KFWeaponDLCOverlayTexture != none && KFWeaponDLCHoverTexture != none )
{
if ( KFWeaponDLCImage.IsInBounds() )
{
if ( KFWeaponDLCOverlay.Image != KFWeaponDLCHoverTexture )
{
KFWeaponDLCOverlay.Image = KFWeaponDLCHoverTexture;
}
}
else if ( KFWeaponDLCOverlay.Image != KFWeaponDLCOverlayTexture )
{
if( WeaponDLCID != WeaponBundle )
{
KFWeaponDLCOverlay.Image = class'KFDLCList'.default.WeaponUnownedTextures[index];
}
else
{
KFWeaponDLCOverlay.Image = KFWeaponDLCOverlayTexture;
}
}
}
if ( !bOwnsCharacterDLC && KFCharacterDLCOverlayTexture != none && KFCharacterDLCHoverTexture != none )
{
if ( KFCharacterDLCImage.IsInBounds() )
{
if ( KFCharacterDLCOverlay.Image != KFCharacterDLCHoverTexture )
{
KFCharacterDLCOverlay.Image = KFCharacterDLCHoverTexture;
}
}
else if ( KFCharacterDLCOverlay.Image != KFCharacterDLCOverlayTexture )
{
KFCharacterDLCOverlay.Image = KFCharacterDLCOverlayTexture;
}
}
return false;
}
function bool WeaponDLCButtonClicked(GUIComponent Sender)
{
if ( !bOwnsWeaponDLC )
{
PlayerOwner().SteamStatsAndAchievements.PurchaseWeaponDLC(WeaponDLCID);
return true;
}
return false;
}
function bool CharacterDLCButtonClicked(GUIComponent Sender)
{
if ( !bOwnsCharacterDLC )
{
PlayerOwner().PurchaseCharacter(CharacterDLCName);
return true;
}
return false;
}
defaultproperties
{
//WeaponDLCs array looks up the icon from KFDLCList's defaults.
//If no WeaponDLCs are owned then the system uses the WeaponBundle and
//the icon listed in this class, otherwise it uses a random unowned dlc
//from the array.
//If there's only one that's fine too
WeaponDLCs(0)=326960
WeaponBundle=326960
CharacterDLCName="New_Bundles"
KFWeaponDLCOwnedTexture=Texture'KF_DLC.Characters.UI_KFDLC_Characters_Owned_ToyMaster'
KFWeaponDLCOverlayTexture=Texture'KF_DLC.Weapons.DLC_Capsules_DownloadClick'
KFWeaponDLCHoverTexture=Texture'KF_DLC.Characters.DLC_Capsules_DownloadNow'
KFCharacterDLCOwnedTexture=Texture'UI_KFDLC_Characters_Owned_NewBundles'
KFCharacterDLCOverlayTexture=Texture'KF_DLC.Characters.UI_KFDLC_Unselected_BuyNow'
KFCharacterDLCHoverTexture=Texture'KF_DLC.Characters.UI_KFDLC_MouseOver_BuyNow'
Begin Object Class=FloatingImage Name=FloatingBackground
Image=MaterialSequence'KillingFloorHUD.MainMenu.kf_menu_seq'
DropShadow=None
ImageStyle=ISTY_Scaled
ImageRenderStyle=MSTY_Alpha
WinLeft=0.273078
WinTop=0.136089
WinWidth=0.802660
WinHeight=1.080918
RenderWeight=0.000003
End Object
KFBackground=FloatingBackground
Begin Object Class=FloatingImage Name=FloatingBackgroundOverlay
Image=FinalBlend'InterfaceArt2_tex.filmgrain.FilmgrainOverlayFB'
DropShadow=None
ImageStyle=ISTY_Scaled
ImageRenderStyle=MSTY_Alpha
WinLeft=0.0
WinTop=0.0
WinWidth=1.0
WinHeight=1.0
RenderWeight=0.9
End Object
KFBackgroundOverlay=FloatingBackgroundOverlay
Begin Object Class=GUIImage Name=KFMenuLogo
Image=FinalBlend'KillingFloorHUD.KFLogoFB'
ImageStyle=ISTY_Scaled
WinTop=0.012000
WinLeft=0.008000
WinWidth=0.620000
WinHeight=0.300000
RenderWeight=0.050000
End Object
KFLogoBit=GUIImage'KFGui.KFMainMenu.KFMenuLogo'
Begin Object Class=BackgroundImage Name=ImgBkChar
ImageColor=(A=160)
ImageRenderStyle=MSTY_Alpha
X1=0
Y1=0
X2=1024
Y2=768
RenderWeight=0.040000
Tag=0
// OnDraw=KFMainMenu.BkCharDraw
End Object
i_bkChar=BackgroundImage'KFGui.KFMainMenu.ImgBkChar'
Begin Object Class=BackgroundImage Name=PageBackground
ImageStyle=ISTY_Scaled
ImageRenderStyle=MSTY_Alpha
X1=0
Y1=0
X2=1024
Y2=768
End Object
i_Background=BackgroundImage'KFGui.KFMainMenu.PageBackground'
Begin Object Class=GUIImage Name=ImgUT2Logo
End Object
i_UT2Logo=GUIImage'KFGui.KFMainMenu.ImgUT2Logo'
Begin Object Class=GUIImage Name=iPanHuge
End Object
i_PanHuge=GUIImage'KFGui.KFMainMenu.iPanHuge'
Begin Object Class=GUIImage Name=iPanBig
End Object
i_PanBig=GUIImage'KFGui.KFMainMenu.iPanBig'
Begin Object Class=GUIImage Name=iPanSmall
End Object
i_PanSmall=GUIImage'KFGui.KFMainMenu.iPanSmall'
Begin Object Class=GUIImage Name=ImgUT2Shader
End Object
i_UT2Shader=GUIImage'KFGui.KFMainMenu.ImgUT2Shader'
Begin Object Class=GUIImage Name=ImgTV
End Object
i_TV=GUIImage'KFGui.KFMainMenu.ImgTV'
/*
Begin Object Class=LadderButton Name=SinglePlayerButton
Graphic=none
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption=" "
bUseCaptionHeight=True
FontScale=FNS_Small
// StyleName=KF_ListSelection
Hint="Resume the Single Player campaign from your last checkpoint.."
WinTop=0.368813
WinLeft=0.315359
WinWidth=0.715022
WinHeight=0.075000
TabOrder=7
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=SinglePlayerButton.InternalOnKeyEvent
End Object
b_SinglePlayer=LadderButton'KFGui.KFMainMenu.SinglePlayerButton'
*/
Begin Object Class=GUIButton Name=MultiplayerButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Multiplayer"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="All hell breaks loose..."
WinTop=0.290000
WinLeft=0.050000
WinWidth=0.200000
WinHeight=0.035
TabOrder=1
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=MultiplayerButton.InternalOnKeyEvent
End Object
b_MultiPlayer=GUIButton'KFGui.KFMainMenu.MultiplayerButton'
Begin Object Class=GUIButton Name=HostButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Host Game"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Start a server and invite others to join your game"
WinTop=0.325000
WinLeft=0.050000
WinWidth=0.200000
WinHeight=0.035
TabOrder=2
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=HostButton.InternalOnKeyEvent
End Object
b_Host=GUIButton'KFGui.KFMainMenu.HostButton'
Begin Object Class=GUIButton Name=InstantActionButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Solo"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Play Killing Floor Solo Mode"
WinTop=0.360000
WinLeft=0.050000
WinWidth=0.200000
WinHeight=0.04
TabOrder=3
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=InstantActionButton.InternalOnKeyEvent
End Object
b_InstantAction=GUIButton'KFGui.KFMainMenu.InstantActionButton'
Begin Object Class=GUIButton Name=ProfileButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Profile and Achievements"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Your profile and achievements"
WinTop=0.420000
WinLeft=0.050000
WinWidth=0.220000
WinHeight=0.04
TabOrder=4
bFocusOnWatch=True
OnDraw=KFMainMenu.CommunityDraw
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=ModsAndDemosButton.InternalOnKeyEvent
End Object
b_Profile=GUIButton'KFGui.KFMainMenu.ProfileButton'
Begin Object Class=GUIButton Name=DLCButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="DLC Content"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Weapon and Character DLC Packs"
WinTop=0.455000
WinLeft=0.050000
WinWidth=0.220000
WinHeight=0.04
TabOrder=4
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=ModsAndDemosButton.InternalOnKeyEvent
End Object
b_DLC=GUIButton'KFGui.KFMainMenu.DLCButton'
Begin Object Class=GUIButton Name=WorkshopButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Steam Workshop Content"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Custom Content in the Steam Workshop"
WinTop=0.490000
WinLeft=0.050000
WinWidth=0.220000
WinHeight=0.04
TabOrder=4
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=ModsAndDemosButton.InternalOnKeyEvent
End Object
b_Workshop=GUIButton'KFGui.KFMainMenu.WorkshopButton'
Begin Object Class=GUIButton Name=SettingsButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Settings"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Change your controls and settings"
WinTop=0.550000
WinLeft=0.050000
WinWidth=0.200000
WinHeight=0.035
TabOrder=6
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=SettingsButton.InternalOnKeyEvent
End Object
b_Settings=GUIButton'KFGui.KFMainMenu.SettingsButton'
Begin Object Class=GUIButton Name=QuitButton
CaptionAlign=TXTA_Left
CaptionEffectStyleName="TextButtonEffect"
Caption="Exit"
//bUseCaptionHeight=True
FontScale=FNS_Medium
StyleName="ListSelection"
Hint="Leave the game"
WinTop=0.585000
WinLeft=0.050000
WinWidth=0.200000
WinHeight=0.035
TabOrder=7
bFocusOnWatch=True
OnClick=KFMainMenu.ButtonClick
OnKeyEvent=QuitButton.InternalOnKeyEvent
End Object
b_Quit=GUIButton'KFGui.KFMainMenu.QuitButton'
Begin Object Class=GUILabel Name=KFVersionNumLabel
TextAlign=TXTA_Right
Caption="v2.51"
FontScale=FNS_Medium
TextColor=(R=0,G=0,B=0,A=255)
WinTop=0.2
WinLeft=0.5
WinWidth=0.3
WinHeight=0.15000
TabOrder=6
End Object
// KFVersionNum=GUILabel'KFGui.KFMainMenu.KFVersionNumLabel'
Begin Object Class=GUILabel Name=WorkshopDownloadLabel
TextColor=(B=200,G=200,R=200,A=255)
TextAlign=TXTA_Right
FontScale=FNS_Small
TextFont="UT2MenuFont"
WinLeft=0.60000
WinTop=0.05000
WinWidth=0.39
WinHeight=0.15000
RenderWeight=0.950000
bMultiLine=true
End Object
KFWorkshopDownload=GUILabel'KFGui.KFMainMenu.WorkshopDownloadLabel'
Begin Object Class=GUIImage Name=WeaponDLCImage
Image=Texture'KF_DLC.Weapons.UI_KFDLC_Characters_Desat_ToyMaster'
ImageStyle=ISTY_Scaled
WinWidth=0.16875
WinHeight=0.14861111
WinLeft=0.053125
WinTop=0.65138889
RenderWeight=0.950000
bVisible=true
bAcceptsInput=true
bNeverFocus=true
OnClickSound=CS_Click
OnDraw=KFMainMenu.DLCButtonDraw
OnClick=KFMainMenu.WeaponDLCButtonClicked
End Object
KFWeaponDLCImage=WeaponDLCImage
Begin Object Class=GUIImage Name=WeaponDLCOverlay
Image=Texture'KF_DLC.Characters.UI_KFDLC_Unselected_BuyNow'
ImageStyle=ISTY_Scaled
WinWidth=0.16875
WinHeight=0.14861111
WinLeft=0.053125
WinTop=0.65138889
RenderWeight=0.960000
bVisible=true
bNeverFocus=true
bAcceptsInput=true
OnClickSound=CS_Click
OnClick=KFMainMenu.WeaponDLCButtonClicked
End Object
KFWeaponDLCOverlay=WeaponDLCOverlay
Begin Object Class=GUIImage Name=CharacterDLCImage
Image=Texture'KF_DLC.Characters.UI_KFDLC_Characters_Desat_NewBundles'
ImageStyle=ISTY_Scaled
WinWidth=0.16875
WinHeight=0.14861111
WinLeft=0.053125
WinTop=0.81111111
RenderWeight=0.950000
bVisible=true
bAcceptsInput=true
bNeverFocus=true
OnClickSound=CS_Click
OnClick=KFMainMenu.CharacterDLCButtonClicked
End Object
KFCharacterDLCImage=CharacterDLCImage
Begin Object Class=GUIImage Name=CharacterDLCOverlay
Image=Texture'KF_DLC.Characters.UI_KFDLC_Unselected_BuyNow'
ImageStyle=ISTY_Scaled
WinWidth=0.16875
WinHeight=0.14861111
WinLeft=0.053125
WinTop=0.81111111
RenderWeight=0.960000
bVisible=true
bNeverFocus=true
bAcceptsInput=true
OnClickSound=CS_Click
OnClick=KFMainMenu.CharacterDLCButtonClicked
End Object
KFCharacterDLCOverlay=CharacterDLCOverlay
WinTop=0.0
WinLeft=0.0
WinWidth=1.0
WinHeight=1.0
CharShots(0)=None
CharShots(1)=None
CharShots(2)=None
MenuSong="KFMenu"
bRenderWorld=True
bPersistent=True
bDisconnectOnOpen=False
OnOpen=KFMainMenu.InternalOnOpen
OnReOpen=KFMainMenu.MainReopened
OnCanClose=KFMainMenu.CanClose
OnKeyEvent=KFMainMenu.MyKeyEvent
SlideInSound=sound'PatchSounds.slide1-1'
BeepSound=Sound'KFWeaponSound.bullethitmetal3'
PopInSound=sound'PatchSounds.slide1-1'
SteamMustBeRunningText="Steam must be running and you must have an active internet connection to access this"
UnknownSteamErrorText="Unknown Steam error prevented access to this"
AcceptedEULA=false
}