Áƒ*žE'@ Ø>ā,æ÷ŽZÔŠ‡č]aĘ 'None TriggerLightTick EndEventColorTriggeredLightEngineCoreSystem BeginPlay FunctionObjectPackageClass TextBufferActorFloatPropertyAlphaObjectProperty ScriptText BoolProperty BytePropertyLightBrightnessLightSaturation DeltaTime LightHue SavedTrigger ChangeTime bInitiallyOn bDelayFullOn Directiondiff DrawTypeStartBrightnessEndBrightness StartHueEndHueStartSaturationEndSaturationTempBrt€’ 0¸…ŦĢŠXą…€?…€?v!Uw‹*‹““°……v!“w‹*‹¨-“Į™::=“::Ü=“::CĢ…<™::‰=’::K=““:::‰=’::t™::=“::‰=“::CĢ…<Æ™::ˆ=’::ø=““:::ˆ=’::!™::=“::6=“::CĢ…<s™::‡=’::Ĩ=““:::‡=’::ô„‚ąŠ?% ĩ…?& ´…?%‰ˆ‡‰ˆ‡ – 4‹v!J-…€?Š€?‰ˆ‡…Š€ŋ‰ˆ‡Ž$ P1// ============================================================ // ColorTriggeredLight.ColorTriggeredLight // Created by UClasses - (C) 2000 by meltdown@thirdtower.com // ============================================================ class ColorTriggeredLight expands TriggerLight; var(TriggerLight) byte StartBrightness, EndBrightness; // the two brightnesses the trigger is controlled between // Note: EndBrightness should be bigger than StartBrightness var(TriggerLight) byte StartHue, EndHue; var(TriggerLight) byte StartSaturation, EndSaturation; //----------------------------------------------------------------------------- // Engine functions. // Called at start of gameplay. simulated function BeginPlay() { local byte TempBrt; // Remember initial light type and set new one. Disable( 'Tick' ); if( bInitiallyOn ) // As if EndValues are reached { Alpha = 1.0; Direction = 1.0; LightBrightness=EndBrightness; LightHue=EndHue; LightSaturation=EndSaturation; } else { Alpha = 0.0; Direction = -1.0; LightBrightness=StartBrightness; LightHue=StartHue; LightSaturation=StartSaturation; } DrawType = DT_None; } // Called whenever time passes. function Tick( float DeltaTime ) { local byte Diff; Alpha += Direction * DeltaTime / ChangeTime; if( Alpha > 1.0 ) { Alpha = 1.0; Disable( 'Tick' ); if( SavedTrigger != None ) SavedTrigger.EndEvent(); } else if( Alpha < 0.0 ) { Alpha = 0.0; Disable( 'Tick' ); if( SavedTrigger != None ) SavedTrigger.EndEvent(); } // Alpha is set by the upper code from 0.0 to 1.0, 0.0 is off (Startvalues) 1.0 is on (Endvalues) // Our task is it to interprete these values to our needs. if( !bDelayFullOn ) // Delay reaching of values { // our main stuff, interpreting Alpha to set our values if (EndBrightness >= StartBrightness) Diff = EndBrightness - StartBrightness; else Diff = StartBrightness - EndBrightness; Diff = Alpha*Diff; if (EndBrightness >= StartBrightness) LightBrightness = StartBrightness + Diff; else { Diff = StartBrightness-EndBrightness - Diff; LightBrightness = EndBrightness + Diff; } if (EndHue >= StartHue) Diff = EndHue - StartHue; else Diff = StartHue - EndHue; Diff = Alpha*Diff; if (EndHue >= StartHue) LightHue = StartHue+Diff; else { Diff = StartHue-EndHue - Diff; LightHue = EndHue + Diff; } if (EndSaturation >= StartSaturation) Diff = EndSaturation - StartSaturation; else Diff = StartSaturation - EndSaturation; Diff = Alpha*Diff; if (EndSaturation >= StartSaturation) LightSaturation = StartSaturation + Diff; else { Diff = StartSaturation-EndSaturation - Diff; LightSaturation = EndSaturation + Diff; } } else if( (Direction>0 && Alpha!=1) || Alpha==0 ) { LightBrightness = StartBrightness; LightHue = StartHue; LightSaturation=StartSaturation; } else { LightBrightness = EndBrightness; LightHue = EndHue; LightSaturation=EndSaturation; } } ‚ ˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙ įtšž‚yúĨƒœÔXƒœÔX•  ˙˙˙˙ ˙˙˙˙ ū˙˙˙ ü˙˙˙ũ˙˙˙ũ˙˙˙ũ˙˙˙ū˙˙˙ū˙˙˙ ü˙˙˙ ū˙˙˙ũ˙˙˙ū˙˙˙ ü˙˙˙  ü˙˙˙  ū˙˙˙ū˙˙˙ ü˙˙˙ ü˙˙˙  ū˙˙˙†  \ † $ i †  v † ! C † " P † # ] † % j ”  w † & C Œ’ AP Œ– kQ 4[1|‚gWG