Ejemplo n.º 1
0
			public byte[] ExtraZData; // available is presency flags says so
			
			public void Read(TmpFile f) {
				X = f.ReadInt32();				Y = f.ReadInt32();
				_extraDataOffset = f.ReadInt32();
				_zDataOffset = f.ReadInt32();
				_extraZDataOffset = f.ReadInt32();
				ExtraX = f.ReadInt32();
				ExtraY = f.ReadInt32();
				ExtraWidth = f.ReadInt32();
				ExtraHeight = f.ReadInt32();
				_dataPrecencyFlags = (DataPrecencyFlags)f.ReadUInt32();
				Height = f.ReadByte();
				TerrainType = f.ReadByte();
				RampType = f.ReadByte();
				RadarRedLeft = f.ReadSByte();
				RadarGreenLeft = f.ReadSByte(); ;
				RadarBlueLeft = f.ReadSByte(); ;
				RadarRedRight = f.ReadSByte(); ;
				RadarGreenRight = f.ReadSByte(); ;
				RadarBlueRight = f.ReadSByte(); ;
				f.Read(3); // discard padding

				TileData = f.Read(f.BlockWidth * f.BlockHeight / 2);
				if (HasZData)
					ZData = f.Read(f.BlockWidth * f.BlockHeight / 2);

				if (HasExtraData)
					ExtraData = f.Read(Math.Abs(ExtraWidth * ExtraHeight));

				if (HasZData && HasExtraData && 0 < _extraZDataOffset && _extraZDataOffset < f.Length)
					ExtraZData = f.Read(Math.Abs(ExtraWidth * ExtraHeight));
			}
Ejemplo n.º 2
0
            public byte[] ExtraZData;        // available is presency flags says so

            public void Read(TmpFile f)
            {
                X = f.ReadInt32(); Y = f.ReadInt32();
                _extraDataOffset   = f.ReadInt32();
                _zDataOffset       = f.ReadInt32();
                _extraZDataOffset  = f.ReadInt32();
                ExtraX             = f.ReadInt32();
                ExtraY             = f.ReadInt32();
                ExtraWidth         = f.ReadInt32();
                ExtraHeight        = f.ReadInt32();
                _dataPrecencyFlags = (DataPrecencyFlags)f.ReadUInt32();
                Height             = f.ReadByte();
                TerrainType        = f.ReadByte();
                RampType           = f.ReadByte();
                RadarRedLeft       = f.ReadSByte();
                RadarGreenLeft     = f.ReadSByte();;
                RadarBlueLeft      = f.ReadSByte();;
                RadarRedRight      = f.ReadSByte();;
                RadarGreenRight    = f.ReadSByte();;
                RadarBlueRight     = f.ReadSByte();;
                f.Read(3);                 // discard padding

                TileData = f.Read(f.BlockWidth * f.BlockHeight / 2);
                if (HasZData)
                {
                    ZData = f.Read(f.BlockWidth * f.BlockHeight / 2);
                }

                if (HasExtraData)
                {
                    ExtraData = f.Read(Math.Abs(ExtraWidth * ExtraHeight));
                }

                if (HasZData && HasExtraData && 0 < _extraZDataOffset && _extraZDataOffset < f.Length)
                {
                    ExtraZData = f.Read(Math.Abs(ExtraWidth * ExtraHeight));
                }
            }