diff --git a/BaseHandlers/OpenTK.dll.config b/BaseHandlers/OpenTK.dll.config
deleted file mode 100644
index 7098d39..0000000
--- a/BaseHandlers/OpenTK.dll.config
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/BaseHandlers/StreetDataEditor.Designer.cs b/BaseHandlers/StreetDataEditor.Designer.cs
index 59884ed..36e11f2 100644
--- a/BaseHandlers/StreetDataEditor.Designer.cs
+++ b/BaseHandlers/StreetDataEditor.Designer.cs
@@ -33,29 +33,46 @@ protected override void Dispose(bool disposing)
private void InitializeComponent()
{
components = new Container();
-
+ streetNumber = new ColumnHeader();
+ streetRoadIndex = new ColumnHeader();
+ streetSpanIndex = new ColumnHeader();
+ streetSpanType = new ColumnHeader();
+ streetMaxSpeed = new ColumnHeader();
+ streetMinSpeed = new ColumnHeader();
menu = new MenuStrip();
fileMenu = new ToolStripMenuItem();
exportJsonItem = new ToolStripMenuItem();
-
tabs = new TabControl();
streetsPage = new TabPage();
- junctionsPage = new TabPage();
- roadsPage = new TabPage();
- challengesPage = new TabPage();
-
streetsList = new ListView();
- junctionsList = new ListView();
- roadsList = new ListView();
- challengesList = new ListView();
-
streetsContextMenu = new ContextMenuStrip(components);
+ junctionsPage = new TabPage();
+ junctionsList = new ListView();
+ junctionNumber = new ColumnHeader();
+ junctionRoadIndex = new ColumnHeader();
+ junctionSpanIndex = new ColumnHeader();
+ junctionSpanType = new ColumnHeader();
+ junctionName = new ColumnHeader();
junctionsContextMenu = new ContextMenuStrip(components);
+ roadsPage = new TabPage();
+ roadsList = new ListView();
+ roadNumber = new ColumnHeader();
+ roadDebugName = new ColumnHeader();
+ roadRefX = new ColumnHeader();
+ roadRefY = new ColumnHeader();
+ roadRefZ = new ColumnHeader();
+ roadChallenge = new ColumnHeader();
+ roadGamedbId = new ColumnHeader();
roadsContextMenu = new ContextMenuStrip(components);
+ challengesPage = new TabPage();
+ challengesList = new ListView();
challengesContextMenu = new ContextMenuStrip(components);
-
propertyGrid = new PropertyGrid();
-
+ challengeNumber = new ColumnHeader();
+ challengeScore0 = new ColumnHeader();
+ challengeScore1 = new ColumnHeader();
+ challengeRival0 = new ColumnHeader();
+ challengeRival1 = new ColumnHeader();
menu.SuspendLayout();
tabs.SuspendLayout();
streetsPage.SuspendLayout();
@@ -63,31 +80,55 @@ private void InitializeComponent()
roadsPage.SuspendLayout();
challengesPage.SuspendLayout();
SuspendLayout();
- //
+ //
+ // streetNumber
+ //
+ streetNumber.Text = "#";
+ //
+ // streetRoadIndex
+ //
+ streetRoadIndex.Text = "ReadIndex";
+ //
+ // streetSpanIndex
+ //
+ streetSpanIndex.Text = "SpanIndex";
+ //
+ // streetSpanType
+ //
+ streetSpanType.Text = "SpanType";
+ //
+ // streetMaxSpeed
+ //
+ streetMaxSpeed.Text = "MaxSpeed";
+ //
+ // streetMinSpeed
+ //
+ streetMinSpeed.Text = "MinSpeed";
+ //
// menu
- //
+ //
menu.Items.AddRange(new ToolStripItem[] { fileMenu });
menu.Location = new Point(0, 0);
menu.Name = "menu";
menu.Size = new Size(1020, 24);
menu.TabIndex = 0;
- //
+ //
// fileMenu
- //
+ //
fileMenu.DropDownItems.AddRange(new ToolStripItem[] { exportJsonItem });
fileMenu.Name = "fileMenu";
- fileMenu.Size = new Size(38, 20);
+ fileMenu.Size = new Size(37, 20);
fileMenu.Text = "File";
- //
+ //
// exportJsonItem
- //
+ //
exportJsonItem.Name = "exportJsonItem";
- exportJsonItem.Size = new Size(180, 22);
+ exportJsonItem.Size = new Size(153, 22);
exportJsonItem.Text = "Export to JSON";
exportJsonItem.Click += exportJsonItem_Click;
- //
+ //
// tabs
- //
+ //
tabs.Controls.Add(streetsPage);
tabs.Controls.Add(junctionsPage);
tabs.Controls.Add(roadsPage);
@@ -96,108 +137,242 @@ private void InitializeComponent()
tabs.Location = new Point(0, 24);
tabs.Name = "tabs";
tabs.SelectedIndex = 0;
- tabs.Size = new Size(1020, 376);
+ tabs.Size = new Size(1020, 351);
tabs.TabIndex = 1;
- //
+ //
// streetsPage
- //
+ //
streetsPage.Controls.Add(streetsList);
+ streetsPage.Location = new Point(4, 24);
streetsPage.Name = "streetsPage";
+ streetsPage.Size = new Size(1012, 323);
+ streetsPage.TabIndex = 0;
streetsPage.Text = "Streets";
- //
+ //
+ // streetsList
+ //
+ streetsList.AllowColumnReorder = true;
+ streetsList.Columns.AddRange(new ColumnHeader[] { streetNumber, streetRoadIndex, streetSpanIndex, streetSpanType, streetMaxSpeed, streetMinSpeed });
+ streetsList.ContextMenuStrip = streetsContextMenu;
+ streetsList.Dock = DockStyle.Fill;
+ streetsList.FullRowSelect = true;
+ streetsList.GridLines = true;
+ streetsList.Location = new Point(0, 0);
+ streetsList.MultiSelect = false;
+ streetsList.Name = "streetsList";
+ streetsList.Size = new Size(1012, 323);
+ streetsList.TabIndex = 0;
+ streetsList.UseCompatibleStateImageBehavior = false;
+ streetsList.View = View.Details;
+ streetsList.ColumnClick += list_ColumnClick;
+ streetsList.DoubleClick += list_DoubleClick;
+ streetsList.KeyDown += list_KeyDown;
+ //
+ // streetsContextMenu
+ //
+ streetsContextMenu.Name = "streetsContextMenu";
+ streetsContextMenu.Size = new Size(61, 4);
+ //
// junctionsPage
- //
+ //
junctionsPage.Controls.Add(junctionsList);
+ junctionsPage.Location = new Point(4, 24);
junctionsPage.Name = "junctionsPage";
+ junctionsPage.Size = new Size(1012, 323);
+ junctionsPage.TabIndex = 1;
junctionsPage.Text = "Junctions";
- //
+ //
+ // junctionsList
+ //
+ junctionsList.AllowColumnReorder = true;
+ junctionsList.Columns.AddRange(new ColumnHeader[] { junctionNumber, junctionRoadIndex, junctionSpanIndex, junctionSpanType, junctionName });
+ junctionsList.ContextMenuStrip = junctionsContextMenu;
+ junctionsList.Dock = DockStyle.Fill;
+ junctionsList.FullRowSelect = true;
+ junctionsList.GridLines = true;
+ junctionsList.Location = new Point(0, 0);
+ junctionsList.MultiSelect = false;
+ junctionsList.Name = "junctionsList";
+ junctionsList.Size = new Size(1012, 323);
+ junctionsList.TabIndex = 0;
+ junctionsList.UseCompatibleStateImageBehavior = false;
+ junctionsList.View = View.Details;
+ junctionsList.ColumnClick += list_ColumnClick;
+ junctionsList.DoubleClick += list_DoubleClick;
+ junctionsList.KeyDown += list_KeyDown;
+ //
+ // junctionNumber
+ //
+ junctionNumber.Text = "#";
+ //
+ // junctionRoadIndex
+ //
+ junctionRoadIndex.Text = "RoadIndex";
+ //
+ // junctionSpanIndex
+ //
+ junctionSpanIndex.Text = "SpanIndex";
+ //
+ // junctionSpanType
+ //
+ junctionSpanType.Text = "SpanType";
+ //
+ // junctionName
+ //
+ junctionName.Text = "Name";
+ //
+ // junctionsContextMenu
+ //
+ junctionsContextMenu.Name = "junctionsContextMenu";
+ junctionsContextMenu.Size = new Size(61, 4);
+ //
// roadsPage
- //
+ //
roadsPage.Controls.Add(roadsList);
+ roadsPage.Location = new Point(4, 24);
roadsPage.Name = "roadsPage";
+ roadsPage.Size = new Size(1012, 323);
+ roadsPage.TabIndex = 2;
roadsPage.Text = "Roads";
- //
+ //
+ // roadsList
+ //
+ roadsList.AllowColumnReorder = true;
+ roadsList.Columns.AddRange(new ColumnHeader[] { roadNumber, roadDebugName, roadRefX, roadRefY, roadRefZ, roadChallenge, roadGamedbId });
+ roadsList.ContextMenuStrip = roadsContextMenu;
+ roadsList.Dock = DockStyle.Fill;
+ roadsList.FullRowSelect = true;
+ roadsList.GridLines = true;
+ roadsList.Location = new Point(0, 0);
+ roadsList.MultiSelect = false;
+ roadsList.Name = "roadsList";
+ roadsList.Size = new Size(1012, 323);
+ roadsList.TabIndex = 0;
+ roadsList.UseCompatibleStateImageBehavior = false;
+ roadsList.View = View.Details;
+ roadsList.ColumnClick += list_ColumnClick;
+ roadsList.DoubleClick += list_DoubleClick;
+ roadsList.KeyDown += list_KeyDown;
+ //
+ // roadNumber
+ //
+ roadNumber.Text = "#";
+ //
+ // roadDebugName
+ //
+ roadDebugName.Text = "DebugName";
+ //
+ // roadRefX
+ //
+ roadRefX.Text = "RefX";
+ //
+ // roadRefY
+ //
+ roadRefY.Text = "RefY";
+ //
+ // roadRefZ
+ //
+ roadRefZ.Text = "RefZ";
+ //
+ // roadChallenge
+ //
+ roadChallenge.Text = "Challenge";
+ //
+ // roadGamedbId
+ //
+ roadGamedbId.Text = "GameDB ID";
+ //
+ // roadsContextMenu
+ //
+ roadsContextMenu.Name = "roadsContextMenu";
+ roadsContextMenu.Size = new Size(61, 4);
+ //
// challengesPage
- //
+ //
challengesPage.Controls.Add(challengesList);
+ challengesPage.Location = new Point(4, 24);
challengesPage.Name = "challengesPage";
+ challengesPage.Size = new Size(1012, 323);
+ challengesPage.TabIndex = 3;
challengesPage.Text = "Challenges";
- //
- // streetsList
- //
- ConfigureListView(streetsList, streetsContextMenu, "streetsList",
- new[] { "#", "RoadIndex", "SpanIndex", "SpanType", "MaxSpeed", "MinSpeed" });
- //
- // junctionsList
- //
- ConfigureListView(junctionsList, junctionsContextMenu, "junctionsList",
- new[] { "#", "RoadIndex", "SpanIndex", "SpanType", "Name" });
- //
- // roadsList
- //
- ConfigureListView(roadsList, roadsContextMenu, "roadsList",
- new[] { "#", "DebugName", "RefX", "RefY", "RefZ", "Challenge", "GameDB ID" });
- //
+ //
// challengesList
- //
- ConfigureListView(challengesList, challengesContextMenu, "challengesList",
- new[] { "#", "Score 0", "Score 1", "Rival 0", "Rival 1" });
- //
+ //
+ challengesList.AllowColumnReorder = true;
+ challengesList.Columns.AddRange(new ColumnHeader[] { challengeNumber, challengeScore0, challengeScore1, challengeRival0, challengeRival1 });
+ challengesList.ContextMenuStrip = challengesContextMenu;
+ challengesList.Dock = DockStyle.Fill;
+ challengesList.FullRowSelect = true;
+ challengesList.GridLines = true;
+ challengesList.Location = new Point(0, 0);
+ challengesList.MultiSelect = false;
+ challengesList.Name = "challengesList";
+ challengesList.Size = new Size(1012, 323);
+ challengesList.TabIndex = 0;
+ challengesList.UseCompatibleStateImageBehavior = false;
+ challengesList.View = View.Details;
+ challengesList.ColumnClick += list_ColumnClick;
+ challengesList.DoubleClick += list_DoubleClick;
+ challengesList.KeyDown += list_KeyDown;
+ //
+ // challengesContextMenu
+ //
+ challengesContextMenu.Name = "challengesContextMenu";
+ challengesContextMenu.Size = new Size(61, 4);
+ //
// propertyGrid
- //
+ //
propertyGrid.Dock = DockStyle.Bottom;
+ propertyGrid.Location = new Point(0, 375);
propertyGrid.Name = "propertyGrid";
- propertyGrid.Size = new Size(1020, 320);
+ propertyGrid.Size = new Size(1020, 300);
propertyGrid.TabIndex = 2;
- //
+ //
+ // challengeNumber
+ //
+ challengeNumber.Text = "#";
+ //
+ // challengeScore0
+ //
+ challengeScore0.Text = "Score 0";
+ //
+ // challengeScore1
+ //
+ challengeScore1.Text = "Score 1";
+ //
+ // challengeRival0
+ //
+ challengeRival0.Text = "Rival 0";
+ //
+ // challengeRival1
+ //
+ challengeRival1.Text = "Rival 1";
+ //
// StreetDataEditor
- //
- AutoScaleDimensions = new SizeF(7F, 16F);
+ //
+ AutoScaleDimensions = new SizeF(7F, 15F);
AutoScaleMode = AutoScaleMode.Font;
- ClientSize = new Size(1020, 720);
+ ClientSize = new Size(1020, 675);
Controls.Add(tabs);
Controls.Add(propertyGrid);
Controls.Add(menu);
MainMenuStrip = menu;
- MinimumSize = new Size(720, 500);
+ MinimumSize = new Size(720, 471);
Name = "StreetDataEditor";
StartPosition = FormStartPosition.CenterParent;
Text = "Street Data Editor";
FormClosed += StreetDataEditor_FormClosed;
-
menu.ResumeLayout(false);
menu.PerformLayout();
+ tabs.ResumeLayout(false);
streetsPage.ResumeLayout(false);
junctionsPage.ResumeLayout(false);
roadsPage.ResumeLayout(false);
challengesPage.ResumeLayout(false);
- tabs.ResumeLayout(false);
ResumeLayout(false);
PerformLayout();
}
- // Shared ListView setup. Hand-written rather than declarative-per-list
- // because four list views with the same configuration would otherwise
- // be ~30 boilerplate lines each.
- private void ConfigureListView(ListView list, ContextMenuStrip ctxMenu, string name, string[] columnHeaders)
- {
- list.ContextMenuStrip = ctxMenu;
- list.Dock = DockStyle.Fill;
- list.FullRowSelect = true;
- list.GridLines = true;
- list.HideSelection = false;
- list.MultiSelect = false;
- list.Name = name;
- list.UseCompatibleStateImageBehavior = false;
- list.View = View.Details;
- list.AllowColumnReorder = true;
- for (int i = 0; i < columnHeaders.Length; i++)
- list.Columns.Add(columnHeaders[i], -2, HorizontalAlignment.Left);
- list.ColumnClick += list_ColumnClick;
- list.DoubleClick += list_DoubleClick;
- list.KeyDown += list_KeyDown;
- }
-
#endregion
private MenuStrip menu;
@@ -221,5 +396,28 @@ private void ConfigureListView(ListView list, ContextMenuStrip ctxMenu, string n
private ContextMenuStrip challengesContextMenu;
private PropertyGrid propertyGrid;
+ private ColumnHeader streetNumber;
+ private ColumnHeader streetRoadIndex;
+ private ColumnHeader streetSpanIndex;
+ private ColumnHeader streetSpanType;
+ private ColumnHeader streetMaxSpeed;
+ private ColumnHeader streetMinSpeed;
+ private ColumnHeader junctionNumber;
+ private ColumnHeader junctionRoadIndex;
+ private ColumnHeader junctionSpanIndex;
+ private ColumnHeader junctionSpanType;
+ private ColumnHeader junctionName;
+ private ColumnHeader roadNumber;
+ private ColumnHeader roadDebugName;
+ private ColumnHeader roadRefX;
+ private ColumnHeader roadRefY;
+ private ColumnHeader roadRefZ;
+ private ColumnHeader roadChallenge;
+ private ColumnHeader roadGamedbId;
+ private ColumnHeader challengeNumber;
+ private ColumnHeader challengeScore0;
+ private ColumnHeader challengeScore1;
+ private ColumnHeader challengeRival0;
+ private ColumnHeader challengeRival1;
}
}
diff --git a/BaseHandlers/StreetDataEditor.cs b/BaseHandlers/StreetDataEditor.cs
index 3b79310..d4f37c9 100644
--- a/BaseHandlers/StreetDataEditor.cs
+++ b/BaseHandlers/StreetDataEditor.cs
@@ -34,9 +34,9 @@ public StreetData Model
public StreetDataEditor()
{
InitializeComponent();
- _streetsCtx = new TabContext { View = streetsList, ContextMenu = streetsContextMenu };
- _junctionsCtx = new TabContext { View = junctionsList, ContextMenu = junctionsContextMenu };
- _roadsCtx = new TabContext { View = roadsList, ContextMenu = roadsContextMenu };
+ _streetsCtx = new TabContext { View = streetsList, ContextMenu = streetsContextMenu };
+ _junctionsCtx = new TabContext { View = junctionsList, ContextMenu = junctionsContextMenu };
+ _roadsCtx = new TabContext { View = roadsList, ContextMenu = roadsContextMenu };
_challengesCtx = new TabContext { View = challengesList, ContextMenu = challengesContextMenu };
}
@@ -292,11 +292,11 @@ private int SelectedModelIndex(TabContext ctx)
object tag = ctx.View.SelectedItems[0].Tag;
switch (tag)
{
- case Street s: return _model.streets.IndexOf(s);
- case Junction j: return _model.junctions.IndexOf(j);
- case Road r: return _model.roads.IndexOf(r);
+ case Street s: return _model.streets.IndexOf(s);
+ case Junction j: return _model.junctions.IndexOf(j);
+ case Road r: return _model.roads.IndexOf(r);
case ChallengeParScores c: return _model.challenges.IndexOf(c);
- default: return -1;
+ default: return -1;
}
}
@@ -324,9 +324,9 @@ private void RepopulateView(TabContext ctx, int count)
private void UpdateTabTitles()
{
if (_model == null) return;
- streetsPage.Text = "Streets (" + _model.streets.Count + ")";
- junctionsPage.Text = "Junctions (" + _model.junctions.Count + ")";
- roadsPage.Text = "Roads (" + _model.roads.Count + ")";
+ streetsPage.Text = "Streets (" + _model.streets.Count + ")";
+ junctionsPage.Text = "Junctions (" + _model.junctions.Count + ")";
+ roadsPage.Text = "Roads (" + _model.roads.Count + ")";
challengesPage.Text = "Challenges (" + _model.challenges.Count + ")";
}
diff --git a/BaseHandlers/StreetDataEditor.resx b/BaseHandlers/StreetDataEditor.resx
index 1af7de1..b35cd4c 100644
--- a/BaseHandlers/StreetDataEditor.resx
+++ b/BaseHandlers/StreetDataEditor.resx
@@ -1,17 +1,17 @@
-
@@ -117,4 +117,19 @@
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+ 17, 17
+
+
+ 595, 17
+
+
+ 102, 17
+
+
+ 263, 17
+
+
+ 439, 17
+
\ No newline at end of file