diff --git a/CodeWalker.Core/GameFiles/FileTypes/YndFile.cs b/CodeWalker.Core/GameFiles/FileTypes/YndFile.cs index 6741a48..a765362 100644 --- a/CodeWalker.Core/GameFiles/FileTypes/YndFile.cs +++ b/CodeWalker.Core/GameFiles/FileTypes/YndFile.cs @@ -621,6 +621,28 @@ namespace CodeWalker.GameFiles } } + public enum YndNodeSpeed + { + Slow = 0, + Normal = 1, + Fast = 2, + Faster = 3 + } + + public enum YndNodeSpecialType + { + Normal = 0, + ParkingSpace = 2, + PedNavMeshLink = 10, + PedNodeGuidePlayer = 14, + TrafficLightJunctionStop = 15, + StopSign = 16, + Caution = 17, + PedNavMeshLinkUnk = 18, + RestrictedAccess = 19, + OffRoadJunction = 20 + } + [TypeConverter(typeof(ExpandableObjectConverter))] public class YndNode : BasePathNode { @@ -648,18 +670,99 @@ namespace CodeWalker.GameFiles public YndJunction Junction { get; set; } public bool HasJunction; + // LinkCountUnk Properties + /// + /// Road Speed. Valid values: + /// 0: Slow + /// 1: Normal + /// 2: Fast + /// 3: Faster + /// + public YndNodeSpeed Speed + { + get + { + return (YndNodeSpeed)(this.LinkCountUnk >> 1); + } + set + { + this.LinkCountUnk = (this.LinkCountUnk & 0x1F3) | ((int)value << 1); + } + } + + //// Flag0 Properties + public bool OffRoad { get { return (Flags0.Value & 8) > 0; } } + public bool NoBigVehicles { get { return (Flags0.Value & 32) > 0; } } + public bool CannotGoLeft { get { return (Flags0.Value & 128) > 0; } } + + // Flag1 Properties + public bool SlipRoad { get { return (Flags1 & 1) > 0; } } + public bool IndicateKeepLeft { get { return (Flags1 & 2) > 0; } } + public bool IndicateKeepRight { get { return (Flags1 & 4) > 0; } } + + /// + /// Special type is the last 5 bits in Flags1. I cannot see a flag pattern here. + /// I suspect this to be an enum. Especially since this attribute appears as an int + /// in the XML file + /// + /// Known Special Types: + /// Normal = 0, Most nodes + /// ParkingSpace? = 2, Only 4 on the map as far as I can see. Probably useless. + /// PedCrossRoad = 10, Any pedestrian crossing where vehicles have priority. Traffic light crossings etc. + /// PedNode = 14, + /// TrafficLightStopNode = 15, + /// StopJunctionNode = 16, + /// Caution (Slow Down)? = 17, Appears before barriers, and merges + /// PedCrossRoadWithPriority? = 18, Appears in off-road crossings + /// RestrictedAccess? = 19, Appears in the airport entrance, the airbase, and the road where the house falls down. Probably to stop all nav. + /// OffRoadJunctionNode? = 20 Appears on a junction node with more than one edge where there is an off-road connection. + /// + public YndNodeSpecialType Special { get { return (YndNodeSpecialType)(Flags1.Value >> 3); } } + + // Flag2 Properties + public bool NoGps { get { return (Flags2.Value & 1) > 0; } } + public bool Highway { get { return (Flags2.Value & 64) > 0; } } + /// + /// A node being "disabled" does not mean that a vehicle will not travel through it. + /// + public bool IsDisabledUnk0 { get { return (Flags2.Value & 128) > 0; } } + public bool IsDisabledUnk1 { get { return (Flags2.Value & 16) > 0; } } + + // Flag3 Properties + public bool Tunnel { get { return (Flags3 & 1) > 0; } } + + /// + /// The heuristic value takes up the rest of Flags3. + /// It is a 7 bit integer, ranging from 0 to 127 + /// For each node edge, it seems to add the FLOOR(DISTANCE(vTargetPos, vSourcePos)). + /// This is not 100% accurate with road merges etc (as is the nature of heuristics). + /// You'll see perfect accuracy in single lane roads, like alleys. + /// + public int HeuristicValue { get { return Flags3.Value >> 1; } } + + // Flag4 Properties + /// + /// The first 4 bits of Flag4 is the density of the node. This ranges from 0 to 15. + /// + public int Density { get { return Flags4.Value & 15; } } + + public bool LeftTurnsOnly { get { return (Flags1 & 128) > 0; } } + + + /// + /// If Special is 10, 14 or 18 this is a ped node. + /// public bool IsPedNode { get { - return false;// ((Flags4.Value >> 4) & 7) == 7; + return Special == YndNodeSpecialType.PedNavMeshLink + || Special == YndNodeSpecialType.PedNodeGuidePlayer + || Special == YndNodeSpecialType.PedNavMeshLinkUnk; } } - - - public void Init(YndFile ynd, Node node) { Ynd = ynd; @@ -679,6 +782,21 @@ namespace CodeWalker.GameFiles public Color4 GetColour() { + if (IsDisabledUnk0 || IsDisabledUnk1) + { + return new Color4(1.0f, 0.0f, 0.0f, 1.0f); + } + + if (IsPedNode) + { + return new Color4(1.0f, 0.0f, 1.0f, 1.0f); + } + + if (Tunnel) + { + return new Color4(0.3f, 0.3f, 0.3f, 1.0f); + } + Color4 c = new Color4(LinkCountUnk / 7.0f, Flags0.Value / 255.0f, Flags1.Value / 255.0f, 1.0f); //Color4 c = new Color4(0.0f, 0.0f, 0.0f, 1.0f); @@ -906,6 +1024,11 @@ namespace CodeWalker.GameFiles public bool NegativeOffset { get { return (Flags1.Value >> 7) > 0; } } public float LaneOffset { get { return (OffsetValue / 7.0f) * (NegativeOffset ? -0.5f : 0.5f); } } + public bool GpsBothWays { get { return (Flags0 & 1) > 0; } } + public bool NarrowRoad { get { return (Flags1 & 2) > 0; } } + public bool DontUseForNavigation { get { return (Flags2 & 1) > 0; } } + public bool Shortcut { get { return (Flags2 & 2) > 0; } } + public void Init(YndFile ynd, YndNode node1, YndNode node2, NodeLink link) { diff --git a/CodeWalker/Project/Panels/EditYndNodePanel.Designer.cs b/CodeWalker/Project/Panels/EditYndNodePanel.Designer.cs index a29f106..13287cb 100644 --- a/CodeWalker/Project/Panels/EditYndNodePanel.Designer.cs +++ b/CodeWalker/Project/Panels/EditYndNodePanel.Designer.cs @@ -43,7 +43,6 @@ this.PathNodeFlags48CheckBox = new System.Windows.Forms.CheckBox(); this.PathNodeFlags42UpDown = new System.Windows.Forms.NumericUpDown(); this.label71 = new System.Windows.Forms.Label(); - this.PathNodeFlags41CheckBox = new System.Windows.Forms.CheckBox(); this.PathNodeFlags4UpDown = new System.Windows.Forms.NumericUpDown(); this.PathNodeFlags4Label = new System.Windows.Forms.Label(); this.PathNodeFlags3GroupBox = new System.Windows.Forms.GroupBox(); @@ -216,7 +215,7 @@ this.PathNodeTabControl.Location = new System.Drawing.Point(2, 3); this.PathNodeTabControl.Name = "PathNodeTabControl"; this.PathNodeTabControl.SelectedIndex = 0; - this.PathNodeTabControl.Size = new System.Drawing.Size(519, 447); + this.PathNodeTabControl.Size = new System.Drawing.Size(619, 510); this.PathNodeTabControl.TabIndex = 29; // // PathNodePropertiesTabPage @@ -242,7 +241,7 @@ this.PathNodePropertiesTabPage.Controls.Add(this.label55); this.PathNodePropertiesTabPage.Location = new System.Drawing.Point(4, 22); this.PathNodePropertiesTabPage.Name = "PathNodePropertiesTabPage"; - this.PathNodePropertiesTabPage.Size = new System.Drawing.Size(511, 421); + this.PathNodePropertiesTabPage.Size = new System.Drawing.Size(611, 484); this.PathNodePropertiesTabPage.TabIndex = 2; this.PathNodePropertiesTabPage.Text = "Node Properties"; this.PathNodePropertiesTabPage.UseVisualStyleBackColor = true; @@ -314,12 +313,11 @@ this.PathNodeFlags4GroupBox.Controls.Add(this.PathNodeFlags48CheckBox); this.PathNodeFlags4GroupBox.Controls.Add(this.PathNodeFlags42UpDown); this.PathNodeFlags4GroupBox.Controls.Add(this.label71); - this.PathNodeFlags4GroupBox.Controls.Add(this.PathNodeFlags41CheckBox); this.PathNodeFlags4GroupBox.Controls.Add(this.PathNodeFlags4UpDown); this.PathNodeFlags4GroupBox.Controls.Add(this.PathNodeFlags4Label); - this.PathNodeFlags4GroupBox.Location = new System.Drawing.Point(370, 96); + this.PathNodeFlags4GroupBox.Location = new System.Drawing.Point(381, 96); this.PathNodeFlags4GroupBox.Name = "PathNodeFlags4GroupBox"; - this.PathNodeFlags4GroupBox.Size = new System.Drawing.Size(115, 175); + this.PathNodeFlags4GroupBox.Size = new System.Drawing.Size(175, 175); this.PathNodeFlags4GroupBox.TabIndex = 47; this.PathNodeFlags4GroupBox.TabStop = false; this.PathNodeFlags4GroupBox.Text = "Flags 4"; @@ -329,9 +327,9 @@ this.PathNodeFlags45CheckBox.AutoSize = true; this.PathNodeFlags45CheckBox.Location = new System.Drawing.Point(6, 66); this.PathNodeFlags45CheckBox.Name = "PathNodeFlags45CheckBox"; - this.PathNodeFlags45CheckBox.Size = new System.Drawing.Size(70, 17); + this.PathNodeFlags45CheckBox.Size = new System.Drawing.Size(161, 17); this.PathNodeFlags45CheckBox.TabIndex = 36; - this.PathNodeFlags45CheckBox.Text = "Special 1"; + this.PathNodeFlags45CheckBox.Text = "Dead End Road (Exit) (0x10)"; this.PathNodeFlags45CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags45CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags45CheckBox_CheckedChanged); // @@ -340,9 +338,9 @@ this.PathNodeFlags46CheckBox.AutoSize = true; this.PathNodeFlags46CheckBox.Location = new System.Drawing.Point(6, 87); this.PathNodeFlags46CheckBox.Name = "PathNodeFlags46CheckBox"; - this.PathNodeFlags46CheckBox.Size = new System.Drawing.Size(70, 17); + this.PathNodeFlags46CheckBox.Size = new System.Drawing.Size(169, 17); this.PathNodeFlags46CheckBox.TabIndex = 37; - this.PathNodeFlags46CheckBox.Text = "Special 2"; + this.PathNodeFlags46CheckBox.Text = "Dead End Road (Enter) (0x20)"; this.PathNodeFlags46CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags46CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags46CheckBox_CheckedChanged); // @@ -351,9 +349,9 @@ this.PathNodeFlags47CheckBox.AutoSize = true; this.PathNodeFlags47CheckBox.Location = new System.Drawing.Point(6, 108); this.PathNodeFlags47CheckBox.Name = "PathNodeFlags47CheckBox"; - this.PathNodeFlags47CheckBox.Size = new System.Drawing.Size(70, 17); + this.PathNodeFlags47CheckBox.Size = new System.Drawing.Size(154, 17); this.PathNodeFlags47CheckBox.TabIndex = 38; - this.PathNodeFlags47CheckBox.Text = "Special 3"; + this.PathNodeFlags47CheckBox.Text = "Leads To Dead End (0x40)"; this.PathNodeFlags47CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags47CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags47CheckBox_CheckedChanged); // @@ -362,17 +360,17 @@ this.PathNodeFlags48CheckBox.AutoSize = true; this.PathNodeFlags48CheckBox.Location = new System.Drawing.Point(6, 129); this.PathNodeFlags48CheckBox.Name = "PathNodeFlags48CheckBox"; - this.PathNodeFlags48CheckBox.Size = new System.Drawing.Size(96, 17); + this.PathNodeFlags48CheckBox.Size = new System.Drawing.Size(98, 17); this.PathNodeFlags48CheckBox.TabIndex = 39; - this.PathNodeFlags48CheckBox.Text = "Junction unk 6"; + this.PathNodeFlags48CheckBox.Text = "Left Turns Only"; this.PathNodeFlags48CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags48CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags48CheckBox_CheckedChanged); // // PathNodeFlags42UpDown // - this.PathNodeFlags42UpDown.Location = new System.Drawing.Point(41, 150); + this.PathNodeFlags42UpDown.Location = new System.Drawing.Point(52, 45); this.PathNodeFlags42UpDown.Maximum = new decimal(new int[] { - 7, + 15, 0, 0, 0}); @@ -384,22 +382,12 @@ // label71 // this.label71.AutoSize = true; - this.label71.Location = new System.Drawing.Point(4, 152); + this.label71.Location = new System.Drawing.Point(6, 46); this.label71.Name = "label71"; - this.label71.Size = new System.Drawing.Size(30, 13); + this.label71.Size = new System.Drawing.Size(45, 13); this.label71.TabIndex = 40; - this.label71.Text = "Unk:"; - // - // PathNodeFlags41CheckBox - // - this.PathNodeFlags41CheckBox.AutoSize = true; - this.PathNodeFlags41CheckBox.Location = new System.Drawing.Point(6, 45); - this.PathNodeFlags41CheckBox.Name = "PathNodeFlags41CheckBox"; - this.PathNodeFlags41CheckBox.Size = new System.Drawing.Size(79, 17); - this.PathNodeFlags41CheckBox.TabIndex = 35; - this.PathNodeFlags41CheckBox.Text = "Slow unk 4"; - this.PathNodeFlags41CheckBox.UseVisualStyleBackColor = true; - this.PathNodeFlags41CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags41CheckBox_CheckedChanged); + this.label71.Text = "Density:"; + this.label71.Click += new System.EventHandler(this.label71_Click); // // PathNodeFlags4UpDown // @@ -504,7 +492,7 @@ this.PathNodeFlags2GroupBox.Controls.Add(this.PathNodeFlags25CheckBox); this.PathNodeFlags2GroupBox.Controls.Add(this.PathNodeFlags2UpDown); this.PathNodeFlags2GroupBox.Controls.Add(this.PathNodeFlags2Label); - this.PathNodeFlags2GroupBox.Location = new System.Drawing.Point(249, 96); + this.PathNodeFlags2GroupBox.Location = new System.Drawing.Point(260, 96); this.PathNodeFlags2GroupBox.Name = "PathNodeFlags2GroupBox"; this.PathNodeFlags2GroupBox.Size = new System.Drawing.Size(115, 216); this.PathNodeFlags2GroupBox.TabIndex = 45; @@ -516,9 +504,9 @@ this.PathNodeFlags21CheckBox.AutoSize = true; this.PathNodeFlags21CheckBox.Location = new System.Drawing.Point(6, 45); this.PathNodeFlags21CheckBox.Name = "PathNodeFlags21CheckBox"; - this.PathNodeFlags21CheckBox.Size = new System.Drawing.Size(79, 17); + this.PathNodeFlags21CheckBox.Size = new System.Drawing.Size(65, 17); this.PathNodeFlags21CheckBox.TabIndex = 35; - this.PathNodeFlags21CheckBox.Text = "Slow unk 2"; + this.PathNodeFlags21CheckBox.Text = "No GPS"; this.PathNodeFlags21CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags21CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags21CheckBox_CheckedChanged); // @@ -527,9 +515,9 @@ this.PathNodeFlags28CheckBox.AutoSize = true; this.PathNodeFlags28CheckBox.Location = new System.Drawing.Point(6, 192); this.PathNodeFlags28CheckBox.Name = "PathNodeFlags28CheckBox"; - this.PathNodeFlags28CheckBox.Size = new System.Drawing.Size(81, 17); + this.PathNodeFlags28CheckBox.Size = new System.Drawing.Size(107, 17); this.PathNodeFlags28CheckBox.TabIndex = 42; - this.PathNodeFlags28CheckBox.Text = "Back road?"; + this.PathNodeFlags28CheckBox.Text = "Is Disabled Unk0"; this.PathNodeFlags28CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags28CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags28CheckBox_CheckedChanged); // @@ -549,9 +537,9 @@ this.PathNodeFlags27CheckBox.AutoSize = true; this.PathNodeFlags27CheckBox.Location = new System.Drawing.Point(6, 171); this.PathNodeFlags27CheckBox.Name = "PathNodeFlags27CheckBox"; - this.PathNodeFlags27CheckBox.Size = new System.Drawing.Size(66, 17); + this.PathNodeFlags27CheckBox.Size = new System.Drawing.Size(67, 17); this.PathNodeFlags27CheckBox.TabIndex = 41; - this.PathNodeFlags27CheckBox.Text = "Freeway"; + this.PathNodeFlags27CheckBox.Text = "Highway"; this.PathNodeFlags27CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags27CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags27CheckBox_CheckedChanged); // @@ -593,9 +581,9 @@ this.PathNodeFlags25CheckBox.AutoSize = true; this.PathNodeFlags25CheckBox.Location = new System.Drawing.Point(6, 129); this.PathNodeFlags25CheckBox.Name = "PathNodeFlags25CheckBox"; - this.PathNodeFlags25CheckBox.Size = new System.Drawing.Size(79, 17); + this.PathNodeFlags25CheckBox.Size = new System.Drawing.Size(107, 17); this.PathNodeFlags25CheckBox.TabIndex = 39; - this.PathNodeFlags25CheckBox.Text = "Slow unk 3"; + this.PathNodeFlags25CheckBox.Text = "Is Disabled Unk1"; this.PathNodeFlags25CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags25CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags25CheckBox_CheckedChanged); // @@ -635,7 +623,7 @@ this.PathNodeFlags1GroupBox.Controls.Add(this.PathNodeFlags1Label); this.PathNodeFlags1GroupBox.Location = new System.Drawing.Point(128, 96); this.PathNodeFlags1GroupBox.Name = "PathNodeFlags1GroupBox"; - this.PathNodeFlags1GroupBox.Size = new System.Drawing.Size(115, 216); + this.PathNodeFlags1GroupBox.Size = new System.Drawing.Size(126, 216); this.PathNodeFlags1GroupBox.TabIndex = 44; this.PathNodeFlags1GroupBox.TabStop = false; this.PathNodeFlags1GroupBox.Text = "Flags 1"; @@ -645,9 +633,9 @@ this.PathNodeFlags11CheckBox.AutoSize = true; this.PathNodeFlags11CheckBox.Location = new System.Drawing.Point(6, 45); this.PathNodeFlags11CheckBox.Name = "PathNodeFlags11CheckBox"; - this.PathNodeFlags11CheckBox.Size = new System.Drawing.Size(82, 17); + this.PathNodeFlags11CheckBox.Size = new System.Drawing.Size(72, 17); this.PathNodeFlags11CheckBox.TabIndex = 35; - this.PathNodeFlags11CheckBox.Text = "L turn lane?"; + this.PathNodeFlags11CheckBox.Text = "Slip Road"; this.PathNodeFlags11CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags11CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags11CheckBox_CheckedChanged); // @@ -667,9 +655,9 @@ this.PathNodeFlags12CheckBox.AutoSize = true; this.PathNodeFlags12CheckBox.Location = new System.Drawing.Point(6, 66); this.PathNodeFlags12CheckBox.Name = "PathNodeFlags12CheckBox"; - this.PathNodeFlags12CheckBox.Size = new System.Drawing.Size(98, 17); + this.PathNodeFlags12CheckBox.Size = new System.Drawing.Size(113, 17); this.PathNodeFlags12CheckBox.TabIndex = 36; - this.PathNodeFlags12CheckBox.Text = "L turn no return"; + this.PathNodeFlags12CheckBox.Text = "Indicate Keep Left"; this.PathNodeFlags12CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags12CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags12CheckBox_CheckedChanged); // @@ -689,9 +677,9 @@ this.PathNodeFlags13CheckBox.AutoSize = true; this.PathNodeFlags13CheckBox.Location = new System.Drawing.Point(6, 87); this.PathNodeFlags13CheckBox.Name = "PathNodeFlags13CheckBox"; - this.PathNodeFlags13CheckBox.Size = new System.Drawing.Size(100, 17); + this.PathNodeFlags13CheckBox.Size = new System.Drawing.Size(120, 17); this.PathNodeFlags13CheckBox.TabIndex = 37; - this.PathNodeFlags13CheckBox.Text = "R turn no return"; + this.PathNodeFlags13CheckBox.Text = "Indicate Keep Right"; this.PathNodeFlags13CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags13CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags13CheckBox_CheckedChanged); // @@ -785,9 +773,9 @@ this.PathNodeFlags08CheckBox.AutoSize = true; this.PathNodeFlags08CheckBox.Location = new System.Drawing.Point(6, 192); this.PathNodeFlags08CheckBox.Name = "PathNodeFlags08CheckBox"; - this.PathNodeFlags08CheckBox.Size = new System.Drawing.Size(96, 17); + this.PathNodeFlags08CheckBox.Size = new System.Drawing.Size(98, 17); this.PathNodeFlags08CheckBox.TabIndex = 42; - this.PathNodeFlags08CheckBox.Text = "Junction unk 2"; + this.PathNodeFlags08CheckBox.Text = "Cannot Go Left"; this.PathNodeFlags08CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags08CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags08CheckBox_CheckedChanged); // @@ -829,9 +817,9 @@ this.PathNodeFlags06CheckBox.AutoSize = true; this.PathNodeFlags06CheckBox.Location = new System.Drawing.Point(6, 150); this.PathNodeFlags06CheckBox.Name = "PathNodeFlags06CheckBox"; - this.PathNodeFlags06CheckBox.Size = new System.Drawing.Size(79, 17); + this.PathNodeFlags06CheckBox.Size = new System.Drawing.Size(101, 17); this.PathNodeFlags06CheckBox.TabIndex = 40; - this.PathNodeFlags06CheckBox.Text = "Slow unk 1"; + this.PathNodeFlags06CheckBox.Text = "No Big Vehicles"; this.PathNodeFlags06CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags06CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags06CheckBox_CheckedChanged); // @@ -840,9 +828,9 @@ this.PathNodeFlags04CheckBox.AutoSize = true; this.PathNodeFlags04CheckBox.Location = new System.Drawing.Point(6, 108); this.PathNodeFlags04CheckBox.Name = "PathNodeFlags04CheckBox"; - this.PathNodeFlags04CheckBox.Size = new System.Drawing.Size(87, 17); + this.PathNodeFlags04CheckBox.Size = new System.Drawing.Size(69, 17); this.PathNodeFlags04CheckBox.TabIndex = 38; - this.PathNodeFlags04CheckBox.Text = "Gravel road?"; + this.PathNodeFlags04CheckBox.Text = "Off Road"; this.PathNodeFlags04CheckBox.UseVisualStyleBackColor = true; this.PathNodeFlags04CheckBox.CheckedChanged += new System.EventHandler(this.PathNodeFlags04CheckBox_CheckedChanged); // @@ -883,7 +871,7 @@ // this.PathNodeDeleteButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.PathNodeDeleteButton.Enabled = false; - this.PathNodeDeleteButton.Location = new System.Drawing.Point(418, 36); + this.PathNodeDeleteButton.Location = new System.Drawing.Point(518, 36); this.PathNodeDeleteButton.Name = "PathNodeDeleteButton"; this.PathNodeDeleteButton.Size = new System.Drawing.Size(90, 23); this.PathNodeDeleteButton.TabIndex = 12; @@ -908,7 +896,7 @@ // this.PathNodeAddToProjectButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); this.PathNodeAddToProjectButton.Enabled = false; - this.PathNodeAddToProjectButton.Location = new System.Drawing.Point(322, 36); + this.PathNodeAddToProjectButton.Location = new System.Drawing.Point(422, 36); this.PathNodeAddToProjectButton.Name = "PathNodeAddToProjectButton"; this.PathNodeAddToProjectButton.Size = new System.Drawing.Size(90, 23); this.PathNodeAddToProjectButton.TabIndex = 11; @@ -1015,7 +1003,7 @@ this.PathNodeLinksTabPage.Location = new System.Drawing.Point(4, 22); this.PathNodeLinksTabPage.Name = "PathNodeLinksTabPage"; this.PathNodeLinksTabPage.Padding = new System.Windows.Forms.Padding(3); - this.PathNodeLinksTabPage.Size = new System.Drawing.Size(511, 421); + this.PathNodeLinksTabPage.Size = new System.Drawing.Size(611, 484); this.PathNodeLinksTabPage.TabIndex = 0; this.PathNodeLinksTabPage.Text = "Path Links"; this.PathNodeLinksTabPage.UseVisualStyleBackColor = true; @@ -1037,14 +1025,14 @@ // splitContainer2.Panel2 // this.splitContainer2.Panel2.Controls.Add(this.PathNodeLinkPanel); - this.splitContainer2.Size = new System.Drawing.Size(505, 415); + this.splitContainer2.Size = new System.Drawing.Size(605, 478); this.splitContainer2.SplitterDistance = 168; this.splitContainer2.TabIndex = 0; // // PathNodeRemoveLinkButton // this.PathNodeRemoveLinkButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.PathNodeRemoveLinkButton.Location = new System.Drawing.Point(85, 389); + this.PathNodeRemoveLinkButton.Location = new System.Drawing.Point(85, 452); this.PathNodeRemoveLinkButton.Name = "PathNodeRemoveLinkButton"; this.PathNodeRemoveLinkButton.Size = new System.Drawing.Size(76, 23); this.PathNodeRemoveLinkButton.TabIndex = 2; @@ -1055,7 +1043,7 @@ // PathNodeAddLinkButton // this.PathNodeAddLinkButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.PathNodeAddLinkButton.Location = new System.Drawing.Point(3, 389); + this.PathNodeAddLinkButton.Location = new System.Drawing.Point(3, 452); this.PathNodeAddLinkButton.Name = "PathNodeAddLinkButton"; this.PathNodeAddLinkButton.Size = new System.Drawing.Size(76, 23); this.PathNodeAddLinkButton.TabIndex = 1; @@ -1071,7 +1059,7 @@ this.PathNodeLinksListBox.FormattingEnabled = true; this.PathNodeLinksListBox.Location = new System.Drawing.Point(0, 0); this.PathNodeLinksListBox.Name = "PathNodeLinksListBox"; - this.PathNodeLinksListBox.Size = new System.Drawing.Size(165, 329); + this.PathNodeLinksListBox.Size = new System.Drawing.Size(165, 381); this.PathNodeLinksListBox.TabIndex = 0; this.PathNodeLinksListBox.SelectedIndexChanged += new System.EventHandler(this.PathNodeLinksListBox_SelectedIndexChanged); // @@ -1079,7 +1067,7 @@ // this.PathNodeLinkCountLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); this.PathNodeLinkCountLabel.AutoSize = true; - this.PathNodeLinkCountLabel.Location = new System.Drawing.Point(3, 373); + this.PathNodeLinkCountLabel.Location = new System.Drawing.Point(3, 436); this.PathNodeLinkCountLabel.Name = "PathNodeLinkCountLabel"; this.PathNodeLinkCountLabel.Size = new System.Drawing.Size(70, 13); this.PathNodeLinkCountLabel.TabIndex = 31; @@ -1101,7 +1089,7 @@ this.PathNodeLinkPanel.Enabled = false; this.PathNodeLinkPanel.Location = new System.Drawing.Point(0, 0); this.PathNodeLinkPanel.Name = "PathNodeLinkPanel"; - this.PathNodeLinkPanel.Size = new System.Drawing.Size(333, 415); + this.PathNodeLinkPanel.Size = new System.Drawing.Size(433, 478); this.PathNodeLinkPanel.TabIndex = 0; // // PathLinkFlags2GroupBox @@ -1513,7 +1501,7 @@ this.PathNodeJunctionTabPage.Location = new System.Drawing.Point(4, 22); this.PathNodeJunctionTabPage.Name = "PathNodeJunctionTabPage"; this.PathNodeJunctionTabPage.Padding = new System.Windows.Forms.Padding(3); - this.PathNodeJunctionTabPage.Size = new System.Drawing.Size(511, 421); + this.PathNodeJunctionTabPage.Size = new System.Drawing.Size(611, 484); this.PathNodeJunctionTabPage.TabIndex = 1; this.PathNodeJunctionTabPage.Text = "Junction"; this.PathNodeJunctionTabPage.UseVisualStyleBackColor = true; @@ -1752,7 +1740,7 @@ // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(522, 451); + this.ClientSize = new System.Drawing.Size(622, 514); this.Controls.Add(this.PathNodeTabControl); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.Name = "EditYndNodePanel"; @@ -1837,7 +1825,6 @@ private System.Windows.Forms.CheckBox PathNodeFlags48CheckBox; private System.Windows.Forms.NumericUpDown PathNodeFlags42UpDown; private System.Windows.Forms.Label label71; - private System.Windows.Forms.CheckBox PathNodeFlags41CheckBox; private System.Windows.Forms.NumericUpDown PathNodeFlags4UpDown; private System.Windows.Forms.Label PathNodeFlags4Label; private System.Windows.Forms.GroupBox PathNodeFlags3GroupBox; diff --git a/CodeWalker/Project/Panels/EditYndNodePanel.cs b/CodeWalker/Project/Panels/EditYndNodePanel.cs index 8303ec2..ba1ccc3 100644 --- a/CodeWalker/Project/Panels/EditYndNodePanel.cs +++ b/CodeWalker/Project/Panels/EditYndNodePanel.cs @@ -222,8 +222,7 @@ namespace CodeWalker.Project.Panels PathNodeFlags31CheckBox.Checked = BitUtil.IsBitSet(flags3, 0); PathNodeFlags32UpDown.Value = (flags3 >> 1) & 127; - PathNodeFlags41CheckBox.Checked = BitUtil.IsBitSet(flags4, 0); - PathNodeFlags42UpDown.Value = (flags4 >> 1) & 7; + PathNodeFlags42UpDown.Value = (flags4 >> 3) & 15; PathNodeFlags45CheckBox.Checked = BitUtil.IsBitSet(flags4, 4); PathNodeFlags46CheckBox.Checked = BitUtil.IsBitSet(flags4, 5); PathNodeFlags47CheckBox.Checked = BitUtil.IsBitSet(flags4, 6); @@ -351,8 +350,7 @@ namespace CodeWalker.Project.Panels flags3 = BitUtil.UpdateBit(flags3, 0, PathNodeFlags31CheckBox.Checked); flags3 += (((uint)PathNodeFlags32UpDown.Value & 127u) << 1); - flags4 = BitUtil.UpdateBit(flags4, 0, PathNodeFlags41CheckBox.Checked); - flags4 += (((uint)PathNodeFlags42UpDown.Value & 7u) << 1); + flags4 += (((uint)PathNodeFlags42UpDown.Value & 15u)); flags4 = BitUtil.UpdateBit(flags4, 4, PathNodeFlags45CheckBox.Checked); flags4 = BitUtil.UpdateBit(flags4, 5, PathNodeFlags46CheckBox.Checked); flags4 = BitUtil.UpdateBit(flags4, 6, PathNodeFlags47CheckBox.Checked); @@ -930,7 +928,7 @@ namespace CodeWalker.Project.Panels private void PathNodeFlags42UpDown_ValueChanged(object sender, EventArgs e) { - SetPathNodeFlagsFromCheckBoxes(); //treat this one like checkboxes + SetPathNodeFlagsFromCheckBoxes(); } private void PathNodeFlags52CheckBox_CheckedChanged(object sender, EventArgs e) @@ -1252,5 +1250,10 @@ namespace CodeWalker.Project.Panels } //LoadPathNodeJunctionPage(); } + + private void label71_Click(object sender, EventArgs e) + { + + } } }