188 lines
4.7 KiB
Ucode
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'))
|
||
|
}
|