Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Microsoft.VisualBasic;
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.Diagnostics;
- public class D2P
- {
- private static Dictionary<string, object[]> _indexes = new Dictionary<string, object[]>();
- private static Dictionary<string, string> _properties = new Dictionary<string, string>();
- private static string readutf(EndianBinaryReader reader)
- {
- int len = reader.ReadInt16;
- return Encoding.Default.GetString(reader.ReadBytes(len));
- }
- public static void initStream(string URI)
- {
- EndianBinaryReader _loc_6 = default(EndianBinaryReader);
- int _loc_7 = 0;
- int _loc_8 = 0;
- UInt32 _loc_9 = default(UInt32);
- UInt32 _loc_10 = default(UInt32);
- UInt32 _loc_11 = default(UInt32);
- UInt32 _loc_12 = default(UInt32);
- UInt32 _loc_13 = default(UInt32);
- UInt32 _loc_14 = default(UInt32);
- string _loc_15 = null;
- string _loc_16 = null;
- UInt32 _loc_17 = default(UInt32);
- string _loc_18 = null;
- int _loc_19 = 0;
- int _loc_20 = 0;
- int _loc_21 = 0;
- string _loc_2 = URI;
- string _loc_3 = URI;
- while ((_loc_3 != null)) {
- _loc_6 = new EndianBinaryReader(MiscUtil.Conversion.EndianBitConverter.Big, new FileStream(_loc_3, FileMode.Open));
- _loc_7 = _loc_6.ReadByte;
- _loc_8 = _loc_6.ReadByte;
- if (_loc_7 != 2 && _loc_8 != 1)
- return;
- _loc_6.BaseStream.Position = _loc_6.BaseStream.Length - 24;
- _loc_9 = _loc_6.ReadUInt32;
- _loc_10 = _loc_6.ReadUInt32;
- _loc_11 = _loc_6.ReadUInt32;
- _loc_12 = _loc_6.ReadUInt32;
- _loc_13 = _loc_6.ReadUInt32;
- _loc_14 = _loc_6.ReadUInt32;
- _loc_6.BaseStream.Position = _loc_13;
- _loc_3 = null;
- for (int i = 0; i <= _loc_14 - 1; i++) {
- _loc_15 = readutf(_loc_6);
- _loc_16 = readutf(_loc_6);
- _properties.Add(_loc_15 + 1000 * VBMath.Rnd(), _loc_16);
- if (_loc_15 == "link") {
- _loc_21 = _loc_2.LastIndexOf("/");
- if (_loc_21 != -1) {
- _loc_2 = _loc_2.Substring(0, _loc_21) + "/" + _loc_16;
- } else {
- _loc_2 = _loc_16;
- }
- _loc_3 = "maps/" + _loc_2;
- }
- }
- _loc_6.BaseStream.Position = _loc_11;
- _loc_17 = 0;
- while ((_loc_17 < _loc_12)) {
- _loc_18 = readutf(_loc_6);
- _loc_19 = _loc_6.ReadInt32;
- _loc_20 = _loc_6.ReadInt32;
- _indexes.Add(_loc_18.Substring(_loc_18.IndexOf("/") + 1), {
- _loc_19 + _loc_9,
- _loc_20,
- _loc_6
- });
- _loc_17 += 1;
- }
- }
- }
- private static byte[] GetDlmFil(string Index)
- {
- byte[] functionReturnValue = null;
- if (!_indexes.ContainsKey(Index))
- return functionReturnValue;
- EndianBinaryReader reader = _indexes[Index][2];
- int o = _indexes[Index][0];
- int l = _indexes[Index][1];
- reader.BaseStream.Position = o;
- return reader.ReadBytes(h);
- return functionReturnValue;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement