//-----------------------------------------------------------
//
//-----------------------------------------------------------
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


}
