Class ExtPlayerInput extends KFPlayerInput; var KF2GUIController MyGUIController; var bool bHandledTravel; exec function StartCrouch() { bDuck = 1; } exec function ToggleCrouch() { bDuck = (bDuck == 0) ? 1 : 0; } simulated exec function IronSights(optional bool bHoldButtonMode) { local KFWeapon KFW; if (Pawn != none) { if (KFPawn_Monster(Pawn)!=None) Pawn.StartFire(1); else { KFW = KFWeapon(Pawn.Weapon); if (KFW != None) KFW.SetIronSights((bHoldButtonMode) ? true : !KFW.bUsingSights); } } } simulated exec function IronSightsRelease(optional bool bHoldButtonMode) { local KFWeapon KFW; if (Pawn != none) { if (KFPawn_Monster(Pawn)!=None) Pawn.StopFire(1); else { KFW = KFWeapon(Pawn.Weapon); if (!KFW.bHasIronSights || bHoldButtonMode) KFW.SetIronSights(false); } } } simulated exec function ToggleFlashlight() { if (KFPawn_Monster(Pawn)!=None && Pawn.Health>0) SetNightVision(!bNightVisionActive); else Super.ToggleFlashlight(); } function PreClientTravel(string PendingURL, ETravelType TravelType, bool bIsSeamlessTravel) { Super.PreClientTravel(PendingURL,TravelType,bIsSeamlessTravel); if (!bHandledTravel) { bHandledTravel = true; if (KFExtendedHUD(MyHUD)!=None) KFExtendedHUD(MyHUD).NotifyLevelChange(true); } } event bool FilterButtonInput(int ControllerId, Name Key, EInputEvent Event, float AmountDepressed, bool bGamepad) { if (MyGfxManager.bAfterLobby && Event==IE_Pressed && (Key == 'Escape' || Key == 'XboxTypeS_Start')) { if (MyGUIController==None || MyGUIController.bIsInvalid) { MyGUIController = class'KF2GUIController'.Static.GetGUIController(Outer); if (MyGUIController==None) { ExtPlayerController(Outer).CancelConnection(); return false; } } if (MyGUIController.bIsInMenuState) { return false; } else if (MyGFxManager.bMenusOpen) { return MyGFxManager.ToggleMenus(); } else { MyGUIController.OpenMenu(ExtPlayerController(Outer).MidGameMenuClass); return true; } } return false; }