public void GenerateChunk(ref byte[] chunkData) { number_of_slice_keys = Read.DWORD(ref chunkData); flags = Read.DWORD(ref chunkData); reserved = Read.DWORD(ref chunkData); name = Read.STRING(ref chunkData); slice_keys = new List <SliceKey>(); for (int i = 0; i < number_of_slice_keys; i++) { SliceKey sliceKey = new SliceKey() { frame_number = Read.DWORD(ref chunkData), slice_x_origin = Read.LONG(ref chunkData), slice_y_origin = Read.LONG(ref chunkData), slice_width = Read.DWORD(ref chunkData), slice_height = Read.DWORD(ref chunkData) }; if (flags == 1) { sliceKey.center_x_position = Read.LONG(ref chunkData); sliceKey.center_y_position = Read.LONG(ref chunkData); sliceKey.center_width = Read.DWORD(ref chunkData); sliceKey.center_height = Read.DWORD(ref chunkData); } else if (flags == 2) { sliceKey.pivot_x_position = Read.LONG(ref chunkData); sliceKey.pivot_y_position = Read.LONG(ref chunkData); } slice_keys.Add(sliceKey); } }