105 lines
2.8 KiB
Ucode
105 lines
2.8 KiB
Ucode
//====================================================================
|
|
//
|
|
// Base class for all browser pages that must communicate with the
|
|
// master server. Only shown once CD-key has been verified by Epic.
|
|
//
|
|
// Updated by Ron Prestenback
|
|
// (c) 2003, Epic Games, Inc. All Rights Reserved
|
|
// ====================================================================
|
|
class UT2K4Browser_ServerListPageMS extends UT2K4Browser_ServerListPageBase;
|
|
|
|
function ShowPanel( bool bShow )
|
|
{
|
|
Super.ShowPanel(bShow);
|
|
|
|
if ( bShow && !bInit )
|
|
BindQueryClient(Browser.Uplink());
|
|
}
|
|
|
|
function Refresh()
|
|
{
|
|
|
|
if (UT2K4ServerBrowser(PageOwner).Verified)
|
|
UT2K4ServerBrowser(PageOwner).ClearServerCache();
|
|
|
|
Super.Refresh();
|
|
|
|
ResetQueryClient(Browser.Uplink());
|
|
}
|
|
|
|
function ResetQueryClient( ServerQueryClient Client )
|
|
{
|
|
Super.ResetQueryClient(Client);
|
|
|
|
if ( MasterServerClient(Client) != None )
|
|
MasterServerClient(Client).Query.Length = 0;
|
|
}
|
|
|
|
function BindQueryClient( ServerQueryClient Client )
|
|
{
|
|
Super.BindQueryClient(Client);
|
|
if ( MasterServerClient(Client) != None )
|
|
{
|
|
MasterServerClient(Client).OnQueryFinished = QueryComplete;
|
|
MasterServerClient(Client).OnReceivedServer = li_Server.MyOnReceivedServer;
|
|
}
|
|
}
|
|
|
|
// We have list of servers from master server and are going to start pinging
|
|
function QueryComplete( MasterServerClient.EResponseInfo ResponseInfo, int Info )
|
|
{
|
|
li_Server.MyQueryFinished(ResponseInfo, Info);
|
|
|
|
switch( ResponseInfo )
|
|
{
|
|
case RI_Success:
|
|
SetFooterCaption( Repl(QueryCompleteString, "%NumServers%", Browser.Uplink().ResultCount) );
|
|
break;
|
|
|
|
case RI_AuthenticationFailed:
|
|
SetFooterCaption(AuthFailString);
|
|
break;
|
|
|
|
case RI_ConnectionFailed:
|
|
UT2K4ServerBrowser(PageOwner).GetFromServerCache(li_Server);
|
|
li_Server.FakeFinished();
|
|
SetFooterCaption(ConnFailString);
|
|
break;
|
|
|
|
case RI_ConnectionTimeout:
|
|
UT2K4ServerBrowser(PageOwner).GetFromServerCache(li_Server);
|
|
li_Server.FakeFinished();
|
|
SetFooterCaption(ConnTimeoutString);
|
|
break;
|
|
|
|
case RI_MustUpgrade:
|
|
SetFooterCaption(MustUpgradeString);
|
|
break;
|
|
}
|
|
}
|
|
|
|
function ReceivedPingInfo( int ServerID, ServerQueryClient.EPingCause PingCause, GameInfo.ServerResponseLine s )
|
|
{
|
|
Super.ReceivedPingInfo(ServerID, PingCause, S);
|
|
li_Server.MyReceivedPingInfo(ServerID, PingCause, s);
|
|
|
|
// If we are still pinging the list received from the master server
|
|
if (PingCause == PC_AutoPing)
|
|
UpdateStatusPingCount();
|
|
}
|
|
|
|
function ReceivedPingTimeout( int listid, ServerQueryClient.EPingCause PingCause )
|
|
{
|
|
Super.ReceivedPingTimeout(listid,PingCause);
|
|
li_Server.MyPingTimeout(listid, PingCause);
|
|
|
|
// If we are still pinging the list received from the master server
|
|
if (PingCause == PC_AutoPing)
|
|
UpdateStatusPingCount();
|
|
}
|
|
|
|
defaultproperties
|
|
{
|
|
PanelCaption="Server Browser : Internet"
|
|
}
|