示例#1
0
        public Vector3 normal; // Vector orthogonal to plane (Nx,Ny,Nz)

        #endregion Fields

        #region Methods

        // Distance from (0,0,0) to the plane
        public void Read(System.IO.BinaryReader source)
        {
            normal.X = source.ReadSingle();
            normal.Y = source.ReadSingle();
            normal.Z = source.ReadSingle();
            dist = source.ReadSingle();
        }
示例#2
0
 public MovementFall(System.IO.BinaryReader reader)
 {
     sinAngle = reader.ReadSingle();
     cosAngle = reader.ReadSingle();
     xyspeed = reader.ReadSingle();
     velocity = reader.ReadSingle();
 }
示例#3
0
        public override void Deserialize(System.IO.BinaryReader reader)
        {
            base.Deserialize(reader);

            Type = (RoutingType)reader.ReadInt32();
            AddVector = new Vector2(reader.ReadSingle(), reader.ReadSingle());
        }
示例#4
0
        public Sprite(System.IO.BinaryReader r)
        {
            // 2 Load texture
            //ushort width = r.ReadUInt16();
            //ushort height = r.ReadUInt16();
            //byte[] colorData = r.ReadBytes(width * height * 4);
            //texture = new Texture2D(Game1.graphics.GraphicsDevice, width, height);
            //texture.SetData(colorData);

            // 3 Load position
            position.X = r.ReadSingle();
            position.Y = r.ReadSingle();

            // 4 Load rotation
            rotation = r.ReadSingle();

            // 5 Load textureKey
            byte length = r.ReadByte();
            textureKey = new string(r.ReadChars(length));
            baseTexture = Repainter.GetTextureCopy(Library.textures[textureKey]);
            texture = baseTexture;

            // 6 Load layer
            layer = r.ReadSingle();

            // Set other data
            baseOrigin = new Vector2(baseTexture.Width / 2, baseTexture.Height / 2);
            origin = baseOrigin;
            needsRedraw = true;
            identifier = SaveFileManager.SaveTypeIdentifier.Sprite;
            color = Color.White;
            IsDead = false;

            Console.WriteLine(ToString() + " loaded at position: " + position.ToString());
        }
示例#5
0
文件: Bouncer.cs 项目: angelog/Coral
        public override void Deserialize(System.IO.BinaryReader reader)
        {
            base.Deserialize(reader);

            AddVelocity = new Vector2(reader.ReadSingle(), reader.ReadSingle());

            Mode = (BouncerMode)reader.ReadInt32();
        }
示例#6
0
 public void Load(System.IO.BinaryReader br)
 {
     br.ReadByte();//version
     Bitrate = br.ReadSingle();
     var count = br.ReadInt32();
     Values = new float[count];
     for (int i = 0; i < count; i++)
         Values[i] = br.ReadSingle();
 }
示例#7
0
 public override void Deserialize(System.IO.BinaryReader reader)
 {
     Position.Deserialize(reader);
     fX = reader.ReadSingle();
     fY = reader.ReadSingle();
     fZ = reader.ReadSingle();
     rotZ = reader.ReadSingle();
     rotX = reader.ReadSingle();
 }
示例#8
0
文件: Samples.cs 项目: Kontrast/PBS
 /// <summary>
 /// Loads the specified br.
 /// </summary>
 /// <param name="br">The br.</param>
 public void Load(System.IO.BinaryReader br)
 {
     BitRate = br.ReadSingle();
     var count = br.ReadInt32();
     Values = new float[count];
     for (int i = 0; i < count; i++)
     {
         Values[i] = br.ReadSingle();
     }
 }
示例#9
0
        public int width, height; // source image

        #endregion Fields

        #region Methods

        public void Read(System.IO.BinaryReader source)
        {
            reflectivity.X = source.ReadSingle();
            reflectivity.Y = source.ReadSingle();
            reflectivity.Z = source.ReadSingle();
            nameStringTableID = source.ReadInt32();
            width = source.ReadInt32();
            height = source.ReadInt32();
            view_width = source.ReadInt32();
            view_height = source.ReadInt32();
        }
