*@`V`@7`( 0vcNoneLogoTransitionTScreenCoordsFadeInLogoFadeOutXY TTexRegionRemove LogoPosition LogoSoundTick ServerLogo4CustomizeAnnouncerCoreSystem LogoScaleClientPlaySoundEngineUpdatePackageMapReset ServerLogoDrawScreenTexture LightColorForce CollisionTransitionsTest LightingKarma MovementPostBeginPlayRotatingLogoMaterialFadeInPosYTransitionFadeOutScaleTransitionFadeOutAlphaTransitionFadeOutDurationDisplayDurationFadeInDuration EndScale StartScaleEndPos StartPos LogoColorTRepResources FT_SinSmoothFT_ReverseSqrtSmoothFT_ReverseSquareSmoothFT_SqrtSmoothFT_SquareSmooth FT_SmoothFT_SinBuildAddInteractionPostNetBeginPlay PostRenderRemoveInteractionScaleFT_ReverseSqrtFT_ReverseSquareFT_Sqrt FT_Square FT_LinearServerLogoInteractionColorMutServerLogobAddToServerPackages bVisibleTexRotationType InitialDelayDisplayFadeOutPosYTransitionDrawScreenText DrawPivotFT_Nonepos GroupNameConsoleCommand FriendlyName Advanced DescriptionNotifyLevelChangeSoundMaterialUSizeMaterialVSizeGetLocalPlayerControllerAllocateObjectGetServerDetails FreeObjectEventsConstPackage LifeSpan DrawColorServerResponseLineClassTexCoordCount ObjectPoolRoleTextureH ScriptTextA STY_AlphaBSetPos SpawnTimeEngineVersionNetModeC TextBufferiFallbackMaterial LocalPlayerM ServerStateObjectVOffsetUOffsetYawEndStart DeltaTimeViewportOwnerSMaster WhiteTexture BlackTextureOrgXOrgYSizeXSizeYPivotEnumWAddToPackageMap FunctionGRAlphaEFadeTransition EDrawPivot Rotation ReturnValueGetEnumDynamicLoadObject LevelInfo GameInfoPlayerControllerMutatorCanvasFontInteractionMasterRotatorStructLevel StrProperty FadeInSound DisplaySound FadeOutSound TexRotatorLogoTexCoordsStartLogoRotationRateLogoRotationRateEndLogoRotationRateStructProperty TexModifier ModifierObjectPropertyPlayer MaterialFloatPropertyAnnouncerSounds BoolPropertyBitmapMaterialReplicationInfoActorFadeInRotationTransitionFadeOutRotationTransitionFadeInAlphaTransition InteractionFadeInScaleTransitionStyleFadeInPosXTransitionVSizeFadeOutPosXTransition TimeSecondsRLogoResources RLogoColorRLogoTexCoordsRStartLogoRotationRateRLogoRotationRateREndLogoRotationRate RStartPosRPosREndPos RStartScaleRScale REndScale RDrawPivotRFadeInDurationRDisplayDurationRFadeOutDurationRInitialDelayRAnnouncerSoundsRFadeInRotationTransitionRFadeOutRotationTransitionRFadeInScaleTransitionRFadeOutScaleTransitionRFadeInPosXTransitionRFadeInPosYTransitionRFadeOutPosXTransitionRFadeOutPosYTransitionRFadeInAlphaTransitionRFadeOutAlphaTransitionbReceivedVars IntPropertyMyInteraction UT2003FontsFontNeuzeit14 LogoMaterialUSize StartupTimebDisplayingLogo bFadingIn bDisplaying bFadingOutTestTransition AlphaFadeIn AlphaFadeOut BytePropertyMethodTexCoordProjected LogoRotatorI9:9:$G6 xS,]Έ3}3}3}3}IJu*FkIJ1La3}  FORY]$#MenuEffects.ScoreBoard.ScoreBoardU+*@*Z $?$KZ $?$>)Z $?$?I(Z $?$?9Z $?$?'Z $@@$@@&$@@%$@$$?E$A#"!G4]2004-09-28 08:32  J>=<;:3210/.-}@ @^vb 8  @@'+= 4 @@t(  !Y#@@ $@@ m@@ :@_@@i8*7X0,C ] -HG?U1La\ ҽҽҽҽҽҽҽҽҽҽډډҽҽҽҽҽҽҽҽډډҽҽҽҽҽҽҽҽҽҽҽҽxSxSxSxSxSډxS|;xSxSډxS|;xSu*FIJ3}Ե8~`n8~`n8~`n8~`nxS8~`nxS8~`nxS8~`n8~`nxSxSxSu*FIJxSxSxSu*FIJxSxSxSu*FIJxS3}xS3}xSxSxS3}xSxSxSxSҽҽҽxSu*FIJҽxSxSxSxSxSxSxSxSxSxSxSxSxSxSu*FIJҽxSxSxSxSxSu*FIJҽxSxSxSxSxSxSxSxSxSxSxSxSxSxSxSxSxSxS8~`n8~`nu*FIJ3}Եk  OCE K A R?@ la 6@ 3 >  @W. e@2 B@/ D@F@FG@I@L M N O P 5 J@^Q@[S@U@@THu@w 8%,`@c@8; 9 d@\@BV@f@g@h@@k@j@ "@ n@ o@ p@ q@ r@ s@ @< z7X  )r*z6%0 r*{6%0.6%0 r*  6 %w.*6 .6 Sx6 %Uw.*6 .x6 T9%. V w*$6 99?6 ?9?6 ?$-(({6:0.6:0 '(-/ {660!.660 '-/! !{6?0.6?0 '-/  99:9:$ p(9?% -*((..(.C22$?-*'-X-X'w* 69C9<6O+6;6K06;6L-6>6<,6>6< 9?%-*'a-@-@'aw!* !66+606-6,6  ?-*'A-W-W'Aw* 69C9<6P+66=M066=N-6643,6643   +0-9?6 ,9?6  A G|QH   GL%v $ )$  B$  [$  $?¯?  $??  $??I@  $  $  $   G$ ?¯?  n$ ??  $ ??I@   G 44aw*** X***8 G 5)B~ %2-R9:9:$v!  kHz6% kk555E )Uw)*7)59V 1) w.17*.17v!  G{ZDd*79:H9:$T4ZT[H GC6e$-R'u!  GD > a\{& ~&.\ w& '*& {" ~". w" '*" {# ~#. w# '*# ^{$ ~$.^ w$ '*$  G&B9:9:$ ServerLogo buildeCopyright 2003-2004 by Wormbo b9Jr 6%&6:"66#6?$-/-m_ `bc9da\Aq]VwU<J3IKGLFMDNBOSPQ9:S9:$9:J9:$9:G9:$9:F9:$9:V9:$.jChM9:Q9:$9:I9:$9:D9:$9:B9:$9:U9:$2gEf;us=r>po4n GJMA2EEPjW BL= ServerLogoN]Server Logo 4P]:9Displays a logo on clients that connected to the server.AU,a$69=,69=,69=,69=,Ra 9?9?9? 9? 6$   9?Y 9?9?& Y<a ??9? 9?  =6$6$6$69=, &H9W 9: ף<Hz?$Mshot $$^ $$^ $$^ $$^ $$^ $$^ $$^ $$ ^ .$ $ ^ >$ $ ^ N$ $ ^ [$ $  Gd//============================================================================= // ServerLogoInteraction // Copyright 2003 by Wormbo // // Displays a logo for players connecting. //============================================================================= class ServerLogoInteraction extends Interaction dependson(ServerLogo); //============================================================================= // Imports //============================================================================= #exec obj load file=..\Textures\UT2003Fonts.utx package=UT2003Fonts //============================================================================= // Constants //============================================================================= const STY_Alpha = 5; //============================================================================= // Variables //============================================================================= var ServerLogo ServerLogo; var Material LogoMaterial; var TexRotator RotatingLogoMaterial; var Sound FadeInSound; var Sound DisplaySound; var Sound FadeOutSound; var float StartupTime; var bool bDisplayingLogo; var bool bFadingIn, bDisplaying, bFadingOut; var config ServerLogo.EFadeTransition TestTransition; //============================================================================= // Remove // // Unregisters the interaction. //============================================================================= function Remove() { if ( RotatingLogoMaterial != None ) { RotatingLogoMaterial.Material = None; RotatingLogoMaterial.FallbackMaterial = None; ViewportOwner.Actor.Level.ObjectPool.FreeObject(RotatingLogoMaterial); RotatingLogoMaterial = None; } LogoMaterial = None; ServerLogo = None; Master.RemoveInteraction(Self); } //============================================================================= // NotifyLevelChange // // Removes the interaction on level change. //============================================================================= event NotifyLevelChange() { Remove(); } //============================================================================= // PostRender // // Draws the logo. //============================================================================= event PostRender(Canvas C) { local float AlphaFadeIn; local float AlphaFadeOut; local float X, Y, W, H; if ( ServerLogo == None || ServerLogo.RLogoResources.Logo == "" ) { return; } if ( LogoMaterial == None && ServerLogo.RLogoResources.Logo != "" ) { LogoMaterial = Material(DynamicLoadObject(ServerLogo.RLogoResources.Logo, class'Material')); if ( LogoMaterial == None ) { Remove(); return; } if ( ServerLogo.RLogoTexCoords.W == 0 ) { if ( Texture(LogoMaterial) != None ) ServerLogo.RLogoTexCoords.W = Texture(LogoMaterial).USize; else ServerLogo.RLogoTexCoords.W = LogoMaterial.MaterialUSize(); } if ( ServerLogo.RLogoTexCoords.H == 0 ) { if ( Texture(LogoMaterial) != None ) ServerLogo.RLogoTexCoords.H = Texture(LogoMaterial).VSize; else ServerLogo.RLogoTexCoords.H = LogoMaterial.MaterialVSize(); } if ( ServerLogo.RLogoRotationRate != 0 ) { RotatingLogoMaterial = TexRotator(ViewportOwner.Actor.Level.ObjectPool.AllocateObject(class'TexRotator')); if ( RotatingLogoMaterial != None ) { RotatingLogoMaterial.Material = LogoMaterial; RotatingLogoMaterial.FallbackMaterial = LogoMaterial; RotatingLogoMaterial.TexRotationType = TR_ConstantlyRotating; RotatingLogoMaterial.Rotation.Yaw = ServerLogo.RLogoRotationRate; RotatingLogoMaterial.UOffset = float(ServerLogo.RLogoTexCoords.W) * 0.5; RotatingLogoMaterial.VOffset = float(ServerLogo.RLogoTexCoords.H) * 0.5; RotatingLogoMaterial.TexCoordCount = TCN_2DCoords; RotatingLogoMaterial.TexCoordProjected = False; LogoMaterial = RotatingLogoMaterial; } } if ( ServerLogo.RLogoResources.FadeInSound != "" ) { FadeInSound = Sound(DynamicLoadObject(ServerLogo.RLogoResources.FadeInSound, class'Sound', True)); if ( ServerLogo.RAnnouncerSounds ) FadeInSound = ViewportOwner.Actor.CustomizeAnnouncer(FadeInSound); } if ( ServerLogo.RLogoResources.DisplaySound != "" ) { DisplaySound = Sound(DynamicLoadObject(ServerLogo.RLogoResources.DisplaySound, class'Sound', True)); if ( ServerLogo.RAnnouncerSounds ) DisplaySound = ViewportOwner.Actor.CustomizeAnnouncer(DisplaySound); } if ( ServerLogo.RLogoResources.FadeOutSound != "" ) { FadeOutSound = Sound(DynamicLoadObject(ServerLogo.RLogoResources.FadeOutSound, class'Sound', True)); if ( ServerLogo.RAnnouncerSounds ) FadeOutSound = ViewportOwner.Actor.CustomizeAnnouncer(FadeOutSound); } return; } if ( TestTransition != FT_None ) { TransitionsTest(C); return; } if ( StartupTime == 0 || !bDisplayingLogo ) { StartupTime = ServerLogo.Level.TimeSeconds; //log(ServerLogo.Level.TimeSeconds@"Start rendering server logo"); } AlphaFadeIn = FClamp(ServerLogo.Level.TimeSeconds - StartupTime, 0, ServerLogo.RFadeInDuration) / ServerLogo.RFadeInDuration; AlphaFadeOut = FClamp(ServerLogo.Level.TimeSeconds - (StartupTime + ServerLogo.RFadeInDuration + ServerLogo.RDisplayDuration), 0, ServerLogo.RFadeOutDuration) / ServerLogo.RFadeOutDuration; C.Reset(); C.Style = STY_Alpha; C.DrawColor = ServerLogo.RLogoColor; if ( AlphaFadeIn < 1.0 ) { bDisplayingLogo = True; if ( !bFadingIn ) { bFadingIn = True; if ( FadeInSound != None ) ViewportOwner.Actor.ClientPlaySound(FadeInSound); } C.DrawColor.A = FadeIn(AlphaFadeIn, 0, ServerLogo.RLogoColor.A, ServerLogo.RFadeInAlphaTransition); X = FadeIn(AlphaFadeIn, ServerLogo.RStartPos.X, ServerLogo.RPos.X, ServerLogo.RFadeInPosXTransition); Y = FadeIn(AlphaFadeIn, ServerLogo.RStartPos.Y, ServerLogo.RPos.Y, ServerLogo.RFadeInPosYTransition); W = FadeIn(AlphaFadeIn, ServerLogo.RStartScale.X, ServerLogo.RScale.X, ServerLogo.RFadeInScaleTransition); H = FadeIn(AlphaFadeIn, ServerLogo.RStartScale.Y, ServerLogo.RScale.Y, ServerLogo.RFadeInScaleTransition); } else if ( AlphaFadeOut == 0 ) { bDisplayingLogo = True; if ( !bDisplaying ) { bDisplaying = True; if ( DisplaySound != None ) ViewportOwner.Actor.ClientPlaySound(DisplaySound); } C.DrawColor.A = ServerLogo.RLogoColor.A; X = ServerLogo.RPos.X; Y = ServerLogo.RPos.Y; W = ServerLogo.RScale.X; H = ServerLogo.RScale.Y; } else if ( AlphaFadeOut < 1.0 ) { bDisplayingLogo = True; if ( !bFadingOut ) { bFadingOut = True; if ( FadeOutSound != None ) ViewportOwner.Actor.ClientPlaySound(FadeOutSound); } C.DrawColor.A = FadeOut(AlphaFadeOut, ServerLogo.RLogoColor.A, 0, ServerLogo.RFadeOutAlphaTransition); X = FadeOut(AlphaFadeOut, ServerLogo.RPos.X, ServerLogo.REndPos.X, ServerLogo.RFadeOutPosXTransition); Y = FadeOut(AlphaFadeOut, ServerLogo.RPos.Y, ServerLogo.REndPos.Y, ServerLogo.RFadeOutPosYTransition); W = FadeOut(AlphaFadeOut, ServerLogo.RScale.X, ServerLogo.REndScale.X, ServerLogo.RFadeOutScaleTransition); H = FadeOut(AlphaFadeOut, ServerLogo.RScale.Y, ServerLogo.REndScale.Y, ServerLogo.RFadeOutScaleTransition); } else { //log(ServerLogo.Level.TimeSeconds@"Fade Out Done"); //ViewportOwner.Actor.ClientMessage("Fade Out Done"); Remove(); return; } //log(ServerLogo.Level.TimeSeconds@X@Y@W@H); DrawScreenTexture(C, LogoMaterial, X, Y, W * ServerLogo.RLogoTexCoords.W, H * ServerLogo.RLogoTexCoords.H, ServerLogo.RLogoTexCoords, ServerLogo.RDrawPivot); } //============================================================================= // DrawScreenTexture // // Draws a material at the specified screen location. //============================================================================= function DrawScreenTexture(Canvas C, Material M, float X, float Y, float W, float H, ServerLogo.TTexRegion R, EDrawPivot Pivot) { X *= C.SizeX; Y *= C.SizeY; W *= C.SizeX / 1024.0; H *= C.SizeY / 768.0; switch (Pivot) { case DP_UpperLeft: break; case DP_UpperMiddle: X -= W * 0.5; break; case DP_UpperRight: X -= W; break; case DP_MiddleRight: X -= W; Y -= H * 0.5; break; case DP_LowerRight: X -= W; Y -= H; break; case DP_LowerMiddle: X -= W * 0.5; Y -= H; break; case DP_LowerLeft: Y -= H; break; case DP_MiddleLeft: Y -= H * 0.5; break; case DP_MiddleMiddle: X -= W * 0.5; Y -= H * 0.5; break; } //log("Drawn"@X@Y@W@H); C.SetPos(X, Y); C.DrawTileClipped(M, W, H, R.X, R.Y, R.W, R.H); } //============================================================================= // FadeIn // // Fades a value between a start value and an end value using the specified // fading method to apply. //============================================================================= function float FadeIn(float Alpha, float Start, float End, ServerLogo.EFadeTransition Method) { switch (Method) { Case FT_None: return End; Case FT_Linear: return Lerp(Alpha, Start, End); Case FT_Square: return Lerp(Square(Alpha), Start, End); Case FT_Sqrt: return Lerp(Sqrt(Alpha), Start, End); Case FT_ReverseSquare: return Lerp(1-Square(1-Alpha), Start, End); Case FT_ReverseSqrt: return Lerp(1-Sqrt(1-Alpha), Start, End); Case FT_Sin: return Lerp(0.5 - 0.5 * Cos(Alpha * Pi), Start, End); Case FT_Smooth: return Smerp(Alpha, Start, End); Case FT_SquareSmooth: return Smerp(Square(Alpha), Start, End); Case FT_SqrtSmooth: return Smerp(Sqrt(Alpha), Start, End); Case FT_ReverseSquareSmooth: return Smerp(1-Square(1-Alpha), Start, End); Case FT_ReverseSqrtSmooth: return Smerp(1-Sqrt(1-Alpha), Start, End); Case FT_SinSmooth: return Smerp(0.5 - 0.5 * Cos(Alpha * Pi), Start, End); } } //============================================================================= // FadeOut // // Like FadeIn, but reversed direction. //============================================================================= function float FadeOut(float Alpha, float Start, float End, ServerLogo.EFadeTransition Method) { if ( Method == FT_None ) return Start; else return FadeIn(Alpha, Start, End, Method); } //============================================================================= // TransitionsTest // // Draws patterns of all transitions and saves them as screenshots. //============================================================================= function TransitionsTest(Canvas C) { local float x, y; C.Reset(); C.Style = STY_Alpha; C.DrawColor.R = 255; C.DrawColor.G = 255; C.DrawColor.B = 255; C.DrawColor.A = 255; C.SetPos(0,0); C.DrawTile(Texture'WhiteTexture', C.SizeX, C.SizeY, 0, 0, Texture'WhiteTexture'.USize, Texture'WhiteTexture'.VSize); C.DrawColor.A = 32; for (x = C.OrgX; x < C.SizeX; x += 0.1) { y = FadeIn(x / C.SizeX, C.OrgY, C.SizeY-1, TestTransition); C.SetPos(x,y); C.DrawTile(Texture'BlackTexture', 1, 1, 0, 0, Texture'BlackTexture'.USize, Texture'BlackTexture'.VSize); } C.DrawColor.R = 0; C.DrawColor.G = 0; C.DrawColor.B = 0; C.DrawColor.A = 255; C.Font = Font'FontNeuzeit14'; C.DrawScreenText(string(GetEnum(enum'EFadeTransition', TestTransition)), 0.02, 0.98, DP_LowerLeft); ConsoleCommand("shot"); switch (TestTransition) { case FT_Linear: TestTransition = FT_Square; break; case FT_Square: TestTransition = FT_Sqrt; break; case FT_Sqrt: TestTransition = FT_ReverseSquare; break; case FT_ReverseSquare: TestTransition = FT_ReverseSqrt; break; case FT_ReverseSqrt: TestTransition = FT_Sin; break; case FT_Sin: TestTransition = FT_Smooth; break; case FT_Smooth: TestTransition = FT_SquareSmooth; break; case FT_SquareSmooth: TestTransition = FT_SqrtSmooth; break; case FT_SqrtSmooth: TestTransition = FT_ReverseSquareSmooth; break; case FT_ReverseSquareSmooth: TestTransition = FT_ReverseSqrtSmooth; break; case FT_ReverseSqrtSmooth: TestTransition = FT_SinSmooth; break; case FT_SinSmooth: TestTransition = FT_None; } } //============================================================================= // Default Properties //============================================================================= f//============================================================================= // ServerLogo // Copyright 2003 by Wormbo // // Replicated the information for a logo displayed for players connecting. //============================================================================= class ServerLogo extends ReplicationInfo config placeable hidecategories(Display,Advanced,Sound,Events); //============================================================================= // Enums //============================================================================= enum EFadeTransition { FT_None, FT_Linear, FT_Square, FT_Sqrt, FT_ReverseSquare, FT_ReverseSqrt, FT_Sin, FT_Smooth, FT_SquareSmooth, FT_SqrtSmooth, FT_ReverseSquareSmooth, FT_ReverseSqrtSmooth, FT_SinSmooth }; //============================================================================= // Structs //============================================================================= struct TScreenCoords { var() config float X; var() config float Y; }; struct TTexRegion { var() config int X; var() config int Y; var() config int W; var() config int H; }; // replicated as a struct to make sure everything arrives at the same time struct TRepResources { var string Logo; var string FadeInSound; var string DisplaySound; var string FadeOutSound; }; //============================================================================= // Configuration //============================================================================= var(Logo) config string Logo; var(Logo) config color LogoColor; var(Logo) config TTexRegion LogoTexCoords; var(Logo) config int StartLogoRotationRate; var(Logo) config int LogoRotationRate; var(Logo) config int EndLogoRotationRate; var(LogoPosition) config TScreenCoords StartPos; var(LogoPosition) config TScreenCoords Pos; var(LogoPosition) config TScreenCoords EndPos; var(LogoPosition) config EDrawPivot DrawPivot; var(LogoScale) config TScreenCoords StartScale; var(LogoScale) config TScreenCoords Scale; var(LogoScale) config TScreenCoords EndScale; var(LogoSound) config string FadeInSound; var(LogoSound) config string DisplaySound; var(LogoSound) config string FadeOutSound; var(LogoSound) config bool AnnouncerSounds; var(LogoTransition) config float FadeInDuration; var(LogoTransition) config float DisplayDuration; var(LogoTransition) config float FadeOutDuration; var(LogoTransition) config float InitialDelay; var(LogoTransition) config EFadeTransition FadeInRotationTransition; var(LogoTransition) config EFadeTransition FadeOutRotationTransition; var(LogoTransition) config EFadeTransition FadeInAlphaTransition; var(LogoTransition) config EFadeTransition FadeOutAlphaTransition; var(LogoTransition) config EFadeTransition FadeInScaleTransition; var(LogoTransition) config EFadeTransition FadeOutScaleTransition; var(LogoTransition) config EFadeTransition FadeInPosXTransition; var(LogoTransition) config EFadeTransition FadeInPosYTransition; var(LogoTransition) config EFadeTransition FadeOutPosXTransition; var(LogoTransition) config EFadeTransition FadeOutPosYTransition; //============================================================================= // Variables //============================================================================= var() const editconst string Build; var TRepResources RLogoResources; var color RLogoColor; var TTexRegion RLogoTexCoords; var int RStartLogoRotationRate; var int RLogoRotationRate; var int REndLogoRotationRate; var TScreenCoords RStartPos; var TScreenCoords RPos; var TScreenCoords REndPos; var TScreenCoords RStartScale; var TScreenCoords RScale; var TScreenCoords REndScale; var EDrawPivot RDrawPivot; var float RFadeInDuration; var float RDisplayDuration; var float RFadeOutDuration; var float RInitialDelay; var bool RAnnouncerSounds; var EFadeTransition RFadeInRotationTransition; var EFadeTransition RFadeOutRotationTransition; var EFadeTransition RFadeInScaleTransition; var EFadeTransition RFadeOutScaleTransition; var EFadeTransition RFadeInPosXTransition; var EFadeTransition RFadeInPosYTransition; var EFadeTransition RFadeOutPosXTransition; var EFadeTransition RFadeOutPosYTransition; var EFadeTransition RFadeInAlphaTransition; var EFadeTransition RFadeOutAlphaTransition; var float SpawnTime; var bool bReceivedVars; //============================================================================= // Replication //============================================================================= replication { reliable if ( Role == ROLE_Authority ) RLogoResources, RLogoTexCoords, RDrawPivot, RLogoColor, RAnnouncerSounds, RStartLogoRotationRate, RLogoRotationRate, REndLogoRotationRate, RStartPos, RPos, REndPos, RStartScale, RScale, REndScale, RFadeInRotationTransition, RFadeOutRotationTransition, RFadeInAlphaTransition, RFadeOutAlphaTransition, RFadeInScaleTransition, RFadeOutScaleTransition, RFadeInPosXTransition, RFadeOutPosXTransition, RFadeInPosYTransition, RFadeOutPosYTransition, RFadeInDuration, RDisplayDuration, RFadeOutDuration, RInitialDelay; } //============================================================================= // PostBeginPlay // // Replicate all config variables. //============================================================================= simulated function PostBeginPlay() { Super.PostBeginPlay(); if ( Role == ROLE_Authority ) { log(" "); log("ServerLogo build"@Build); log("Copyright 2003-2004 by Wormbo"); log(" "); SaveConfig(); if ( int(Level.EngineVersion) > 3186 ) UpdatePackageMap(); RLogoResources.Logo = Logo; RLogoResources.FadeInSound = FadeInSound; RLogoResources.DisplaySound = DisplaySound; RLogoResources.FadeOutSound = FadeOutSound; RAnnouncerSounds = AnnouncerSounds; RLogoColor = LogoColor; RLogoTexCoords = LogoTexCoords; RStartLogoRotationRate = StartLogoRotationRate; RLogoRotationRate = LogoRotationRate; REndLogoRotationRate = EndLogoRotationRate; RDrawPivot = DrawPivot; RFadeInRotationTransition = FadeInRotationTransition; RFadeOutRotationTransition = FadeOutRotationTransition; RFadeInScaleTransition = FadeInScaleTransition; RFadeOutScaleTransition = FadeOutScaleTransition; RFadeInPosXTransition = FadeInPosXTransition; RFadeInPosYTransition = FadeInPosYTransition; RFadeOutPosXTransition = FadeOutPosXTransition; RFadeOutPosYTransition = FadeOutPosYTransition; RFadeInAlphaTransition = FadeInAlphaTransition; RFadeOutAlphaTransition = FadeOutAlphaTransition; if ( FadeInAlphaTransition > FT_None || FadeInScaleTransition > FT_None || FadeInPosXTransition > FT_None || FadeInPosYTransition > FT_None || FadeInRotationTransition > FT_None ) RFadeInDuration = FadeInDuration; RDisplayDuration = DisplayDuration; if ( FadeOutAlphaTransition > FT_None || FadeOutScaleTransition > FT_None || FadeOutPosXTransition > FT_None || FadeOutPosYTransition > FT_None || FadeOutRotationTransition > FT_None ) RFadeOutDuration = FadeOutDuration; RInitialDelay = InitialDelay; RStartPos = StartPos; RPos = Pos; REndPos = EndPos; RStartScale = StartScale; RScale = Scale; REndScale = EndScale; } } //============================================================================= // UpdatePackageMap // // Make sure the logo and sound packages are sent to clients. //============================================================================= function UpdatePackageMap() { local int i; AddToPackageMap(); if ( Logo != "" ) { i = InStr(Logo, "."); if ( i > -1 && DynamicLoadObject(Logo, class'Material', true) != None ) AddToPackageMap(Left(Logo, i)); } if ( FadeInSound != "" ) { i = InStr(FadeInSound, "."); if ( i > -1 && DynamicLoadObject(FadeInSound, class'Sound', true) != None ) AddToPackageMap(Left(FadeInSound, i)); } if ( DisplaySound != "" ) { i = InStr(DisplaySound, "."); if ( i > -1 && DynamicLoadObject(DisplaySound, class'Sound', true) != None ) AddToPackageMap(Left(DisplaySound, i)); } if ( FadeOutSound != "" ) { i = InStr(FadeOutSound, "."); if ( i > -1 && DynamicLoadObject(FadeOutSound, class'Sound', true) != None ) AddToPackageMap(Left(FadeOutSound, i)); } } //============================================================================= // PostNetBeginPlay // // Replicate all config variables. //============================================================================= simulated function PostNetBeginPlay() { bReceivedVars = True; Enable('Tick'); } //============================================================================= // Tick // // Initialize the Interaction and load the logo texture. //============================================================================= simulated function Tick(float DeltaTime) { local PlayerController LocalPlayer; local Interaction MyInteraction; if ( !bReceivedVars || Level.NetMode == NM_DedicatedServer ) { Disable('Tick'); return; } else if ( RLogoResources.Logo == "" ) { return; } else if ( SpawnTime == 0.0 ) SpawnTime = Level.TimeSeconds; //log(Level.TimeSeconds@"LevelAction:"@Level.LevelAction); if ( Level.TimeSeconds - SpawnTime < RInitialDelay ) return; LocalPlayer = Level.GetLocalPlayerController(); if ( LocalPlayer != None ) MyInteraction = LocalPlayer.Player.InteractionMaster.AddInteraction(string(class'ServerLogoInteraction'), LocalPlayer.Player); if ( ServerLogoInteraction(MyInteraction) != None ) ServerLogoInteraction(MyInteraction).ServerLogo = Self; //log(Level.TimeSeconds@"Spawned"@MyInteraction@"for"@LocalPlayer); Disable('Tick'); } //============================================================================= // Default Properties //============================================================================= t//============================================================================= // MutServerLogo // Copyright (c) 2004 by Wormbo // // Spawns the ServerLogo actor. //============================================================================= class MutServerLogo extends Mutator; //============================================================================= // PostBeginPlay // // Spawn the ServerLogo actor if it doesn't already exist. //============================================================================= function PostBeginPlay() { local ServerLogo S; LifeSpan = 0.01; // destroy the mutator afterwards foreach DynamicActors(class'ServerLogo', S) return; Spawn(class'ServerLogo'); } //============================================================================= // GetServerDetails // // Don't show in server details. //============================================================================= function GetServerDetails(out GameInfo.ServerResponseLine ServerState); //============================================================================= // Default properties //============================================================================= xo+ #K1`IW$isM1i[