Once I get that upgrade to 36-hour days, I will tackle that. – Mychaeel

Legacy:RegularEngine/ClassTrader

From Unreal Wiki, The Unreal Engine Documentation Site
< Legacy:RegularEngine
Revision as of 08:44, 22 December 2004 by Wormbo (Talk | contribs) (fixed link to /RegularPlayer)

Jump to: navigation, search

MapTrader is a GUIPage to allow players to vote on which map will be next in the campaign. It basically talks to the GRI to determine the map lists, and the Legacy:RegularEngine/RegularPlayer to update the PRI to save the vote.

UT2K4GUIPage >> MapTrader
class MapTrader extends UT2K4GUIPage;
 
var Automated GuiListBox TeamAMapList, TeamBMapList;
var Automated GUIButton TeamAVote, TeamBVote;
var Automated GUILabel		TeamAName, TeamBName, CampaignWon;
var RegularPlayer RgPlayer;
 
 
function InitComponent(GUIController MyController, GUIComponent MyOwner)
{
	Super.InitComponent(MyController, MyOwner);
	RgPlayer = RegularPlayer(PlayerOwner());
	FillMapLists();
	if(RgPlayer != none && RgPlayer.PlayerReplicationInfo != none) {
 
    if( RgPlayer.PlayerReplicationInfo.Team.TeamIndex == 0 ) {
      TeamAVote.bVisible = false;
    }
 
    if( RgPlayer.PlayerReplicationInfo.Team.TeamIndex == 1 ) {
      TeamBVote.bVisible = false;
    }
 
    }
//	txtAvailable.SetContent(pcAvailable.List.GetExtra());
}
 
function FillMapLists() {
 local string TeamAString,TeamBString;
	local array<string> TeamAMaps,TeamBMaps;
	local RegularGRI RgGRI;
	local int i;
 
	TeamAMapList.List.Clear();
	TeamBMapList.List.Clear();
 
	if(RgPlayer != none && RgPlayer.GameReplicationInfo != none &&
    RegularGRI(RgPlayer.GameReplicationInfo) != none) {
    RgGRI = RegularGRI(RgPlayer.GameReplicationInfo);
    for(i=0; i<RgGRI.MaxMapNumber; i++) {
        if(RgGRI.TeamAMaps[i].TeamIndex == 0 ) {
								  TeamAString = TeamAString$"|"$RgGRI.TeamAMaps[i].MapName;
          }
        if(RgGRI.TeamAMaps[i].TeamIndex == 1 ) {
								  TeamBString = TeamBString$"|"$RgGRI.TeamAMaps[i].MapName;
          }
 
       if(RgGRI.TeamBMaps[i].TeamIndex == 0 ) {
								  TeamAString = TeamAString$"|"$RgGRI.TeamBMaps[i].MapName;
          }
        if(RgGRI.TeamBMaps[i].TeamIndex == 1 ) {
								  TeamBString = TeamBString$"|"$RgGRI.TeamBMaps[i].MapName;
          }
 
 
    }
	}
 
 Split(TeamAString, "|", TeamAMaps);
 Split(TeamBString, "|", TeamBMaps);
 
	for(i=0; i<RgGRI.MaxMapNumber*2; i++)
	{
	  if(i<TeamAMaps.Length) {TeamAMapList.List.Add(TeamAMaps[i],,TeamAMaps[i]);}
	  if(i<TeamBMaps.Length) {TeamBMapList.List.Add(TeamBMaps[i],,TeamBMaps[i]);}
 
   }
 
  TeamAMapList.List.Index = -1;
  TeamBMapList.List.Index = -1;
		LOG("Humans have "$TeamAMaps.Length$" Maps");
  if( TeamAMaps.Length == 1) {
		    CampaignWon.Caption = "SKAARJ WIN THE CAMPAIGN";
		    TeamAVote.bVisible = false;
		    TeamBVote.bVisible = false;
		    }
  if( TeamBMaps.Length == 1) {
		    CampaignWon.Caption = "HUMANS WIN THE CAMPAIGN";
		    TeamAVote.bVisible = false;
		    TeamBVote.bVisible = false;
		    }
 
 
}
 
function bool InternalOnClick(GUIComponent Sender)
{
	if( Sender == TeamAVote ) {
	   RgPlayer.SetChosenMap(TeamBMapList.List.Get());
	}
 
	if( Sender == TeamBVote ) {
	   RgPlayer.SetChosenMap(TeamBMapList.List.Get());
	}
 
	Controller.CloseMenu();
 return true;
}
 
function InternalOnChange(GUIComponent sender) {
}
 
 
defaultproperties {
 
 
Begin Object Class=GUIListBox Name=TeamALST
    bVisibleWhenEmpty=True
    WinTop=0.1000000
    WinLeft=0.200000
    WinWidth=0.250000
    WinHeight=0.45000
    StyleName="IRCText"
    RenderWeight=1.5
    OnChange=InternalOnChange
End Object
TeamAMapList=RegularEngine.MapTrader.TeamALST
 
Begin Object Class=GUIListBox Name=TeamBLST
    bVisibleWhenEmpty=True
    WinTop=0.1000000
    WinLeft=0.500000
    WinWidth=0.250000
    WinHeight=0.45000
    StyleName="IRCText"
    RenderWeight=1.5
    OnChange=InternalOnChange
End Object
TeamBMapList=RegularEngine.MapTrader.TeamBLST
 
Begin Object Class=GUIButton Name=TeamABTN
  Caption="VOTE"
  WinTop=0.600000
  WinLeft=0.20000
  WinWidth=0.25000
  OnClick=MapTrader.InternalOnClick
  RenderWeight=1.5
End Object
TeamAVote=RegularEngine.MapTrader.TeamABTN
 
Begin Object Class=GUIButton Name=TeamBBTN
  Caption="VOTE"
  WinTop=0.600000
  WinLeft=0.50000
  WinWidth=0.25000
  OnClick=MapTrader.InternalOnClick
  RenderWeight=1.5
End Object
TeamBVote=RegularEngine.MapTrader.TeamBBTN
 
 
Begin Object Class=GUILabel Name=AName
    FontScale=FNS_Large
    TextFont="UT2LargeFont"
    StyleName="TextLabel"
    Caption="HUMAN MAPS"
    WinTop=0.00500000
    WinLeft=0.2000000
    WinHeight=0.185
    RenderWeight=9.0
End Object
TeamAName=RegularEngine.MapTrader.AName
 
 
 
Begin Object Class=GUILabel Name=BName
    FontScale=FNS_Large
    TextFont="UT2LargeFont"
    StyleName="TextLabel"
    Caption="SKAARJ MAPS"
    WinTop=0.00500000
    WinLeft=0.5000000
    WinHeight=0.185
    RenderWeight=9.0
End Object
TeamBName=RegularEngine.MapTrader.BName
 
 
 
Begin Object Class=GUILabel Name=Won
    FontScale=FNS_Large
    TextFont="UT2LargeFont"
    StyleName="TextLabel"
    Caption=""
    WinTop=0.600000
    WinLeft=0.2000000
    WinHeight=0.185
    RenderWeight=9.0
End Object
CampaignWon=RegularEngine.MapTrader.Won
 
bAllowedAsLast=True
bRenderWorld=True
 
}