示例#10
0
        public Vector3 origin; // origin of model, usually (0,0,0)

        #endregion Fields

        #region Methods

        public void Read(System.IO.BinaryReader source)
        {
            bound.Read(source);
            origin.X = source.ReadSingle();
            origin.Y = source.ReadSingle();
            origin.Z = source.ReadSingle();
            node_id0 = source.ReadUInt32();
            node_id1 = source.ReadUInt32();
            node_id2 = source.ReadUInt32();
            node_id3 = source.ReadUInt32();
            numleafs = source.ReadUInt32();
            face_id = source.ReadUInt32();
            face_num = source.ReadUInt32();
        }
示例#11
0
        public override void Deserialize(System.IO.BinaryReader reader)
        {
            base.Deserialize(reader);

            Speed = reader.ReadSingle();
            FirstMarker = reader.ReadString();
        }
示例#12
0
 protected internal override void Deserialize(System.IO.BinaryReader br)
 {
     Subtype = br.ReadByte();
     CarId = br.ReadByte();
     if (Subtype == (byte)ACSProtocol.MessageType.ACSP_CE_COLLISION_WITH_CAR)
         OtherCarId = br.ReadByte();
     RelativeVelocity = br.ReadSingle();
     WorldPosition = readVector3f(br);
     RelativePosition = readVector3f(br);
 }
示例#13
0
        public Vector3 vectorT; // T vector, vertical in texture space

        #endregion Fields

        #region Methods

        public void Read(System.IO.BinaryReader source)
        {
            vectorS.X = source.ReadSingle();
            vectorS.Y = source.ReadSingle();
            vectorS.Z = source.ReadSingle();
            distS = source.ReadSingle();
            vectorT.X = source.ReadSingle();
            vectorT.Y = source.ReadSingle();
            vectorT.Z = source.ReadSingle();
            distT = source.ReadSingle();
            texture_id = source.ReadUInt32();
            animated = source.ReadUInt32();
        }
示例#14
0
        public Vector2 vTextureCoord; // (u, v) texture coordinate

        #endregion Fields

        #region Methods

        public void Read(System.IO.BinaryReader source)
        {
            vPosition.X = source.ReadSingle();
            vPosition.Y = source.ReadSingle();
            vPosition.Z = source.ReadSingle();
            vTextureCoord.X = source.ReadSingle();
            vTextureCoord.Y = source.ReadSingle();
            vLightmapCoord.X = source.ReadSingle();
            vLightmapCoord.Y = source.ReadSingle();
            if (vLightmapCoord.X < 0) vLightmapCoord.X = 0;
            if (vLightmapCoord.X > 1) vLightmapCoord.X = 1;
            if (vLightmapCoord.Y < 0) vLightmapCoord.Y = 0;
            if (vLightmapCoord.Y > 1) vLightmapCoord.Y = 1;
            vNormal.X = source.ReadSingle();
            vNormal.Y = source.ReadSingle();
            vNormal.Z = source.ReadSingle();
            if (vNormal.LengthSquared < 0.9f || vNormal.LengthSquared > 1.1f)
                throw new ApplicationException("Probably wrong format of vertex");
            color = source.ReadBytes(4);
        }
示例#15
0
        public override void Deserialize(System.IO.BinaryReader reader)
        {
            base.Deserialize(reader);

            ParticleTemplate = new Particle();
            ParticleTemplate.Template = true;

            ParticleTemplate.Color = new Color(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte());
            ParticleTemplate.Texture = Texture2D.FromStream(Engine.graphicsDevice, System.IO.File.OpenRead(reader.ReadString()));

            ParticleTemplate.Velocity = new Vector2(reader.ReadSingle(), reader.ReadSingle());

            ParticleTemplate.FadeColor = new Color(reader.ReadByte(), reader.ReadByte(), reader.ReadByte(), reader.ReadByte());
            ParticleTemplate.FadeStartTime = reader.ReadInt32();
            ParticleTemplate.FadeTime = reader.ReadInt32();

            ParticleTemplate.Rotation = reader.ReadInt32();
            ParticleTemplate.RotationSpeed = reader.ReadInt32();

            InitialVelocity = new Vector2(reader.ReadSingle(), reader.ReadSingle());
            InitialRandom = new Vector2(reader.ReadSingle(), reader.ReadSingle());

            Time = reader.ReadInt32();
            Amount = reader.ReadInt32();

            StartEnabled = reader.ReadBoolean();
        }
