@Override public void readData(DataInputStream in) throws IOException { x = in.readInt(); z = in.readInt(); biomes = in.readBoolean(); bitmask = in.readShort(); additionalBitmask = in.readShort(); int tempLength = in.readInt(); byte[] compressedChunkData = new byte[tempLength]; in.readFully(compressedChunkData, 0, tempLength); int i = 0; for (int j = 0; j < 16; j++) i += bitmask >> j & 1; int k = 12288 * i; if (biomes) k += 256; chunkData = new byte[k]; Inflater inflater = new Inflater(); inflater.setInput(compressedChunkData, 0, tempLength); try { inflater.inflate(chunkData); } catch (DataFormatException dataformatexception) { chunkData = null; } catch (OutOfMemoryError error) { System.gc(); try { inflater.end(); inflater = new Inflater(); inflater.setInput(compressedChunkData, 0, tempLength); inflater.inflate(chunkData); } catch (DataFormatException dataformatexception) { chunkData = null; } catch (OutOfMemoryError error2) { chunkData = null; } } finally { inflater.end(); } }
public void func_73267_a(DataInputStream p_73267_1_) throws IOException { short word0 = p_73267_1_.readShort(); field_73585_g = p_73267_1_.readInt(); field_73589_c = new int[word0]; field_73586_d = new int[word0]; field_73590_a = new int[word0]; field_73588_b = new int[word0]; field_73584_f = new byte[word0][]; if (field_73591_h.length < field_73585_g) { field_73591_h = new byte[field_73585_g]; } p_73267_1_.readFully(field_73591_h, 0, field_73585_g); byte abyte0[] = new byte[0x30100 * word0]; Inflater inflater = new Inflater(); inflater.setInput(field_73591_h, 0, field_73585_g); try { inflater.inflate(abyte0); } catch (DataFormatException dataformatexception) { throw new IOException("Bad compressed data format"); } finally { inflater.end(); } int i = 0; for (int j = 0; j < word0; j++) { field_73589_c[j] = p_73267_1_.readInt(); field_73586_d[j] = p_73267_1_.readInt(); field_73590_a[j] = p_73267_1_.readShort(); field_73588_b[j] = p_73267_1_.readShort(); int k = 0; for (int l = 0; l < 16; l++) { k += field_73590_a[j] >> l & 1; } int i1 = 2048 * (5 * k) + 256; field_73584_f[j] = new byte[i1]; System.arraycopy(abyte0, i, field_73584_f[j], 0, i1); i += i1; } }
public static void loadAnimations() { System.out.println("Testing"); int i = 0; try { GZIPInputStream gzipDataFile = new GZIPInputStream(new FileInputStream(getDir() + "frames.dat")); DataInputStream dataFile = new DataInputStream(gzipDataFile); GZIPInputStream gzipIndexFile = new GZIPInputStream(new FileInputStream(getDir() + "frames.idx")); DataInputStream indexFile = new DataInputStream(gzipIndexFile); int length = indexFile.readInt(); for (i = 0; i < length; i++) { int id = indexFile.readInt(); int invlength = indexFile.readInt(); byte[] data = new byte[invlength]; dataFile.readFully(data); allFrames[id] = data; } indexFile.close(); dataFile.close(); } catch (Exception e) { System.out.println("Error: " + i); e.printStackTrace(); } try { GZIPInputStream gzipDataFile = new GZIPInputStream(new FileInputStream(getDir() + "skinlist.dat")); DataInputStream dataFile = new DataInputStream(gzipDataFile); GZIPInputStream gzipIndexFile = new GZIPInputStream(new FileInputStream(getDir() + "skinlist.idx")); DataInputStream indexFile = new DataInputStream(gzipIndexFile); int length = indexFile.readInt(); for (i = 0; i < length; i++) { int id = indexFile.readInt(); int invlength = indexFile.readInt(); byte[] data = new byte[invlength]; dataFile.readFully(data); allSkinlist[id] = data; } indexFile.close(); dataFile.close(); } catch (Exception e) { System.out.println("Error: " + i); e.printStackTrace(); } }