public void Read(BinaryReader r) { uint size = r.ReadUInt32(); if (size != 128) { throw new InvalidDataException("Invalid size of EffectPart BeamStar"); } phase1 = r.ReadUInt32(); phase2 = r.ReadUInt32(); complexity = EnumUtils.intToEnum <BeamStarComplexity>(r.ReadInt32()); width = r.ReadSingle(); scaleSpeedXY = r.ReadSingle(); r.BaseStream.Seek(1, SeekOrigin.Current); texName = r.ReadSizedCString(32); r.BaseStream.Seek(3 + 2 * 4, SeekOrigin.Current); startTexVEnd = r.ReadSingle(); rotationSpeed = r.ReadSingle(); texShiftVStart = r.ReadSingle(); r.BaseStream.Seek(1, SeekOrigin.Current); color = IColor.ReadNew(r); name = r.ReadSizedCString(32); r.BaseStream.Seek(3, SeekOrigin.Current); endTexVEnd = r.ReadSingle(); mode = EnumUtils.intToEnum <BeamStarMode>(r.ReadInt32()); renderMode = EnumUtils.intToEnum <EffectPartRenderMode>(r.ReadInt32()); }
public static int GetPlaneCount(this BeamStarComplexity c) => 1 << (int)c;