예제 #1
0
        /**
         *  PF_Configstring
         */
        public static void PF_Configstring(int index, string val)
        {
            if (index < 0 || index >= Defines.MAX_CONFIGSTRINGS)
            {
                Com.Error(Defines.ERR_DROP, "configstring: bad index " + index + "\n");
            }

            if (val == null)
            {
                val = "";
            }

            // change the string in sv
            SV_INIT.sv.configstrings[index] = val;

            if (SV_INIT.sv.state != Defines.ss_loading)
            {
                // send the update to
                // everyone
                SZ.Clear(SV_INIT.sv.multicast);
                MSG.WriteChar(SV_INIT.sv.multicast, Defines.svc_configstring);
                MSG.WriteShort(SV_INIT.sv.multicast, index);
                MSG.WriteString(SV_INIT.sv.multicast, val);

                SV_SEND.SV_Multicast(Globals.vec3_origin, Defines.MULTICAST_ALL_R);
            }
        }
예제 #2
0
        /**
         * SV_FindIndex.
         */
        public static int SV_FindIndex(string name, int start, int max, bool create)
        {
            int i;

            if (name == null || name.Length == 0)
            {
                return(0);
            }

            for (i = 1; i < max && SV_INIT.sv.configstrings[start + i] != null; i++)
            {
                if (0 == Lib.strcmp(SV_INIT.sv.configstrings[start + i], name))
                {
                    return(i);
                }
            }

            if (!create)
            {
                return(0);
            }

            if (i == max)
            {
                Com.Error(Defines.ERR_DROP, "*Index: overflow");
            }

            SV_INIT.sv.configstrings[start + i] = name;

            if (SV_INIT.sv.state != Defines.ss_loading)
            {
                // send the update to everyone
                SZ.Clear(SV_INIT.sv.multicast);
                MSG.WriteChar(SV_INIT.sv.multicast, Defines.svc_configstring);
                MSG.WriteShort(SV_INIT.sv.multicast, start + i);
                MSG.WriteString(SV_INIT.sv.multicast, name);
                SV_SEND.SV_Multicast(Globals.vec3_origin, Defines.MULTICAST_ALL_R);
            }

            return(i);
        }