示例#16
0
        /// <summary>
        /// Creates a scene node from a stream
        /// </summary>
        /// <param name="_Owner"></param>
        /// <param name="_Parent"></param>
        /// <param name="_Reader"></param>
        internal Node( Scene _Owner, Node _Parent, System.IO.BinaryReader _Reader )
        {
            m_Owner = _Owner;

            //			m_NodeType = _Reader.ReadInt32();	// Don't read back the node type as it has already been consumed by the parent
            m_ID = _Reader.ReadInt32();
            m_Owner.RegisterNodeID( this );
            m_Name = _Reader.ReadString();

            m_Parent = _Parent;
            if ( _Parent != null )
                m_Parent.AddChild( this );

            // Read the matrix
            m_Local2Parent.m[0,0] = _Reader.ReadSingle();
            m_Local2Parent.m[0,1] = _Reader.ReadSingle();
            m_Local2Parent.m[0,2] = _Reader.ReadSingle();
            m_Local2Parent.m[0,3] = _Reader.ReadSingle();
            m_Local2Parent.m[1,0] = _Reader.ReadSingle();
            m_Local2Parent.m[1,1] = _Reader.ReadSingle();
            m_Local2Parent.m[1,2] = _Reader.ReadSingle();
            m_Local2Parent.m[1,3] = _Reader.ReadSingle();
            m_Local2Parent.m[2,0] = _Reader.ReadSingle();
            m_Local2Parent.m[2,1] = _Reader.ReadSingle();
            m_Local2Parent.m[2,2] = _Reader.ReadSingle();
            m_Local2Parent.m[2,3] = _Reader.ReadSingle();
            m_Local2Parent.m[3,0] = _Reader.ReadSingle();
            m_Local2Parent.m[3,1] = _Reader.ReadSingle();
            m_Local2Parent.m[3,2] = _Reader.ReadSingle();
            m_Local2Parent.m[3,3] = _Reader.ReadSingle();

            // Read specific data
            LoadSpecific( _Reader );

            // Read children
            int	ChildrenCount = _Reader.ReadInt32();
            for ( int ChildIndex=0; ChildIndex < ChildrenCount; ChildIndex++ )
            {
                NODE_TYPE	ChildType = (NODE_TYPE) _Reader.ReadByte();
                switch ( ChildType )
                {
                case NODE_TYPE.NODE:
                    new Node( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.MESH:
                    new Mesh( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.LIGHT:
                    new Light( _Owner, this, _Reader );
                    break;

                case NODE_TYPE.CAMERA:
                    new Camera( _Owner, this, _Reader );
                    break;
                }
            }
        }
示例#17
0
 public void Read(System.IO.BinaryReader source)
 {
     vectorS.X = source.ReadSingle();
     vectorS.Y = source.ReadSingle();
     vectorS.Z = source.ReadSingle();
     distS = source.ReadSingle();
     vectorT.X = source.ReadSingle();
     vectorT.Y = source.ReadSingle();
     vectorT.Z = source.ReadSingle();
     distT = source.ReadSingle();
     flags = source.ReadUInt32();
     value = source.ReadUInt32();
     name = Encoding.ASCII.GetString(source.ReadBytes(32)).Trim(new char[] { ' ', '\0' });
     next_texinfo = source.ReadUInt32();
 }
示例#18
0
 public void Read(System.IO.BinaryReader source)
 {
     min.X = source.ReadSingle();
     min.Y = source.ReadSingle();
     min.Z = source.ReadSingle();
     max.X = source.ReadSingle();
     max.Y = source.ReadSingle();
     max.Z = source.ReadSingle();
 }
示例#19
0
        public static FullAnimation FullAnimationFromStream(System.IO.BinaryReader stream)
        {
            FullAnimation result = new FullAnimation();
            result.BonesCount = stream.ReadInt32();
            result.length = stream.ReadInt32();

            DecomposedMatrix[][] res;
            int length = stream.ReadInt32();
            res = new DecomposedMatrix[length][];
            for (int i = 0; i < length; i++)
            {
                int length2 = stream.ReadInt32();
                res[i] = new DecomposedMatrix[length2];
                for (int j = 0; j < length2; j++)
                {
                    res[i][j] = new DecomposedMatrix();
                    float W = stream.ReadSingle();
                    float X = stream.ReadSingle();
                    float Y = stream.ReadSingle();
                    float Z = stream.ReadSingle();
                    res[i][j].rotation = new Quaternion(X, Y, Z, W);
                    res[i][j].translation = stream.ReadVector3();
                    res[i][j].scale = stream.ReadVector3();
                }
            }

            result.matrices = res;
            result.animlength = result.matrices.Length;
            return result;
        }
示例#20
0
 public override void Deserialize(System.IO.BinaryReader br)
 {
     arraySize = br.ReadInt32();
     array = new float[arraySize];
     for (int i = 0; i < arraySize; i++)
     {
         array[i] = br.ReadSingle();
     }
 }
示例#21
0
        private void Mod_LoadSubmodels(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br)
        {
            List<SDModel> DModel = new List<SDModel>();
            List<CModel.SMModel> MModel = new List<CModel.SMModel>();

            br.BaseStream.Seek(header.lumps[LUMP_MODELS].fileofs, System.IO.SeekOrigin.Begin);
            while (br.BaseStream.Position < (header.lumps[LUMP_MODELS].fileofs + header.lumps[LUMP_MODELS].filelen))
            {
                SDModel _DModel;

                _DModel.mins = new float[3];
                _DModel.mins[0] = br.ReadSingle();
                _DModel.mins[1] = br.ReadSingle();
                _DModel.mins[2] = br.ReadSingle();

                _DModel.maxs = new float[3];
                _DModel.maxs[0] = br.ReadSingle();
                _DModel.maxs[1] = br.ReadSingle();
                _DModel.maxs[2] = br.ReadSingle();

                _DModel.origin = new float[3];
                _DModel.origin[0] = br.ReadSingle();
                _DModel.origin[1] = br.ReadSingle();
                _DModel.origin[2] = br.ReadSingle();

                _DModel.headnode = br.ReadInt32();

                _DModel.firstface = br.ReadInt32();
                _DModel.numfaces = br.ReadInt32();

                DModel.Add(_DModel);
            }

            for (int i = 0; i < DModel.Count; i++)
            {
                CModel.SMModel _MModel;

                _MModel.bounds.Min.X = DModel[i].mins[0] - 1;
                _MModel.bounds.Min.Y = DModel[i].mins[1] - 1;
                _MModel.bounds.Min.Z = DModel[i].mins[2] - 1;
                _MModel.bounds.Max.X = DModel[i].maxs[0] + 1;
                _MModel.bounds.Max.Y = DModel[i].maxs[1] + 1;
                _MModel.bounds.Max.Z = DModel[i].maxs[2] + 1;

                _MModel.origin.X = DModel[i].origin[0];
                _MModel.origin.Y = DModel[i].origin[1];
                _MModel.origin.Z = DModel[i].origin[2];

                _MModel.radius = RadiusFromBounds(_MModel.bounds);

                _MModel.headnode = DModel[i].headnode;
                _MModel.firstface = DModel[i].firstface;
                _MModel.numfaces = DModel[i].numfaces;

                _MModel.visleafs = 0;

                MModel.Add(_MModel);
            }

            _SModel.numsubmodels = MModel.Count;
            _SModel.submodels = MModel.ToArray();
        }
示例#22
0
        private void Mod_LoadPlanes(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br)
        {
            int bits;
            float[] normal = new float[3];
            List<CShared.SCPlane> CPlane = new List<CShared.SCPlane>();

            br.BaseStream.Seek(header.lumps[LUMP_PLANES].fileofs, System.IO.SeekOrigin.Begin);
            while (br.BaseStream.Position < (header.lumps[LUMP_PLANES].fileofs + header.lumps[LUMP_PLANES].filelen))
            {
                CShared.SCPlane _CPlane;

                normal[0] = 0.0f;
                normal[1] = 0.0f;
                normal[2] = 0.0f;

                bits = 0;

                for (int j = 0; j < 3; j++)
                {
                    normal[j] = br.ReadSingle();

                    if (normal[j] < 0)
                        bits |= 1 << j;
                }

                _CPlane.normal.X = normal[0];
                _CPlane.normal.Y = normal[1];
                _CPlane.normal.Z = normal[2];

                _CPlane.dist = br.ReadSingle();
                _CPlane.type = (byte)br.ReadInt32();
                _CPlane.signbits = (byte)bits;

                _CPlane.pad = new byte[2];

                CPlane.Add(_CPlane);
            }

            _SModel.planes = CPlane.ToArray();
            _SModel.numplanes = _SModel.planes.Length;
        }
示例#23
0
        private void Mod_LoadTexinfo(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br)
        {
            List<CModel.SMTexInfo> MTexInfo = new List<CModel.SMTexInfo>();

            br.BaseStream.Seek(header.lumps[LUMP_TEXINFO].fileofs, System.IO.SeekOrigin.Begin);
            while (br.BaseStream.Position < (header.lumps[LUMP_TEXINFO].fileofs + header.lumps[LUMP_TEXINFO].filelen))
            {
                CModel.SMTexInfo _MTexInfo;
                string texture;
                int next;

                _MTexInfo.vecs = new Microsoft.Xna.Framework.Vector4[2];
                for (int i = 0; i < 2; i++)
                {
                    _MTexInfo.vecs[i].X = br.ReadSingle();
                    _MTexInfo.vecs[i].Y = br.ReadSingle();
                    _MTexInfo.vecs[i].Z = br.ReadSingle();
                    _MTexInfo.vecs[i].W = br.ReadSingle();
                }

                _MTexInfo.flags = (ESurface)br.ReadInt32();
                br.ReadInt32(); // value
                texture = CShared.Com_ToString(br.ReadChars(32));
                texture = "textures/" + texture;

                next = br.ReadInt32();
                if (next > 0)
                    _MTexInfo.next = next;
                else
                    _MTexInfo.next = 0;

                _MTexInfo.image = CProgram.gQ2Game.gCMain.gCImage.FindImage(texture, out _MTexInfo.Width, out _MTexInfo.Height, CImage.EImageType.IT_WALL);

                // TODO
                //out->image = GL_FindImage (name, it_wall);
                //if (!out->image)
                //{
                //    ri.Con_Printf (PRINT_ALL, "Couldn't load %s\n", name);
                //    out->image = r_notexture;
                //}

                _MTexInfo.numframes = 0;

                MTexInfo.Add(_MTexInfo);
            }

            // count animation frames
            for (int i = 0; i < MTexInfo.Count; i++)
            {
                CModel.SMTexInfo _MTexInfo = MTexInfo[i];
                _MTexInfo.numframes = 1;

                for (int step = _MTexInfo.next; step != 0 && step != i; step = MTexInfo[step].next)
                {
                    _MTexInfo.numframes++;
                }

                MTexInfo[i] = _MTexInfo;
            }

            _SModel.numtexinfo = MTexInfo.Count;
            _SModel.texinfo = MTexInfo.ToArray();
        }
示例#24
0
                public void Load( System.IO.BinaryReader _Reader )
                {
                    m_Usage = (USAGE) _Reader.ReadInt32();
                    m_FieldType = (FIELD_TYPE) _Reader.ReadInt32();
                    m_Index = _Reader.ReadInt32();

                    int	ArraySize = _Reader.ReadInt32();
                    switch ( m_FieldType )
                    {
                        case FIELD_TYPE.FLOAT:
                            {
                                float[]	T = new float[ArraySize];
                                m_Content = T;
                                for ( int i=0; i < ArraySize; i++ )
                                {
                                    T[i] = _Reader.ReadSingle();
                                }
                            }
                            break;
                        case FIELD_TYPE.FLOAT2:
                            {
                                Vector2D[]	T = new Vector2D[ArraySize];
                                m_Content = T;
                                for ( int i=0; i < ArraySize; i++ )
                                {
                                    T[i].X = _Reader.ReadSingle();
                                    T[i].Y = _Reader.ReadSingle();
                                }
                            }
                            break;
                        case FIELD_TYPE.FLOAT3:
                            {
                                Vector[]	T = new Vector[ArraySize];
                                m_Content = T;
                                for ( int i=0; i < ArraySize; i++ )
                                {
                                    T[i].X = _Reader.ReadSingle();
                                    T[i].Y = _Reader.ReadSingle();
                                    T[i].Z = _Reader.ReadSingle();
                                }
                            }
                            break;
                        case FIELD_TYPE.FLOAT4:
                            {
                                Vector4D[]	T = new Vector4D[ArraySize];
                                m_Content = T;
                                for ( int i=0; i < ArraySize; i++ )
                                {
                                    T[i].X = _Reader.ReadSingle();
                                    T[i].Y = _Reader.ReadSingle();
                                    T[i].Z = _Reader.ReadSingle();
                                    T[i].W = _Reader.ReadSingle();
                                }
                            }
                            break;
                        case FIELD_TYPE.UINT32:
                            {
                                UInt32[]	T = new UInt32[ArraySize];
                                m_Content = T;
                                for ( int i=0; i < ArraySize; i++ )
                                {
                                    T[i] = _Reader.ReadUInt32();
                                }
                            }
                            break;
                    }
                }
示例#25
0
        protected override void LoadSpecific( System.IO.BinaryReader _Reader )
        {
            // Read bounding-box
            m_BoundingBox.m_Min.X = _Reader.ReadSingle();
            m_BoundingBox.m_Min.Y = _Reader.ReadSingle();
            m_BoundingBox.m_Min.Z = _Reader.ReadSingle();
            m_BoundingBox.m_Max.X = _Reader.ReadSingle();
            m_BoundingBox.m_Max.Y = _Reader.ReadSingle();
            m_BoundingBox.m_Max.Z = _Reader.ReadSingle();

            // Read bounding-sphere
            m_BoundingSphere.Center.X = _Reader.ReadSingle();
            m_BoundingSphere.Center.Y = _Reader.ReadSingle();
            m_BoundingSphere.Center.Z = _Reader.ReadSingle();
            m_BoundingSphere.Radius = _Reader.ReadSingle();

            // Write shadow states
            m_bCastShadow = _Reader.ReadBoolean();
            m_bReceiveShadow = _Reader.ReadBoolean();

            // Read primitives
            m_Primitives.Clear();
            int	PrimitivesCount = _Reader.ReadInt32();
            for ( int PrimitiveIndex=0; PrimitiveIndex < PrimitivesCount; PrimitiveIndex++ )
            {
                Primitive	P = new Primitive( this, _Reader );
                m_Primitives.Add( P );
            }
        }
示例#26
0
文件: Baine.cs 项目: FooKittens/Baine
        public Baine(System.IO.BinaryReader r)
            : base(r)
        {
            // Get Baine-data
            hasDoubleJumped = r.ReadBoolean();
            isOnLadder = r.ReadBoolean();
            health = r.ReadSingle();
            stance = (Stance)r.ReadByte();
            isHidden = r.ReadBoolean();
            LivesLeft = r.ReadInt32();

            // Other
            idle = Library.textures["BaineIdle"];
            idleOrigin = new Vector2(idle.Width / 2, idle.Height / 2);
            standing = Library.textures["BaineStanding"];
            standingOrigin = new Vector2(standing.Width / 2, standing.Height / 2);
            crouching = Library.textures["BaineCrouching"];
            crouchOrigin = new Vector2(crouching.Width / 2, crouching.Height / 2);
            jumping = Library.textures["BaineJumping"];
            jumpingOrigin = new Vector2(jumping.Width / 2, jumping.Height / 2);
            climbing = Library.textures["BaineClimbing"];
            climbingOrigin = new Vector2(climbing.Width / 2, climbing.Height / 2);
            identifier = SaveFileManager.SaveTypeIdentifier.Baine;
            this.layer = Level.BaineLayer;
        }
示例#27
0
 public GATCell(System.IO.BinaryReader br)
 {
     try
     {
         m_TopLeft = br.ReadSingle();
         m_TopRight = br.ReadSingle();
         m_BottomLeft = br.ReadSingle();
         m_BottomRight = br.ReadSingle();
         m_Type = br.ReadInt32();
     }
     catch (Exception ex)
     {
     }
 }
示例#28
0
        public Vector3 vNormal; // The face normal.

        #endregion Fields

        #region Methods

        public void Read(System.IO.BinaryReader source)
        {
            texinfo_id = source.ReadInt32();
            effect = source.ReadInt32();
            type = source.ReadInt32();
            vertexIndex = source.ReadInt32();
            numOfVerts = source.ReadInt32();
            meshVertIndex = source.ReadInt32();
            numMeshVerts = source.ReadInt32();
            lightmapID = source.ReadInt32();
            lMapCornerX = source.ReadInt32();
            lMapCornerY = source.ReadInt32();
            lMapSizeX = source.ReadInt32();
            lMapSizeY = source.ReadInt32();
            lMapPos.X = source.ReadSingle();
            lMapPos.Y = source.ReadSingle();
            lMapPos.Z = source.ReadSingle();
            lMapBitsetsS.X = source.ReadSingle();
            lMapBitsetsS.Y = source.ReadSingle();
            lMapBitsetsS.Z = source.ReadSingle();
            lMapBitsetsT.X = source.ReadSingle();
            lMapBitsetsT.Y = source.ReadSingle();
            lMapBitsetsT.Z = source.ReadSingle();
            vNormal.X = source.ReadSingle();
            vNormal.Y = source.ReadSingle();
            vNormal.Z = source.ReadSingle();
            sizeX = source.ReadInt32();
            sizeY = source.ReadInt32();
        }
示例#29
0
		public static JSONNode Deserialize (System.IO.BinaryReader aReader)
		{
			JSONBinaryTag type = (JSONBinaryTag)aReader.ReadByte ();
			switch (type) {
			case JSONBinaryTag.Array:
			{
				int count = aReader.ReadInt32 ();
				JSONArray tmp = new JSONArray ();
				for (int i = 0; i < count; i++)
					tmp.Add (Deserialize (aReader));
				return tmp;
			}
			case JSONBinaryTag.Class:
			{
				int count = aReader.ReadInt32 ();                
				JSONClass tmp = new JSONClass ();
				for (int i = 0; i < count; i++) {
					string key = aReader.ReadString ();
					var val = Deserialize (aReader);
					tmp.Add (key, val);
				}
				return tmp;
			}
			case JSONBinaryTag.Value:
			{
				return new JSONData (aReader.ReadString ());
			}
			case JSONBinaryTag.IntValue:
			{
				return new JSONData (aReader.ReadInt32 ());
			}
			case JSONBinaryTag.DoubleValue:
			{
				return new JSONData (aReader.ReadDouble ());
			}
			case JSONBinaryTag.BoolValue:
			{
				return new JSONData (aReader.ReadBoolean ());
			}
			case JSONBinaryTag.FloatValue:
			{
				return new JSONData (aReader.ReadSingle ());
			}
				
			default:
			{
				throw new Exception ("Error deserializing JSON. Unknown tag: " + type);
			}
			}
		}
示例#30
0
        private void Mod_LoadVertexes(SDHeader header, ref CModel.SModel _SModel, ref System.IO.BinaryReader br)
        {
            List<CModel.SMVertex> MVertex = new List<CModel.SMVertex>();

            br.BaseStream.Seek(header.lumps[LUMP_VERTEXES].fileofs, System.IO.SeekOrigin.Begin);
            while (br.BaseStream.Position < (header.lumps[LUMP_VERTEXES].fileofs + header.lumps[LUMP_VERTEXES].filelen))
            {
                CModel.SMVertex _MVertex;

                _MVertex.Position.X = br.ReadSingle();
                _MVertex.Position.Y = br.ReadSingle();
                _MVertex.Position.Z = br.ReadSingle();

                MVertex.Add(_MVertex);
            }

            _SModel.numvertexes = MVertex.Count;
            _SModel.vertexes = MVertex.ToArray();
        }