Example #1
0
        /// <summary>
        /// Initialize the File Manager by the given Hellgate path.
        /// </summary>
        /// <param name="hellgatePath">Path to the Hellgate installation.</param>
        /// <param name="clientVersion">Specifies which DataFileMap to use.</param>
        public FileManager(String hellgatePath, ClientVersions clientVersion = ClientVersions.SinglePlayer)
        {
            ClientVersion = clientVersion;
            HellgatePath = hellgatePath;
            Language = Config.StringsLanguage;

            // check if we're actually loading from the resurrection .dat files
            if (ClientVersion == ClientVersions.SinglePlayer)
            {
                String versionDat = Path.Combine(hellgatePath, "Version.dat");
                if (File.Exists(versionDat))
                {
                    ClientVersion = ClientVersions.Resurrection;
                }
            }

            IsVersionTestCenter = (ClientVersion == ClientVersions.TestCenter);
            IsVersionResurrection = (ClientVersion == ClientVersions.Resurrection);
            IsVersionMod = (ClientVersion == ClientVersions.Mod);

            // load file table
            Reload();
        }
Example #2
0
        /// <summary>
        /// Initialize the File Manager by the given Hellgate path.
        /// </summary>
        /// <param name="hellgatePath">Path to the Hellgate installation.</param>
        /// <param name="clientVersion">Specifies which DataFileMap to use.</param>
        public FileManager(String hellgatePath, ClientVersions clientVersion = ClientVersions.SinglePlayer)
        {
            ClientVersion = clientVersion;
            HellgatePath  = hellgatePath;
            Language      = Config.StringsLanguage;

            // check if we're actually loading from the resurrection .dat files
            if (ClientVersion == ClientVersions.SinglePlayer)
            {
                String versionDat = Path.Combine(hellgatePath, "Version.dat");
                if (File.Exists(versionDat))
                {
                    ClientVersion = ClientVersions.Resurrection;
                }
            }

            IsVersionTestCenter   = (ClientVersion == ClientVersions.TestCenter);
            IsVersionResurrection = (ClientVersion == ClientVersions.Resurrection);
            IsVersionMod          = (ClientVersion == ClientVersions.Mod);

            // load file table
            Reload();
        }
Example #3
0
        public static void AdjustPacketSizeByVersion(ClientVersions version)
        {
            if (version >= ClientVersions.CV_500A)
            {
                _packetsTable[0x0B] = 0x07;
                _packetsTable[0x16] = -1;
                _packetsTable[0x31] = -1;
            }
            else
            {
                _packetsTable[0x0B] = 0x10A;
                _packetsTable[0x16] = 0x01;
                _packetsTable[0x31] = 0x01;
            }

            if (version >= ClientVersions.CV_5090)
            {
                _packetsTable[0xE1] = -1;
            }
            else
            {
                _packetsTable[0xE1] = 0x09;
            }

            if (version >= ClientVersions.CV_6013)
            {
                _packetsTable[0xE3] = -1;
                _packetsTable[0xE6] = 0x05;
                _packetsTable[0xE7] = 0x0C;
                _packetsTable[0xE8] = 0x0D;
                _packetsTable[0xE9] = 0x4B;
                _packetsTable[0xEA] = 0x03;
            }
            else
            {
                _packetsTable[0xE3] = 0x4D;
                _packetsTable[0xE6] = -1;
                _packetsTable[0xE7] = -1;
                _packetsTable[0xE8] = -1;
                _packetsTable[0xE9] = -1;
                _packetsTable[0xEA] = -1;
            }

            if (version >= ClientVersions.CV_6017)
            {
                _packetsTable[0x08] = 0x0F;
                _packetsTable[0x25] = 0x15;
            }
            else
            {
                _packetsTable[0x08] = 0x0E;
                _packetsTable[0x25] = 0x14;
            }

            if (version >= ClientVersions.CV_6060)
            {
                _packetsTable[0xEE] = 0x2000;
                _packetsTable[0xEF] = 0x2000;
                _packetsTable[0xF1] = 0x09;
            }
            else
            {
                _packetsTable[0xEE] = -1;
                _packetsTable[0xEF] = 0x15;
                _packetsTable[0xF1] = -1;
            }

            if (version >= ClientVersions.CV_60142)
            {
                _packetsTable[0xB9] = 0x05;
            }
            else
            {
                _packetsTable[0xB9] = 0x03;
            }

            if (version >= ClientVersions.CV_7000)
            {
                _packetsTable[0xEE] = 0x0A; //0x2000;
                _packetsTable[0xEF] = 0x15; //0x2000;
            }
            else
            {
                _packetsTable[0xEE] = -1;
                _packetsTable[0xEF] = 0x15;
            }

            if (version >= ClientVersions.CV_7090)
            {
                _packetsTable[0x24] = 0x09;
                _packetsTable[0x99] = 0x1E;
                _packetsTable[0xBA] = 0x0A;
                _packetsTable[0xF3] = 0x1A;
                _packetsTable[0xF1] = 0x09;
                _packetsTable[0xF2] = 0x19;
            }
            else
            {
                _packetsTable[0x24] = 0x07;
                _packetsTable[0x99] = 0x1A;
                _packetsTable[0xBA] = 0x06;
                _packetsTable[0xF3] = 0x18;
                _packetsTable[0xF1] = -1;
                _packetsTable[0xF2] = -1;
            }

            if (version >= ClientVersions.CV_70180)
            {
                _packetsTable[0x00] = 0x6A;
            }
            else
            {
                _packetsTable[0x00] = 0x68;
            }
        }
Example #4
0
        private ClientVersions GetVersions()
        {
            ClientVersions result = new ClientVersions();

            int.TryParse(Context.QueryString["g"], out result.Game);
            int.TryParse(Context.QueryString["f"], out result.Floor);
            int.TryParse(Context.QueryString["p"], out result.Player);

            return result;
        }