138 lines
3.3 KiB
Ucode
138 lines
3.3 KiB
Ucode
|
class KFGFxMoviePlayer_ScoreBoard extends GFxMoviePlayer;
|
||
|
|
||
|
// Widget for the in-game Scoreboard
|
||
|
var KFGFxHUD_ScoreboardWidget ScoreboardWidget;
|
||
|
var KFGFxHUD_ScoreboardVersusWidget ZEDScoreboardWidget;
|
||
|
|
||
|
// Interval between updates. Higher values mean less frequent updates.
|
||
|
var const float UpdateInterval;
|
||
|
// Last time we performed an update.
|
||
|
var Protected float LastUpdateTime;
|
||
|
|
||
|
var SwfMovie MovieInfoStandard;
|
||
|
var SwfMovie MovieInfoVersus;
|
||
|
|
||
|
function Init(optional LocalPlayer LocPlay)
|
||
|
{
|
||
|
LocalPlayerOwnerIndex = class'Engine'.static.GetEngine().GamePlayers.Find(LocPlay);
|
||
|
if(LocalPlayerOwnerIndex == INDEX_NONE)
|
||
|
{
|
||
|
LocalPlayerOwnerIndex = 0;
|
||
|
}
|
||
|
if(KFGameReplicationInfo(GetPC().WorldInfo.GRI) != none)
|
||
|
{
|
||
|
MovieInfo = GetMovieInfo();
|
||
|
|
||
|
if( MovieInfo != None )
|
||
|
{
|
||
|
if( bAutoPlay )
|
||
|
{
|
||
|
Start();
|
||
|
Advance(0.f);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function SwfMovie GetMovieInfo()
|
||
|
{
|
||
|
if(KFGameReplicationInfo(GetPC().WorldInfo.GRI).bVersusGame)
|
||
|
{
|
||
|
return MovieInfoVersus;
|
||
|
}
|
||
|
|
||
|
return MovieInfoStandard;
|
||
|
}
|
||
|
|
||
|
/** Ties the GFxClikWidget variables to the .swf components and handles events */
|
||
|
event bool WidgetInitialized(name WidgetName, name WidgetPath, GFxObject Widget)
|
||
|
{
|
||
|
switch(WidgetName)
|
||
|
{
|
||
|
case 'ScoreboardWidgetMC':
|
||
|
if ( ScoreboardWidget == none )
|
||
|
{
|
||
|
ScoreboardWidget = KFGFxHUD_ScoreboardWidget(Widget);
|
||
|
ScoreboardWidget.InitializeHUD();
|
||
|
SetWidgetPathBinding( Widget, WidgetPath );
|
||
|
}
|
||
|
break;
|
||
|
case 'ZEDScoreboardWidgetMC':
|
||
|
if ( ZEDScoreboardWidget == none )
|
||
|
{
|
||
|
ZEDScoreboardWidget = KFGFxHUD_ScoreboardVersusWidget(Widget);
|
||
|
ZEDScoreboardWidget.InitializeHUD();
|
||
|
SetWidgetPathBinding( Widget, WidgetPath );
|
||
|
}
|
||
|
break;
|
||
|
}
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
/** Update all the unique HUD pieces */
|
||
|
function TickHud(float DeltaTime)
|
||
|
{
|
||
|
local PlayerController PC;
|
||
|
|
||
|
PC = GetPC();
|
||
|
|
||
|
if(PC == none || PC.WorldInfo.TimeSeconds - LastUpdateTime < UpdateInterval )
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
if(!PC.MyHUD.bShowHUD)
|
||
|
{
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
LastUpdateTime = PC.WorldInfo.TimeSeconds; // throttle the updates so we're not spamming Actionscript with data.
|
||
|
|
||
|
if(ScoreboardWidget != none && ScoreboardWidget.bUpdateScoreboard )
|
||
|
{
|
||
|
ScoreboardWidget.TickHUD(DeltaTime);
|
||
|
}
|
||
|
if(ZEDScoreboardWidget != none && ZEDScoreboardWidget.bUpdateScoreboard )
|
||
|
{
|
||
|
ZEDScoreboardWidget.TickHUD(DeltaTime);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function ShowScoreboard(bool newShowScoreboard)
|
||
|
{
|
||
|
if(ScoreboardWidget != none)
|
||
|
{
|
||
|
ScoreboardWidget.SetOpen(newShowScoreboard);
|
||
|
ScoreboardWidget.bUpdateScoreboard = newShowScoreboard;
|
||
|
}
|
||
|
if(ZEDScoreboardWidget != none)
|
||
|
{
|
||
|
ZEDScoreboardWidget.SetOpen(newShowScoreboard);
|
||
|
ZEDScoreboardWidget.bUpdateScoreboard = newShowScoreboard;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function UpdateWaveCount()
|
||
|
{
|
||
|
if(ScoreboardWidget != none && ScoreboardWidget.MatchInfoContainer != none)
|
||
|
{
|
||
|
|
||
|
}
|
||
|
}
|
||
|
|
||
|
DefaultProperties
|
||
|
{
|
||
|
MovieInfoStandard=SwfMovie'UI_HUD.ScoreBoard_Standard_SWF'
|
||
|
MovieInfoVersus=SwfMovie'UI_HUD.ScoreBoard_Versus_SWF'
|
||
|
|
||
|
Priority = 2
|
||
|
|
||
|
bAllowFocus=false
|
||
|
bCaptureInput=false
|
||
|
bAllowInput=false
|
||
|
bDisplayWithHudOff=false
|
||
|
bAutoPlay=true
|
||
|
|
||
|
WidgetBindings.Add((WidgetName="ScoreboardWidgetMC",WidgetClass=class'KFGFxHUD_ScoreboardWidget'))
|
||
|
WidgetBindings.Add((WidgetName="ZEDScoreboardWidgetMC",WidgetClass=class'KFGFxHUD_ScoreboardVersusWidget'))
|
||
|
}
|