private void polygonAdd_Click(object sender, EventArgs e) { DAT.COLL_DATA.AreaTableEntry ate = new DAT.COLL_DATA.AreaTableEntry(); ate.nbLinks = 1; DAT.COLL_DATA coll = (DAT.COLL_DATA)currentEntry; coll.areaTable.Add(ate); meleePolygons.Nodes.Add(new TreeNode($"Polygon {meleePolygons.Nodes.Count}") { Tag = ate }); }
private void polygonSubtract_Click(object sender, EventArgs e) { DAT.COLL_DATA coll = (DAT.COLL_DATA)currentEntry; DAT.COLL_DATA.AreaTableEntry link = (DAT.COLL_DATA.AreaTableEntry)meleePolygons.SelectedNode.Tag; coll.areaTable.Remove(link); int index = meleePolygons.SelectedNode.Index; meleePolygons.Nodes.Remove(meleePolygons.SelectedNode); for (int i = index; i < meleePolygons.Nodes.Count; i++) { meleePolygons.Nodes[i].Text = $"Polygon {i}"; } }
private void selectItem(object sender, TreeViewEventArgs e) { if (sender == meleeVerts) { currentMeleeVert = (Vector2)meleeVerts.SelectedNode.Tag; meleeX.Value = (Decimal)currentMeleeVert.X; meleeY.Value = (Decimal)currentMeleeVert.Y; } else if (sender == meleeLinks) { currentLink = (DAT.COLL_DATA.Link)meleeLinks.SelectedNode.Tag; vertStart.Value = currentLink.vertexIndices[0]; vertEnd.Value = currentLink.vertexIndices[1]; if (currentLink.connectors[0] != ushort.MaxValue) { linkBefore.Value = currentLink.connectors[0]; } else { linkBefore.Value = -1; } if (currentLink.connectors[1] != ushort.MaxValue) { linkAfter.Value = currentLink.connectors[1]; } else { linkAfter.Value = -1; } leftWall.Checked = ((currentLink.collisionAngle & 4) != 0); rightWall.Checked = ((currentLink.collisionAngle & 8) != 0); floor.Checked = ((currentLink.collisionAngle & 1) != 0); ceiling.Checked = ((currentLink.collisionAngle & 2) != 0); ledge.Checked = ((currentLink.flags & 2) != 0); meleeDropThrough.Checked = ((currentLink.flags & 1) != 0); comboBox2.Text = Enum.GetName(typeof(CollisionMatType), currentLink.material); } else if (sender == meleePolygons) { currentAreaTableEntry = (DAT.COLL_DATA.AreaTableEntry)meleePolygons.SelectedNode.Tag; polyStart.Value = currentAreaTableEntry.idxLowestSpot; polyEnd.Value = currentAreaTableEntry.idxLowestSpot + currentAreaTableEntry.nbLinks - 1; Console.WriteLine(meleePolygons.SelectedNode.Text + $" - ({currentAreaTableEntry.xBotLeftCorner},{currentAreaTableEntry.yBotLeftCorner}),({currentAreaTableEntry.xTopRightCorner},{currentAreaTableEntry.yTopRightCorner})"); } }