00001 class ManagerWindow extends ManagerWindowStub
00002 config(user);
00003
00004 // Manager
00005 #exec TEXTURE IMPORT NAME=Sel11 FILE=TEXTURES\Select\Sel11.PCX GROUP=Skins MIPS=OFF
00006 #exec TEXTURE IMPORT NAME=Sel12 FILE=TEXTURES\Select\Sel12.PCX GROUP=Skins MIPS=OFF
00007 #exec TEXTURE IMPORT NAME=Sel13 FILE=TEXTURES\Select\Sel13.PCX GROUP=Skins MIPS=OFF
00008 #exec TEXTURE IMPORT NAME=Sel14 FILE=TEXTURES\Select\Sel14.PCX GROUP=Skins MIPS=OFF
00009 #exec TEXTURE IMPORT NAME=Sel21 FILE=TEXTURES\Select\Sel21.PCX GROUP=Skins MIPS=OFF
00010 #exec TEXTURE IMPORT NAME=Sel22 FILE=TEXTURES\Select\Sel22.PCX GROUP=Skins MIPS=OFF
00011 #exec TEXTURE IMPORT NAME=Sel23 FILE=TEXTURES\Select\Sel23.PCX GROUP=Skins MIPS=OFF
00012 #exec TEXTURE IMPORT NAME=Sel24 FILE=TEXTURES\Select\Sel24.PCX GROUP=Skins MIPS=OFF
00013 #exec TEXTURE IMPORT NAME=Sel31 FILE=TEXTURES\Select\Sel31.PCX GROUP=Skins MIPS=OFF
00014 #exec TEXTURE IMPORT NAME=Sel32 FILE=TEXTURES\Select\Sel32.PCX GROUP=Skins MIPS=OFF
00015 #exec TEXTURE IMPORT NAME=Sel33 FILE=TEXTURES\Select\Sel33.PCX GROUP=Skins MIPS=OFF
00016 #exec TEXTURE IMPORT NAME=Sel34 FILE=TEXTURES\Select\Sel34.PCX GROUP=Skins MIPS=OFF
00017
00018 #exec TEXTURE IMPORT NAME=DoorL FILE=TEXTURES\Doors\doorL.PCX GROUP=Skins MIPS=OFF
00019 #exec TEXTURE IMPORT NAME=DoorR FILE=TEXTURES\Doors\doorR.PCX GROUP=Skins MIPS=OFF
00020
00021 // Background
00022 var texture BG1[4];
00023 var texture BG2[4];
00024 var texture BG3[4];
00025 var string BGName1[4];
00026 var string BGName2[4];
00027 var string BGName3[4];
00028
00029 // Deathmatch Ladder
00030 var NotifyButton DMLadderButton;
00031 var localized string DMText;
00032
00033 // Domination Ladder
00034 var NotifyButton DOMLadderButton;
00035 var localized string DOMText;
00036 var DoorArea DOMDoor;
00037
00038 // CTF Ladder
00039 var NotifyButton CTFLadderButton;
00040 var localized string CTFText;
00041 var DoorArea CTFDoor;
00042
00043 // Assault Ladder
00044 var NotifyButton ASLadderButton;
00045 var localized string ASText;
00046 var DoorArea ASDoor;
00047
00048 // Challenge Ladder
00049 var NotifyButton ChallengeLadderButton;
00050 var localized string ChallengeText;
00051 var DoorArea ChalDoor;
00052 var localized string ChallengeString;
00053 var localized string ChalPosString;
00054
00055 // Trophy Room
00056 var NotifyButton TrophyButton;
00057 var localized string TrophyText;
00058 var DoorArea TrophyDoor;
00059
00060 var UTFadeTextArea InfoArea;
00061
00062 var NotifyButton BackButton;
00063 var NotifyButton NextButton;
00064
00065 var int SelectedLadder;
00066 var string LadderTypes[5];
00067
00068 var LadderInventory LadderObj;
00069
00070 var float OpenTime;
00071 var bool bOpened;
00072
00073 var localized string RankString[4];
00074 var localized string MatchesString;
00075
00076 var globalconfig int DOMDoorOpen[5], CTFDoorOpen[5], ASDoorOpen[5], ChalDoorOpen[5], TrophyDoorOpen[5];
00077
00078 function Created()
00079 {
00080 local float Xs, Ys;
00081 local int i;
00082 local int W, H;
00083 local float XWidth, YHeight, XMod, YMod, XPos, YPos;
00084 local color TextColor;
00085
00086 Super.Created();
00087
00088 /*
00089 * Setup window parameters.
00090 */
00091
00092 bLeaveOnScreen = True;
00093 bAlwaysOnTop = True;
00094 class'UTLadderStub'.Static.GetStubClass().Static.SetupWinParams(Self, Root, W, H);
00095
00096 XMod = 4*W;
00097 YMod = 3*H;
00098
00099 /*
00100 * Load the background.
00101 */
00102
00103 BG1[0] = Texture(DynamicLoadObject(BGName1[0], Class'Texture'));
00104 BG1[1] = Texture(DynamicLoadObject(BGName1[1], Class'Texture'));
00105 BG1[2] = Texture(DynamicLoadObject(BGName1[2], Class'Texture'));
00106 BG1[3] = Texture(DynamicLoadObject(BGName1[3], Class'Texture'));
00107 BG2[0] = Texture(DynamicLoadObject(BGName2[0], Class'Texture'));
00108 BG2[1] = Texture(DynamicLoadObject(BGName2[1], Class'Texture'));
00109 BG2[2] = Texture(DynamicLoadObject(BGName2[2], Class'Texture'));
00110 BG2[3] = Texture(DynamicLoadObject(BGName2[3], Class'Texture'));
00111 BG3[0] = Texture(DynamicLoadObject(BGName3[0], Class'Texture'));
00112 BG3[1] = Texture(DynamicLoadObject(BGName3[1], Class'Texture'));
00113 BG3[2] = Texture(DynamicLoadObject(BGName3[2], Class'Texture'));
00114 BG3[3] = Texture(DynamicLoadObject(BGName3[3], Class'Texture'));
00115
00116 /*
00117 * Create components.
00118 */
00119
00120 // Check ladder object.
00121 LadderObj = LadderInventory(GetPlayerOwner().FindInventoryType(class'LadderInventory'));
00122 if (LadderObj == None)
00123 {
00124 Log("ManagerWindow: Player has no LadderInventory!!");
00125 }
00126 LadderObj.LastMatchType = 0;
00127
00128 // DeathMatch Ladder
00129 XPos = 95.0/1024 * XMod;
00130 YPos = 102.0/768 * YMod;
00131 XWidth = 307.0/1024 * XMod;
00132 YHeight = 44.0/768 * YMod;
00133 DMLadderButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00134 DMLadderButton.NotifyWindow = Self;
00135 DMLadderButton.bStretched = True;
00136 DMLadderButton.Text = DMText;
00137 TextColor.R = 255;
00138 TextColor.G = 255;
00139 TextColor.B = 0;
00140 DMLadderButton.SetTextColor(TextColor);
00141 DMLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00142
00143 // Domination Ladder
00144 XPos = 95.0/1024 * XMod;
00145 YPos = 231.0/768 * YMod;
00146 XWidth = 307.0/1024 * XMod;
00147 YHeight = 44.0/768 * YMod;
00148 DOMLadderButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00149 DOMLadderButton.NotifyWindow = Self;
00150 DOMLadderButton.bStretched = True;
00151 DOMLadderButton.Text = DOMText;
00152 TextColor.R = 255;
00153 TextColor.G = 0;
00154 TextColor.B = 0;
00155 DOMLadderButton.SetTextColor(TextColor);
00156 DOMLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00157
00158 // Domination Door
00159 if (DOMDoorOpen[LadderObj.Slot] == 0)
00160 {
00161 XPos = 83.0/1024 * XMod;
00162 YPos = 222.0/768 * YMod;
00163 XWidth = 332.0/1024 * XMod;
00164 YHeight = 63.0/768 * YMod;
00165 DOMDoor = DoorArea(CreateWindow(class'DoorArea', XPos, YPos, XWidth, YHeight));
00166 DOMDoor.bClosed = True;
00167 }
00168
00169 // CTF Ladder
00170 XPos = 95.0/1024 * XMod;
00171 YPos = 363.0/768 * YMod;
00172 XWidth = 307.0/1024 * XMod;
00173 YHeight = 44.0/768 * YMod;
00174 CTFLadderButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00175 CTFLadderButton.NotifyWindow = Self;
00176 CTFLadderButton.bStretched = True;
00177 if (LadderObj.CTFRank == 6)
00178 CTFLadderButton.Text = " "$CTFText;
00179 else
00180 CTFLadderButton.Text = CTFText;
00181 TextColor.R = 255;
00182 TextColor.G = 0;
00183 TextColor.B = 0;
00184 CTFLadderButton.SetTextColor(TextColor);
00185 CTFLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00186
00187 // CTF Door
00188 if (CTFDoorOpen[LadderObj.Slot] == 0)
00189 {
00190 XPos = 83.0/1024 * XMod;
00191 YPos = 356.0/768 * YMod;
00192 XWidth = 332.0/1024 * XMod;
00193 YHeight = 63.0/768 * YMod;
00194 CTFDoor = DoorArea(CreateWindow(class'DoorArea', XPos, YPos, XWidth, YHeight));
00195 CTFDoor.bClosed = True;
00196 }
00197
00198 // Assault Ladder
00199 XPos = 95.0/1024 * XMod;
00200 YPos = 497.0/768 * YMod;
00201 XWidth = 307.0/1024 * XMod;
00202 YHeight = 44.0/768 * YMod;
00203 ASLadderButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00204 ASLadderButton.NotifyWindow = Self;
00205 ASLadderButton.bStretched = True;
00206 ASLadderButton.Text = ASText;
00207 TextColor.R = 255;
00208 TextColor.G = 0;
00209 TextColor.B = 0;
00210 ASLadderButton.SetTextColor(TextColor);
00211 ASLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00212
00213 // AS Door
00214 if (ASDoorOpen[LadderObj.Slot] == 0)
00215 {
00216 XPos = 83.0/1024 * XMod;
00217 YPos = 488.0/768 * YMod;
00218 XWidth = 332.0/1024 * XMod;
00219 YHeight = 63.0/768 * YMod;
00220 ASDoor = DoorArea(CreateWindow(class'DoorArea', XPos, YPos, XWidth, YHeight));
00221 ASDoor.bClosed = True;
00222 }
00223
00224 // Challenge Ladder
00225 XPos = 95.0/1024 * XMod;
00226 YPos = 627.0/768 * YMod;
00227 XWidth = 307.0/1024 * XMod;
00228 YHeight = 44.0/768 * YMod;
00229 ChallengeLadderButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00230 ChallengeLadderButton.NotifyWindow = Self;
00231 ChallengeLadderButton.bStretched = True;
00232 ChallengeLadderButton.Text = ChallengeText;
00233 TextColor.R = 255;
00234 TextColor.G = 0;
00235 TextColor.B = 0;
00236 ChallengeLadderButton.SetTextColor(TextColor);
00237 ChallengeLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00238
00239 // Chal Door
00240 if (ChalDoorOpen[LadderObj.Slot] == 0)
00241 {
00242 XPos = 83.0/1024 * XMod;
00243 YPos = 618.0/768 * YMod;
00244 XWidth = 332.0/1024 * XMod;
00245 YHeight = 63.0/768 * YMod;
00246 ChalDoor = DoorArea(CreateWindow(class'DoorArea', XPos, YPos, XWidth, YHeight));
00247 ChalDoor.bClosed = True;
00248 }
00249
00250 // Trophy Area
00251 XPos = 656.0/1024 * XMod;
00252 YPos = 63.0/768 * YMod;
00253 XWidth = 222.0/1024 * XMod;
00254 YHeight = 50.0/768 * YMod;
00255 TrophyButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00256 TrophyButton.NotifyWindow = Self;
00257 TrophyButton.bStretched = True;
00258 TrophyButton.Text = TrophyText;
00259 TextColor.R = 255;
00260 TextColor.G = 0;
00261 TextColor.B = 0;
00262 TrophyButton.SetTextColor(TextColor);
00263 TrophyButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00264
00265 // Trophy Door
00266 if (TrophyDoorOpen[LadderObj.Slot] == 0)
00267 {
00268 XPos = 649.0/1024 * XMod;
00269 YPos = 57.0/768 * YMod;
00270 XWidth = 236.0/1024 * XMod;
00271 YHeight = 62.0/768 * YMod;
00272 TrophyDoor = DoorArea(CreateWindow(class'DoorArea', XPos, YPos, XWidth, YHeight));
00273 TrophyDoor.bClosed = True;
00274 }
00275
00276 // Back Button
00277 XPos = 192.0/1024 * XMod;
00278 YPos = 701.0/768 * YMod;
00279 XWidth = 64.0/1024 * XMod;
00280 YHeight = 64.0/768 * YMod;
00281 BackButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00282 BackButton.DisabledTexture = Texture(DynamicLoadObject("UTMenu.LeftUp", Class'Texture'));
00283 BackButton.UpTexture = Texture(DynamicLoadObject("UTMenu.LeftUp", Class'Texture'));
00284 BackButton.DownTexture = Texture(DynamicLoadObject("UTMenu.LeftDown", Class'Texture'));
00285 BackButton.OverTexture = Texture(DynamicLoadObject("UTMenu.LeftOver", Class'Texture'));
00286 BackButton.NotifyWindow = Self;
00287 BackButton.Text = "";
00288 TextColor.R = 255;
00289 TextColor.G = 255;
00290 TextColor.B = 0;
00291 BackButton.SetTextColor(TextColor);
00292 BackButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00293 BackButton.bStretched = True;
00294 BackButton.OverSound = sound'LadderSounds.lcursorMove';
00295 BackButton.DownSound = sound'LadderSounds.ladvance';
00296
00297 // Next Button
00298 XPos = 256.0/1024 * XMod;
00299 YPos = 701.0/768 * YMod;
00300 XWidth = 64.0/1024 * XMod;
00301 YHeight = 64.0/768 * YMod;
00302 NextButton = NotifyButton(CreateWindow(class'NotifyButton', XPos, YPos, XWidth, YHeight));
00303 NextButton.DisabledTexture = Texture(DynamicLoadObject("UTMenu.RightUp", Class'Texture'));
00304 NextButton.UpTexture = Texture(DynamicLoadObject("UTMenu.RightUp", Class'Texture'));
00305 NextButton.DownTexture = Texture(DynamicLoadObject("UTMenu.RightDown", Class'Texture'));
00306 NextButton.OverTexture = Texture(DynamicLoadObject("UTMenu.RightOver", Class'Texture'));
00307 NextButton.NotifyWindow = Self;
00308 NextButton.Text = "";
00309 TextColor.R = 255;
00310 TextColor.G = 255;
00311 TextColor.B = 0;
00312 NextButton.SetTextColor(TextColor);
00313 NextButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00314 NextButton.bStretched = True;
00315 NextButton.OverSound = sound'LadderSounds.lcursorMove';
00316 NextButton.DownSound = sound'LadderSounds.ladvance';
00317
00318 // Info
00319 XPos = 617.0/1024 * XMod;
00320 YPos = 233.0/768 * YMod;
00321 XWidth = 303.0/1024 * XMod;
00322 YHeight = 440.0/768 * YMod;
00323 InfoArea = UTFadeTextArea(CreateWindow(Class<UWindowWindow>(DynamicLoadObject("UTMenu.UTFadeTextArea", Class'Class')), XPos, YPos, XWidth, YHeight));
00324 InfoArea.TextColor.R = 255;
00325 InfoArea.TextColor.G = 255;
00326 InfoArea.TextColor.B = 0;
00327 InfoArea.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetSmallFont(Root);
00328 InfoArea.FadeFactor = 8;
00329 InfoArea.Clear();
00330 if (Root.WinWidth < 512)
00331 return;
00332 InfoArea.AddText(RankString[0]@class'Ladder'.Static.GetRank(LadderObj.DMRank));
00333 if (class'UTLadderStub'.Static.GetStubClass().Static.IsDemo())
00334 {
00335 if (LadderObj.DMPosition == -1)
00336 InfoArea.AddText(MatchesString@"0");
00337 else {
00338 if (LadderObj.DMRank == 4)
00339 InfoArea.AddText(MatchesString@LadderObj.DMPosition);
00340 else
00341 InfoArea.AddText(MatchesString@(LadderObj.DMPosition-1));
00342 }
00343 if (LadderObj.DMRank == 4) {
00344 InfoArea.AddText(" ");
00345 InfoArea.AddText(RankString[1]@class'Ladder'.Static.GetRank(LadderObj.DOMRank));
00346 if (LadderObj.DOMPosition == -1)
00347 InfoArea.AddText(MatchesString@"0");
00348 else {
00349 if (LadderObj.DOMRank == 4)
00350 InfoArea.AddText(MatchesString@LadderObj.DOMPosition);
00351 else
00352 InfoArea.AddText(MatchesString@(LadderObj.DOMPosition-1));
00353 }
00354 }
00355 if (LadderObj.DOMRank == 4) {
00356 InfoArea.AddText(" ");
00357 InfoArea.AddText(RankString[2]@class'Ladder'.Static.GetRank(LadderObj.CTFRank));
00358 if (LadderObj.CTFPosition == -1)
00359 InfoArea.AddText(MatchesString@"0");
00360 else {
00361 if (LadderObj.CTFRank == 4)
00362 InfoArea.AddText(MatchesString@LadderObj.CTFPosition);
00363 else
00364 InfoArea.AddText(MatchesString@(LadderObj.CTFPosition-1));
00365 }
00366 }
00367 } else {
00368 if (LadderObj.DMPosition == -1)
00369 InfoArea.AddText(MatchesString@"0");
00370 else {
00371 if (LadderObj.DMRank == 6)
00372 InfoArea.AddText(MatchesString@LadderObj.DMPosition);
00373 else
00374 InfoArea.AddText(MatchesString@(LadderObj.DMPosition-1));
00375 }
00376 if (LadderObj.DMPosition >= 4) {
00377 InfoArea.AddText(" ");
00378 InfoArea.AddText(RankString[1]@class'Ladder'.Static.GetRank(LadderObj.DOMRank));
00379 if (LadderObj.DOMPosition == -1)
00380 InfoArea.AddText(MatchesString@"0");
00381 else {
00382 if (LadderObj.DOMRank == 6)
00383 InfoArea.AddText(MatchesString@LadderObj.DOMPosition);
00384 else
00385 InfoArea.AddText(MatchesString@(LadderObj.DOMPosition-1));
00386 }
00387 }
00388 if (LadderObj.DOMPosition >= 4) {
00389 InfoArea.AddText(" ");
00390 InfoArea.AddText(RankString[2]@class'Ladder'.Static.GetRank(LadderObj.CTFRank));
00391 if (LadderObj.CTFPosition == -1)
00392 InfoArea.AddText(MatchesString@"0");
00393 else {
00394 if (LadderObj.CTFRank == 6)
00395 InfoArea.AddText(MatchesString@LadderObj.CTFPosition);
00396 else
00397 InfoArea.AddText(MatchesString@(LadderObj.CTFPosition-1));
00398 }
00399 }
00400 if (LadderObj.CTFPosition >= 4) {
00401 InfoArea.AddText(" ");
00402 InfoArea.AddText(RankString[3]@class'Ladder'.Static.GetRank(LadderObj.ASRank));
00403 if (LadderObj.ASPosition == -1)
00404 InfoArea.AddText(MatchesString@"0");
00405 else {
00406 if (LadderObj.ASRank == 6)
00407 InfoArea.AddText(MatchesString@LadderObj.ASPosition);
00408 else
00409 InfoArea.AddText(MatchesString@(LadderObj.ASPosition-1));
00410 }
00411 }
00412 if ( (LadderObj.DMRank == 6) && (LadderObj.DOMRank == 6) &&
00413 (LadderObj.CTFRank == 6) && (LadderObj.ASRank == 6) ) {
00414 InfoArea.AddText(" ");
00415 InfoArea.AddText(ChallengeString);
00416 InfoArea.AddText(ChalPosString@class'Ladder'.Static.GetRank(LadderObj.ChalRank));
00417 }
00418 }
00419
00420 Root.Console.bBlackOut = True;
00421 }
00422
00423 function BeforePaint(Canvas C, float X, float Y)
00424 {
00425 local LadderInventory LadderObj;
00426 local float Xs, Ys;
00427 local int i;
00428 local int W, H;
00429 local float XWidth, YHeight, XMod, YMod, XPos, YPos;
00430
00431 Super.BeforePaint(C, X, Y);
00432
00433 class'UTLadderStub'.Static.GetStubClass().Static.SetupWinParams(Self, Root, W, H);
00434
00435 XMod = 4*W;
00436 YMod = 3*H;
00437
00438 // DeathMatch Ladder
00439 XPos = 95.0/1024 * XMod;
00440 YPos = 102.0/768 * YMod;
00441 XWidth = 307.0/1024 * XMod;
00442 YHeight = 44.0/768 * YMod;
00443 DMLadderButton.WinLeft = XPos;
00444 DMLadderButton.WinTop = YPos;
00445 DMLadderButton.SetSize(XWidth, YHeight);
00446 DMLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00447
00448 // Domination Ladder
00449 XPos = 95.0/1024 * XMod;
00450 YPos = 231.0/768 * YMod;
00451 XWidth = 307.0/1024 * XMod;
00452 YHeight = 44.0/768 * YMod;
00453 DOMLadderButton.WinLeft = XPos;
00454 DOMLadderButton.WinTop = YPos;
00455 DOMLadderButton.SetSize(XWidth, YHeight);
00456 DOMLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00457
00458 // Domination Door
00459 if (DOMDoor != None)
00460 {
00461 XPos = 83.0/1024 * XMod;
00462 YPos = 222.0/768 * YMod;
00463 XWidth = 332.0/1024 * XMod;
00464 YHeight = 63.0/768 * YMod;
00465 DOMDoor.WinLeft = XPos;
00466 DOMDoor.WinTop = YPos;
00467 DOMDoor.SetSize(XWidth, YHeight);
00468 }
00469
00470 // CTF Ladder
00471 XPos = 95.0/1024 * XMod;
00472 YPos = 363.0/768 * YMod;
00473 XWidth = 307.0/1024 * XMod;
00474 YHeight = 44.0/768 * YMod;
00475 CTFLadderButton.WinLeft = XPos;
00476 CTFLadderButton.WinTop = YPos;
00477 CTFLadderButton.SetSize(XWidth, YHeight);
00478 CTFLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00479
00480 // CTF Door
00481 if (CTFDoor != None)
00482 {
00483 XPos = 83.0/1024 * XMod;
00484 YPos = 356.0/768 * YMod;
00485 XWidth = 332.0/1024 * XMod;
00486 YHeight = 63.0/768 * YMod;
00487 CTFDoor.WinLeft = XPos;
00488 CTFDoor.WinTop = YPos;
00489 CTFDoor.SetSize(XWidth, YHeight);
00490 }
00491
00492 // Assault Ladder
00493 XPos = 95.0/1024 * XMod;
00494 YPos = 497.0/768 * YMod;
00495 XWidth = 307.0/1024 * XMod;
00496 YHeight = 44.0/768 * YMod;
00497 ASLadderButton.WinLeft = XPos;
00498 ASLadderButton.WinTop = YPos;
00499 ASLadderButton.SetSize(XWidth, YHeight);
00500 ASLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00501
00502 // AS Door
00503 if (ASDoor != None)
00504 {
00505 XPos = 83.0/1024 * XMod;
00506 YPos = 488.0/768 * YMod;
00507 XWidth = 332.0/1024 * XMod;
00508 YHeight = 63.0/768 * YMod;
00509 ASDoor.WinLeft = XPos;
00510 ASDoor.WinTop = YPos;
00511 ASDoor.SetSize(XWidth, YHeight);
00512 }
00513
00514 // Challenge Ladder
00515 XPos = 95.0/1024 * XMod;
00516 YPos = 627.0/768 * YMod;
00517 XWidth = 307.0/1024 * XMod;
00518 YHeight = 44.0/768 * YMod;
00519 ChallengeLadderButton.WinLeft = XPos;
00520 ChallengeLadderButton.WinTop = YPos;
00521 ChallengeLadderButton.SetSize(XWidth, YHeight);
00522 ChallengeLadderButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00523
00524 // Chal Door
00525 if (ChalDoor != None)
00526 {
00527 XPos = 83.0/1024 * XMod;
00528 YPos = 618.0/768 * YMod;
00529 XWidth = 332.0/1024 * XMod;
00530 YHeight = 63.0/768 * YMod;
00531 ChalDoor.WinLeft = XPos;
00532 ChalDoor.WinTop = YPos;
00533 ChalDoor.SetSize(XWidth, YHeight);
00534 }
00535
00536 // Trophy Area
00537 XPos = 656.0/1024 * XMod;
00538 YPos = 63.0/768 * YMod;
00539 XWidth = 222.0/1024 * XMod;
00540 YHeight = 50.0/768 * YMod;
00541 TrophyButton.WinLeft = XPos;
00542 TrophyButton.WinTop = YPos;
00543 TrophyButton.SetSize(XWidth, YHeight);
00544 TrophyButton.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetHugeFont(Root);
00545
00546 // Trophy Door
00547 if (TrophyDoor != None)
00548 {
00549 XPos = 650.0/1024 * XMod;
00550 YPos = 58.0/768 * YMod;
00551 XWidth = 236.0/1024 * XMod;
00552 YHeight = 62.0/768 * YMod;
00553 TrophyDoor.WinLeft = XPos;
00554 TrophyDoor.WinTop = YPos;
00555 TrophyDoor.SetSize(XWidth, YHeight);
00556 }
00557
00558 // Back Button
00559 XPos = 192.0/1024 * XMod;
00560 YPos = 701.0/768 * YMod;
00561 XWidth = 64.0/1024 * XMod;
00562 YHeight = 64.0/768 * YMod;
00563 BackButton.SetSize(XWidth, YHeight);
00564 BackButton.WinLeft = XPos;
00565 BackButton.WinTop = YPos;
00566
00567 // Next Button
00568 XPos = 256.0/1024 * XMod;
00569 YPos = 701.0/768 * YMod;
00570 XWidth = 64.0/1024 * XMod;
00571 YHeight = 64.0/768 * YMod;
00572 NextButton.SetSize(XWidth, YHeight);
00573 NextButton.WinLeft = XPos;
00574 NextButton.WinTop = YPos;
00575
00576 // Info
00577 XPos = 617.0/1024 * XMod;
00578 YPos = 233.0/768 * YMod;
00579 XWidth = 303.0/1024 * XMod;
00580 YHeight = 440.0/768 * YMod;
00581 InfoArea.SetSize(XWidth, YHeight);
00582 InfoArea.WinLeft = XPos;
00583 InfoArea.WinTop = YPos;
00584 InfoArea.MyFont = class'UTLadderStub'.Static.GetStubClass().Static.GetSmallFont(Root);
00585 }
00586
00587 function Paint(Canvas C, float X, float Y)
00588 {
00589 local int XOffset, YOffset;
00590 local int W, H;
00591 local float XWidth, YHeight, XMod, YMod, XPos, YPos;
00592
00593 class'UTLadderStub'.Static.GetStubClass().Static.SetupWinParams(Self, Root, W, H);
00594
00595 XMod = 4*W;
00596 YMod = 3*H;
00597
00598 XOffset = (WinWidth - (4 * W)) / 2;
00599 YOffset = (WinHeight - (3 * H)) / 2;
00600
00601 // Background
00602 DrawStretchedTexture(C, XOffset + (0 * W), YOffset + (0 * H), W+1, H+1, BG1[0]);
00603 DrawStretchedTexture(C, XOffset + (1 * W), YOffset + (0 * H), W+1, H+1, BG1[1]);
00604 DrawStretchedTexture(C, XOffset + (2 * W), YOffset + (0 * H), W+1, H+1, BG1[2]);
00605 DrawStretchedTexture(C, XOffset + (3 * W), YOffset + (0 * H), W+1, H+1, BG1[3]);
00606
00607 DrawStretchedTexture(C, XOffset + (0 * W), YOffset + (1 * H), W+1, H+1, BG2[0]);
00608 DrawStretchedTexture(C, XOffset + (1 * W), YOffset + (1 * H), W+1, H+1, BG2[1]);
00609 DrawStretchedTexture(C, XOffset + (2 * W), YOffset + (1 * H), W+1, H+1, BG2[2]);
00610 DrawStretchedTexture(C, XOffset + (3 * W), YOffset + (1 * H), W+1, H+1, BG2[3]);
00611
00612 DrawStretchedTexture(C, XOffset + (0 * W), YOffset + (2 * H), W+1, H+1, BG3[0]);
00613 DrawStretchedTexture(C, XOffset + (1 * W), YOffset + (2 * H), W+1, H+1, BG3[1]);
00614 DrawStretchedTexture(C, XOffset + (2 * W), YOffset + (2 * H), W+1, H+1, BG3[2]);
00615 DrawStretchedTexture(C, XOffset + (3 * W), YOffset + (2 * H), W+1, H+1, BG3[3]);
00616
00617 if (C.ClipX < 512)
00618 return;
00619
00620 if (LadderObj.DMRank == 6)
00621 {
00622 XPos = 95.0/1024 * XMod;
00623 YPos = 102.0/768 * YMod;
00624 XWidth = 60.0/1024 * XMod;
00625 YHeight = 60.0/1024 * YMod;
00626 DrawStretchedTexture(C, XPos, YPos, XWidth, YHeight, texture'TrophyDM');
00627 }
00628 if (LadderObj.DOMRank == 6)
00629 {
00630 XPos = 95.0/1024 * XMod;
00631 YPos = 231.0/768 * YMod;
00632 XWidth = 60.0/1024 * XMod;
00633 YHeight = 60.0/1024 * YMod;
00634 DrawStretchedTexture(C, XPos, YPos, XWidth, YHeight, texture'TrophyDOM');
00635 }
00636 if (LadderObj.CTFRank == 6)
00637 {
00638 XPos = 95.0/1024 * XMod;
00639 YPos = 363.0/768 * YMod;
00640 XWidth = 60.0/1024 * XMod;
00641 YHeight = 60.0/1024 * YMod;
00642 DrawStretchedTexture(C, XPos, YPos, XWidth, YHeight, texture'TrophyCTF');
00643 }
00644 if (LadderObj.ASRank == 6)
00645 {
00646 XPos = 95.0/1024 * XMod;
00647 YPos = 497.0/768 * YMod;
00648 XWidth = 60.0/1024 * XMod;
00649 YHeight = 60.0/1024 * YMod;
00650 DrawStretchedTexture(C, XPos, YPos, XWidth, YHeight, texture'TrophyAS');
00651 }
00652 if (LadderObj.ChalRank == 6)
00653 {
00654 XPos = 95.0/1024 * XMod;
00655 YPos = 627.0/768 * YMod;
00656 XWidth = 60.0/1024 * XMod;
00657 YHeight = 60.0/1024 * YMod;
00658 DrawStretchedTexture(C, XPos, YPos, XWidth, YHeight, texture'TrophyChal');
00659 }
00660 }
00661
00662 function ShowWindow()
00663 {
00664 Super.ShowWindow();
00665
00666 if ((DOMDoorOpen[LadderObj.Slot] == 0) && (DOMDoor != None))
00667 DOMDoor.bClosed = True;
00668
00669 if ((CTFDoorOpen[LadderObj.Slot] == 0) && (CTFDoor != None))
00670 CTFDoor.bClosed = True;
00671
00672 if ((ASDoorOpen[LadderObj.Slot] == 0) && (ASDoor != None))
00673 ASDoor.bClosed = True;
00674
00675 if ((ChalDoorOpen[LadderObj.Slot] == 0) && (ChalDoor != None))
00676 ChalDoor.bClosed = True;
00677
00678 if ((TrophyDoorOpen[LadderObj.Slot] == 0) && (TrophyDoor != None))
00679 TrophyDoor.bClosed = True;
00680
00681 OpenTime = 0.0;
00682
00683 InfoArea.Clear();
00684 if (Root.WinWidth < 512)
00685 return;
00686 InfoArea.AddText(RankString[0]@class'Ladder'.Static.GetRank(LadderObj.DMRank));
00687 InfoArea.AddText(MatchesString@LadderObj.DMPosition-1);
00688 if (class'UTLadderStub'.Static.GetStubClass().Static.IsDemo())
00689 {
00690 // Certain doors never open in the demo...
00691 if (LadderObj.DMRank == 4) {
00692 InfoArea.AddText("");
00693 InfoArea.AddText(RankString[1]@class'Ladder'.Static.GetRank(LadderObj.DOMRank));
00694 InfoArea.AddText(MatchesString@LadderObj.DOMPosition-1);
00695 }
00696 if (LadderObj.DOMRank == 4) {
00697 InfoArea.AddText("");
00698 InfoArea.AddText(RankString[2]@class'Ladder'.Static.GetRank(LadderObj.CTFRank));
00699 InfoArea.AddText(MatchesString@LadderObj.CTFPosition-1);
00700 }
00701 } else {
00702 // Conditions to be met for opening doors, etc...
00703 if (LadderObj.DMPosition >= 4) {
00704 InfoArea.AddText("");
00705 InfoArea.AddText(RankString[1]@class'Ladder'.Static.GetRank(LadderObj.DOMRank));
00706 InfoArea.AddText(MatchesString@LadderObj.DOMPosition-1);
00707 }
00708 if (LadderObj.DOMPosition >= 4) {
00709 InfoArea.AddText("");
00710 InfoArea.AddText(RankString[2]@class'Ladder'.Static.GetRank(LadderObj.CTFRank));
00711 InfoArea.AddText(MatchesString@LadderObj.CTFPosition-1);
00712 }
00713 if (LadderObj.CTFPosition >= 4) {
00714 InfoArea.AddText("");
00715 InfoArea.AddText(RankString[3]@class'Ladder'.Static.GetRank(LadderObj.ASRank));
00716 InfoArea.AddText(MatchesString@LadderObj.ASPosition-1);
00717 }
00718 if ( (LadderObj.DMRank == 6) && (LadderObj.DOMRank == 6) &&
00719 (LadderObj.CTFRank == 6) && (LadderObj.ASRank == 6) ) {
00720 InfoArea.AddText(" ");
00721 InfoArea.AddText(ChallengeString);
00722 InfoArea.AddText(ChalPosString@class'Ladder'.Static.GetRank(LadderObj.ChalRank));
00723 }
00724 }
00725 }
00726
00727 function Close(optional bool bByParent)
00728 {
00729 Root.Console.bNoDrawWorld = Root.Console.ShowDesktop;
00730 Root.Console.bLocked = False;
00731 UMenuRootWindow(Root).MenuBar.ShowWindow();
00732 LadderObj = None;
00733
00734 Super.Close(bByParent);
00735 }
00736
00737 function HideWindow()
00738 {
00739 Root.Console.bBlackOut = False;
00740
00741 Super.HideWindow();
00742 }
00743
00744 function Notify(UWindowWindow C, byte E)
00745 {
00746 local Class<UWindowWindow> LadderWindow;
00747
00748 switch (E)
00749 {
00750 case DE_Click:
00751 switch (C)
00752 {
00753 case DMLadderButton:
00754 Unlite(SelectedLadder);
00755 SelectedLadder = 0;
00756 Lite(SelectedLadder);
00757 break;
00758 case DOMLadderButton:
00759 Unlite(SelectedLadder);
00760 SelectedLadder = 1;
00761 Lite(SelectedLadder);
00762 break;
00763 case CTFLadderButton:
00764 Unlite(SelectedLadder);
00765 SelectedLadder = 2;
00766 Lite(SelectedLadder);
00767 break;
00768 case ASLadderButton:
00769 Unlite(SelectedLadder);
00770 SelectedLadder = 3;
00771 Lite(SelectedLadder);
00772 break;
00773 case ChallengeLadderButton:
00774 Unlite(SelectedLadder);
00775 SelectedLadder = 4;
00776 Lite(SelectedLadder);
00777 break;
00778 case TrophyButton:
00779 Root.SetMousePos((Root.WinWidth*Root.GUIScale)/2, (Root.WinHeight*Root.GUIScale)/2);
00780 Close();
00781 Root.Console.CloseUWindow();
00782 GetPlayerOwner().ClientTravel("EOL_Statues.unr?Game=Botpack.TrophyGame", TRAVEL_Absolute, True);
00783 break;
00784 case NextButton:
00785 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00786 LadderObj = None;
00787 HideWindow();
00788 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00789 break;
00790 case BackButton:
00791 Close();
00792 break;
00793 }
00794 break;
00795 case DE_Doubleclick:
00796 switch (C)
00797 {
00798 case DMLadderButton:
00799 Unlite(SelectedLadder);
00800 SelectedLadder = 0;
00801 Lite(SelectedLadder);
00802 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00803 HideWindow();
00804 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00805 break;
00806 case DOMLadderButton:
00807 Unlite(SelectedLadder);
00808 SelectedLadder = 1;
00809 Lite(SelectedLadder);
00810 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00811 HideWindow();
00812 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00813 break;
00814 case CTFLadderButton:
00815 Unlite(SelectedLadder);
00816 SelectedLadder = 2;
00817 Lite(SelectedLadder);
00818 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00819 HideWindow();
00820 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00821 break;
00822 case ASLadderButton:
00823 Unlite(SelectedLadder);
00824 SelectedLadder = 3;
00825 Lite(SelectedLadder);
00826 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00827 HideWindow();
00828 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00829 break;
00830 case ChallengeLadderButton:
00831 Unlite(SelectedLadder);
00832 SelectedLadder = 4;
00833 Lite(SelectedLadder);
00834 LadderWindow = Class<UWindowWindow>(DynamicLoadObject(LadderTypes[SelectedLadder], class'Class'));
00835 HideWindow();
00836 Root.CreateWindow(LadderWindow, 100, 100, 200, 200, Root, True);
00837 break;
00838 }
00839 break;
00840 }
00841 }
00842
00843 function UnLite(int Ladder)
00844 {
00845 local color UnLiteColor;
00846
00847 UnLiteColor.R = 255;
00848 UnLiteColor.G = 0;
00849 UnLiteColor.B = 0;
00850
00851 switch (Ladder)
00852 {
00853 case 0:
00854 DMLadderButton.SetTextColor(UnLiteColor);
00855 break;
00856 case 1:
00857 DOMLadderButton.SetTextColor(UnLiteColor);
00858 break;
00859 case 2:
00860 CTFLadderButton.SetTextColor(UnLiteColor);
00861 break;
00862 case 3:
00863 ASLadderButton.SetTextColor(UnLiteColor);
00864 break;
00865 case 4:
00866 ChallengeLadderButton.SetTextColor(UnLiteColor);
00867 break;
00868 }
00869 }
00870
00871 function Lite(int Ladder)
00872 {
00873 local color LiteColor;
00874
00875 LiteColor.R = 255;
00876 LiteColor.G = 255;
00877 LiteColor.B = 0;
00878
00879 switch (Ladder)
00880 {
00881 case 0:
00882 DMLadderButton.SetTextColor(LiteColor);
00883 break;
00884 case 1:
00885 DOMLadderButton.SetTextColor(LiteColor);
00886 break;
00887 case 2:
00888 CTFLadderButton.SetTextColor(LiteColor);
00889 break;
00890 case 3:
00891 ASLadderButton.SetTextColor(LiteColor);
00892 break;
00893 case 4:
00894 ChallengeLadderButton.SetTextColor(LiteColor);
00895 break;
00896 }
00897 }
00898
00899 function Tick(float Delta)
00900 {
00901 if (bOpened)
00902 return;
00903 if (OpenTime < 2.0)
00904 OpenTime += Delta;
00905 else {
00906 if (class'UTLadderStub'.Static.GetStubClass().Static.IsDemo())
00907 OpenDemoDoors();
00908 else
00909 OpenDoors();
00910 }
00911 }
00912
00913 function OpenDemoDoors()
00914 {
00915 local bool bOneOpened;
00916
00917 if (LadderObj.DMRank == 4)
00918 {
00919 if ((DOMDoorOpen[LadderObj.Slot] == 0) && (DOMDoor != None))
00920 {
00921 UnLite(SelectedLadder);
00922 SelectedLadder = 1;
00923 Lite(SelectedLadder);
00924 DOMDoorOpen[LadderObj.Slot] = 1;
00925 DOMDoor.Open();
00926 SaveConfig();
00927 bOneOpened = True;
00928 }
00929 }
00930 if (LadderObj.DOMRank == 4)
00931 {
00932 if ((CTFDoorOpen[LadderObj.Slot] == 0) && (CTFDoor != None))
00933 {
00934 UnLite(SelectedLadder);
00935 SelectedLadder = 2;
00936 Lite(SelectedLadder);
00937 CTFDoorOpen[LadderObj.Slot] = 1;
00938 CTFDoor.Open();
00939 SaveConfig();
00940 bOneOpened = True;
00941 }
00942 }
00943 if (bOneOpened)
00944 GetPlayerOwner().PlaySound(sound'LadderSounds.ldoorsopen1b', SLOT_Interface);
00945 bOpened = True;
00946 }
00947
00948 function OpenDoors()
00949 {
00950 local bool bOneOpened;
00951
00952 if (LadderObj.DMPosition >= 4)
00953 {
00954 if ((DOMDoorOpen[LadderObj.Slot] == 0) && (DOMDoor != None))
00955 {
00956 DOMDoorOpen[LadderObj.Slot] = 1;
00957 DOMDoor.Open();
00958 SaveConfig();
00959 bOneOpened = True;
00960 }
00961 }
00962 if (LadderObj.DOMPosition >= 4)
00963 {
00964 if ((CTFDoorOpen[LadderObj.Slot] == 0) && (CTFDoor != None))
00965 {
00966 CTFDoorOpen[LadderObj.Slot] = 1;
00967 CTFDoor.Open();
00968 SaveConfig();
00969 bOneOpened = True;
00970 }
00971 }
00972 if (LadderObj.CTFPosition >= 4)
00973 {
00974 if ((ASDoorOpen[LadderObj.Slot] == 0) && (ASDoor != None))
00975 {
00976 ASDoorOpen[LadderObj.Slot] = 1;
00977 ASDoor.Open();
00978 SaveConfig();
00979 bOneOpened = True;
00980 }
00981 }
00982 if ( (LadderObj.DMRank == 6) && (LadderObj.DOMRank == 6) &&
00983 (LadderObj.CTFRank == 6) && (LadderObj.ASRank == 6) )
00984 {
00985 if ((ChalDoorOpen[LadderObj.Slot] == 0) && (ChalDoor != None))
00986 {
00987 ChalDoorOpen[LadderObj.Slot] = 1;
00988 ChalDoor.Open();
00989 SaveConfig();
00990 bOneOpened = True;
00991 }
00992 }
00993 if ( (LadderObj.DMRank == 6) || (LadderObj.DOMRank == 6) ||
00994 (LadderObj.CTFRank == 6) || (LadderObj.ASRank == 6) )
00995 {
00996 if ((TrophyDoorOpen[LadderObj.Slot] == 0) && (TrophyDoor != None))
00997 {
00998 TrophyDoorOpen[LadderObj.Slot] = 1;
00999 TrophyDoor.Open();
01000 SaveConfig();
01001 bOneOpened = True;
01002 }
01003 }
01004 if (bOneOpened)
01005 GetPlayerOwner().PlaySound(sound'LadderSounds.ldoorsopen1b', SLOT_Interface);
01006 bOpened = True;
01007 }
01008
01009 defaultproperties
01010 {
01011 BGName1(0)="UTMenu.Sel11"
01012 BGName1(1)="UTMenu.Sel12"
01013 BGName1(2)="UTMenu.Sel13"
01014 BGName1(3)="UTMenu.Sel14"
01015 BGName2(0)="UTMenu.Sel21"
01016 BGName2(1)="UTMenu.Sel22"
01017 BGName2(2)="UTMenu.Sel23"
01018 BGName2(3)="UTMenu.Sel24"
01019 BGName3(0)="UTMenu.Sel31"
01020 BGName3(1)="UTMenu.Sel32"
01021 BGName3(2)="UTMenu.Sel33"
01022 BGName3(3)="UTMenu.Sel34"
01023 DMText="Deathmatch"
01024 DOMText="Domination"
01025 CTFText="Capture the Flag"
01026 ASText="Assault"
01027 ChallengeText="Challenge"
01028 ChallengeString="FINAL TOURNAMENT CHALLENGE"
01029 ChalPosString="Challenge Rank:"
01030 TrophyText="Trophy Room"
01031 LadderTypes(0)="UTMenu.UTLadderDM"
01032 LadderTypes(1)="UTMenu.UTLadderDOM"
01033 LadderTypes(2)="UTMenu.UTLadderCTF"
01034 LadderTypes(3)="UTMenu.UTLadderAS"
01035 LadderTypes(4)="UTMenu.UTLadderChal"
01036 RankString(0)="Deathmatch Rank:"
01037 RankString(1)="Domination Rank:"
01038 RankString(2)="CTF Rank:"
01039 RankString(3)="Assault Rank:"
01040 MatchesString="Matches Completed:"
01041 }
|