Áƒ*žEw@B‡CD\A Ü:}ŤzC™ @•|HˆBwNoneEngineCore LogoSplashV2System OrigTextures PostRenderSplashHUDMutator DrawSplash PreBeginPlayTextureSpawnNotificationResetTimer DRAW_DONE DRAW_DISPLAY DRAW_FADE_IN DRAW_BLANK LogoDrawTime SplashNotify SplashLogoSACTFGameClientReliablePlaySound ActorClassDRAW_FADE_OUTPostNetBeginPlayHUD PlayerPawnPawnActorLevelFontCanvas SpawnNotifyGameReplicationInfoPlayerReplicationInfoBitmap GameInfo LevelInfoMutatorStruct StrPropertyStructPropertyPlayerDynamicLoadObject ReturnValueGRBS ScriptTextiWbAlwaysRelevantObjectProperty DrawColorTeamStyleVSizeFloatProperty SmallFontUSizeSoundGameBaseOwnerbCenterClipYSkin HUDMutatorHClipXNextHUDMutatorSkinsBotpack ChallengeHUDColor FlagBaseCTFFlagCTFReplicationInfo FlagListJpflagBJpflagR BoolProperty IntProperty FunctionRole LogoTextureClassCaptionLineOneCaptionLineTwoCaptionLineThreeCaptionLineFour IntroSoundLogoTranslucent PlayerHUDtmpHUD bDrawSplash EDrawStatePackageEnum TextBuffer DrawIconObject DrawState DrawTime DrawTick SplashLogo SplashSound ByteProperty PreviousFontPreviousCenterPreviousColorPreviousStyleCustomRedFlagCustomBlueFlagFlagTeamTexturesSetPosCTFRI*€‚/A:˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Jngc'=$:e > ŁY‚x‚x‚x‚x‚x‚x‚xŒëŠZ!‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚x‚xŒëŠZ!‚x‚x‚x‚x‚xŒëŠZ!‚x‚x‚x‚x‚xŒëŠZ!‚x‚x‚x‚x‚xŒëŠZ!‚x‚xŒëŠZ!‚x‚x‚x‚x > ŁY=$:e„7€†­;<ń š:ş:$˙˙˙˙˙˙˙˙˙˙>9¤ ­Œ”mó†œÔXŠ5Iœ´Š5Iœ´=$:engc'†œÔXngc'ngc'ngc'ngc'ngc'ngc'ngc'ngc'Š5Iœ´Š5Iœ´ngc'Š5Iœ´Š5Iœ´„Š Œ Œ@‘Ł '@@@@@#€‚ @@4@@ @Œ @  @! @" @ą) @ $ +ť,(‰5@@@@.@@2@@3@-@@ @0@@´/'#´´“w*“wż*“›::$z-çpLoading texture .Œ ŒçpLoading sound .Ł Łw*-'$€=a'r*çpSplashLogo: Can't load sound w$çpSplashLogo: Can't load texture wr*çpSplashLogo: Can't load sound ““›::$˛wĄ*Ą  €†Ż& ź*-ś'çSplashNotify::PreBeginPlay() 6T¤”’›::$-+-Ş,‡*Ź(Ž F’ŻŹœ?,?‘ź,ŽŹ˜?,?, ;$Ž$6•‡CŤ<$á6—‡CŤ<$á6–‡CŤ<$á; ł$]-#Ž$nŽ$6•‡$á6—‡$á6–‡$á; 8$Ž$6•‡CŻ<$áŤ?,á6—‡CŻ<$áŤ?,á6–‡CŻ<$áŤ?,á; ˙˙€? -Ş( ń$Ž$6•‡CŤ<$á6—‡CŤ<$á6–‡CŤ<$áÔ L$Ž$6•‡$á6—‡$á6–‡$áÔ Ń$Ž$6•‡CŻ<$áŤ?,á6—‡CŻ<$áŤ?,á6–‡CŻ<$áŤ?,áÔ ˙˙Ź¸aÖ S’ŻŹœ?,Ź ?,ŽŽŽŹ˜?,?,?™?, aŃaÖ S’ŻŹœ?,Ź ?,ŽŽŽŹ˜?,?,?™?,aŃaÖ S’ŻŹœ?,Ź ?,ŽŽŽŹ˜?,?,?™?,aŃaÖ S’ŻŹœ?,Ź ?,ŽŽŽŹ˜?,?,?™?,(aŃ&’ AŽŽ A?™?,2-Ş-+‡,Ź*Ž( ¨9 ŻkůŽ C$@ł€?$ń $~ł€?$ ń Ź$Šł?'$ń Ö$Ół€?$ń î$a(*ń ˙˙¨ e&//============================================================================= // SplashNotify. // Copyright PJMODOS (pjmodos@atlas.cz) //============================================================================= class SplashNotify expands SpawnNotify; var string LogoTexture; var byte LogoDrawTime; var string CaptionLineOne; var string CaptionLineTwo; var string CaptionLineThree; var string CaptionLineFour; var string IntroSound; var bool LogoTranslucent; replication { reliable if(Role==ROLE_Authority) LogoTexture,LogoDrawTime,CaptionLineOne,CaptionLineTwo,CaptionLineThree,CaptionLineFour,IntroSound,LogoTranslucent; } simulated function PreBeginPlay() { bAlwaysRelevant = true; Log("SplashNotify::PreBeginPlay()"); } simulated function PostNetBeginPlay() { local ChallengeHUD PlayerHUD; Log("SplashNotify::PostNetBeginPlay()"); foreach AllActors(Class'ChallengeHUD',PlayerHUD) { SpawnNotification(PlayerHUD); } } /*simulated function Spawned() { local ChallengeHUD PlayerHUD; foreach AllActors(Class'ChallengeHUD',PlayerHUD) { SpawnNotification(PlayerHUD); } }*/ simulated event Actor SpawnNotification(actor Actor) { local SplashHUDMutator tmpHUD; Log("SplashNotify::SpawnNotification(1)"); if (Actor != None) { Log("SplashNotify::SpawnNotification(2)"); if (Actor.IsA('HUD') && (HUD(Actor).HUDMutator == None || !HUD(Actor).HUDMutator.IsA('SplashHUDMutator'))) { Log("SplashNotify::SpawnNotification(3)"); tmpHUD = spawn(class'SplashHUDMutator', Actor); Log("SplashNotify::SpawnNotification(4)"); if (tmpHUD != None) { tmpHUD.Player = PlayerPawn(Actor.Owner); Log("SplashNotify::SpawnNotification(5)"); tmpHUD.LogoTexture = LogoTexture; tmpHUD.LogoDrawTime = LogoDrawTime; tmpHUD.CaptionLineOne = CaptionLineOne; tmpHUD.CaptionLineTwo = CaptionLineTwo; tmpHUD.CaptionLineThree = CaptionLineThree; tmpHUD.CaptionLineFour = CaptionLineFour; tmpHUD.IntroSound = IntroSound; tmpHUD.LogoTranslucent = LogoTranslucent; Log("SplashNotify::SpawnNotification(6)"); if (HUD(Actor).HUDMutator == None) HUD(Actor).HUDMutator = tmpHUD; else { tmpHUD.NextHUDMutator = HUD(Actor).HUDMutator; HUD(Actor).HUDMutator = tmpHUD; } Log("SplashNotify::SpawnNotification(7)"); } } } Log("SplashNotify::SpawnNotification(8)"); return Actor; } ľB 8âëçSplashNotify::SpawnNotification(1)˝w*çSplashNotify::SpawnNotification(2)˝‚a/!=„r.Š“*".Š“a/!çSplashNotify::SpawnNotification(3)a çSplashNotify::SpawnNotification(4)˝w*. ˇçSplashNotify::SpawnNotification(5)&':)$"! -#-çSplashNotify::SpawnNotification(6)\r.Š“*.Š“—Ą.Š“.Š“çSplashNotify::SpawnNotification(7)çSplashNotify::SpawnNotification(8)  Ż1 ÚK a  &1 )=2 $3 "- !5  0 . --4‚{ {% .Œ Œ& .Œ ŒI‚‚w% * w& *˛Ža/!a€?' v//============================================================================= // SplashLogoSA. // Copyright PJMODOS (pjmodos@atlas.cz) //============================================================================= class SplashLogoSA expands Actor config; var config string LogoTexture; var config int LogoDrawTime; var config string CaptionLineOne; var config string CaptionLineTwo; var config string CaptionLineThree; var config string CaptionLineFour; var config string IntroSound; var config string CustomRedFlag; var config string CustomBlueFlag; var config bool LogoTranslucent; var Texture FlagTeamTextures[2]; var Texture OrigTextures[2]; function PreBeginPlay() { local SplashNotify s; s = spawn(class'SplashNotify'); s.LogoTexture = LogoTexture; s.LogoDrawTime = LogoDrawTime; s.CaptionLineOne = CaptionLineOne; s.CaptionLineTwo = CaptionLineTwo; s.CaptionLineThree = CaptionLineThree; s.CaptionLineFour = CaptionLineFour; s.IntroSound = IntroSound; s.LogoTranslucent = LogoTranslucent; if(CustomRedFlag!="" && CustomBlueFlag!="") { FlagTeamTextures[0]=texture(DynamicLoadObject(CustomRedFlag, class'Texture')); FlagTeamTextures[1]=texture(DynamicLoadObject(CustomBlueFlag, class'Texture')); } if(FlagTeamTextures[0] != None && FlagTeamTextures[1] != None && Level.Game.IsA('CTFGame')) SetTimer(1.0,True); } simulated function Timer() { local int i; local FlagBase Base; local CTFReplicationInfo CTFRI; foreach AllActors(class'FlagBase',Base) { if (Base.Skin==OrigTextures[Base.Team]) Base.Skin = FlagTeamTextures[Base.Team]; else FlagTeamTextures[Base.Team] = Base.Skin; } CTFRI = CTFReplicationInfo(Level.Game.GameReplicationInfo); if (CTFRI!=None) { for (i=0;i<3;i++) { if ((CTFRI.FlagList[i]!=None) && (CTFRI.FlagList[i].Skin==OrigTextures[i])) CTFRI.FlagList[i].Skin = FlagTeamTextures[i]; } SetTimer(0.0,false); } } ¨= 3ÝL/a0  „_r š: ˘ š: ˘ ƒ: ˘  š10.‘˛Ž˝Jw* %A– ,7‚w Ť*+r Ťš  Ťš  Ľ ša( †>?˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙@gS熜ԝX3e Ѝ3e Ѝ3e Ѝ3e Ѝ3e Ѝ3e ОŽ”¤ŠŮŤ‘réćĺ‘réćĺ°j\şĽ‘réćĺ°j\şĽ>9¤ >9¤ >9¤ >9¤ >9¤ >9¤ >9¤ >9¤ žŽ”¤ŠŮŤ„"Ä•Ă mV//============================================================================= // SpashHUDMutator. // Copyright PJMODOS (pjmodos@atlas.cz) //============================================================================= class SplashHUDMutator expands Mutator; var PlayerPawn Player; var bool bDrawSplash; var string LogoTexture; var int LogoDrawTime; var string CaptionLineOne; var string CaptionLineTwo; var string CaptionLineThree; var string CaptionLineFour; var string IntroSound; var enum EDrawState { DRAW_BLANK, DRAW_FADE_IN, DRAW_DISPLAY, DRAW_FADE_OUT, DRAW_DONE } DrawState; var float DrawTime; var float DrawTick; var bool LogoTranslucent; var texture SplashLogo; var sound SplashSound; simulated function PostRender(canvas Canvas) { Super.PostRender(Canvas); if (Player != None) if (Player.PlayerReplicationInfo != None) if (DrawState != DRAW_DONE) { if (!bDrawSplash) { Log("Loading texture "$LogoTexture); SplashLogo = texture(DynamicLoadObject(LogoTexture, class'Texture')); Log("Loading sound "$IntroSound); SplashSound = Sound(DynamicLoadObject(IntroSound, class'Sound')); if (SplashLogo != None) { bDrawSplash = True; DrawState = EDrawState.DRAW_BLANK; DrawTick = 0.0625; SetTimer(DrawTick, True); if (SplashSound == None) Log("SplashLogo: Can't load sound "$IntroSound); } else { DrawState = DRAW_DONE; Log("SplashLogo: Can't load texture "$LogoTexture); if (SplashSound == None) Log("SplashLogo: Can't load sound "$IntroSound); } } else if (DrawState != DRAW_DONE) DrawSplash(Canvas); } if (NextHUDMutator != None) NextHUDMutator.PostRender(Canvas); } simulated function DrawSplash(canvas Canvas) { local font PreviousFont; local bool PreviousCenter; local color PreviousColor; local byte PreviousStyle; local float W, H; if (DrawState != EDrawState.DRAW_BLANK) { PreviousCenter = Canvas.bCenter; PreviousColor = Canvas.DrawColor; PreviousFont = Canvas.Font; PreviousStyle = Canvas.Style; Canvas.Reset(); Canvas.SetPos(Canvas.ClipX/2 - SplashLogo.Usize/2, Canvas.ClipY/2 + 25); Switch (DrawState) { case EDrawState.DRAW_FADE_IN : Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 225 * DrawTime; Canvas.DrawColor.G = 225 * DrawTime; Canvas.DrawColor.B = 225 * DrawTime; break; case EDrawState.DRAW_DISPLAY : if(LogoTranslucent) Canvas.Style = ERenderStyle.STY_Translucent; else Canvas.Style = ERenderStyle.STY_Normal; Canvas.DrawColor.R = 225; Canvas.DrawColor.G = 225; Canvas.DrawColor.B = 225; break; case EDrawState.DRAW_FADE_OUT : Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 225 - (225 * DrawTime); Canvas.DrawColor.G = 225 - (225 * DrawTime); Canvas.DrawColor.B = 225 - (225 * DrawTime); break; } Canvas.DrawIcon(SplashLogo, 1.0); Canvas.Reset(); Canvas.bCenter = False; Switch (DrawState) { case EDrawState.DRAW_FADE_IN : Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 225 * DrawTime; Canvas.DrawColor.G = 225 * DrawTime; Canvas.DrawColor.B = 225 * DrawTime; break; case EDrawState.DRAW_DISPLAY : Canvas.Style = ERenderStyle.STY_Normal; Canvas.DrawColor.R = 225; Canvas.DrawColor.G = 225; Canvas.DrawColor.B = 225; break; case EDrawState.DRAW_FADE_OUT : Canvas.Style = ERenderStyle.STY_Translucent; Canvas.DrawColor.R = 225 - (225 * DrawTime); Canvas.DrawColor.G = 225 - (225 * DrawTime); Canvas.DrawColor.B = 225 - (225 * DrawTime); break; } Canvas.Font = Canvas.SmallFont; Canvas.TextSize(CaptionLineOne,W,H); Canvas.SetPos(Canvas.ClipX/2 - W/2, Canvas.ClipY/2 + 25+SplashLogo.VSize+10); Canvas.DrawText(CaptionLineOne); Canvas.TextSize(CaptionLineTwo,W,H); Canvas.SetPos(Canvas.ClipX/2 - W/2, Canvas.ClipY/2 + 25+SplashLogo.VSize+20); Canvas.DrawText(CaptionLineTwo); Canvas.TextSize(CaptionLineThree,W,H); Canvas.SetPos(Canvas.ClipX/2 - W/2, Canvas.ClipY/2 + 25+SplashLogo.VSize+30); Canvas.DrawText(CaptionLineThree); Canvas.TextSize(CaptionLineFour,W,H); Canvas.SetPos(Canvas.ClipX/2 - W/2, Canvas.ClipY/2 + 25+SplashLogo.VSize+40); Canvas.DrawText(CaptionLineFour); Canvas.SetPos(10, 10+SplashLogo.VSize+50); Canvas.bCenter = PreviousCenter; Canvas.DrawColor = PreviousColor; Canvas.Font = PreviousFont; Canvas.Style = PreviousStyle; } } simulated function Timer() { DrawTime = DrawTime + DrawTick; Switch (DrawState) { case EDrawState.DRAW_BLANK : if (DrawTime >= 1.0) { DrawState = EDrawState.DRAW_FADE_IN; DrawTime = 0.0; } break; case EDrawState.DRAW_FADE_IN : if (DrawTime >= 1.0) { DrawState = EDrawState.DRAW_DISPLAY; DrawTime = 0.0; Player.ClientReliablePlaySound(SplashSound); } break; case EDrawState.DRAW_DISPLAY : if (DrawTime >= LogoDrawTime) { DrawState = EDrawState.DRAW_FADE_OUT; DrawTime = 0.0; } break; case EDrawState.DRAW_FADE_OUT : if (DrawTime >= 1.0) { DrawState = EDrawState.DRAW_DONE; DrawTime = 0.0; } break; case EDrawState.DRAW_DONE : SetTimer(0.0, False); SplashLogo = None; break; } Super.Timer(); } š8%!NCçSplashNotify::PostNetBeginPlay()/a0 ą%@ %10 cX˙˙˙˙ cXý˙˙˙gcJX˙˙˙˙*ţ˙˙˙7Xý˙˙˙)(ü˙˙˙LX˙˙˙˙Xý˙˙˙6X˙˙˙˙ Xű˙˙˙Mmţ˙˙˙9X˙˙˙˙'Xý˙˙˙UXű˙˙˙OUţ˙˙˙u6ö˙˙˙EX˙˙˙˙$m÷˙˙˙/m÷˙˙˙0m÷˙˙˙.;ţ˙˙˙CTě˙˙˙:6ú˙˙˙DXý˙˙˙S;ţ˙˙˙GUü˙˙˙,X˙˙˙˙&Xý˙˙˙;X˙˙˙˙6ń˙˙˙Hmó˙˙˙8X˙˙˙˙>X˙˙˙˙%Xý˙˙˙XXý˙˙˙eXý˙˙˙mUú˙˙˙ Xý˙˙˙TSţ˙˙˙B6ď˙˙˙P6ţ˙˙˙X˙˙˙˙!6â˙˙˙?Uú˙˙˙ Xű˙˙˙NXű˙˙˙K6ú˙˙˙cű˙˙˙IUń˙˙˙UÓ˙˙˙ Sú˙˙˙56ú˙˙˙A6ţ˙˙˙<Uú˙˙˙mú˙˙˙VX˙˙˙˙Tě˙˙˙=6Ü˙˙˙"X˙˙˙˙6Â˙˙˙#Xý˙˙˙dXý˙˙˙*Uţ˙˙˙f Í˙˙˙Q Í˙˙˙R‹9  xŸi E‹<` Q§h ^_ k‹< J)­NW)‹k e-‹=1 r-Ÿ94 -Š?3 K.‹?@ W.‹@t d.ˆ] q.‹?v }.‹l J/Ÿ9F W/‹+ c/ˆW p/ˆZ |/ˆ[ H0ˆ\ T0ˆY `0Ÿj l0‹6  x0›a E1›^Q1ˆ@r _1ˆ@s k1ˆ]w1‹@ E2ˆ\R2ˆ[`2ˆZn2›^ |2ˆYH3‹B_ V3ˆWc3Š q3§9q }3§J4‹9n Y4›9o f4Á9p r4ˆ@Z 4ˆ@] K5Ŕb W5ˆ@\ `5ˆ@W l5Š@ x5ˆ@Y D6›@^ P6ˆ@[ \6´^h6‹<- F<Ż @S<kS=¨ P~NŚ24p&NRľ Q ~xŻ@ cO‚Ś@24Ar…¨@ js¤†w]¨Ś24xVT­šPL„