Example #1
0
        private static ResourceClass.GWEDFile.TileMapStruct GetGWEDTileMap(
            FileStream fileStream, byte[] tmBuff, int offset)
        {
            // (1) get the tilemap from the filestream
            FileStruct.TSWedTileMap tsWedTileMap =
                (FileStruct.TSWedTileMap)ReadBuffer <FileStruct.TSWedTileMap>
                    (fileStream, tmBuff, FileStruct.TSWedTileMapSize);

            ResourceClass.GWEDFile.TileMapStruct tileMap =
                ResourceClass.GWEDFile.CreateTileMapStruct(ref tsWedTileMap);

            // (2) get the tileref[] for each tilemap
            long tmpos = fileStream.Position;

            fileStream.Position = (tsWedTileMap.tileRefStart * 2) + offset;

            byte[] usBuff = new byte[tsWedTileMap.tileRefCount * 2];
            fileStream.Read(usBuff, 0, usBuff.Length);
            Buffer.BlockCopy(usBuff, 0, tileMap.tileRef, 0, usBuff.Length);

            // (3) get the alttile for each tilemap
            if (tsWedTileMap.altTileRefStart < 0xFFFF)
            {
                fileStream.Position = (tsWedTileMap.altTileRefStart * 2) + offset;
                usBuff = new byte[2];
                fileStream.Read(usBuff, 0, usBuff.Length);
                tileMap.altTileRef = BitConverter.ToUInt16(usBuff, 0);
            }

            fileStream.Position = tmpos;

            return(tileMap);
        }
Example #2
0
            public static TileMapStruct CreateTileMapStruct(ref FileStruct.TSWedTileMap tsWedTileMap)
            {
                TileMapStruct ss = new TileMapStruct();

                ss.tileRef    = new ushort[tsWedTileMap.tileRefCount];
                ss.altTileRef = 0xFFFF;
                ss.layerMask  = tsWedTileMap.layerMask;
                return(ss);
            }