Exemplo n.º 1
0
        public DemoDataTablesCommand(Stream input) : base(input)
        {
            Type = DemoCommandType.dem_datatables;

            BitStream stream;

            using (BinaryReader reader = new BinaryReader(input, Encoding.ASCII, true))
            {
                int length = reader.ReadInt32();
                stream = new BitStream(reader.ReadBytes(length));
            }

            while (stream.ReadBool())
            {
                SendTables.Add(ParseSendTable(stream));
            }

            // Link referenced datatables
            foreach (SendTable table in SendTables)
            {
                foreach (SendPropDefinition dtProp in table.Properties)
                {
                    if (dtProp.Type == SendPropType.Datatable)
                    {
                        dtProp.Table       = SendTables.Single(t => t.NetTableName == dtProp.ExcludeName);
                        dtProp.ExcludeName = null;
                    }
                }
            }

            short serverClasses = stream.ReadShort();

            Debug.Assert(serverClasses > 0);

            ServerClasses = new List <ServerClass>(serverClasses);

            for (int i = 0; i < serverClasses; i++)
            {
                short classID = stream.ReadShort();
                if (classID >= serverClasses)
                {
                    throw new DemoParseException("Invalid server class ID");
                }

                ServerClass sc = new ServerClass();
                sc.Classname     = stream.ReadCString();
                sc.DatatableName = stream.ReadCString();
                ServerClasses.Add(sc);
            }

            Debug.Assert((stream.Length - stream.Cursor) < 8);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Reset the local data.
        /// </summary>
        public void Reset()
        {
            CVars.Clear();
            CVars.Add("tv_nochat", "0");
            CVars.Add("joy_autoaimdampen", "0");
            CVars.Add("name", _details.Name);
            CVars.Add("cl_interp_ratio", "2");
            CVars.Add("tv_listen_voice_indices", "0");
            CVars.Add("cl_predict", "0");
            CVars.Add("cl_updaterate", "30");
            CVars.Add("cl_showhelp", "1");
            CVars.Add("steamworks_sessionid_lifetime_client", "0");
            CVars.Add("cl_mouselook", "1");
            CVars.Add("steamworks_sessionid_client", "0");
            CVars.Add("dota_mute_cobroadcasters", "0");
            CVars.Add("voice_loopback", "0");
            CVars.Add("dota_player_initial_skill", "0");
            CVars.Add("cl_lagcompensation", "1");
            CVars.Add("closecaption", "0");
            CVars.Add("cl_language", "english");
            CVars.Add("english", "1");
            CVars.Add("cl_class", "default");
            CVars.Add("snd_voipvolume", "1");
            CVars.Add("snd_musicvolume", "1");
            CVars.Add("cl_cmdrate", "30");
            CVars.Add("net_maxroutable", "1200");
            CVars.Add("cl_team", "default");
            CVars.Add("rate", "80000");
            CVars.Add("cl_predictweapons", "1");
            CVars.Add("cl_interpolate", "1");
            CVars.Add("cl_interp", "0.05");
            CVars.Add("dota_camera_edgemove", "1");
            CVars.Add("snd_gamevolume", "1");
            CVars.Add("cl_spec_mode", "1");

            Classes.Clear();
            ClassesByName.Clear();
            SendTables.Clear();
            FlatTables.Clear();
            Properties.Clear();
            Slots.Clear();
            Strings.Clear();
            StringsIndex.Clear();

            Created.Clear();
            Deleted.Clear();
        }