public void ReadData(BinaryReader br, int version) { int mlink = br.ReadInt32(); if (mlink == 0) return; if (mlink != 1) { if (mLevel == null) mMovementLinkREQUIRED = mlink; else mMovementLink = GetMovementLink(mlink); return; } sbyte movementShape = br.ReadSByte(); mType = (MovementType)Math.Abs(movementShape); if (movementShape < 0) { mReverse = true; } int type = (int)mType; if (mReverse) type = (256 - type); mAnchorPoint.X = br.ReadSingle(); mAnchorPoint.Y = br.ReadSingle(); mTimePeriod = br.ReadInt16(); FlagGroup fA = new FlagGroup(br.ReadInt16()); if (fA[0]) mOffset = br.ReadInt16(); if (fA[1]) mRadius1 = br.ReadInt16(); if (fA[2]) mStartPhase = br.ReadSingle(); if (fA[3]) mMoveRotation = MathExt.ToDegrees(br.ReadSingle()); if (fA[4]) mRadius2 = br.ReadInt16(); if (fA[5]) mPause1 = br.ReadInt16(); if (fA[6]) mPause2 = br.ReadInt16(); if (fA[7]) mPhase1 = br.ReadByte(); if (fA[8]) mPhase2 = br.ReadByte(); if (fA[9]) mPostDelayPhase = br.ReadSingle(); if (fA[10]) mMaxAngle = br.ReadSingle(); if (fA[11]) mUnknown8 = br.ReadSingle(); if (fA[14]) mRotation = MathExt.ToDegrees(br.ReadSingle()); if (fA[12]) { mUnknown10 = br.ReadSingle(); mUnknown11 = br.ReadSingle(); //Another movement mBaseMovement = new Movement(mLevel); mBaseMovement.ReadData(br, version); //mBaseMovement = null; } if (fA[13]) { mObjectX = br.ReadSingle(); mObjectY = br.ReadSingle(); } }
public void ReadData(BinaryReader br, int version) { int mlink = br.ReadInt32(); if (mlink == 0) { return; } if (mlink != 1) { if (mLevel == null) { mMovementLinkREQUIRED = mlink; } else { mMovementLink = GetMovementLink(mlink); } return; } sbyte movementShape = br.ReadSByte(); mType = (MovementType)Math.Abs(movementShape); if (movementShape < 0) { mReverse = true; } int type = (int)mType; if (mReverse) { type = (256 - type); } mAnchorPoint.X = br.ReadSingle(); mAnchorPoint.Y = br.ReadSingle(); mTimePeriod = br.ReadInt16(); FlagGroup fA = new FlagGroup(br.ReadInt16()); if (fA[0]) { mOffset = br.ReadInt16(); } if (fA[1]) { mRadius1 = br.ReadInt16(); } if (fA[2]) { mStartPhase = br.ReadSingle(); } if (fA[3]) { mMoveRotation = MathExt.ToDegrees(br.ReadSingle()); } if (fA[4]) { mRadius2 = br.ReadInt16(); } if (fA[5]) { mPause1 = br.ReadInt16(); } if (fA[6]) { mPause2 = br.ReadInt16(); } if (fA[7]) { mPhase1 = br.ReadByte(); } if (fA[8]) { mPhase2 = br.ReadByte(); } if (fA[9]) { mPostDelayPhase = br.ReadSingle(); } if (fA[10]) { mMaxAngle = br.ReadSingle(); } if (fA[11]) { mUnknown8 = br.ReadSingle(); } if (fA[14]) { mRotation = MathExt.ToDegrees(br.ReadSingle()); } if (fA[12]) { mUnknown10 = br.ReadSingle(); mUnknown11 = br.ReadSingle(); //Another movement mBaseMovement = new Movement(mLevel); mBaseMovement.ReadData(br, version); //mBaseMovement = null; } if (fA[13]) { mObjectX = br.ReadSingle(); mObjectY = br.ReadSingle(); } }