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); }
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); }