Ejemplo n.º 1
0
        public Tiles128x128(Reader strm)
        {
            BlockList = new Tile128[512];
            byte[]  mappingEntry = new byte[3];
            Tile128 currentBlock = new Tile128();

            for (int c = 0; c < 512; c++)
            {
                for (int y = 0; y < 8; y++)
                {
                    for (int x = 0; x < 8; x++)
                    {
                        strm.Read(mappingEntry, 0, mappingEntry.Length);
                        mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 6 << 6));
                        currentBlock.Mapping[y][x].VisualPlane = (byte)(mappingEntry[0] >> 4);
                        mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 4 << 4));
                        currentBlock.Mapping[y][x].Direction = (byte)(mappingEntry[0] >> 2);
                        mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 2 << 2));
                        currentBlock.Mapping[y][x].Tile16x16      = (ushort)((mappingEntry[0] << 8) + mappingEntry[1]);
                        currentBlock.Mapping[y][x].CollisionFlag0 = (byte)(mappingEntry[2] >> 4);
                        currentBlock.Mapping[y][x].CollisionFlag1 = (byte)(mappingEntry[2] - (mappingEntry[2] >> 4 << 4));
                    }
                }
                BlockList[c] = currentBlock;
                currentBlock = new Tile128();
            }
            strm.Close();
        }
Ejemplo n.º 2
0
 public Tiles128x128()
 {
     for (int i = 0; i < BlockList.Length; i++)
     {
         BlockList[i] = new Tile128();
     }
 }
Ejemplo n.º 3
0
        public til(Reader strm)
        {
            BlockList = new List <Tile128>();
            byte[]  mappingEntry = new byte[3];
            Tile128 currentBlock = new Tile128();
            int     tileIndex    = 0;

            while (strm.Read(mappingEntry, 0, mappingEntry.Length) > 0)
            {
                if (tileIndex >= currentBlock.Mapping.Length)
                {
                    tileIndex = 0;
                    BlockList.Add(currentBlock);
                    currentBlock = new Tile128();
                }
                mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 6 << 6));
                currentBlock.Mapping[tileIndex].VisualPlane = (byte)(mappingEntry[0] >> 4);
                mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 4 << 4));
                currentBlock.Mapping[tileIndex].Orientation = (byte)(mappingEntry[0] >> 2);
                mappingEntry[0] = (byte)(mappingEntry[0] - (mappingEntry[0] >> 2 << 2));
                currentBlock.Mapping[tileIndex].Tile16x16      = (ushort)((mappingEntry[0] << 8) + mappingEntry[1]);
                currentBlock.Mapping[tileIndex].CollisionFlag0 = (byte)(mappingEntry[2] >> 4);
                currentBlock.Mapping[tileIndex].CollisionFlag1 = (byte)(mappingEntry[2] - (mappingEntry[2] >> 4 << 4));
                tileIndex++;
            }
            if (tileIndex >= currentBlock.Mapping.Length)
            {
                tileIndex = 0;
                BlockList.Add(currentBlock);
                currentBlock = new Tile128();
            }
            strm.Close();
        }
Ejemplo n.º 4
0
        public Tile128 Clone(int ChunkID)
        {
            Tile128 Copy = new Tile128();

            for (int i = 0; i < 64; i++)
            {
                Copy.Mapping[i].VisualPlane    = BlockList[ChunkID].Mapping[i].VisualPlane;
                Copy.Mapping[i].Orientation    = BlockList[ChunkID].Mapping[i].Orientation;
                Copy.Mapping[i].Tile16x16      = BlockList[ChunkID].Mapping[i].Tile16x16;
                Copy.Mapping[i].CollisionFlag0 = BlockList[ChunkID].Mapping[i].CollisionFlag0;
                Copy.Mapping[i].CollisionFlag1 = BlockList[ChunkID].Mapping[i].CollisionFlag1;
            }
            return(Copy);
        }
Ejemplo n.º 5
0
        public Tile128 Clone(int ChunkID)
        {
            Tile128 Copy = new Tile128();

            for (int y = 0; y < 8; y++)
            {
                for (int x = 0; x < 8; x++)
                {
                    Copy.Mapping[y][x].VisualPlane    = BlockList[ChunkID].Mapping[y][x].VisualPlane;
                    Copy.Mapping[y][x].Direction      = BlockList[ChunkID].Mapping[y][x].Direction;
                    Copy.Mapping[y][x].Tile16x16      = BlockList[ChunkID].Mapping[y][x].Tile16x16;
                    Copy.Mapping[y][x].CollisionFlag0 = BlockList[ChunkID].Mapping[y][x].CollisionFlag0;
                    Copy.Mapping[y][x].CollisionFlag1 = BlockList[ChunkID].Mapping[y][x].CollisionFlag1;
                }
            }
            return(Copy);
        }