byte[] _data = new byte[3]; // Splat index takes the first 4 bits // Height takes the remaining 4 bits _data[0] = (byte)((_splatIndex << 4) | _height); // Scenery index takes the first 4 bits // Part of type index takes the remaining 4 bits _data[1] = (byte)((_sceneryIndex << 4) | ((_typeIndex & 0xFF00) >> 8)); // Part of type index takes an additional 8 bits _data[2] = (byte)(_typeIndex & 0xFF);