1
0
KF2-Dev-Scripts/KFGame/Classes/KFGFxMoviePlayer_ScreenSize.uc
2020-12-13 18:01:13 +03:00

188 lines
4.7 KiB
Ucode

//=============================================================================
// KFGFxMoviePlayer_Tutorial
//=============================================================================
//=============================================================================
// Killing Floor 2
// Copyright (C) 2015 Tripwire Interactive LLC
// - Zane Gholson 4/21/2016
//=============================================================================
class KFGFxMoviePlayer_ScreenSize extends GFxMoviePlayer;
`include(KFProfileSettings.uci)
var name SoundThemeName;
var bool bUsingGamepad;
var GFxObject ManagerObject;
var KFGFxMoviePlayer_Manager GFxMenuManager;
var KFPlayerController KFPC;
var const float AdjustMovePercentage;
var const float SafeFrameMinScale;
var KFGameEngine KFEngine;
var KFProfileSettings Profile;
var KFGFxScreenSizeContainer ScreenSizeContainer;
function Init(optional LocalPlayer LocPlay)
{
super.Init(LocPlay);
KFPC = KFPlayerController(GetPC());
GFxMenuManager = KFPC.MyGFxManager;
KFEngine = KFGameEngine(class'Engine'.static.GetEngine());
Profile = GFxMenuManager.CachedProfile;
}
/** Ties the GFxClikWidget variables to the .swf components and handles events */
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
{
local bool bHandled;
`log("widgetname: " @WidgetName);
bHandled = true;
switch ( WidgetName )
{
case ( 'root1' ):
if ( ManagerObject == none )
{
ManagerObject = Widget;
// Let the menuManager know if we are on console.
if ( class'WorldInfo'.static.IsConsoleBuild() )
{
ManagerObject.SetBool("bUsingGamepad", true);
}
}
break;
case ( 'screenSizePopup' ):
if ( ScreenSizeContainer == none )
{
ScreenSizeContainer = KFGFxScreenSizeContainer(Widget);
ScreenSizeContainer.InitMenu();
}
break;
default:
bHandled = false;
}
return bHandled;
}
/* This is only used for the controller to switch between different components in the trader menu
and open / close the perk selector */
event bool FilterButtonInput(int ControllerId, name ButtonName, EInputEvent InputEvent)
{
if ( !class'WorldInfo'.static.IsConsoleBuild() )
{
CheckIfUsingGamepad();
}
return false;
}
// Checks if our form of input has changed
function CheckIfUsingGamepad()
{
local bool bGamepad;
bGamepad = GetUsingGamepad();
if ( bUsingGamepad != bGamepad )
{
OnInputTypeChanged(bGamepad);
}
}
function OnInputTypeChanged(bool bGamePad)
{
bUsingGamepad = bGamepad;
if(ManagerObject != none)
{
ManagerObject.SetBool("bUsingGamepad", bGamePad);
}
}
/** Return whether the player input says we are currently using the gamepad */
function bool GetUsingGamepad()
{
local PlayerController PC;
PC = GetPC();
if( class'WorldInfo'.static.IsConsoleBuild() )
{
return true;
}
if ( PC == none || PC.PlayerInput == none )
{
return false;
}
// Always using the gamepad if we are on console.
return PC.PlayerInput.bUsingGamepad;
}
function NotifyControllerDisconnected()
{
SetVisibility(false);
SetPriority(1);
GFxMenuManager.SetPriority(2);
}
function NotifyControllerReconnected()
{
SetVisibility(true);
SetPriority(2);
GFxMenuManager.SetPriority(1);
}
function Callback_Enlarge()
{
KFEngine.SafeFrameScale += AdjustMovePercentage;
KFEngine.SafeFrameScale = FClamp( KFEngine.SafeFrameScale, SafeFrameMinScale, 1.0f );
}
function Callback_Shrink()
{
KFEngine.SafeFrameScale -= AdjustMovePercentage;
KFEngine.SafeFrameScale = FClamp(KFEngine.SafeFrameScale, SafeFrameMinScale, 1.0f);
}
function Callback_Confirm()
{
SaveAndClose();
}
function Callback_Cancel()
{
//SaveAndClose(); //do not want to use B button
}
function SaveAndClose()
{
Profile.SetProfileSettingValueFloat(KFID_SafeFrameScale, KFEngine.SafeFrameScale);
Profile.Save( GetLP().ControllerId );
GFxMenuManager.CloseScreenSizeMovie();
}
defaultproperties
{
MovieInfo=SwfMovie'UI_ScreenSize.ScreenSizeManager_SWF'
bAutoPlay=true
AdjustMovePercentage=0.005
SafeFrameMinScale=0.85
bCaptureInput=true
bCaptureMouseInput=true
CaptureKeys=(XboxTypeS_A, XboxTypeS_B, XboxTypeS_DPad_Left, XboxTypeS_DPad_Up, XboxTypeS_DPad_Down, XboxTypeS_DPad_Right, XboxTypeS_LeftTrigger, XboxTypeS_RightTrigger)
SoundThemeName=ButtonSoundTheme
SoundThemes.Add((ThemeName="ButtonSoundTheme",Theme=UISoundTheme'SoundsShared_UI.SoundTheme_Buttons'))
SoundThemes.Add((ThemeName="UI",Theme=UISoundTheme'SoundsShared_UI.SoundTheme_UI'))
// Widgets
WidgetBindings.Add((WidgetName="screenSizePopup",WidgetClass=class'KFGFxScreenSizeContainer'))
}