Example #1
0
        TreeNode CreateColorFormNode(string title, string hint)
        {
            TreeNode ret = new TreeNode();

            ret.Text = title + ": =";

            BindingList <EntityKVP> stuff = new BindingList <EntityKVP>();

            EntityKVP usual = new EntityKVP();

            usual.Key   = "Typ";
            usual.Value = "LN";
            stuff.Add(usual);

            usual = new EntityKVP();

            usual.Key   = "Txt";
            usual.Value = "&";
            stuff.Add(usual);

            usual = new EntityKVP();

            usual.Key   = "Hint";
            usual.Value = hint;
            stuff.Add(usual);

            ret.Tag = stuff;

            return(ret);
        }
Example #2
0
        EntityKVP BBoxForEnt(string entName)
        {
            EntityKVP ret = new EntityKVP();

            ret.mbUsesSingleQuotes = true;
            ret.Key = "bbox";

            if (entName.StartsWith("misc_"))
            {
                ret.Value = SmallGroundBBox;
            }
            else if (entName.StartsWith("info_player_"))
            {
                ret.Value = BipedGroundBBox;
            }
            else if (entName.StartsWith("light_"))
            {
                ret.Value = SmallCenteredBBox;
            }
            else if (entName.StartsWith("weapon_"))
            {
                ret.Value = SmallGroundBBox;
            }
            else if (entName.StartsWith("ammo_"))
            {
                ret.Value = SmallGroundBBox;
            }
            else if (entName.StartsWith("monster_"))
            {
                ret.Value = BipedGroundBBox;
            }
            else if (entName.StartsWith("point_"))
            {
                ret.Value = TinyCenteredBBox;
            }
            else if (entName.StartsWith("key_"))
            {
                ret.Value = TinyGroundBBox;
            }
            else if (entName.StartsWith("item_"))
            {
                ret.Value = SmallGroundBBox;
            }
            else if (entName.StartsWith("target_"))
            {
                ret.Value = TinyCenteredBBox;
            }
            else
            {
                ret.Value = SmallCenteredBBox;
            }
            return(ret);
        }
Example #3
0
        void AddFormForEntity(TreeNode tn, string entName)
        {
            TreeNode forms = FindNode(EntityTree.Nodes[0], FormsFolder);

            TreeNode form = new TreeNode();

            form.Text = entName + ":form =";

            BindingList <EntityKVP> formStuff = new BindingList <EntityKVP>();

            //add the usual help and bbox
            EntityKVP usual = new EntityKVP();

            usual.Key   = "Help";
            usual.Value = "A newly created Entity type.";
            formStuff.Add(usual);

            usual = BBoxForEnt(entName);
            formStuff.Add(usual);

            form.Tag = formStuff;

            foreach (EntityKVP kvp in tn.Tag as BindingList <EntityKVP> )
            {
                if (kvp.Key == "origin")
                {
                    continue;
                }

                if (kvp.Key == "angle")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, AngleHint));
                }
                else if (kvp.Key == "angles")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, AnglesHint));
                }
                else if (kvp.Key == "delay")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, DelayHint));
                }
                else if (kvp.Key == "target")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, TargetHint));
                }
                else if (kvp.Key == "targetname")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, TargetNameHint));
                }
                else if (kvp.Key == "message")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, MessageHint));
                }
                else if (kvp.Key == "meshname")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, MeshNameHint));
                }
                else if (kvp.Key == ";desc")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, kvp.Value));
                }
                else if (kvp.Key == "_color")
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, ColorHint));
                    form.Nodes.Add(CreateColorFormNode(kvp.Key, ColorHint));
                }
                else
                {
                    form.Nodes.Add(CreateBasicFormNode(kvp.Key, "An unknown field of some sort"));
                }
            }

            forms.Nodes.Add(form);
        }
Example #4
0
        BindingList <EntityKVP> ParseGuts(string file, TreeNode node)
        {
            //check for { }
            int open  = file.IndexOf('{');
            int close = file.IndexOf('}');

            file = file.Trim();

            BindingList <EntityKVP> kvps = new BindingList <EntityKVP>();

            while (true)
            {
                int nextNewLine = file.IndexOf('\n');

                string gut = file.Substring(0, nextNewLine);

                int eqPosPreTrim = gut.IndexOf('=');

                gut = gut.Trim();

                int eqPos = gut.IndexOf('=');

                if (eqPos == -1 || eqPosPreTrim == (nextNewLine - 1) || gut.StartsWith("\""))
                {
                    //watch for double lines
                    if (gut.StartsWith("\""))
                    {
                        //trim crap and quotes
                        if (gut.EndsWith("\""))
                        {
                            gut = gut.Substring(1, gut.Length - 2);
                        }
                        else
                        {
                            gut  = gut.Substring(1, gut.Length - 1);
                            gut += "\"";
                        }

                        //tack onto end of previous value
                        kvps[kvps.Count - 1].Value += gut;

                        //advance
                        file = file.Substring(nextNewLine + 1);
                        continue;
                    }
                    return(kvps);
                }

                string key = gut.Substring(0, eqPos - 1);

                key = key.Trim();

                string value = gut.Substring(eqPos + 1);

                value = value.Trim();

                EntityKVP ekvp = new EntityKVP();

                if (value.StartsWith("'") && value.EndsWith("'"))
                {
                    ekvp.mbUsesSingleQuotes = true;
                }

                //trim quotes
                value = value.Substring(1, value.Length - 2);

                ekvp.Key   = key;
                ekvp.Value = value;

                kvps.Add(ekvp);

                file = file.Substring(nextNewLine + 1);
            }
        }
Example #5
0
        void OnAddEntity(object sender, EventArgs e)
        {
            TreeNode tn = new TreeNode();

            TreeNode mom = EntityTree.SelectedNode;

            //grab the category text
            string cat = mom.Text;

            cat = cat.ToLower();

            int catIndex = cat.IndexOf("_");

            if (catIndex == -1)
            {
                cat = "point_new";
            }
            else
            {
                cat  = cat.Substring(0, catIndex);
                cat += "_new";
            }

            tn.Text = cat + ":e =";

            BindingList <EntityKVP> kvps = new BindingList <EntityKVP>();

            if (AutoAddOrigin.Checked)
            {
                EntityKVP kvp = new EntityKVP();

                kvp.Key   = "origin";
                kvp.Value = "0 0 0";

                kvps.Add(kvp);
            }

            if (AutoAddMeshName.Checked)
            {
                EntityKVP kvp = new EntityKVP();

                kvp.Key   = "meshname";
                kvp.Value = "Default.Static";

                kvps.Add(kvp);
            }

            if (AutoAddDesc.Checked)
            {
                EntityKVP kvp = new EntityKVP();

                kvp.Key   = ";desc";
                kvp.Value = "An automatically generated description";

                kvps.Add(kvp);
            }

            if (AutoAddAngles.Checked)
            {
                EntityKVP kvp = new EntityKVP();

                kvp.Key   = "angles";
                kvp.Value = "0 0 0";

                kvps.Add(kvp);
            }

            if (AutoAddPickUp.Checked)
            {
                EntityKVP kvp = new EntityKVP();

                kvp.Key   = "pickup";
                kvp.Value = "true";

                kvps.Add(kvp);
            }

            tn.Tag = kvps;

            if (AutoAddForm.Checked)
            {
                AddFormForEntity(tn, cat);
            }

            mom.Nodes.Add(tn);
        }