protected override bool OnInitialize() { base.OnInitialize(); starts = new List <SCN0Keyframe>(); ends = new List <SCN0Keyframe>(); colors = new List <RGBAPixel>(); flags = (SCN0FogFlags)Data->_flags; density = Data->_density; if (Name != "<null>") { if (flags.HasFlag(SCN0FogFlags.FixedStart)) { starts.Add(new Vector3(Data->_start, 0, 0)); } else { SCN0KeyframeStruct *addr = Data->startKeyframes->Data; for (int i = 0; i < Data->startKeyframes->_numFrames; i++) { starts.Add(*addr++); } } if (flags.HasFlag(SCN0FogFlags.FixedEnd)) { ends.Add(new Vector3(Data->_end, 0, 0)); } else { SCN0KeyframeStruct *addr = Data->endKeyframes->Data; for (int i = 0; i < Data->endKeyframes->_numFrames; i++) { ends.Add(*addr++); } } if (flags.HasFlag(SCN0FogFlags.FixedColor)) { colors.Add(Data->_color); } else { RGBAPixel *addr = Data->colorEntries; for (int i = 0; i <= ((SCN0Node)Parent.Parent).FrameCount; i++) { colors.Add(*addr++); } } } return(false); }
public override bool OnInitialize() { base.OnInitialize(); _colors = new List <ARGBPixel>(); _startKeys = new KeyframeArray(FrameCount + 1); _endKeys = new KeyframeArray(FrameCount + 1); flags = (SCN0FogFlags)Data->_flags; type = Data->_type; if (Name != "<null>") { if (flags.HasFlag(SCN0FogFlags.FixedStart)) { _startKeys[0] = Data->_start; } else if (!_replaced) { DecodeFrames(_startKeys, Data->startKeyframes); } if (flags.HasFlag(SCN0FogFlags.FixedEnd)) { _endKeys[0] = Data->_end; } else if (!_replaced) { DecodeFrames(_endKeys, Data->endKeyframes); } if (flags.HasFlag(SCN0FogFlags.FixedColor)) { _constant = true; _numEntries = 0; _solidColor = (ARGBPixel)Data->_color; } else { _constant = false; _numEntries = FrameCount + 1; RGBAPixel *addr = Data->colorEntries; for (int i = 0; i <= FrameCount; i++) { _colors.Add((ARGBPixel)(*addr++)); } } } return(false); }
public override bool OnInitialize() { base.OnInitialize(); _colors = new List<ARGBPixel>(); _startKeys = new KeyframeArray(FrameCount + 1); _endKeys = new KeyframeArray(FrameCount + 1); flags = (SCN0FogFlags)Data->_flags; type = Data->_type; if (Name != "<null>") { if (flags.HasFlag(SCN0FogFlags.FixedStart)) _startKeys[0] = Data->_start; else if (!_replaced) DecodeFrames(_startKeys, Data->startKeyframes); if (flags.HasFlag(SCN0FogFlags.FixedEnd)) _endKeys[0] = Data->_end; else if (!_replaced) DecodeFrames(_endKeys, Data->endKeyframes); if (flags.HasFlag(SCN0FogFlags.FixedColor)) { _constant = true; _numEntries = 0; _solidColor = (ARGBPixel)Data->_color; } else { _constant = false; _numEntries = FrameCount + 1; RGBAPixel* addr = Data->colorEntries; for (int i = 0; i <= FrameCount; i++) _colors.Add((ARGBPixel)(*addr++)); } } return false; }