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; }