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

248 lines
6.7 KiB
Ucode

//-----------------------------------------------------------
//
//-----------------------------------------------------------
class UT2K4DemoPlayback extends PopupPageBase;
// if _RO_
#exec OBJ LOAD FILE=InterfaceArt_tex.utx
// end if _RO_
var automated StateButton b_FF, b_PlayPause, b_Stop;
var automated GUILabel lb_MapName, lb_Mod;
var GUIList l_ViewTargets;
var bool bIsClosing, bIsPaused;
var float OriginalGameSpeed;
var int GameSpeedModifier;
var float GameSpeedMods[4];
var float modfade;
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
super.InitComponent(MyController, MyOwner);
i_FrameBG.Image = material'DemoHeaderBar';
// if _RO_
i_FrameBG.WinTop = 0.0;
// end if _RO_
OriginalGameSpeed = PlayerOwner().level.TimeDilation;
lb_MapName.Caption = PlayerOwner().Level.Title;
Animate(0,0,0.15);
}
event Free()
{
l_ViewTargets.Clear();
super.free();
}
function Arrival(GUIComponent Sender, EAnimationType Type)
{
WinTop=0.0;
}
function bool StopClick(GUIComponent Sender)
{
PlayerOwner().Level.TimeDilation = OriginalGameSpeed;
PlayerOwner().ConsoleCommand("disconnect");
return true;
}
function bool PlayPauseClick(GUIComponent Sender)
{
if ( bIsPaused ) // We are paused
{
bIsPaused=false;
// if _RO_
b_PlayPause.Images[0]=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry';
b_PlayPause.Images[1]=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry';
b_PlayPause.Images[2]=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry';
b_PlayPause.Images[3]=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry';
b_PlayPause.Images[4]=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry';
// else
// b_PlayPause.Images[0]=material'PauseBlurry';
// b_PlayPause.Images[1]=material'PauseWatched';
// b_PlayPause.Images[2]=material'PauseWatched';
// b_PlayPause.Images[3]=material'PausePressed';
// b_PlayPause.Images[4]=material'PauseBlurry';
// end if _RO_
PlayerOwner().Level.Pauser = None;
}
else
{
bIsPaused=true;
// if _RO_
b_PlayPause.Images[0]=Texture'InterfaceArt_tex.Demo_controls.PlayBlurry';
b_PlayPause.Images[1]=Texture'InterfaceArt_tex.Demo_controls.PlayBlurry';
b_PlayPause.Images[2]=Texture'InterfaceArt_tex.Demo_controls.PlayBlurry';
b_PlayPause.Images[3]=Texture'InterfaceArt_tex.Demo_controls.PlayBlurry';
b_PlayPause.Images[4]=Texture'InterfaceArt_tex.Demo_controls.PlayBlurry';
// else
// b_PlayPause.Images[0]=material'PlayBlurry';
// b_PlayPause.Images[1]=material'PlayWatched';
// b_PlayPause.Images[2]=material'PlayWatched';
// b_PlayPause.Images[3]=material'PlayPressed';
// b_PlayPause.Images[4]=material'PlayBlurry';
// end if _RO_
PlayerOwner().Level.Pauser = PlayerOwner().PlayerReplicationInfo;
}
return true;
}
function bool FastForwardClick(GUIComponent Sender)
{
if (GameSpeedModifier<3)
GameSpeedModifier++;
else
GameSpeedModifier = 0;
lb_Mod.Caption = "x"$int(GameSpeedMods[GameSpeedModifier]);
ModFade=255;
PlayerOwner().Level.TimeDilation = OriginalGameSpeed * GameSpeedMods[GameSpeedModifier];
return true;
}
function bool ModDraw(canvas C)
{
if (ModFade>0)
{
ModFade -= (255*Controller.RenderDelta);
if (ModFade>=0)
{
lb_Mod.TextColor.A=int(ModFade);
return false;
}
}
lb_Mod.TextColor.A=0;
return false;
}
DefaultProperties
{
// OnCanClose=MyCanClose
OnArrival=Arrival
Begin Object class=StateButton name=bStop
WinWidth=0.040000
WinHeight=0.800000
WinLeft=0.013750
WinTop=0.1
// if _RO_
Images(0)=Texture'InterfaceArt_tex.Demo_controls.StopBlurry'
Images(1)=Texture'InterfaceArt_tex.Demo_controls.StopBlurry'
Images(2)=Texture'InterfaceArt_tex.Demo_controls.StopBlurry'
Images(3)=Texture'InterfaceArt_tex.Demo_controls.StopBlurry'
Images(4)=Texture'InterfaceArt_tex.Demo_controls.StopBlurry'
// else
// Images(0)=material'2k4menus.AVPlayer.StopBlurry'
// Images(1)=material'2k4menus.AVPlayer.StopWatched'
// Images(2)=material'2k4menus.AVPlayer.StopWatched'
// Images(3)=material'2k4menus.AVPlayer.StopPressed'
// Images(4)=material'2k4menus.AVPlayer.StopBlurry'
// end if _RO_
bBoundToParent=true
bScaleToParent=true
TabOrder=0
OnClick=StopClick
End Object
b_Stop=bStop
Begin Object class=StateButton name=bPlayPause
WinWidth=0.040000
WinHeight=0.800000
WinLeft=0.055000
WinTop=0.1
// if _RO_
Images(0)=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry'
Images(1)=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry'
Images(2)=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry'
Images(3)=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry'
Images(4)=Texture'InterfaceArt_tex.Demo_controls.PauseBlurry'
// else
// Images(0)=material'2k4menus.AVPlayer.PauseBlurry'
// Images(1)=material'2k4menus.AVPlayer.PauseWatched'
// Images(2)=material'2k4menus.AVPlayer.PauseWatched'
// Images(3)=material'2k4menus.AVPlayer.PausePressed'
// Images(4)=material'2k4menus.AVPlayer.PauseBlurry'
// end if _RO_
bBoundToParent=true
bScaleToParent=true
TabOrder=1
OnClick=PlayPauseClick
End Object
b_PlayPause=bPlayPause
Begin Object class=StateButton name=bFF
WinWidth=0.04
WinHeight=0.8
WinLeft=0.097500
WinTop=0.1
// if _RO_
Images(0)=Texture'InterfaceArt_tex.Demo_controls.NextTrackBlurry'
Images(1)=Texture'InterfaceArt_tex.Demo_controls.NextTrackBlurry'
Images(2)=Texture'InterfaceArt_tex.Demo_controls.NextTrackBlurry'
Images(3)=Texture'InterfaceArt_tex.Demo_controls.NextTrackBlurry'
Images(4)=Texture'InterfaceArt_tex.Demo_controls.NextTrackBlurry'
// else
// Images(0)=material'2k4menus.AVPlayer.NextTrackBlurry'
// Images(1)=material'2k4menus.AVPlayer.NextTrackWatched'
// Images(2)=material'2k4menus.AVPlayer.NextTrackWatched'
// Images(3)=material'2k4menus.AVPlayer.NextTrackPressed'
// Images(4)=material'2k4menus.AVPlayer.NextTrackBlurry'
// end if _RO_
bBoundToParent=true
bScaleToParent=true
TabOrder=2
OnClick=FastForwardClick
End Object
b_FF=bFF
Begin Object class=GUILabel name=lbMapName
WinWidth=0.825
WinHeight=1
WinLeft=0.15
WinTop=0
FontScale=FNS_Large
Caption=""
StyleName="DarkTextLabel"
bBoundToParent=true
bScaleToParent=true
TextAlign=TXTA_Right
End object
lb_MapName=lbMapName;
Begin Object class=GUILabel name=lbMod
WinWidth=0.825
WinHeight=1
WinLeft=0.15
WinTop=0
Caption="2X"
StyleName=""
TextFont="UT2LargeFont"
TextColor=(R=14,G=41,B=106,A=0)
bBoundToParent=true
bScaleToParent=true
OnDraw=ModDraw
End object
lb_Mod=lbMod;
WinTop=-0.065;
WinLeft=0.0
WinWidth=1.0
WinHeight=0.065
GameSpeedMods(0)=1.0
GameSpeedMods(1)=2.0
GameSpeedMods(2)=4.0
GameSpeedMods(3)=8.0
bAllowedAsLast=true
}