public CollisionObject(CollisionNode parent, ColObject *entry) { _modelName = entry->ModelName; _boneName = entry->BoneName; _unk1 = entry->_unk1; _unk2 = entry->_unk2; _unk3 = entry->_unk3; _flags = (ushort)entry->_flags; _unk5 = entry->_unk5; _unk6 = entry->_unk6; _boneIndex = entry->_boneIndex; _boxMax = entry->_boxMax; _boxMin = entry->_boxMin; int pointCount = entry->_pointCount; int pointOffset = entry->_pointOffset; int planeCount = entry->_planeCount; int planeOffset = entry->_planeIndex; ColPlane *pPlane = &parent.Header->Planes[planeOffset]; //Decode points BVec2 *pPtr = &parent.Header->Points[pointOffset]; for (int i = 0; i < pointCount; i++) { new CollisionLink(this, *pPtr++); } //CollisionPlane plane; for (int i = 0; i < planeCount; i++) { if (pPlane->_point1 != pPlane->_point2) { new CollisionPlane(this, pPlane++, pointOffset); } } }
public override object ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, object value) { return(Bin16.FromString(value?.ToString() ?? "")); }
protected internal override void OnRebuild(VoidPtr address, int length, bool force) { base.OnRebuild(address, length, force); SCN0Camera *header = (SCN0Camera *)address; header->_pad1 = 0; header->_flags2 = (ushort)_flags2; header->_pad2 = 0; header->_camSettings = vec2; Bin16 flags = new Bin16(); flags[0] = Vec1Flags.HasFlag(SCN0CameraVectorFlags.Unknown); if (v1x.Count > 1) { *((bint *)header->_vec1._x.Address) = (int)keyframeAddr - (int)header->_vec1._x.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v1x.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v1x.Count; i++) { *addr++ = v1x[i]; } keyframeAddr += 4 + v1x.Count * 12; flags[1] = false; } else { flags[1] = true; if (v1x.Count == 1) { header->_vec1._x = v1x[0]._value; } else { header->_vec1._x = 0; } } if (v1y.Count > 1) { *((bint *)header->_vec1._y.Address) = (int)keyframeAddr - (int)header->_vec1._y.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v1y.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v1y.Count; i++) { *addr++ = v1y[i]; } keyframeAddr += 4 + v1y.Count * 12; flags[2] = false; } else { flags[2] = true; if (v1y.Count == 1) { header->_vec1._y = v1y[0]._value; } else { header->_vec1._y = 0; } } if (v1z.Count > 1) { *((bint *)header->_vec1._z.Address) = (int)keyframeAddr - (int)header->_vec1._z.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v1z.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v1z.Count; i++) { *addr++ = v1z[i]; } keyframeAddr += 4 + v1z.Count * 12; flags[3] = false; } else { flags[3] = true; if (v1z.Count == 1) { header->_vec1._z = v1z[0]._value; } else { header->_vec1._z = 0; } } flags[4] = Vec4Flags.HasFlag(SCN0CameraVectorFlags.Unknown); if (v4x.Count > 1) { *((bint *)header->_vec4._x.Address) = (int)keyframeAddr - (int)header->_vec4._x.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v4x.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v4x.Count; i++) { *addr++ = v4x[i]; } keyframeAddr += 4 + v4x.Count * 12; flags[5] = false; } else { flags[5] = true; if (v4x.Count == 1) { header->_vec4._x = v4x[0]._value; } else { header->_vec4._x = 0; } } if (v4y.Count > 1) { *((bint *)header->_vec4._y.Address) = (int)keyframeAddr - (int)header->_vec4._y.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v4y.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v4y.Count; i++) { *addr++ = v4y[i]; } keyframeAddr += 4 + v4y.Count * 12; flags[7] = false; } else { flags[7] = true; if (v4y.Count == 1) { header->_vec4._y = v4y[0]._value; } else { header->_vec4._y = 0; } } if (v4z.Count > 1) { *((bint *)header->_vec4._z.Address) = (int)keyframeAddr - (int)header->_vec4._z.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v4z.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v4z.Count; i++) { *addr++ = v4z[i]; } keyframeAddr += 4 + v4z.Count * 12; flags[6] = false; } else { flags[6] = true; if (v4z.Count == 1) { header->_vec4._z = v4z[0]._value; } else { header->_vec4._z = 0; } } flags[8] = Vec3Flags.HasFlag(SCN0CameraVectorFlags.Unknown); if (v3x.Count > 1) { *((bint *)header->_vec3._x.Address) = (int)keyframeAddr - (int)header->_vec3._x.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v3x.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v3x.Count; i++) { *addr++ = v3x[i]; } keyframeAddr += 4 + v3x.Count * 12; flags[9] = false; } else { flags[9] = true; if (v3x.Count == 1) { header->_vec3._x = v3x[0]._value; } else { header->_vec3._x = 0; } } if (v3y.Count > 1) { *((bint *)header->_vec3._y.Address) = (int)keyframeAddr - (int)header->_vec3._y.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v3y.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v3y.Count; i++) { *addr++ = v3y[i]; } keyframeAddr += 4 + v3y.Count * 12; flags[10] = false; } else { flags[10] = true; if (v3y.Count == 1) { header->_vec3._y = v3y[0]._value; } else { header->_vec3._y = 0; } } if (v3z.Count > 1) { *((bint *)header->_vec3._z.Address) = (int)keyframeAddr - (int)header->_vec3._z.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v3z.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v3z.Count; i++) { *addr++ = v3z[i]; } keyframeAddr += 4 + v3z.Count * 12; flags[11] = false; } else { flags[11] = true; if (v3z.Count == 1) { header->_vec3._z = v3z[0]._value; } else { header->_vec3._z = 0; } } flags[12] = Vec2Flags.HasFlag(SCN0CameraVectorFlags.Unknown); if (v2x.Count > 1) { *((bint *)header->_vec2._x.Address) = (int)keyframeAddr - (int)header->_vec2._x.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v2x.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v2x.Count; i++) { *addr++ = v2x[i]; } keyframeAddr += 4 + v2x.Count * 12; flags[13] = false; } else { flags[13] = true; if (v2x.Count == 1) { header->_vec2._x = v2x[0]._value; } else { header->_vec2._x = 0; } } if (v2y.Count > 1) { *((bint *)header->_vec2._y.Address) = (int)keyframeAddr - (int)header->_vec2._y.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v2y.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v2y.Count; i++) { *addr++ = v2y[i]; } keyframeAddr += 4 + v2y.Count * 12; flags[14] = false; } else { flags[14] = true; if (v2y.Count == 1) { header->_vec2._y = v2y[0]._value; } else { header->_vec2._y = 0; } } if (v2z.Count > 1) { *((bint *)header->_vec2._z.Address) = (int)keyframeAddr - (int)header->_vec2._z.Address; ((SCN0KeyframesHeader *)keyframeAddr)->_numFrames = (ushort)v2z.Count; SCN0KeyframeStruct *addr = ((SCN0KeyframesHeader *)keyframeAddr)->Data; for (int i = 0; i < v2z.Count; i++) { *addr++ = v2z[i]; } keyframeAddr += 4 + v2z.Count * 12; flags[15] = false; } else { flags[15] = true; if (v2z.Count == 1) { header->_vec2._z = v2z[0]._value; } else { header->_vec1._z = 0; } } header->_flags1 = flags.data; }
public override bool OnInitialize() { //Read common header base.OnInitialize(); //Initialize defaults _numEntries = new int[] { 0, 0 }; _solidColors = new RGBAPixel[2]; _constants = new bool[] { true, true }; //Read header values _nonSpecLightId = Data->_nonSpecLightId; _fixedFlags = (FixedFlags)(ushort)Data->_fixedFlags; _typeUsageFlags = (ushort)Data->_usageFlags; _distFunc = Data->_distFunc; _spotFunc = Data->_spotFunc; //Read user data (_userEntries = new UserDataCollection()).Read(Data->UserData); //Don't bother reading data if the entry is null if (Name == "<null>") { return(false); } //Read light visibility array if (!_fixedFlags.HasFlag(FixedFlags.EnabledConstant) && !_replaced) { _entryCount = Scene.FrameCount; int numBytes = _entryCount.Align(32) / 8; _data = new byte[numBytes]; Marshal.Copy((IntPtr)Data->VisBitEntries, _data, 0, numBytes); } else { _entryCount = 0; _data = new byte[0]; } //Read light color ReadColors( (uint)_fixedFlags, (uint)FixedFlags.ColorConstant, ref _solidColors[0], ref _lightColor, Scene.FrameCount, Data->_lightColor.Address, ref _constants[0], ref _numEntries[0]); if (!SpecularEnabled) { _constants[1] = (_fixedFlags & FixedFlags.SpecColorConstant) != 0; return(false); } //Read light specular color ReadColors( (uint)_fixedFlags, (uint)FixedFlags.SpecColorConstant, ref _solidColors[1], ref _specColor, Scene.FrameCount, Data->_specularColor.Address, ref _constants[1], ref _numEntries[1]); return(false); }
public void Load() { #region Load Bins BinProduct binProduct = new BinProduct(); binProduct = BaseDAL.GetInventorybyBin(16); Bin16.Text = binProduct.Quantity.ToString(); Bin16Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin16.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(17); Bin17.Text = binProduct.Quantity.ToString(); Bin17Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin17.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(18); Bin18.Text = binProduct.Quantity.ToString(); Bin18Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin18.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(20); Bin20.Text = binProduct.Quantity.ToString(); Bin20Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin20.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(21); Bin21.Text = binProduct.Quantity.ToString(); Bin21Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin21.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(22); Bin22.Text = binProduct.Quantity.ToString(); Bin22Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin22.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(23); Bin23.Text = binProduct.Quantity.ToString(); Bin23Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin23.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(24); Bin24.Text = binProduct.Quantity.ToString(); Bin24Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin24.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(25); Bin25.Text = binProduct.Quantity.ToString(); Bin25Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin25.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(26); Bin26.Text = binProduct.Quantity.ToString(); Bin26Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin26.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(27); Bin27.Text = binProduct.Quantity.ToString(); Bin27Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin27.Foreground = Brushes.Red; } binProduct = BaseDAL.GetInventorybyBin(28); Bin28.Text = binProduct.Quantity.ToString(); Bin28Type.Content = GetProductType(binProduct.ProductID); if (!binProduct.Enabled) { Bin28.Foreground = Brushes.Red; } #endregion Bin16.DelayedFocus(); }
protected override bool OnInitialize() { base.OnInitialize(); _unk1 = Data->_unk1; _unk2 = Data->_unk2; _flags1 = new Bin16(Data->_flags1); _flags2 = new Bin16(Data->_flags2); _unk5 = Data->_unk5; _unk6 = Data->_unk6; _unk7 = Data->_unk7; _unk8 = Data->_unk8; _unk9 = Data->_unk9; _unk10 = Data->_unk10; _unk12 = Data->_unk12; _lighting1 = new List <RGBAPixel>(); _lighting2 = new List <RGBAPixel>(); xEnds = new List <SCN0Keyframe>(); yEnds = new List <SCN0Keyframe>(); zEnds = new List <SCN0Keyframe>(); xStarts = new List <SCN0Keyframe>(); yStarts = new List <SCN0Keyframe>(); zStarts = new List <SCN0Keyframe>(); if (Flags1[3]) { xEnds.Add(new Vector3(0, 0, Data->_vec1._x)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->xEndKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { xEnds.Add(*addr++); } } } if (Flags1[4]) { yEnds.Add(new Vector3(0, 0, Data->_vec1._y)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->yEndKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { yEnds.Add(*addr++); } } } if (Flags1[5]) { zEnds.Add(new Vector3(0, 0, Data->_vec1._z)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->zEndKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { zEnds.Add(*addr++); } } } if (Flags1[6]) { _lighting1.Add(Data->_lighting1); } else { if (Name != "<null>") { RGBAPixel *addr = Data->light1Entries; for (int i = 0; i <= ((SCN0Node)Parent.Parent).FrameCount; i++) { _lighting1.Add(*addr++); } } } if (Flags1[7]) { xStarts.Add(new Vector3(0, 0, Data->_vec2._x)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->xStartKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { xStarts.Add(*addr++); } } } if (Flags1[8]) { yStarts.Add(new Vector3(0, 0, Data->_vec2._y)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->yStartKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { yStarts.Add(*addr++); } } } if (Flags1[9]) { zStarts.Add(new Vector3(0, 0, Data->_vec2._z)); } else { if (Name != "<null>") { SCN0KeyframesHeader *keysHeader = Data->zStartKeyframes; SCN0KeyframeStruct * addr = keysHeader->Data; for (int i = 0; i < keysHeader->_numFrames; i++) { zStarts.Add(*addr++); } } } if (Flags1[14]) { _lighting2.Add(Data->_lighting2); } else { if (Name != "<null>") { RGBAPixel *addr = Data->light2Entries; for (int i = 0; i <= ((SCN0Node)Parent.Parent).FrameCount; i++) { _lighting2.Add(*addr++); } } } return(false); }