Ejemplo n.º 1
0
		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();
			}
		}
Ejemplo n.º 2
0
        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();
            }
        }