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)
+ {
+
+ }
}
}