diff --git a/Makefile b/Makefile index 2cdf2b4f75..fa126ef088 100644 --- a/Makefile +++ b/Makefile @@ -194,15 +194,15 @@ tsbuild_TARGET = OpenRA.TilesetBuilder.exe tsbuild_KIND = winexe tsbuild_DEPS = $(fileformats_TARGET) $(game_TARGET) tsbuild_LIBS = $(COMMON_LIBS) $(tsbuild_DEPS) System.Windows.Forms.dll -tsbuild_EXTRA = -resource:OpenRA.TilesetBuilder.frmBuilder.resources -resource:OpenRA.TilesetBuilder.frmNew.resources -resource:OpenRA.TilesetBuilder.Surface.resources +tsbuild_EXTRA = -resource:OpenRA.TilesetBuilder.FormBuilder.resources -resource:OpenRA.TilesetBuilder.FormNew.resources -resource:OpenRA.TilesetBuilder.Surface.resources PROGRAMS += tsbuild -OpenRA.TilesetBuilder.frmBuilder.resources: - resgen2 OpenRA.TilesetBuilder/frmBuilder.resx OpenRA.TilesetBuilder.frmBuilder.resources 1> /dev/null -OpenRA.TilesetBuilder.frmNew.resources: - resgen2 OpenRA.TilesetBuilder/frmNew.resx OpenRA.TilesetBuilder.frmNew.resources 1> /dev/null +OpenRA.TilesetBuilder.FormBuilder.resources: + resgen2 OpenRA.TilesetBuilder/FormBuilder.resx OpenRA.TilesetBuilder.FormBuilder.resources 1> /dev/null +OpenRA.TilesetBuilder.FormNew.resources: + resgen2 OpenRA.TilesetBuilder/frmNew.resx OpenRA.TilesetBuilder.FormNew.resources 1> /dev/null OpenRA.TilesetBuilder.Surface.resources: resgen2 OpenRA.TilesetBuilder/Surface.resx OpenRA.TilesetBuilder.Surface.resources 1> /dev/null -tsbuild: OpenRA.TilesetBuilder.frmBuilder.resources OpenRA.TilesetBuilder.frmNew.resources OpenRA.TilesetBuilder.Surface.resources $(tsbuild_TARGET) +tsbuild: OpenRA.TilesetBuilder.FormBuilder.resources OpenRA.TilesetBuilder.FormNew.resources OpenRA.TilesetBuilder.Surface.resources $(tsbuild_TARGET) ##### Launchers / Utilities ##### diff --git a/OpenRA.Editor/ActorPropertiesDialog.Designer.cs b/OpenRA.Editor/ActorPropertiesDialog.Designer.cs index d959e64bde..5e65237c75 100644 --- a/OpenRA.Editor/ActorPropertiesDialog.Designer.cs +++ b/OpenRA.Editor/ActorPropertiesDialog.Designer.cs @@ -14,9 +14,7 @@ protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } base.Dispose(disposing); } diff --git a/OpenRA.Editor/ActorPropertiesDialog.cs b/OpenRA.Editor/ActorPropertiesDialog.cs index 77e8b18f54..b2667a940e 100644 --- a/OpenRA.Editor/ActorPropertiesDialog.cs +++ b/OpenRA.Editor/ActorPropertiesDialog.cs @@ -41,7 +41,7 @@ namespace OpenRA.Editor { var r = new TextBox(); r.Text = FieldSaver.FormatValue(getter(), t); - r.LostFocus += (e,_) => setter(FieldLoader.GetValue("", t, r.Text)); + r.LostFocus += (e, _) => setter(FieldLoader.GetValue("", t, r.Text)); r.Enabled = false; return r; } diff --git a/OpenRA.Editor/ActorTool.cs b/OpenRA.Editor/ActorTool.cs index 82022cf7c2..227eed3c6b 100644 --- a/OpenRA.Editor/ActorTool.cs +++ b/OpenRA.Editor/ActorTool.cs @@ -17,12 +17,12 @@ namespace OpenRA.Editor { class ActorTool : ITool { - ActorTemplate Actor; - public ActorTool(ActorTemplate actor) { this.Actor = actor; } + ActorTemplate actorTemplate; + public ActorTool(ActorTemplate actor) { this.actorTemplate = actor; } public void Preview(Surface surface, SGraphics g) { - surface.DrawActor(g, surface.GetBrushLocation(), Actor, + surface.DrawActor(g, surface.GetBrushLocation(), actorTemplate, surface.GetPaletteForPlayer(surface.NewActorOwner)); } @@ -33,17 +33,17 @@ namespace OpenRA.Editor var owner = surface.NewActorOwner; var id = NextActorName(surface); - surface.Map.Actors.Value[id] = new ActorReference(Actor.Info.Name.ToLowerInvariant()) + surface.Map.Actors.Value[id] = new ActorReference(actorTemplate.Info.Name.ToLowerInvariant()) { - new LocationInit( surface.GetBrushLocation() ), - new OwnerInit( owner) + new LocationInit(surface.GetBrushLocation()), + new OwnerInit(owner) }; } string NextActorName(Surface surface) { var id = 0; - for (; ; ) + for (;;) { var possible = "Actor{0}".F(id++); if (!surface.Map.Actors.Value.ContainsKey(possible)) return possible; diff --git a/OpenRA.Editor/BrushTool.cs b/OpenRA.Editor/BrushTool.cs index aaee6a6030..c940252a59 100644 --- a/OpenRA.Editor/BrushTool.cs +++ b/OpenRA.Editor/BrushTool.cs @@ -19,14 +19,14 @@ namespace OpenRA.Editor { class BrushTool : ITool { - BrushTemplate Brush; + BrushTemplate brushTemplate; - public BrushTool(BrushTemplate brush) { this.Brush = brush; } + public BrushTool(BrushTemplate brush) { this.brushTemplate = brush; } public void Apply(Surface surface) { // change the bits in the map - var template = surface.TileSet.Templates[Brush.N]; + var template = surface.TileSet.Templates[brushTemplate.N]; var tile = template.Data; var pos = surface.GetBrushLocation(); @@ -46,7 +46,7 @@ namespace OpenRA.Editor surface.Map.MapTiles.Value[u + pos.X, v + pos.Y] = new TileReference { - type = Brush.N, + type = brushTemplate.N, index = template.PickAny ? (byte)((u + pos.X) % 4 + ((v + pos.Y) % 4) * 4) : (byte)z, }; @@ -62,11 +62,11 @@ namespace OpenRA.Editor public void Preview(Surface surface, SGraphics g) { - g.DrawImage(Brush.Bitmap, + g.DrawImage(brushTemplate.Bitmap, surface.TileSet.TileSize * surface.GetBrushLocation().X * surface.Zoom + surface.GetOffset().X, surface.TileSet.TileSize * surface.GetBrushLocation().Y * surface.Zoom + surface.GetOffset().Y, - Brush.Bitmap.Width * surface.Zoom, - Brush.Bitmap.Height * surface.Zoom); + brushTemplate.Bitmap.Width * surface.Zoom, + brushTemplate.Bitmap.Height * surface.Zoom); } void FloodFillWithBrush(Surface s, CPos pos) @@ -96,7 +96,7 @@ namespace OpenRA.Editor for (var x = a.X; x <= b.X; x++) { - s.Map.MapTiles.Value[x, p.Y] = new TileReference { type = Brush.N, index = (byte)0 }; + s.Map.MapTiles.Value[x, p.Y] = new TileReference { type = brushTemplate.N, index = (byte)0 }; if (s.Map.MapTiles.Value[x, p.Y - 1].Equals(replace)) maybeEnqueue(x, p.Y - 1); if (s.Map.MapTiles.Value[x, p.Y + 1].Equals(replace)) @@ -111,7 +111,7 @@ namespace OpenRA.Editor CPos FindEdge(Surface s, CPos p, CVec d, TileReference replace) { - for (; ; ) + for (;;) { var q = p + d; if (!s.Map.IsInMap(q)) return p; diff --git a/OpenRA.Editor/ErrorListDialog.Designer.cs b/OpenRA.Editor/ErrorListDialog.Designer.cs index 21489f0ce5..f7f6c7e4fe 100644 --- a/OpenRA.Editor/ErrorListDialog.Designer.cs +++ b/OpenRA.Editor/ErrorListDialog.Designer.cs @@ -24,9 +24,7 @@ namespace OpenRA.Editor protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } base.Dispose(disposing); } diff --git a/OpenRA.Editor/ErrorListDialog.cs b/OpenRA.Editor/ErrorListDialog.cs index 05ae0d2771..9992aa73ac 100644 --- a/OpenRA.Editor/ErrorListDialog.cs +++ b/OpenRA.Editor/ErrorListDialog.cs @@ -15,7 +15,7 @@ namespace OpenRA.Editor { public partial class ErrorListDialog : Form { - public ErrorListDialog( IEnumerable errors ) + public ErrorListDialog(IEnumerable errors) { InitializeComponent(); foreach (var e in errors) diff --git a/OpenRA.Editor/Form1.Designer.cs b/OpenRA.Editor/Form1.Designer.cs index 286fd9eee7..ebf25e08f5 100755 --- a/OpenRA.Editor/Form1.Designer.cs +++ b/OpenRA.Editor/Form1.Designer.cs @@ -24,9 +24,8 @@ namespace OpenRA.Editor protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } + base.Dispose(disposing); } @@ -42,7 +41,7 @@ namespace OpenRA.Editor System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); this.splitContainer1 = new System.Windows.Forms.SplitContainer(); this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.pmMiniMap = new System.Windows.Forms.PictureBox(); + this.miniMapBox = new System.Windows.Forms.PictureBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.tilePalette = new System.Windows.Forms.FlowLayoutPanel(); @@ -77,7 +76,7 @@ namespace OpenRA.Editor this.eraserToolStripButton = new System.Windows.Forms.ToolStripButton(); this.toolStripMenuItemCopySelection = new System.Windows.Forms.ToolStripButton(); this.toolStripSeparator7 = new System.Windows.Forms.ToolStripSeparator(); - this.QuickhelpToolStripButton = new System.Windows.Forms.ToolStripButton(); + this.quickhelpToolStripButton = new System.Windows.Forms.ToolStripButton(); this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -87,9 +86,9 @@ namespace OpenRA.Editor this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.cCRedAlertMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuExport = new System.Windows.Forms.ToolStripMenuItem(); - this.mnuMinimapToPNG = new System.Windows.Forms.ToolStripMenuItem(); + this.redAlertMapToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); + this.miniMapExport = new System.Windows.Forms.ToolStripMenuItem(); + this.miniMapToPng = new System.Windows.Forms.ToolStripMenuItem(); this.fullMapRenderToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); @@ -120,11 +119,11 @@ namespace OpenRA.Editor this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.toolStripStatusLabelFiller = new System.Windows.Forms.ToolStripStatusLabel(); this.toolStripStatusLabelMousePosition = new System.Windows.Forms.ToolStripStatusLabel(); - this.BottomToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.TopToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.RightToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.LeftToolStripPanel = new System.Windows.Forms.ToolStripPanel(); - this.ContentPanel = new System.Windows.Forms.ToolStripContentPanel(); + this.bottomToolStripPanel = new System.Windows.Forms.ToolStripPanel(); + this.topToolStripPanel = new System.Windows.Forms.ToolStripPanel(); + this.rightToolStripPanel = new System.Windows.Forms.ToolStripPanel(); + this.leftToolStripPanel = new System.Windows.Forms.ToolStripPanel(); + this.contentPanel = new System.Windows.Forms.ToolStripContentPanel(); this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer(); this.cashToolStripStatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); this.splitContainer1.Panel1.SuspendLayout(); @@ -133,7 +132,7 @@ namespace OpenRA.Editor this.splitContainer2.Panel1.SuspendLayout(); this.splitContainer2.Panel2.SuspendLayout(); this.splitContainer2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pmMiniMap)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.miniMapBox)).BeginInit(); this.tabControl1.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage2.SuspendLayout(); @@ -177,7 +176,7 @@ namespace OpenRA.Editor // // splitContainer2.Panel1 // - this.splitContainer2.Panel1.Controls.Add(this.pmMiniMap); + this.splitContainer2.Panel1.Controls.Add(this.miniMapBox); // // splitContainer2.Panel2 // @@ -188,15 +187,15 @@ namespace OpenRA.Editor // // pmMiniMap // - this.pmMiniMap.BackColor = System.Drawing.Color.Black; - this.pmMiniMap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.pmMiniMap.Dock = System.Windows.Forms.DockStyle.Fill; - this.pmMiniMap.Location = new System.Drawing.Point(0, 0); - this.pmMiniMap.Name = "pmMiniMap"; - this.pmMiniMap.Size = new System.Drawing.Size(198, 153); - this.pmMiniMap.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pmMiniMap.TabIndex = 1; - this.pmMiniMap.TabStop = false; + this.miniMapBox.BackColor = System.Drawing.Color.Black; + this.miniMapBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.miniMapBox.Dock = System.Windows.Forms.DockStyle.Fill; + this.miniMapBox.Location = new System.Drawing.Point(0, 0); + this.miniMapBox.Name = "pmMiniMap"; + this.miniMapBox.Size = new System.Drawing.Size(198, 153); + this.miniMapBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.miniMapBox.TabIndex = 1; + this.miniMapBox.TabStop = false; // // tabControl1 // @@ -356,7 +355,7 @@ namespace OpenRA.Editor this.eraserToolStripButton, this.toolStripMenuItemCopySelection, this.toolStripSeparator7, - this.QuickhelpToolStripButton}); + this.quickhelpToolStripButton}); this.toolStrip1.Location = new System.Drawing.Point(0, 0); this.toolStrip1.Name = "toolStrip1"; this.toolStrip1.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; @@ -373,7 +372,7 @@ namespace OpenRA.Editor this.toolStripMenuItemNew.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemNew.Text = "&New..."; this.toolStripMenuItemNew.ToolTipText = "Create a new blank map."; - this.toolStripMenuItemNew.Click += new System.EventHandler(this.toolStripMenuItemNewClick); + this.toolStripMenuItemNew.Click += new System.EventHandler(this.ToolStripMenuItemNewClick); // // toolStripMenuItemOpen // @@ -383,7 +382,7 @@ namespace OpenRA.Editor this.toolStripMenuItemOpen.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemOpen.Text = "&Open..."; this.toolStripMenuItemOpen.ToolTipText = "Open an existing map."; - this.toolStripMenuItemOpen.Click += new System.EventHandler(this.toolStripMenuItemOpenClick); + this.toolStripMenuItemOpen.Click += new System.EventHandler(this.ToolStripMenuItemOpenClick); // // toolStripMenuItemSave // @@ -394,7 +393,7 @@ namespace OpenRA.Editor this.toolStripMenuItemSave.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemSave.Text = "&Save"; this.toolStripMenuItemSave.ToolTipText = "Quicksave current map."; - this.toolStripMenuItemSave.Click += new System.EventHandler(this.toolStripMenuItemSaveClick); + this.toolStripMenuItemSave.Click += new System.EventHandler(this.ToolStripMenuItemSaveClick); // // toolStripSeparator // @@ -410,7 +409,7 @@ namespace OpenRA.Editor this.toolStripMenuItemProperties.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemProperties.Text = "&Properties..."; this.toolStripMenuItemProperties.ToolTipText = "Edit Metadata"; - this.toolStripMenuItemProperties.Click += new System.EventHandler(this.toolStripMenuItemPropertiesClick); + this.toolStripMenuItemProperties.Click += new System.EventHandler(this.ToolStripMenuItemPropertiesClick); // // toolStripMenuItemResize // @@ -421,7 +420,7 @@ namespace OpenRA.Editor this.toolStripMenuItemResize.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemResize.Text = "&Resize..."; this.toolStripMenuItemResize.ToolTipText = "Change the map borders and dimensions."; - this.toolStripMenuItemResize.Click += new System.EventHandler(this.toolStripMenuItemResizeClick); + this.toolStripMenuItemResize.Click += new System.EventHandler(this.ToolStripMenuItemResizeClick); // // toolStripSeparator8 // @@ -436,7 +435,7 @@ namespace OpenRA.Editor this.toolStripMenuItemShowActorNames.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemShowActorNames.Text = "Show Actor &Names"; this.toolStripMenuItemShowActorNames.ToolTipText = "If the actor has a custom name, display it."; - this.toolStripMenuItemShowActorNames.Click += new System.EventHandler(this.toolStripMenuItemShowActorNamesClick); + this.toolStripMenuItemShowActorNames.Click += new System.EventHandler(this.ToolStripMenuItemShowActorNamesClick); // // toolStripMenuItemShowGrid // @@ -446,7 +445,7 @@ namespace OpenRA.Editor this.toolStripMenuItemShowGrid.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemShowGrid.Text = "Show &Grid"; this.toolStripMenuItemShowGrid.ToolTipText = "Enable a grid overlay for better orientation."; - this.toolStripMenuItemShowGrid.Click += new System.EventHandler(this.toolStripMenuItemShowGridClick); + this.toolStripMenuItemShowGrid.Click += new System.EventHandler(this.ToolStripMenuItemShowGridClick); // // toolStripSeparator12 // @@ -461,7 +460,7 @@ namespace OpenRA.Editor this.zoomIntoolStripButton.Name = "zoomIntoolStripButton"; this.zoomIntoolStripButton.Size = new System.Drawing.Size(23, 22); this.zoomIntoolStripButton.Text = "Zoom in"; - this.zoomIntoolStripButton.Click += new System.EventHandler(this.zoomInToolStripButtonClick); + this.zoomIntoolStripButton.Click += new System.EventHandler(this.ZoomInToolStripButtonClick); // // zoomOutToolStripButton // @@ -471,7 +470,7 @@ namespace OpenRA.Editor this.zoomOutToolStripButton.Name = "zoomOutToolStripButton"; this.zoomOutToolStripButton.Size = new System.Drawing.Size(23, 22); this.zoomOutToolStripButton.Text = "Zoom out"; - this.zoomOutToolStripButton.Click += new System.EventHandler(this.zoomOutToolStripButtonClick); + this.zoomOutToolStripButton.Click += new System.EventHandler(this.ZoomOutToolStripButtonClick); // // panToolStripButton // @@ -481,7 +480,7 @@ namespace OpenRA.Editor this.panToolStripButton.Name = "panToolStripButton"; this.panToolStripButton.Size = new System.Drawing.Size(23, 22); this.panToolStripButton.Text = "Pan view"; - this.panToolStripButton.Click += new System.EventHandler(this.panToolStripButtonClick); + this.panToolStripButton.Click += new System.EventHandler(this.PanToolStripButtonClick); // // showRulerToolStripItem // @@ -490,7 +489,7 @@ namespace OpenRA.Editor this.showRulerToolStripItem.Name = "showRulerToolStripItem"; this.showRulerToolStripItem.Size = new System.Drawing.Size(23, 22); this.showRulerToolStripItem.Text = "Show Ruler"; - this.showRulerToolStripItem.Click += new System.EventHandler(this.showRulerToolStripItemClick); + this.showRulerToolStripItem.Click += new System.EventHandler(this.ShowRulerToolStripItemClick); // // toolStripSeparator10 // @@ -505,7 +504,7 @@ namespace OpenRA.Editor this.toolStripMenuItemFixOpenAreas.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemFixOpenAreas.Text = "&Fix Open Areas"; this.toolStripMenuItemFixOpenAreas.ToolTipText = "Add some randomness into clear tiles."; - this.toolStripMenuItemFixOpenAreas.Click += new System.EventHandler(this.toolStripMenuItemFixOpenAreasClick); + this.toolStripMenuItemFixOpenAreas.Click += new System.EventHandler(this.ToolStripMenuItemFixOpenAreasClick); // // toolStripMenuItemSetupDefaultPlayers // @@ -515,7 +514,7 @@ namespace OpenRA.Editor this.toolStripMenuItemSetupDefaultPlayers.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemSetupDefaultPlayers.Text = "&Setup Default Players"; this.toolStripMenuItemSetupDefaultPlayers.ToolTipText = "Setup the players for each spawnpoint placed."; - this.toolStripMenuItemSetupDefaultPlayers.Click += new System.EventHandler(this.toolStripMenuItemSetupDefaultPlayersClick); + this.toolStripMenuItemSetupDefaultPlayers.Click += new System.EventHandler(this.ToolStripMenuItemSetupDefaultPlayersClick); // // toolStripSeparator11 // @@ -540,7 +539,7 @@ namespace OpenRA.Editor this.toolStripMenuItemCopySelection.Size = new System.Drawing.Size(23, 22); this.toolStripMenuItemCopySelection.Text = "Copy Selection"; this.toolStripMenuItemCopySelection.ToolTipText = "Copy the current selection and paste it again on left-click."; - this.toolStripMenuItemCopySelection.Click += new System.EventHandler(this.toolStripMenuItemCopySelectionClick); + this.toolStripMenuItemCopySelection.Click += new System.EventHandler(this.ToolStripMenuItemCopySelectionClick); // // toolStripSeparator7 // @@ -549,14 +548,14 @@ namespace OpenRA.Editor // // QuickhelpToolStripButton // - this.QuickhelpToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; - this.QuickhelpToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("QuickhelpToolStripButton.Image"))); - this.QuickhelpToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.QuickhelpToolStripButton.Name = "QuickhelpToolStripButton"; - this.QuickhelpToolStripButton.Size = new System.Drawing.Size(23, 22); - this.QuickhelpToolStripButton.Text = "Help"; - this.QuickhelpToolStripButton.ToolTipText = "Display the mapping tutorial in the OpenRA wiki."; - this.QuickhelpToolStripButton.Click += new System.EventHandler(this.helpToolStripButton_Click); + this.quickhelpToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image; + this.quickhelpToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("QuickhelpToolStripButton.Image"))); + this.quickhelpToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; + this.quickhelpToolStripButton.Name = "QuickhelpToolStripButton"; + this.quickhelpToolStripButton.Size = new System.Drawing.Size(23, 22); + this.quickhelpToolStripButton.Text = "Help"; + this.quickhelpToolStripButton.ToolTipText = "Display the mapping tutorial in the OpenRA wiki."; + this.quickhelpToolStripButton.Click += new System.EventHandler(this.HelpToolStripButton_Click); // // menuStrip1 // @@ -584,7 +583,7 @@ namespace OpenRA.Editor this.saveAsToolStripMenuItem, this.toolStripSeparator2, this.toolStripMenuItem1, - this.mnuExport, + this.miniMapExport, this.toolStripSeparator3, this.exitToolStripMenuItem}); this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; @@ -643,7 +642,7 @@ namespace OpenRA.Editor // toolStripMenuItem1 // this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.cCRedAlertMapToolStripMenuItem}); + this.redAlertMapToolStripMenuItem}); this.toolStripMenuItem1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripMenuItem1.Image"))); this.toolStripMenuItem1.ImageTransparentColor = System.Drawing.Color.Magenta; this.toolStripMenuItem1.Name = "toolStripMenuItem1"; @@ -652,33 +651,33 @@ namespace OpenRA.Editor // // cCRedAlertMapToolStripMenuItem // - this.cCRedAlertMapToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("cCRedAlertMapToolStripMenuItem.Image"))); - this.cCRedAlertMapToolStripMenuItem.Name = "cCRedAlertMapToolStripMenuItem"; - this.cCRedAlertMapToolStripMenuItem.Size = new System.Drawing.Size(188, 22); - this.cCRedAlertMapToolStripMenuItem.Text = "&Legacy Map Format..."; - this.cCRedAlertMapToolStripMenuItem.ToolTipText = "Import an original C&C / Red Alert and convert it to the .oramap format."; - this.cCRedAlertMapToolStripMenuItem.Click += new System.EventHandler(this.ImportLegacyMapClicked); + this.redAlertMapToolStripMenuItem.Image = ((System.Drawing.Image)(resources.GetObject("cCRedAlertMapToolStripMenuItem.Image"))); + this.redAlertMapToolStripMenuItem.Name = "cCRedAlertMapToolStripMenuItem"; + this.redAlertMapToolStripMenuItem.Size = new System.Drawing.Size(188, 22); + this.redAlertMapToolStripMenuItem.Text = "&Legacy Map Format..."; + this.redAlertMapToolStripMenuItem.ToolTipText = "Import an original C&C / Red Alert and convert it to the .oramap format."; + this.redAlertMapToolStripMenuItem.Click += new System.EventHandler(this.ImportLegacyMapClicked); // // mnuExport // - this.mnuExport.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.mnuMinimapToPNG, + this.miniMapExport.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.miniMapToPng, this.fullMapRenderToolStripMenuItem}); - this.mnuExport.Image = ((System.Drawing.Image)(resources.GetObject("mnuExport.Image"))); - this.mnuExport.ImageTransparentColor = System.Drawing.Color.Magenta; - this.mnuExport.Name = "mnuExport"; - this.mnuExport.Size = new System.Drawing.Size(123, 22); - this.mnuExport.Text = "&Export"; + this.miniMapExport.Image = ((System.Drawing.Image)(resources.GetObject("mnuExport.Image"))); + this.miniMapExport.ImageTransparentColor = System.Drawing.Color.Magenta; + this.miniMapExport.Name = "mnuExport"; + this.miniMapExport.Size = new System.Drawing.Size(123, 22); + this.miniMapExport.Text = "&Export"; // // mnuMinimapToPNG // - this.mnuMinimapToPNG.Enabled = false; - this.mnuMinimapToPNG.Image = ((System.Drawing.Image)(resources.GetObject("mnuMinimapToPNG.Image"))); - this.mnuMinimapToPNG.Name = "mnuMinimapToPNG"; - this.mnuMinimapToPNG.Size = new System.Drawing.Size(163, 22); - this.mnuMinimapToPNG.Text = "Minimap to PNG"; - this.mnuMinimapToPNG.ToolTipText = "Save the map radar display as an image."; - this.mnuMinimapToPNG.Click += new System.EventHandler(this.ExportMinimap); + this.miniMapToPng.Enabled = false; + this.miniMapToPng.Image = ((System.Drawing.Image)(resources.GetObject("mnuMinimapToPNG.Image"))); + this.miniMapToPng.Name = "mnuMinimapToPNG"; + this.miniMapToPng.Size = new System.Drawing.Size(163, 22); + this.miniMapToPng.Text = "Minimap to PNG"; + this.miniMapToPng.ToolTipText = "Save the map radar display as an image."; + this.miniMapToPng.Click += new System.EventHandler(this.ExportMinimap); // // fullMapRenderToolStripMenuItem // @@ -770,7 +769,7 @@ namespace OpenRA.Editor this.showRulerToolStripMenuItem.Name = "showRulerToolStripMenuItem"; this.showRulerToolStripMenuItem.Size = new System.Drawing.Size(185, 22); this.showRulerToolStripMenuItem.Text = "Show Ruler"; - this.showRulerToolStripMenuItem.Click += new System.EventHandler(this.showRulerToolStripMenuItemClick); + this.showRulerToolStripMenuItem.Click += new System.EventHandler(this.ShowRulerToolStripMenuItemClick); // // toolStripSeparator5 // @@ -807,7 +806,7 @@ namespace OpenRA.Editor this.copySelectionToolStripMenuItem.Size = new System.Drawing.Size(185, 22); this.copySelectionToolStripMenuItem.Text = "Copy Selection"; this.copySelectionToolStripMenuItem.ToolTipText = "Copy the current selection and paste it again on left-click."; - this.copySelectionToolStripMenuItem.Click += new System.EventHandler(this.copySelectionToolStripMenuItemClick); + this.copySelectionToolStripMenuItem.Click += new System.EventHandler(this.CopySelectionToolStripMenuItemClick); // // toolStripComboBox1 // @@ -850,7 +849,7 @@ namespace OpenRA.Editor this.openRAWebsiteToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.openRAWebsiteToolStripMenuItem.Text = "OpenRA &Website"; this.openRAWebsiteToolStripMenuItem.ToolTipText = "Visit the OpenRA homepage."; - this.openRAWebsiteToolStripMenuItem.Click += new System.EventHandler(this.openRAWebsiteToolStripMenuItemClick); + this.openRAWebsiteToolStripMenuItem.Click += new System.EventHandler(this.OpenRAWebsiteToolStripMenuItemClick); // // openRAResourcesToolStripMenuItem // @@ -859,7 +858,7 @@ namespace OpenRA.Editor this.openRAResourcesToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.openRAResourcesToolStripMenuItem.Text = "OpenRA &Resources"; this.openRAResourcesToolStripMenuItem.ToolTipText = "Share your maps and replays by uploading on this file exchange community."; - this.openRAResourcesToolStripMenuItem.Click += new System.EventHandler(this.openRAResourcesToolStripMenuItemClick); + this.openRAResourcesToolStripMenuItem.Click += new System.EventHandler(this.OpenRAResourcesToolStripMenuItemClick); // // wikiDocumentationToolStripMenuItem // @@ -868,7 +867,7 @@ namespace OpenRA.Editor this.wikiDocumentationToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.wikiDocumentationToolStripMenuItem.Text = "Wiki &Documentation"; this.wikiDocumentationToolStripMenuItem.ToolTipText = "Read and contribute to the developer documentation."; - this.wikiDocumentationToolStripMenuItem.Click += new System.EventHandler(this.wikiDocumentationToolStripMenuItemClick); + this.wikiDocumentationToolStripMenuItem.Click += new System.EventHandler(this.WikiDocumentationToolStripMenuItemClick); // // discussionForumsToolStripMenuItem // @@ -877,7 +876,7 @@ namespace OpenRA.Editor this.discussionForumsToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.discussionForumsToolStripMenuItem.Text = "Discussion &Forums"; this.discussionForumsToolStripMenuItem.ToolTipText = "Discuss OpenRA related matters in a bulletin board forum."; - this.discussionForumsToolStripMenuItem.Click += new System.EventHandler(this.discussionForumsToolStripMenuItemClick); + this.discussionForumsToolStripMenuItem.Click += new System.EventHandler(this.DiscussionForumsToolStripMenuItemClick); // // sourceCodeToolStripMenuItem // @@ -886,7 +885,7 @@ namespace OpenRA.Editor this.sourceCodeToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.sourceCodeToolStripMenuItem.Text = "Source &Code"; this.sourceCodeToolStripMenuItem.ToolTipText = "Browse and download the source code. Fix what annoys you. Patches are welcome."; - this.sourceCodeToolStripMenuItem.Click += new System.EventHandler(this.sourceCodeToolStripMenuItemClick); + this.sourceCodeToolStripMenuItem.Click += new System.EventHandler(this.SourceCodeToolStripMenuItemClick); // // issueTrackerToolStripMenuItem // @@ -895,7 +894,7 @@ namespace OpenRA.Editor this.issueTrackerToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.issueTrackerToolStripMenuItem.Text = "Issue &Tracker"; this.issueTrackerToolStripMenuItem.ToolTipText = "Report problems and request features."; - this.issueTrackerToolStripMenuItem.Click += new System.EventHandler(this.issueTrackerToolStripMenuItemClick); + this.issueTrackerToolStripMenuItem.Click += new System.EventHandler(this.IssueTrackerToolStripMenuItemClick); // // developerBountiesToolStripMenuItem // @@ -904,7 +903,7 @@ namespace OpenRA.Editor this.developerBountiesToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.developerBountiesToolStripMenuItem.Text = "Developer &Bounties"; this.developerBountiesToolStripMenuItem.ToolTipText = "Hire a developer to get OpenRA modified to your wishes."; - this.developerBountiesToolStripMenuItem.Click += new System.EventHandler(this.developerBountiesToolStripMenuItemClick); + this.developerBountiesToolStripMenuItem.Click += new System.EventHandler(this.DeveloperBountiesToolStripMenuItemClick); // // toolStripSeparator6 // @@ -918,7 +917,7 @@ namespace OpenRA.Editor this.aboutToolStripMenuItem.Name = "aboutToolStripMenuItem"; this.aboutToolStripMenuItem.Size = new System.Drawing.Size(183, 22); this.aboutToolStripMenuItem.Text = "&About"; - this.aboutToolStripMenuItem.Click += new System.EventHandler(this.aboutToolStripMenuItemClick); + this.aboutToolStripMenuItem.Click += new System.EventHandler(this.AboutToolStripMenuItemClick); // // statusStrip1 // @@ -949,43 +948,43 @@ namespace OpenRA.Editor // // BottomToolStripPanel // - this.BottomToolStripPanel.Dock = System.Windows.Forms.DockStyle.Bottom; - this.BottomToolStripPanel.Location = new System.Drawing.Point(0, 25); - this.BottomToolStripPanel.Name = "BottomToolStripPanel"; - this.BottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; - this.BottomToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.BottomToolStripPanel.Size = new System.Drawing.Size(985, 0); + this.bottomToolStripPanel.Dock = System.Windows.Forms.DockStyle.Bottom; + this.bottomToolStripPanel.Location = new System.Drawing.Point(0, 25); + this.bottomToolStripPanel.Name = "BottomToolStripPanel"; + this.bottomToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; + this.bottomToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.bottomToolStripPanel.Size = new System.Drawing.Size(985, 0); // // TopToolStripPanel // - this.TopToolStripPanel.Dock = System.Windows.Forms.DockStyle.Top; - this.TopToolStripPanel.Location = new System.Drawing.Point(0, 0); - this.TopToolStripPanel.Name = "TopToolStripPanel"; - this.TopToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; - this.TopToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); - this.TopToolStripPanel.Size = new System.Drawing.Size(985, 0); + this.topToolStripPanel.Dock = System.Windows.Forms.DockStyle.Top; + this.topToolStripPanel.Location = new System.Drawing.Point(0, 0); + this.topToolStripPanel.Name = "TopToolStripPanel"; + this.topToolStripPanel.Orientation = System.Windows.Forms.Orientation.Horizontal; + this.topToolStripPanel.RowMargin = new System.Windows.Forms.Padding(3, 0, 0, 0); + this.topToolStripPanel.Size = new System.Drawing.Size(985, 0); // // RightToolStripPanel // - this.RightToolStripPanel.Dock = System.Windows.Forms.DockStyle.Right; - this.RightToolStripPanel.Location = new System.Drawing.Point(985, 0); - this.RightToolStripPanel.Name = "RightToolStripPanel"; - this.RightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; - this.RightToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); - this.RightToolStripPanel.Size = new System.Drawing.Size(0, 25); + this.rightToolStripPanel.Dock = System.Windows.Forms.DockStyle.Right; + this.rightToolStripPanel.Location = new System.Drawing.Point(985, 0); + this.rightToolStripPanel.Name = "RightToolStripPanel"; + this.rightToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; + this.rightToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); + this.rightToolStripPanel.Size = new System.Drawing.Size(0, 25); // // LeftToolStripPanel // - this.LeftToolStripPanel.Dock = System.Windows.Forms.DockStyle.Left; - this.LeftToolStripPanel.Location = new System.Drawing.Point(0, 0); - this.LeftToolStripPanel.Name = "LeftToolStripPanel"; - this.LeftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; - this.LeftToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); - this.LeftToolStripPanel.Size = new System.Drawing.Size(0, 25); + this.leftToolStripPanel.Dock = System.Windows.Forms.DockStyle.Left; + this.leftToolStripPanel.Location = new System.Drawing.Point(0, 0); + this.leftToolStripPanel.Name = "LeftToolStripPanel"; + this.leftToolStripPanel.Orientation = System.Windows.Forms.Orientation.Vertical; + this.leftToolStripPanel.RowMargin = new System.Windows.Forms.Padding(0, 3, 0, 0); + this.leftToolStripPanel.Size = new System.Drawing.Size(0, 25); // // ContentPanel // - this.ContentPanel.Size = new System.Drawing.Size(985, 25); + this.contentPanel.Size = new System.Drawing.Size(985, 25); // // toolStripContainer1 // @@ -1039,7 +1038,7 @@ namespace OpenRA.Editor this.splitContainer2.Panel1.ResumeLayout(false); this.splitContainer2.Panel2.ResumeLayout(false); this.splitContainer2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pmMiniMap)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.miniMapBox)).EndInit(); this.tabControl1.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage2.ResumeLayout(false); @@ -1084,7 +1083,7 @@ namespace OpenRA.Editor private System.Windows.Forms.TabPage tabPage3; private System.Windows.Forms.FlowLayoutPanel resourcePalette; private Surface surface1; - private System.Windows.Forms.PictureBox pmMiniMap; + private System.Windows.Forms.PictureBox miniMapBox; private System.Windows.Forms.SplitContainer splitContainer2; private System.Windows.Forms.SplitContainer splitContainer3; private System.Windows.Forms.StatusStrip statusStrip1; @@ -1099,9 +1098,9 @@ namespace OpenRA.Editor private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; private System.Windows.Forms.ToolStripSeparator toolStripSeparator2; private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem cCRedAlertMapToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mnuExport; - private System.Windows.Forms.ToolStripMenuItem mnuMinimapToPNG; + private System.Windows.Forms.ToolStripMenuItem redAlertMapToolStripMenuItem; + private System.Windows.Forms.ToolStripMenuItem miniMapExport; + private System.Windows.Forms.ToolStripMenuItem miniMapToPng; private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem mapToolStripMenuItem; @@ -1133,12 +1132,12 @@ namespace OpenRA.Editor private System.Windows.Forms.ToolStrip toolStrip1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator; private System.Windows.Forms.ToolStripSeparator toolStripSeparator7; - private System.Windows.Forms.ToolStripButton QuickhelpToolStripButton; - private System.Windows.Forms.ToolStripPanel BottomToolStripPanel; - private System.Windows.Forms.ToolStripPanel TopToolStripPanel; - private System.Windows.Forms.ToolStripPanel RightToolStripPanel; - private System.Windows.Forms.ToolStripPanel LeftToolStripPanel; - private System.Windows.Forms.ToolStripContentPanel ContentPanel; + private System.Windows.Forms.ToolStripButton quickhelpToolStripButton; + private System.Windows.Forms.ToolStripPanel bottomToolStripPanel; + private System.Windows.Forms.ToolStripPanel topToolStripPanel; + private System.Windows.Forms.ToolStripPanel rightToolStripPanel; + private System.Windows.Forms.ToolStripPanel leftToolStripPanel; + private System.Windows.Forms.ToolStripContentPanel contentPanel; private System.Windows.Forms.ToolStripButton toolStripMenuItemNew; private System.Windows.Forms.ToolStripButton toolStripMenuItemOpen; private System.Windows.Forms.ToolStripButton toolStripMenuItemSave; @@ -1156,4 +1155,3 @@ namespace OpenRA.Editor private System.Windows.Forms.ToolStripMenuItem fullMapRenderToolStripMenuItem; } } - diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index 83fbc517b9..2efa448bf1 100755 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -43,7 +43,7 @@ namespace OpenRA.Editor actorPalette.ResumeLayout(); resourcePalette.ResumeLayout(); surface1.Bind(null, null, null, null); - pmMiniMap.Image = null; + miniMapBox.Image = null; currentMod = toolStripComboBox1.SelectedItem as string; Game.modData = new ModData(currentMod); @@ -69,13 +69,13 @@ namespace OpenRA.Editor void OnMapChanged() { MakeDirty(); - pmMiniMap.Image = Minimap.AddStaticResources(surface1.Map, Minimap.TerrainBitmap(surface1.Map, true)); + miniMapBox.Image = Minimap.AddStaticResources(surface1.Map, Minimap.TerrainBitmap(surface1.Map, true)); cashToolStripStatusLabel.Text = CalculateTotalResource().ToString(); } - void ActorDoubleClicked(KeyValuePair kv) + void ActorDoubleClicked(KeyValuePair kv) { - using( var apd = new ActorPropertiesDialog() ) + using (var apd = new ActorPropertiesDialog()) { var name = kv.Key; apd.AddRow("(Name)", apd.MakeEditorControl(typeof(string), () => name, v => name = (string)v)); @@ -84,11 +84,11 @@ namespace OpenRA.Editor var objSaved = kv.Value.Save(); // TODO: make this work properly - foreach( var init in Rules.Info[kv.Value.Type].GetInitKeys() ) + foreach (var init in Rules.Info[kv.Value.Type].GetInitKeys()) apd.AddRow(init.First, apd.MakeEditorControl(init.Second, - () => objSaved.NodesDict.ContainsKey( init.First ) ? objSaved.NodesDict[init.First].Value : null, - _ => {})); + () => objSaved.NodesDict.ContainsKey(init.First) ? objSaved.NodesDict[init.First].Value : null, + _ => { })); apd.ShowDialog(); @@ -120,7 +120,8 @@ namespace OpenRA.Editor map.MakeDefaultPlayers(); PrepareMapResources(Game.modData.Manifest, map); - //Calculate total net worth of resources in cash + + // Calculate total net worth of resources in cash cashToolStripStatusLabel.Text = CalculateTotalResource().ToString(); dirty = false; @@ -144,19 +145,20 @@ namespace OpenRA.Editor Rules.LoadRules(manifest, map); tileset = Rules.TileSets[map.Tileset]; tileset.LoadTiles(); - int[] ShadowIndex = { 3, 4 }; - var palette = new Palette(FileSystem.Open(tileset.Palette), ShadowIndex); + var shadowIndex = new int[] { 3, 4 }; + var palette = new Palette(FileSystem.Open(tileset.Palette), shadowIndex); // required for desert terrain in RA var playerPalette = tileset.PlayerPalette ?? tileset.Palette; - var PlayerPalette = new Palette(FileSystem.Open(playerPalette), ShadowIndex); + var shadowedPalette = new Palette(FileSystem.Open(playerPalette), shadowIndex); + + surface1.Bind(map, tileset, palette, shadowedPalette); - surface1.Bind(map, tileset, palette, PlayerPalette); // construct the palette of tiles var palettes = new[] { tilePalette, actorPalette, resourcePalette }; foreach (var p in palettes) { p.Visible = false; p.SuspendLayout(); } - string[] templateOrder = tileset.EditorTemplateOrder ?? new string[]{}; + var templateOrder = tileset.EditorTemplateOrder ?? new string[] { }; foreach (var tc in tileset.Templates.GroupBy(t => t.Value.Category).OrderBy(t => templateOrder.ToList().IndexOf(t.Key))) { var category = tc.Key ?? "(Uncategorized)"; @@ -170,15 +172,16 @@ namespace OpenRA.Editor TextAlign = ContentAlignment.MiddleLeft, Width = tilePalette.ClientSize.Width, }; + // hook this manually, anchoring inside FlowLayoutPanel is flaky. - tilePalette.Resize += (_,e) => categoryHeader.Width = tilePalette.ClientSize.Width; + tilePalette.Resize += (_, e) => categoryHeader.Width = tilePalette.ClientSize.Width; if (tilePalette.Controls.Count > 0) tilePalette.SetFlowBreak( tilePalette.Controls[tilePalette.Controls.Count - 1], true); tilePalette.Controls.Add(categoryHeader); - foreach( var t in tc ) + foreach (var t in tc) { try { @@ -196,12 +199,7 @@ namespace OpenRA.Editor var template = t.Value; tilePalette.Controls.Add(ibox); - tt.SetToolTip(ibox, - "{1}:{0} ({2}x{3})".F( - template.Image, - template.Id, - template.Size.X, - template.Size.Y)); + tt.SetToolTip(ibox, "{1}:{0} ({2}x{3})".F(template.Image, template.Id, template.Size.X, template.Size.Y)); } catch { } } @@ -222,13 +220,14 @@ namespace OpenRA.Editor if (etf != null && etf.RequireTilesets != null && !etf.RequireTilesets.Contains(tileset.Id)) continue; - var TemplatePalette = PlayerPalette; + var templatePalette = shadowedPalette; var rsi = info.Traits.GetOrDefault(); + // exception for desert buildings if (rsi != null && rsi.Palette != null && rsi.Palette.Contains("terrain")) - TemplatePalette = palette; + templatePalette = palette; - var template = RenderUtils.RenderActor(info, tileset, TemplatePalette); + var template = RenderUtils.RenderActor(info, tileset, templatePalette); var ibox = new PictureBox { Image = template.Bitmap, @@ -242,9 +241,7 @@ namespace OpenRA.Editor actorPalette.Controls.Add(ibox); - tt.SetToolTip(ibox, - "{0}".F( - info.Name)); + tt.SetToolTip(ibox, "{0}".F(info.Name)); actorTemplates.Add(template); } @@ -259,7 +256,7 @@ namespace OpenRA.Editor { try { - var template = RenderUtils.RenderResourceType(a, tileset.Extensions, PlayerPalette); + var template = RenderUtils.RenderResourceType(a, tileset.Extensions, shadowedPalette); var ibox = new PictureBox { Image = template.Bitmap, @@ -269,16 +266,11 @@ namespace OpenRA.Editor BorderStyle = BorderStyle.FixedSingle }; - - ibox.Click += (_, e) => surface1.SetTool(new ResourceTool(template)); resourcePalette.Controls.Add(ibox); - tt.SetToolTip(ibox, - "{0}:{1}cr".F( - template.Info.Name, - template.Info.ValuePerUnit)); + tt.SetToolTip(ibox, "{0}:{1}cr".F(template.Info.Name, template.Info.ValuePerUnit)); resourceTemplates.Add(template); } @@ -293,7 +285,7 @@ namespace OpenRA.Editor p.ResumeLayout(); } - pmMiniMap.Image = Minimap.AddStaticResources(surface1.Map, Minimap.TerrainBitmap(surface1.Map, true)); + miniMapBox.Image = Minimap.AddStaticResources(surface1.Map, Minimap.TerrainBitmap(surface1.Map, true)); propertiesToolStripMenuItem.Enabled = true; toolStripMenuItemProperties.Enabled = true; @@ -302,7 +294,7 @@ namespace OpenRA.Editor saveToolStripMenuItem.Enabled = true; toolStripMenuItemSave.Enabled = true; saveAsToolStripMenuItem.Enabled = true; - mnuMinimapToPNG.Enabled = true; // TODO: what is this VB naming bullshit doing here? + miniMapToPng.Enabled = true; PopulateActorOwnerChooser(); } @@ -319,24 +311,24 @@ namespace OpenRA.Editor { using (var rd = new ResizeDialog()) { - rd.width.Value = surface1.Map.MapSize.X; - rd.height.Value = surface1.Map.MapSize.Y; - rd.cordonLeft.Value = surface1.Map.Bounds.Left; - rd.cordonTop.Value = surface1.Map.Bounds.Top; - rd.cordonRight.Value = surface1.Map.Bounds.Right; - rd.cordonBottom.Value = surface1.Map.Bounds.Bottom; + rd.MapWidth.Value = surface1.Map.MapSize.X; + rd.MapHeight.Value = surface1.Map.MapSize.Y; + rd.CordonLeft.Value = surface1.Map.Bounds.Left; + rd.CordonTop.Value = surface1.Map.Bounds.Top; + rd.CordonRight.Value = surface1.Map.Bounds.Right; + rd.CordonBottom.Value = surface1.Map.Bounds.Bottom; if (DialogResult.OK != rd.ShowDialog()) return; - surface1.Map.ResizeCordon((int)rd.cordonLeft.Value, - (int)rd.cordonTop.Value, - (int)rd.cordonRight.Value, - (int)rd.cordonBottom.Value); + surface1.Map.ResizeCordon((int)rd.CordonLeft.Value, + (int)rd.CordonTop.Value, + (int)rd.CordonRight.Value, + (int)rd.CordonBottom.Value); - if ((int)rd.width.Value != surface1.Map.MapSize.X || (int)rd.height.Value != surface1.Map.MapSize.Y) + if ((int)rd.MapWidth.Value != surface1.Map.MapSize.X || (int)rd.MapHeight.Value != surface1.Map.MapSize.Y) { - surface1.Map.Resize((int)rd.width.Value, (int)rd.height.Value); + surface1.Map.Resize((int)rd.MapWidth.Value, (int)rd.MapHeight.Value); surface1.Bind(surface1.Map, surface1.TileSet, surface1.Palette, surface1.PlayerPalette); // rebind it to invalidate all caches } @@ -353,25 +345,24 @@ namespace OpenRA.Editor surface1.Map.Save(loadedMapName); dirty = false; } - } void SaveAsClicked(object sender, EventArgs e) { using (var nms = new MapSelect(currentMod)) { - nms.txtNew.ReadOnly = false; - nms.btnOk.Text = "Save"; - nms.txtNew.Text = "unnamed"; - nms.txtPathOut.ReadOnly = false; + nms.NewText.ReadOnly = false; + nms.ButtonOkay.Text = "Save"; + nms.NewText.Text = "unnamed"; + nms.PathOutText.ReadOnly = false; if (DialogResult.OK == nms.ShowDialog()) { - if (nms.txtNew.Text == "") - nms.txtNew.Text = "unnamed"; + if (nms.NewText.Text == "") + nms.NewText.Text = "unnamed"; // TODO: Allow the user to choose map format (directory vs oramap) - loadedMapName = Path.Combine(nms.MapFolderPath, nms.txtNew.Text + ".oramap"); + loadedMapName = Path.Combine(nms.MapFolderPath, nms.NewText.Text + ".oramap"); SaveClicked(sender, e); } } @@ -381,12 +372,12 @@ namespace OpenRA.Editor { using (var nms = new MapSelect(currentMod)) { - nms.txtNew.ReadOnly = true; - nms.txtPathOut.ReadOnly = true; - nms.btnOk.Text = "Open"; + nms.NewText.ReadOnly = true; + nms.PathOutText.ReadOnly = true; + nms.ButtonOkay.Text = "Open"; if (DialogResult.OK == nms.ShowDialog()) - LoadMap(nms.txtNew.Tag as string); + LoadMap(nms.NewText.Tag as string); } } @@ -394,17 +385,17 @@ namespace OpenRA.Editor { using (var nmd = new NewMapDialog()) { - nmd.theater.Items.Clear(); - nmd.theater.Items.AddRange(Rules.TileSets.Select(a => a.Value.Id).ToArray()); - nmd.theater.SelectedIndex = 0; + nmd.TheaterBox.Items.Clear(); + nmd.TheaterBox.Items.AddRange(Rules.TileSets.Select(a => a.Value.Id).ToArray()); + nmd.TheaterBox.SelectedIndex = 0; if (DialogResult.OK == nmd.ShowDialog()) { - var map = Map.FromTileset(nmd.theater.SelectedItem as string); + var map = Map.FromTileset(nmd.TheaterBox.SelectedItem as string); - map.Resize((int)nmd.width.Value, (int)nmd.height.Value); - map.ResizeCordon((int)nmd.cordonLeft.Value, (int)nmd.cordonTop.Value, - (int)nmd.cordonRight.Value, (int)nmd.cordonBottom.Value); + map.Resize((int)nmd.MapWidth.Value, (int)nmd.MapHeight.Value); + map.ResizeCordon((int)nmd.CordonLeft.Value, (int)nmd.CordonTop.Value, + (int)nmd.CordonRight.Value, (int)nmd.CordonBottom.Value); map.Players.Clear(); map.MakeDefaultPlayers(); @@ -418,20 +409,20 @@ namespace OpenRA.Editor { using (var pd = new PropertiesDialog()) { - pd.title.Text = surface1.Map.Title; - pd.desc.Text = surface1.Map.Description; - pd.author.Text = surface1.Map.Author; - pd.selectable.Checked = surface1.Map.Selectable; - pd.useAsShellmap.Checked = surface1.Map.UseAsShellmap; + pd.TitleBox.Text = surface1.Map.Title; + pd.DescBox.Text = surface1.Map.Description; + pd.AuthorBox.Text = surface1.Map.Author; + pd.SelectableCheckBox.Checked = surface1.Map.Selectable; + pd.ShellmapCheckBox.Checked = surface1.Map.UseAsShellmap; if (DialogResult.OK != pd.ShowDialog()) return; - surface1.Map.Title = pd.title.Text; - surface1.Map.Description = pd.desc.Text; - surface1.Map.Author = pd.author.Text; - surface1.Map.Selectable = pd.selectable.Checked; - surface1.Map.UseAsShellmap = pd.useAsShellmap.Checked; + surface1.Map.Title = pd.TitleBox.Text; + surface1.Map.Description = pd.DescBox.Text; + surface1.Map.Author = pd.AuthorBox.Text; + surface1.Map.Selectable = pd.SelectableCheckBox.Checked; + surface1.Map.UseAsShellmap = pd.ShellmapCheckBox.Checked; } } @@ -489,15 +480,18 @@ namespace OpenRA.Editor void ExportMinimap(object sender, EventArgs e) { - using( var sfd = new SaveFileDialog() { + using (var sfd = new SaveFileDialog() + { InitialDirectory = Path.Combine(Environment.CurrentDirectory, "maps"), DefaultExt = "*.png", Filter = "PNG Image (*.png)|*.png", Title = "Export Minimap to PNG", FileName = Path.ChangeExtension(loadedMapName, ".png"), - RestoreDirectory = true } ) - if (DialogResult.OK == sfd.ShowDialog()) - pmMiniMap.Image.Save(sfd.FileName); + RestoreDirectory = true + }) + + if (DialogResult.OK == sfd.ShowDialog()) + miniMapBox.Image.Save(sfd.FileName); } void ShowActorNamesClicked(object sender, EventArgs e) @@ -559,10 +553,10 @@ namespace OpenRA.Editor return; var color = player.Color.RGB; - using( var brush = new SolidBrush(color) ) - e.Graphics.FillRectangle( brush, e.Bounds.Left + 2, e.Bounds.Top + 2, e.Bounds.Height + 6, e.Bounds.Height - 4 ); - using( var foreBrush = new SolidBrush(e.ForeColor) ) - e.Graphics.DrawString( player.Name, e.Font, foreBrush, e.Bounds.Left + e.Bounds.Height + 12, e.Bounds.Top ); + using (var brush = new SolidBrush(color)) + e.Graphics.FillRectangle(brush, e.Bounds.Left + 2, e.Bounds.Top + 2, e.Bounds.Height + 6, e.Bounds.Height - 4); + using (var foreBrush = new SolidBrush(e.ForeColor)) + e.Graphics.DrawString(player.Name, e.Font, foreBrush, e.Bounds.Left + e.Bounds.Height + 12, e.Bounds.Top); } void OnSelectedPlayerChanged(object sender, EventArgs e) @@ -571,47 +565,47 @@ namespace OpenRA.Editor surface1.NewActorOwner = player.Name; } - private void copySelectionToolStripMenuItemClick(object sender, EventArgs e) + void CopySelectionToolStripMenuItemClick(object sender, EventArgs e) { surface1.CopySelection(); } - private void openRAWebsiteToolStripMenuItemClick(object sender, EventArgs e) + void OpenRAWebsiteToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://www.open-ra.org"); } - private void openRAResourcesToolStripMenuItemClick(object sender, EventArgs e) + void OpenRAResourcesToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://content.open-ra.org"); } - private void wikiDocumentationToolStripMenuItemClick(object sender, EventArgs e) + void WikiDocumentationToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://github.com/OpenRA/OpenRA/wiki"); } - private void discussionForumsToolStripMenuItemClick(object sender, EventArgs e) + void DiscussionForumsToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://www.sleipnirstuff.com/forum/viewforum.php?f=80"); } - private void issueTrackerToolStripMenuItemClick(object sender, EventArgs e) + void IssueTrackerToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://github.com/OpenRA/OpenRA/issues"); } - private void developerBountiesToolStripMenuItemClick(object sender, EventArgs e) + void DeveloperBountiesToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("https://www.bountysource.com/#repos/OpenRA/OpenRA"); } - private void sourceCodeToolStripMenuItemClick(object sender, EventArgs e) + void SourceCodeToolStripMenuItemClick(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://github.com/OpenRA/OpenRA"); } - private void aboutToolStripMenuItemClick(object sender, EventArgs e) + void AboutToolStripMenuItemClick(object sender, EventArgs e) { MessageBox.Show("OpenRA and OpenRA Editor are Free/Libre Open Source Software released under the GNU General Public License version 3. See AUTHORS and COPYING for details.", "About", @@ -619,74 +613,75 @@ namespace OpenRA.Editor MessageBoxIcon.Asterisk); } - private void helpToolStripButton_Click(object sender, EventArgs e) + void HelpToolStripButton_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start("http://github.com/OpenRA/OpenRA/wiki/Mapping"); } - private void toolStripMenuItemNewClick(object sender, EventArgs e) + void ToolStripMenuItemNewClick(object sender, EventArgs e) { NewClicked(sender, e); } - private void toolStripMenuItemOpenClick(object sender, EventArgs e) + void ToolStripMenuItemOpenClick(object sender, EventArgs e) { OpenClicked(sender, e); } - private void toolStripMenuItemSaveClick(object sender, EventArgs e) + void ToolStripMenuItemSaveClick(object sender, EventArgs e) { SaveClicked(sender, e); } - private void toolStripMenuItemPropertiesClick(object sender, EventArgs e) + void ToolStripMenuItemPropertiesClick(object sender, EventArgs e) { PropertiesClicked(sender, e); } - private void toolStripMenuItemResizeClick(object sender, EventArgs e) + void ToolStripMenuItemResizeClick(object sender, EventArgs e) { ResizeClicked(sender, e); } - private void toolStripMenuItemShowActorNamesClick(object sender, EventArgs e) + void ToolStripMenuItemShowActorNamesClick(object sender, EventArgs e) { ShowActorNamesClicked(sender, e); } - private void toolStripMenuItemFixOpenAreasClick(object sender, EventArgs e) + void ToolStripMenuItemFixOpenAreasClick(object sender, EventArgs e) { FixOpenAreas(sender, e); } - private void toolStripMenuItemSetupDefaultPlayersClick(object sender, EventArgs e) + void ToolStripMenuItemSetupDefaultPlayersClick(object sender, EventArgs e) { SetupDefaultPlayers(sender, e); } - private void toolStripMenuItemCopySelectionClick(object sender, EventArgs e) + void ToolStripMenuItemCopySelectionClick(object sender, EventArgs e) { - copySelectionToolStripMenuItemClick(sender, e); + CopySelectionToolStripMenuItemClick(sender, e); } - private void toolStripMenuItemShowGridClick(object sender, EventArgs e) + void ToolStripMenuItemShowGridClick(object sender, EventArgs e) { ShowGridClicked(sender, e); } public int CalculateTotalResource() { - int TotalResource = 0; - for(int i = 0; i < surface1.Map.MapSize.X; i++) + int totalResource = 0; + for (int i = 0; i < surface1.Map.MapSize.X; i++) for (int j = 0; j < surface1.Map.MapSize.Y; j++) { if (surface1.Map.MapResources.Value[i, j].type != 0) - TotalResource += GetResourceValue(i, j); + totalResource += GetResourceValue(i, j); } - return TotalResource; + + return totalResource; } - int GetAdjecentCellsWith(int ResourceType, int x, int y) + int GetAdjecentCellsWith(int resourceType, int x, int y) { int sum = 0; for (var u = -1; u < 2; u++) @@ -694,27 +689,28 @@ namespace OpenRA.Editor { if (!surface1.Map.IsInMap(new CPos(x + u, y + v))) continue; - if (surface1.Map.MapResources.Value[x + u, y + v].type == ResourceType) + if (surface1.Map.MapResources.Value[x + u, y + v].type == resourceType) ++sum; } + return sum; } int GetResourceValue(int x, int y) { - int ImageLength = 0; + int imageLength = 0; int type = surface1.Map.MapResources.Value[x, y].type; var template = surface1.ResourceTemplates.Where(a => a.Value.Info.ResourceType == type).FirstOrDefault().Value; if (type == 1) - ImageLength = 12; + imageLength = 12; else if (type == 2) - ImageLength = 3; - int density = (GetAdjecentCellsWith(type ,x , y) * ImageLength - 1) / 9; + imageLength = 3; + int density = (GetAdjecentCellsWith(type, x, y) * imageLength - 1) / 9; int value = template.Info.ValuePerUnit; - return (density) * value; + return density * value; } - void zoomInToolStripButtonClick(object sender, System.EventArgs e) + void ZoomInToolStripButtonClick(object sender, System.EventArgs e) { if (surface1.Map == null) return; @@ -723,7 +719,7 @@ namespace OpenRA.Editor surface1.Invalidate(); } - void zoomOutToolStripButtonClick(object sender, System.EventArgs e) + void ZoomOutToolStripButtonClick(object sender, System.EventArgs e) { if (surface1.Map == null) return; @@ -732,13 +728,13 @@ namespace OpenRA.Editor surface1.Invalidate(); } - void panToolStripButtonClick(object sender, System.EventArgs e) + void PanToolStripButtonClick(object sender, System.EventArgs e) { panToolStripButton.Checked ^= true; surface1.IsPanning = panToolStripButton.Checked; } - void showRulerToolStripMenuItemClick(object sender, EventArgs e) + void ShowRulerToolStripMenuItemClick(object sender, EventArgs e) { showRulerToolStripMenuItem.Checked ^= true; showRulerToolStripItem.Checked ^= true; @@ -746,9 +742,9 @@ namespace OpenRA.Editor surface1.Chunks.Clear(); } - void showRulerToolStripItemClick(object sender, System.EventArgs e) + void ShowRulerToolStripItemClick(object sender, System.EventArgs e) { - showRulerToolStripMenuItemClick(sender, e); + ShowRulerToolStripMenuItemClick(sender, e); } void EraserToolStripButtonClick(object sender, System.EventArgs e) @@ -757,4 +753,4 @@ namespace OpenRA.Editor surface1.IsErasing = eraserToolStripButton.Checked; } } -} +} \ No newline at end of file diff --git a/OpenRA.Editor/LegacyMapImporter.cs b/OpenRA.Editor/LegacyMapImporter.cs index f1bf2208e4..778366a6ef 100644 --- a/OpenRA.Editor/LegacyMapImporter.cs +++ b/OpenRA.Editor/LegacyMapImporter.cs @@ -23,7 +23,7 @@ namespace OpenRA.Editor public class LegacyMapImporter { // Mapping from ra overlay index to type string - static string[] raOverlayNames = + static string[] redAlertOverlayNames = { "sbag", "cycl", "brik", "fenc", "wood", "gold01", "gold02", "gold03", "gold04", @@ -34,73 +34,77 @@ namespace OpenRA.Editor static Dictionary> overlayResourceMapping = new Dictionary>() { - // RA Gems, Gold - { "gold01", new Pair(1,0) }, - { "gold02", new Pair(1,1) }, - { "gold03", new Pair(1,2) }, - { "gold04", new Pair(1,3) }, + // RA Gold & Gems + { "gold01", new Pair(1, 0) }, + { "gold02", new Pair(1, 1) }, + { "gold03", new Pair(1, 2) }, + { "gold04", new Pair(1, 3) }, + { "gem01", new Pair(2, 0) }, + { "gem02", new Pair(2, 1) }, + { "gem03", new Pair(2, 2) }, + { "gem04", new Pair(2, 3) }, - { "gem01", new Pair(2,0) }, - { "gem02", new Pair(2,1) }, - { "gem03", new Pair(2,2) }, - { "gem04", new Pair(2,3) }, - - // cnc tiberium - { "ti1", new Pair(1,0) }, - { "ti2", new Pair(1,1) }, - { "ti3", new Pair(1,2) }, - { "ti4", new Pair(1,3) }, - { "ti5", new Pair(1,4) }, - { "ti6", new Pair(1,5) }, - { "ti7", new Pair(1,6) }, - { "ti8", new Pair(1,7) }, - { "ti9", new Pair(1,8) }, - { "ti10", new Pair(1,9) }, - { "ti11", new Pair(1,10) }, - { "ti12", new Pair(1,11) }, + // CnC Tiberium + { "ti1", new Pair(1, 0) }, + { "ti2", new Pair(1, 1) }, + { "ti3", new Pair(1, 2) }, + { "ti4", new Pair(1, 3) }, + { "ti5", new Pair(1, 4) }, + { "ti6", new Pair(1, 5) }, + { "ti7", new Pair(1, 6) }, + { "ti8", new Pair(1, 7) }, + { "ti9", new Pair(1, 8) }, + { "ti10", new Pair(1, 9) }, + { "ti11", new Pair(1, 10) }, + { "ti12", new Pair(1, 11) }, }; static Dictionary overlayActorMapping = new Dictionary() { // Fences - {"sbag","sbag"}, - {"cycl","cycl"}, - {"brik","brik"}, - {"fenc","fenc"}, - {"wood","wood"}, + { "sbag", "sbag" }, + { "cycl", "cycl" }, + { "brik", "brik" }, + { "fenc", "fenc" }, + { "wood", "wood" }, // Fields - {"v12","v12"}, - {"v13","v13"}, - {"v14","v14"}, - {"v15","v15"}, - {"v16","v16"}, - {"v17","v17"}, - {"v18","v18"}, + { "v12", "v12" }, + { "v13", "v13" }, + { "v14", "v14" }, + { "v15", "v15" }, + { "v16", "v16" }, + { "v17", "v17" }, + { "v18", "v18" }, // Crates -// {"wcrate","crate"}, -// {"scrate","crate"}, +// { "wcrate", "crate" }, +// { "scrate", "crate" }, }; // TODO: fix this -- will have bitrotted pretty badly. static Dictionary namedColorMapping = new Dictionary() { - { "gold", HSLColor.FromRGB(246,214,121) }, - { "blue", HSLColor.FromRGB(226,230,246) }, - { "red", HSLColor.FromRGB(255,20,0) }, - { "neutral", HSLColor.FromRGB(238,238,238) }, - { "orange", HSLColor.FromRGB(255,230,149) }, - { "teal", HSLColor.FromRGB(93,194,165) }, - { "salmon", HSLColor.FromRGB(210,153,125) }, - { "green", HSLColor.FromRGB(160,240,140) }, - { "white", HSLColor.FromRGB(255,255,255) }, - { "black", HSLColor.FromRGB(80,80,80) }, + { "gold", HSLColor.FromRGB(246, 214, 121) }, + { "blue", HSLColor.FromRGB(226, 230, 246) }, + { "red", HSLColor.FromRGB(255, 20, 0) }, + { "neutral", HSLColor.FromRGB(238, 238, 238) }, + { "orange", HSLColor.FromRGB(255, 230, 149) }, + { "teal", HSLColor.FromRGB(93, 194, 165) }, + { "salmon", HSLColor.FromRGB(210, 153, 125) }, + { "green", HSLColor.FromRGB(160, 240, 140) }, + { "white", HSLColor.FromRGB(255, 255, 255) }, + { "black", HSLColor.FromRGB(80, 80, 80) }, }; - int MapSize; - int ActorCount = 0; - Map Map = new Map(); - List Players = new List(); + static string Truncate(string s, int maxLength) + { + return s.Length <= maxLength ? s : s.Substring(0, maxLength); + } + + int mapSize; + int actorCount = 0; + Map map = new Map(); + List players = new List(); Action errorHandler; LegacyMapImporter(string filename, Action errorHandler) @@ -112,36 +116,35 @@ namespace OpenRA.Editor public static Map Import(string filename, Action errorHandler) { var converter = new LegacyMapImporter(filename, errorHandler); - return converter.Map; + return converter.map; } - enum IniMapFormat { RedAlert = 3, /* otherwise, cnc (2 variants exist, we don't care to differentiate) */ }; + enum IniMapFormat { RedAlert = 3 } // otherwise, cnc (2 variants exist, we don't care to differentiate) public void ConvertIniMap(string iniFile) { - var file = new IniFile(FileSystem.Open(iniFile)); var basic = file.GetSection("Basic"); - var map = file.GetSection("Map"); + var mapSection = file.GetSection("Map"); var legacyMapFormat = (IniMapFormat)int.Parse(basic.GetValue("NewINIFormat", "0")); - var XOffset = int.Parse(map.GetValue("X", "0")); - var YOffset = int.Parse(map.GetValue("Y", "0")); - var Width = int.Parse(map.GetValue("Width", "0")); - var Height = int.Parse(map.GetValue("Height", "0")); - MapSize = (legacyMapFormat == IniMapFormat.RedAlert) ? 128 : 64; + var offsetX = int.Parse(mapSection.GetValue("X", "0")); + var offsetY = int.Parse(mapSection.GetValue("Y", "0")); + var width = int.Parse(mapSection.GetValue("Width", "0")); + var height = int.Parse(mapSection.GetValue("Height", "0")); + mapSize = (legacyMapFormat == IniMapFormat.RedAlert) ? 128 : 64; - Map.Title = basic.GetValue("Name", "(null)"); - Map.Author = "Westwood Studios"; - Map.Tileset = Truncate(map.GetValue("Theater", "TEMPERAT"), 8); - Map.MapSize.X = MapSize; - Map.MapSize.Y = MapSize; - Map.Bounds = Rectangle.FromLTRB(XOffset, YOffset, XOffset + Width, YOffset + Height); - Map.Selectable = true; + map.Title = basic.GetValue("Name", "(null)"); + map.Author = "Westwood Studios"; + map.Tileset = Truncate(mapSection.GetValue("Theater", "TEMPERAT"), 8); + map.MapSize.X = mapSize; + map.MapSize.Y = mapSize; + map.Bounds = Rectangle.FromLTRB(offsetX, offsetY, offsetX + width, offsetY + height); + map.Selectable = true; - Map.Smudges = Lazy.New(() => new List()); - Map.Actors = Lazy.New(() => new Dictionary()); - Map.MapResources = Lazy.New(() => new TileReference[MapSize, MapSize]); - Map.MapTiles = Lazy.New(() => new TileReference[MapSize, MapSize]); + map.Smudges = Lazy.New(() => new List()); + map.Actors = Lazy.New(() => new Dictionary()); + map.MapResources = Lazy.New(() => new TileReference[mapSize, mapSize]); + map.MapTiles = Lazy.New(() => new TileReference[mapSize, mapSize]); if (legacyMapFormat == IniMapFormat.RedAlert) { @@ -149,8 +152,9 @@ namespace OpenRA.Editor UnpackRAOverlayData(ReadPackedSection(file.GetSection("OverlayPack"))); ReadRATrees(file); } - else // CNC + else { + // CnC UnpackCncTileData(FileSystem.Open(iniFile.Substring(0, iniFile.Length - 4) + ".bin")); ReadCncOverlay(file); ReadCncTrees(file); @@ -161,25 +165,23 @@ namespace OpenRA.Editor LoadActors(file, "INFANTRY"); LoadSmudges(file, "SMUDGE"); - foreach (var p in Players) - LoadPlayer(file, p, (legacyMapFormat == IniMapFormat.RedAlert)); + foreach (var p in players) + LoadPlayer(file, p, legacyMapFormat == IniMapFormat.RedAlert); var wps = file.GetSection("Waypoints") .Where(kv => int.Parse(kv.Value) > 0) .Select(kv => Pair.New(int.Parse(kv.Key), - LocationFromMapOffset(int.Parse(kv.Value), MapSize))) + LocationFromMapOffset(int.Parse(kv.Value), mapSize))) .ToArray(); - // Add waypoint actors - foreach( var kv in wps ) + foreach (var kv in wps) { var a = new ActorReference("waypoint"); a.Add(new LocationInit((CPos)kv.Second)); a.Add(new OwnerInit("Neutral")); - Map.Actors.Value.Add("waypoint" + kv.First, a); + map.Actors.Value.Add("waypoint" + kv.First, a); } - } static int2 LocationFromMapOffset(int offset, int mapSize) @@ -190,7 +192,7 @@ namespace OpenRA.Editor static MemoryStream ReadPackedSection(IniSection mapPackSection) { var sb = new StringBuilder(); - for (int i = 1; ; i++) + for (int i = 1;; i++) { var line = mapPackSection.GetValue(i.ToString(), null); if (line == null) @@ -246,38 +248,38 @@ namespace OpenRA.Editor void UnpackRATileData(MemoryStream ms) { - for (int i = 0; i < MapSize; i++) - for (int j = 0; j < MapSize; j++) - Map.MapTiles.Value[i, j] = new TileReference(); + for (int i = 0; i < mapSize; i++) + for (int j = 0; j < mapSize; j++) + map.MapTiles.Value[i, j] = new TileReference(); - for (int j = 0; j < MapSize; j++) - for (int i = 0; i < MapSize; i++) - Map.MapTiles.Value[i, j].type = ReadWord(ms); + for (int j = 0; j < mapSize; j++) + for (int i = 0; i < mapSize; i++) + map.MapTiles.Value[i, j].type = ReadWord(ms); - for (int j = 0; j < MapSize; j++) - for (int i = 0; i < MapSize; i++) - Map.MapTiles.Value[i, j].index = ReadByte(ms); + for (int j = 0; j < mapSize; j++) + for (int i = 0; i < mapSize; i++) + map.MapTiles.Value[i, j].index = ReadByte(ms); } void UnpackRAOverlayData(MemoryStream ms) { - for (int j = 0; j < MapSize; j++) - for (int i = 0; i < MapSize; i++) + for (int j = 0; j < mapSize; j++) + for (int i = 0; i < mapSize; i++) { byte o = ReadByte(ms); var res = Pair.New((byte)0, (byte)0); - if (o != 255 && overlayResourceMapping.ContainsKey(raOverlayNames[o])) - res = overlayResourceMapping[raOverlayNames[o]]; + if (o != 255 && overlayResourceMapping.ContainsKey(redAlertOverlayNames[o])) + res = overlayResourceMapping[redAlertOverlayNames[o]]; - Map.MapResources.Value[i, j] = new TileReference(res.First, res.Second); + map.MapResources.Value[i, j] = new TileReference(res.First, res.Second); - if (o != 255 && overlayActorMapping.ContainsKey(raOverlayNames[o])) - Map.Actors.Value.Add("Actor" + ActorCount++, - new ActorReference(overlayActorMapping[raOverlayNames[o]]) + if (o != 255 && overlayActorMapping.ContainsKey(redAlertOverlayNames[o])) + map.Actors.Value.Add("Actor" + actorCount++, + new ActorReference(overlayActorMapping[redAlertOverlayNames[o]]) { - new LocationInit( new CPos(i, j) ), - new OwnerInit( "Neutral" ) + new LocationInit(new CPos(i, j)), + new OwnerInit("Neutral") }); } } @@ -291,10 +293,10 @@ namespace OpenRA.Editor foreach (KeyValuePair kv in terrain) { var loc = int.Parse(kv.Key); - Map.Actors.Value.Add("Actor" + ActorCount++, + map.Actors.Value.Add("Actor" + actorCount++, new ActorReference(kv.Value.ToLowerInvariant()) { - new LocationInit(new CPos(loc % MapSize, loc / MapSize)), + new LocationInit(new CPos(loc % mapSize, loc / mapSize)), new OwnerInit("Neutral") }); } @@ -302,15 +304,15 @@ namespace OpenRA.Editor void UnpackCncTileData(Stream ms) { - for (int i = 0; i < MapSize; i++) - for (int j = 0; j < MapSize; j++) - Map.MapTiles.Value[i, j] = new TileReference(); + for (int i = 0; i < mapSize; i++) + for (int j = 0; j < mapSize; j++) + map.MapTiles.Value[i, j] = new TileReference(); - for (int j = 0; j < MapSize; j++) - for (int i = 0; i < MapSize; i++) + for (int j = 0; j < mapSize; j++) + for (int i = 0; i < mapSize; i++) { - Map.MapTiles.Value[i, j].type = ReadByte(ms); - Map.MapTiles.Value[i, j].index = ReadByte(ms); + map.MapTiles.Value[i, j].type = ReadByte(ms); + map.MapTiles.Value[i, j].index = ReadByte(ms); } } @@ -323,16 +325,16 @@ namespace OpenRA.Editor foreach (KeyValuePair kv in overlay) { var loc = int.Parse(kv.Key); - var cell = new CPos(loc % MapSize, loc / MapSize); + var cell = new CPos(loc % mapSize, loc / mapSize); var res = Pair.New((byte)0, (byte)0); if (overlayResourceMapping.ContainsKey(kv.Value.ToLower())) res = overlayResourceMapping[kv.Value.ToLower()]; - Map.MapResources.Value[cell.X, cell.Y] = new TileReference(res.First, res.Second); + map.MapResources.Value[cell.X, cell.Y] = new TileReference(res.First, res.Second); if (overlayActorMapping.ContainsKey(kv.Value.ToLower())) - Map.Actors.Value.Add("Actor" + ActorCount++, + map.Actors.Value.Add("Actor" + actorCount++, new ActorReference(overlayActorMapping[kv.Value.ToLower()]) { new LocationInit(cell), @@ -350,10 +352,10 @@ namespace OpenRA.Editor foreach (KeyValuePair kv in terrain) { var loc = int.Parse(kv.Key); - Map.Actors.Value.Add("Actor" + ActorCount++, + map.Actors.Value.Add("Actor" + actorCount++, new ActorReference(kv.Value.Split(',')[0].ToLowerInvariant()) { - new LocationInit(new CPos(loc % MapSize, loc / MapSize)), + new LocationInit(new CPos(loc % mapSize, loc / mapSize)), new OwnerInit("Neutral") }); } @@ -363,26 +365,24 @@ namespace OpenRA.Editor { foreach (var s in file.GetSection(section, true)) { - //Structures: num=owner,type,health,location,turret-facing,trigger - //Units: num=owner,type,health,location,facing,action,trigger - //Infantry: num=owner,type,health,location,subcell,action,facing,trigger - + // Structures: num=owner,type,health,location,turret-facing,trigger + // Units: num=owner,type,health,location,facing,action,trigger + // Infantry: num=owner,type,health,location,subcell,action,facing,trigger try { - var parts = s.Value.Split(','); var loc = int.Parse(parts[3]); if (parts[0] == "") parts[0] = "Neutral"; - if (!Players.Contains(parts[0])) - Players.Add(parts[0]); + if (!players.Contains(parts[0])) + players.Add(parts[0]); var actor = new ActorReference(parts[1].ToLowerInvariant()) { - new LocationInit(new CPos(loc % MapSize, loc / MapSize)), + new LocationInit(new CPos(loc % mapSize, loc / mapSize)), new OwnerInit(parts[0]), - new HealthInit(float.Parse(parts[2], NumberFormatInfo.InvariantInfo)/256), + new HealthInit(float.Parse(parts[2], NumberFormatInfo.InvariantInfo) / 256), new FacingInit((section == "INFANTRY") ? int.Parse(parts[6]) : int.Parse(parts[4])), }; @@ -392,7 +392,7 @@ namespace OpenRA.Editor if (!Rules.Info.ContainsKey(parts[1].ToLowerInvariant())) errorHandler("Ignoring unknown actor type: `{0}`".F(parts[1].ToLowerInvariant())); else - Map.Actors.Value.Add("Actor" + ActorCount++, actor); + map.Actors.Value.Add("Actor" + actorCount++, actor); } catch (Exception) { @@ -405,10 +405,10 @@ namespace OpenRA.Editor { foreach (var s in file.GetSection(section, true)) { - //loc=type,loc,depth + // loc=type,loc,depth var parts = s.Value.Split(','); var loc = int.Parse(parts[1]); - Map.Smudges.Value.Add(new SmudgeReference(parts[0].ToLowerInvariant(), new int2(loc % MapSize, loc / MapSize), int.Parse(parts[2]))); + map.Smudges.Value.Add(new SmudgeReference(parts[0].ToLowerInvariant(), new int2(loc % mapSize, loc / mapSize), int.Parse(parts[2]))); } } @@ -444,7 +444,7 @@ namespace OpenRA.Editor break; case "Greece": case "GoodGuy": - c = isRA? "blue" : "gold"; + c = isRA ? "blue" : "gold"; race = isRA ? "allies" : "gdi"; break; case "USSR": @@ -469,28 +469,23 @@ namespace OpenRA.Editor Color = namedColorMapping[c] }; - var neutral = new [] {"Neutral"}; + var neutral = new[] { "Neutral" }; foreach (var s in file.GetSection(section, true)) { Console.WriteLine(s.Key); - switch(s.Key) + switch (s.Key) { case "Credits": pr.InitialCash = int.Parse(s.Value); break; case "Allies": - pr.Allies = s.Value.Split(',').Intersect(Players).Except(neutral).ToArray(); - pr.Enemies = s.Value.Split(',').SymmetricDifference(Players).Except(neutral).ToArray(); + pr.Allies = s.Value.Split(',').Intersect(players).Except(neutral).ToArray(); + pr.Enemies = s.Value.Split(',').SymmetricDifference(players).Except(neutral).ToArray(); break; } } - Map.Players.Add(section, pr); - } - - static string Truncate(string s, int maxLength) - { - return s.Length <= maxLength ? s : s.Substring(0, maxLength); + map.Players.Add(section, pr); } } } diff --git a/OpenRA.Editor/MapSelect.Designer.cs b/OpenRA.Editor/MapSelect.Designer.cs index 8595601962..6ac220dbef 100644 --- a/OpenRA.Editor/MapSelect.Designer.cs +++ b/OpenRA.Editor/MapSelect.Designer.cs @@ -22,53 +22,49 @@ namespace OpenRA.Editor { components.Dispose(); } + base.Dispose(disposing); } - #region Код, автоматически созданный конструктором форм Windows - // TODO: private void InitializeComponent() { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MapSelect)); this.MapList = new System.Windows.Forms.ListView(); - this.colMapName = new System.Windows.Forms.ColumnHeader("(отсутствует)"); + this.ColumnMapName = new System.Windows.Forms.ColumnHeader("(none)"); this.MapIconsList = new System.Windows.Forms.ImageList(this.components); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOk = new System.Windows.Forms.Button(); - this.lblNew = new System.Windows.Forms.Label(); - this.txtNew = new System.Windows.Forms.TextBox(); - this.pbMinimap = new System.Windows.Forms.PictureBox(); - this.pnlBottom = new System.Windows.Forms.Panel(); - this.txtPathOut = new System.Windows.Forms.TextBox(); - this.lblPathOut = new System.Windows.Forms.Label(); - this.lblPath = new System.Windows.Forms.Label(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lblMapList = new System.Windows.Forms.Label(); - this.txtDesc = new System.Windows.Forms.TextBox(); - this.lblDesc = new System.Windows.Forms.Label(); - this.txtTheater = new System.Windows.Forms.TextBox(); - this.lblTheater = new System.Windows.Forms.Label(); - this.txtAuthor = new System.Windows.Forms.TextBox(); - this.lblAuthor = new System.Windows.Forms.Label(); - this.txtTitle = new System.Windows.Forms.TextBox(); - this.lblMapName = new System.Windows.Forms.Label(); - this.lblMinimap = new System.Windows.Forms.Label(); + this.ButtonCancel = new System.Windows.Forms.Button(); + this.ButtonOkay = new System.Windows.Forms.Button(); + this.NewLabel = new System.Windows.Forms.Label(); + this.NewText = new System.Windows.Forms.TextBox(); + this.MiniMapBox = new System.Windows.Forms.PictureBox(); + this.BottomPanel = new System.Windows.Forms.Panel(); + this.PathOutText = new System.Windows.Forms.TextBox(); + this.PathOutLabel = new System.Windows.Forms.Label(); + this.PathLabel = new System.Windows.Forms.Label(); + this.SplitContainer1 = new System.Windows.Forms.SplitContainer(); + this.MapListLabel = new System.Windows.Forms.Label(); + this.DescTxt = new System.Windows.Forms.TextBox(); + this.DescLabel = new System.Windows.Forms.Label(); + this.TheaterText = new System.Windows.Forms.TextBox(); + this.TheaterLabel = new System.Windows.Forms.Label(); + this.AuthorText = new System.Windows.Forms.TextBox(); + this.AuthorLabel = new System.Windows.Forms.Label(); + this.TitleText = new System.Windows.Forms.TextBox(); + this.MapNameLabel = new System.Windows.Forms.Label(); + this.MiniMapLabel = new System.Windows.Forms.Label(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.pbMinimap)).BeginInit(); - this.pnlBottom.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)this.MiniMapBox).BeginInit(); + this.BottomPanel.SuspendLayout(); + this.SplitContainer1.Panel1.SuspendLayout(); + this.SplitContainer1.Panel2.SuspendLayout(); + this.SplitContainer1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)this.pictureBox1).BeginInit(); this.SuspendLayout(); - // - // MapList - // + this.MapList.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.MapList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { - this.colMapName}); + this.MapList.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.ColumnMapName }); this.MapList.FullRowSelect = true; this.MapList.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None; this.MapList.LargeImageList = this.MapIconsList; @@ -82,250 +78,198 @@ namespace OpenRA.Editor this.MapList.UseCompatibleStateImageBehavior = false; this.MapList.View = System.Windows.Forms.View.Details; this.MapList.SelectedIndexChanged += new System.EventHandler(this.MapList_SelectedIndexChanged); - // - // colMapName - // - this.colMapName.Text = "Map name"; - this.colMapName.Width = 240; - // - // MapIconsList - // + + this.ColumnMapName.Text = "Map name"; + this.ColumnMapName.Width = 240; + this.MapIconsList.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit; this.MapIconsList.ImageSize = new System.Drawing.Size(24, 24); this.MapIconsList.TransparentColor = System.Drawing.Color.Transparent; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(407, 35); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // btnOk - // - this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOk.Location = new System.Drawing.Point(326, 35); - this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(75, 23); - this.btnOk.TabIndex = 2; - this.btnOk.Text = "Open"; - this.btnOk.UseVisualStyleBackColor = true; - // - // lblNew - // - this.lblNew.AutoSize = true; - this.lblNew.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblNew.Location = new System.Drawing.Point(12, 40); - this.lblNew.Name = "lblNew"; - this.lblNew.Size = new System.Drawing.Size(69, 13); - this.lblNew.TabIndex = 3; - this.lblNew.Text = "Map name:"; - // - // txtNew - // - this.txtNew.BackColor = System.Drawing.SystemColors.Window; - this.txtNew.Location = new System.Drawing.Point(88, 37); - this.txtNew.Name = "txtNew"; - this.txtNew.ReadOnly = true; - this.txtNew.Size = new System.Drawing.Size(232, 20); - this.txtNew.TabIndex = 1; - // - // pbMinimap - // - this.pbMinimap.BackColor = System.Drawing.Color.Black; - this.pbMinimap.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.pbMinimap.Location = new System.Drawing.Point(32, 25); - this.pbMinimap.Name = "pbMinimap"; - this.pbMinimap.Size = new System.Drawing.Size(124, 124); - this.pbMinimap.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; - this.pbMinimap.TabIndex = 5; - this.pbMinimap.TabStop = false; - // - // pnlBottom - // - this.pnlBottom.Controls.Add(this.pictureBox1); - this.pnlBottom.Controls.Add(this.txtPathOut); - this.pnlBottom.Controls.Add(this.lblPathOut); - this.pnlBottom.Controls.Add(this.lblPath); - this.pnlBottom.Controls.Add(this.btnCancel); - this.pnlBottom.Controls.Add(this.btnOk); - this.pnlBottom.Controls.Add(this.txtNew); - this.pnlBottom.Controls.Add(this.lblNew); - this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Bottom; - this.pnlBottom.Location = new System.Drawing.Point(0, 332); - this.pnlBottom.MaximumSize = new System.Drawing.Size(0, 70); - this.pnlBottom.Name = "pnlBottom"; - this.pnlBottom.Size = new System.Drawing.Size(494, 70); - this.pnlBottom.TabIndex = 6; - // - // txtPathOut - // - this.txtPathOut.BackColor = System.Drawing.SystemColors.Window; - this.txtPathOut.Location = new System.Drawing.Point(55, 10); - this.txtPathOut.Name = "txtPathOut"; - this.txtPathOut.ReadOnly = true; - this.txtPathOut.Size = new System.Drawing.Size(265, 20); - this.txtPathOut.TabIndex = 0; - this.txtPathOut.TextChanged += new System.EventHandler(this.txtPathOut_TextChanged); - // - // lblPathOut - // - this.lblPathOut.AutoSize = true; - this.lblPathOut.Location = new System.Drawing.Point(55, 13); - this.lblPathOut.Name = "lblPathOut"; - this.lblPathOut.Size = new System.Drawing.Size(0, 13); - this.lblPathOut.TabIndex = 6; - // - // lblPath - // - this.lblPath.AutoSize = true; - this.lblPath.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblPath.Location = new System.Drawing.Point(12, 13); - this.lblPath.Name = "lblPath"; - this.lblPath.Size = new System.Drawing.Size(37, 13); - this.lblPath.TabIndex = 5; - this.lblPath.Text = "Path:"; - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lblMapList); - this.splitContainer1.Panel1.Controls.Add(this.MapList); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.txtDesc); - this.splitContainer1.Panel2.Controls.Add(this.lblDesc); - this.splitContainer1.Panel2.Controls.Add(this.txtTheater); - this.splitContainer1.Panel2.Controls.Add(this.lblTheater); - this.splitContainer1.Panel2.Controls.Add(this.txtAuthor); - this.splitContainer1.Panel2.Controls.Add(this.lblAuthor); - this.splitContainer1.Panel2.Controls.Add(this.txtTitle); - this.splitContainer1.Panel2.Controls.Add(this.lblMapName); - this.splitContainer1.Panel2.Controls.Add(this.lblMinimap); - this.splitContainer1.Panel2.Controls.Add(this.pbMinimap); - this.splitContainer1.Size = new System.Drawing.Size(494, 332); - this.splitContainer1.SplitterDistance = 300; - this.splitContainer1.TabIndex = 7; - // - // lblMapList - // - this.lblMapList.AutoSize = true; - this.lblMapList.Location = new System.Drawing.Point(12, 9); - this.lblMapList.Name = "lblMapList"; - this.lblMapList.Size = new System.Drawing.Size(81, 13); - this.lblMapList.TabIndex = 1; - this.lblMapList.Text = "Available maps:"; - // - // txtDesc - // - this.txtDesc.BackColor = System.Drawing.SystemColors.ButtonFace; - this.txtDesc.Location = new System.Drawing.Point(16, 289); - this.txtDesc.Name = "txtDesc"; - this.txtDesc.ReadOnly = true; - this.txtDesc.Size = new System.Drawing.Size(162, 20); - this.txtDesc.TabIndex = 14; - // - // lblDesc - // - this.lblDesc.AutoSize = true; - this.lblDesc.Location = new System.Drawing.Point(13, 273); - this.lblDesc.Name = "lblDesc"; - this.lblDesc.Size = new System.Drawing.Size(63, 13); - this.lblDesc.TabIndex = 13; - this.lblDesc.Text = "Description:"; - // - // txtTheater - // - this.txtTheater.BackColor = System.Drawing.SystemColors.ButtonFace; - this.txtTheater.Location = new System.Drawing.Point(16, 252); - this.txtTheater.Name = "txtTheater"; - this.txtTheater.ReadOnly = true; - this.txtTheater.Size = new System.Drawing.Size(162, 20); - this.txtTheater.TabIndex = 12; - // - // lblTheater - // - this.lblTheater.AutoSize = true; - this.lblTheater.Location = new System.Drawing.Point(13, 236); - this.lblTheater.Name = "lblTheater"; - this.lblTheater.Size = new System.Drawing.Size(47, 13); - this.lblTheater.TabIndex = 11; - this.lblTheater.Text = "Tileset:"; - // - // txtAuthor - // - this.txtAuthor.BackColor = System.Drawing.SystemColors.ButtonFace; - this.txtAuthor.Location = new System.Drawing.Point(16, 214); - this.txtAuthor.Name = "txtAuthor"; - this.txtAuthor.ReadOnly = true; - this.txtAuthor.Size = new System.Drawing.Size(162, 20); - this.txtAuthor.TabIndex = 10; - // - // lblAuthor - // - this.lblAuthor.AutoSize = true; - this.lblAuthor.Location = new System.Drawing.Point(13, 198); - this.lblAuthor.Name = "lblAuthor"; - this.lblAuthor.Size = new System.Drawing.Size(41, 13); - this.lblAuthor.TabIndex = 9; - this.lblAuthor.Text = "Author:"; - // - // txtTitle - // - this.txtTitle.BackColor = System.Drawing.SystemColors.ButtonFace; - this.txtTitle.Location = new System.Drawing.Point(16, 177); - this.txtTitle.Name = "txtTitle"; - this.txtTitle.ReadOnly = true; - this.txtTitle.Size = new System.Drawing.Size(162, 20); - this.txtTitle.TabIndex = 8; - // - // lblMapName - // - this.lblMapName.AutoSize = true; - this.lblMapName.Location = new System.Drawing.Point(13, 161); - this.lblMapName.Name = "lblMapName"; - this.lblMapName.Size = new System.Drawing.Size(30, 13); - this.lblMapName.TabIndex = 7; - this.lblMapName.Text = "Title:"; - // - // lblMinimap - // - this.lblMinimap.AutoSize = true; - this.lblMinimap.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(204))); - this.lblMinimap.Location = new System.Drawing.Point(29, 9); - this.lblMinimap.Name = "lblMinimap"; - this.lblMinimap.Size = new System.Drawing.Size(71, 13); - this.lblMinimap.TabIndex = 6; - this.lblMinimap.Text = "Map preview:"; - // - // pictureBox1 - // - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); + + this.ButtonCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.ButtonCancel.Location = new System.Drawing.Point(407, 35); + this.ButtonCancel.Name = "btnCancel"; + this.ButtonCancel.Size = new System.Drawing.Size(75, 23); + this.ButtonCancel.TabIndex = 3; + this.ButtonCancel.Text = "Cancel"; + this.ButtonCancel.UseVisualStyleBackColor = true; + + this.ButtonOkay.DialogResult = System.Windows.Forms.DialogResult.OK; + this.ButtonOkay.Location = new System.Drawing.Point(326, 35); + this.ButtonOkay.Name = "btnOk"; + this.ButtonOkay.Size = new System.Drawing.Size(75, 23); + this.ButtonOkay.TabIndex = 2; + this.ButtonOkay.Text = "Open"; + this.ButtonOkay.UseVisualStyleBackColor = true; + + this.NewLabel.AutoSize = true; + this.NewLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)204); + this.NewLabel.Location = new System.Drawing.Point(12, 40); + this.NewLabel.Name = "lblNew"; + this.NewLabel.Size = new System.Drawing.Size(69, 13); + this.NewLabel.TabIndex = 3; + this.NewLabel.Text = "Map name:"; + + this.NewText.BackColor = System.Drawing.SystemColors.Window; + this.NewText.Location = new System.Drawing.Point(88, 37); + this.NewText.Name = "txtNew"; + this.NewText.ReadOnly = true; + this.NewText.Size = new System.Drawing.Size(232, 20); + this.NewText.TabIndex = 1; + + this.MiniMapBox.BackColor = System.Drawing.Color.Black; + this.MiniMapBox.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.MiniMapBox.Location = new System.Drawing.Point(32, 25); + this.MiniMapBox.Name = "pbMinimap"; + this.MiniMapBox.Size = new System.Drawing.Size(124, 124); + this.MiniMapBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.MiniMapBox.TabIndex = 5; + this.MiniMapBox.TabStop = false; + + this.BottomPanel.Controls.Add(this.pictureBox1); + this.BottomPanel.Controls.Add(this.PathOutText); + this.BottomPanel.Controls.Add(this.PathOutLabel); + this.BottomPanel.Controls.Add(this.PathLabel); + this.BottomPanel.Controls.Add(this.ButtonCancel); + this.BottomPanel.Controls.Add(this.ButtonOkay); + this.BottomPanel.Controls.Add(this.NewText); + this.BottomPanel.Controls.Add(this.NewLabel); + this.BottomPanel.Dock = System.Windows.Forms.DockStyle.Bottom; + this.BottomPanel.Location = new System.Drawing.Point(0, 332); + this.BottomPanel.MaximumSize = new System.Drawing.Size(0, 70); + this.BottomPanel.Name = "pnlBottom"; + this.BottomPanel.Size = new System.Drawing.Size(494, 70); + this.BottomPanel.TabIndex = 6; + + this.PathOutText.BackColor = System.Drawing.SystemColors.Window; + this.PathOutText.Location = new System.Drawing.Point(55, 10); + this.PathOutText.Name = "txtPathOut"; + this.PathOutText.ReadOnly = true; + this.PathOutText.Size = new System.Drawing.Size(265, 20); + this.PathOutText.TabIndex = 0; + this.PathOutText.TextChanged += new System.EventHandler(this.PathOutTextChanged); + + this.PathOutLabel.AutoSize = true; + this.PathOutLabel.Location = new System.Drawing.Point(55, 13); + this.PathOutLabel.Name = "lblPathOut"; + this.PathOutLabel.Size = new System.Drawing.Size(0, 13); + this.PathOutLabel.TabIndex = 6; + + this.PathLabel.AutoSize = true; + this.PathLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, (byte)204); + this.PathLabel.Location = new System.Drawing.Point(12, 13); + this.PathLabel.Name = "lblPath"; + this.PathLabel.Size = new System.Drawing.Size(37, 13); + this.PathLabel.TabIndex = 5; + this.PathLabel.Text = "Path:"; + + this.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.SplitContainer1.Location = new System.Drawing.Point(0, 0); + this.SplitContainer1.Name = "splitContainer1"; + + this.SplitContainer1.Panel1.Controls.Add(this.MapListLabel); + this.SplitContainer1.Panel1.Controls.Add(this.MapList); + + this.SplitContainer1.Panel2.Controls.Add(this.DescTxt); + this.SplitContainer1.Panel2.Controls.Add(this.DescLabel); + this.SplitContainer1.Panel2.Controls.Add(this.TheaterText); + this.SplitContainer1.Panel2.Controls.Add(this.TheaterLabel); + this.SplitContainer1.Panel2.Controls.Add(this.AuthorText); + this.SplitContainer1.Panel2.Controls.Add(this.AuthorLabel); + this.SplitContainer1.Panel2.Controls.Add(this.TitleText); + this.SplitContainer1.Panel2.Controls.Add(this.MapNameLabel); + this.SplitContainer1.Panel2.Controls.Add(this.MiniMapLabel); + this.SplitContainer1.Panel2.Controls.Add(this.MiniMapBox); + this.SplitContainer1.Size = new System.Drawing.Size(494, 332); + this.SplitContainer1.SplitterDistance = 300; + this.SplitContainer1.TabIndex = 7; + + this.MapListLabel.AutoSize = true; + this.MapListLabel.Location = new System.Drawing.Point(12, 9); + this.MapListLabel.Name = "lblMapList"; + this.MapListLabel.Size = new System.Drawing.Size(81, 13); + this.MapListLabel.TabIndex = 1; + this.MapListLabel.Text = "Available maps:"; + + this.DescTxt.BackColor = System.Drawing.SystemColors.ButtonFace; + this.DescTxt.Location = new System.Drawing.Point(16, 289); + this.DescTxt.Name = "txtDesc"; + this.DescTxt.ReadOnly = true; + this.DescTxt.Size = new System.Drawing.Size(162, 20); + this.DescTxt.TabIndex = 14; + + this.DescLabel.AutoSize = true; + this.DescLabel.Location = new System.Drawing.Point(13, 273); + this.DescLabel.Name = "lblDesc"; + this.DescLabel.Size = new System.Drawing.Size(63, 13); + this.DescLabel.TabIndex = 13; + this.DescLabel.Text = "Description:"; + + this.TheaterText.BackColor = System.Drawing.SystemColors.ButtonFace; + this.TheaterText.Location = new System.Drawing.Point(16, 252); + this.TheaterText.Name = "txtTheater"; + this.TheaterText.ReadOnly = true; + this.TheaterText.Size = new System.Drawing.Size(162, 20); + this.TheaterText.TabIndex = 12; + + this.TheaterLabel.AutoSize = true; + this.TheaterLabel.Location = new System.Drawing.Point(13, 236); + this.TheaterLabel.Name = "lblTheater"; + this.TheaterLabel.Size = new System.Drawing.Size(47, 13); + this.TheaterLabel.TabIndex = 11; + this.TheaterLabel.Text = "Tileset:"; + + this.AuthorText.BackColor = System.Drawing.SystemColors.ButtonFace; + this.AuthorText.Location = new System.Drawing.Point(16, 214); + this.AuthorText.Name = "txtAuthor"; + this.AuthorText.ReadOnly = true; + this.AuthorText.Size = new System.Drawing.Size(162, 20); + this.AuthorText.TabIndex = 10; + + this.AuthorLabel.AutoSize = true; + this.AuthorLabel.Location = new System.Drawing.Point(13, 198); + this.AuthorLabel.Name = "lblAuthor"; + this.AuthorLabel.Size = new System.Drawing.Size(41, 13); + this.AuthorLabel.TabIndex = 9; + this.AuthorLabel.Text = "Author:"; + + this.TitleText.BackColor = System.Drawing.SystemColors.ButtonFace; + this.TitleText.Location = new System.Drawing.Point(16, 177); + this.TitleText.Name = "txtTitle"; + this.TitleText.ReadOnly = true; + this.TitleText.Size = new System.Drawing.Size(162, 20); + this.TitleText.TabIndex = 8; + + this.MapNameLabel.AutoSize = true; + this.MapNameLabel.Location = new System.Drawing.Point(13, 161); + this.MapNameLabel.Name = "lblMapName"; + this.MapNameLabel.Size = new System.Drawing.Size(30, 13); + this.MapNameLabel.TabIndex = 7; + this.MapNameLabel.Text = "Title:"; + + this.MiniMapLabel.AutoSize = true; + this.MiniMapLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, (byte)204); + this.MiniMapLabel.Location = new System.Drawing.Point(29, 9); + this.MiniMapLabel.Name = "lblMinimap"; + this.MiniMapLabel.Size = new System.Drawing.Size(71, 13); + this.MiniMapLabel.TabIndex = 6; + this.MiniMapLabel.Text = "Map preview:"; + + this.pictureBox1.Image = (System.Drawing.Image)resources.GetObject("pictureBox1.Image"); this.pictureBox1.Location = new System.Drawing.Point(336, -9); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(54, 35); this.pictureBox1.TabIndex = 7; this.pictureBox1.TabStop = false; this.pictureBox1.Visible = false; - // - // MapSelect - // - this.AcceptButton = this.btnOk; + + this.AcceptButton = this.ButtonOkay; this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; + this.CancelButton = this.ButtonCancel; this.ClientSize = new System.Drawing.Size(494, 402); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.pnlBottom); + this.Controls.Add(this.SplitContainer1); + this.Controls.Add(this.BottomPanel); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.MaximizeBox = false; this.MinimizeBox = false; @@ -335,44 +279,41 @@ namespace OpenRA.Editor this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Select map"; this.Load += new System.EventHandler(this.MapSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.pbMinimap)).EndInit(); - this.pnlBottom.ResumeLayout(false); - this.pnlBottom.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel1.PerformLayout(); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)this.MiniMapBox).EndInit(); + this.BottomPanel.ResumeLayout(false); + this.BottomPanel.PerformLayout(); + this.SplitContainer1.Panel1.ResumeLayout(false); + this.SplitContainer1.Panel1.PerformLayout(); + this.SplitContainer1.Panel2.ResumeLayout(false); + this.SplitContainer1.Panel2.PerformLayout(); + this.SplitContainer1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)this.pictureBox1).EndInit(); this.ResumeLayout(false); - } - #endregion - public System.Windows.Forms.ListView MapList; - public System.Windows.Forms.Button btnCancel; - public System.Windows.Forms.Button btnOk; - public System.Windows.Forms.Label lblNew; - public System.Windows.Forms.TextBox txtNew; - public System.Windows.Forms.ColumnHeader colMapName; + public System.Windows.Forms.Button ButtonCancel; + public System.Windows.Forms.Button ButtonOkay; + public System.Windows.Forms.Label NewLabel; + public System.Windows.Forms.TextBox NewText; + public System.Windows.Forms.ColumnHeader ColumnMapName; public System.Windows.Forms.ImageList MapIconsList; - public System.Windows.Forms.PictureBox pbMinimap; - public System.Windows.Forms.Panel pnlBottom; - public System.Windows.Forms.SplitContainer splitContainer1; - public System.Windows.Forms.Label lblMinimap; - public System.Windows.Forms.TextBox txtTheater; - public System.Windows.Forms.Label lblTheater; - public System.Windows.Forms.TextBox txtAuthor; - public System.Windows.Forms.Label lblAuthor; - public System.Windows.Forms.TextBox txtTitle; - public System.Windows.Forms.Label lblMapName; - public System.Windows.Forms.TextBox txtDesc; - public System.Windows.Forms.Label lblDesc; - public System.Windows.Forms.Label lblMapList; - public System.Windows.Forms.Label lblPathOut; - public System.Windows.Forms.Label lblPath; - public System.Windows.Forms.TextBox txtPathOut; + public System.Windows.Forms.PictureBox MiniMapBox; + public System.Windows.Forms.Panel BottomPanel; + public System.Windows.Forms.SplitContainer SplitContainer1; + public System.Windows.Forms.Label MiniMapLabel; + public System.Windows.Forms.TextBox TheaterText; + public System.Windows.Forms.Label TheaterLabel; + public System.Windows.Forms.TextBox AuthorText; + public System.Windows.Forms.Label AuthorLabel; + public System.Windows.Forms.TextBox TitleText; + public System.Windows.Forms.Label MapNameLabel; + public System.Windows.Forms.TextBox DescTxt; + public System.Windows.Forms.Label DescLabel; + public System.Windows.Forms.Label MapListLabel; + public System.Windows.Forms.Label PathOutLabel; + public System.Windows.Forms.Label PathLabel; + public System.Windows.Forms.TextBox PathOutText; private System.Windows.Forms.PictureBox pictureBox1; } } \ No newline at end of file diff --git a/OpenRA.Editor/MapSelect.cs b/OpenRA.Editor/MapSelect.cs index 14efb9272c..c6dfef0517 100644 --- a/OpenRA.Editor/MapSelect.cs +++ b/OpenRA.Editor/MapSelect.cs @@ -40,7 +40,7 @@ namespace OpenRA.Editor void MapSelect_Load(object sender, EventArgs e) { MapList.Items.Clear(); - txtPathOut.Text = MapFolderPath; + PathOutText.Text = MapFolderPath; if (DirectoryIsEmpty(MapFolderPath)) return; @@ -55,7 +55,7 @@ namespace OpenRA.Editor } // hack - if (txtNew.Text != "unnamed") + if (NewText.Text != "unnamed") MapList.Items[0].Selected = true; } @@ -63,31 +63,30 @@ namespace OpenRA.Editor { if (MapList.SelectedItems.Count == 1) { - txtNew.Text = MapList.SelectedItems[0].Text; - txtNew.Tag = MapList.SelectedItems[0].Tag; + NewText.Text = MapList.SelectedItems[0].Text; + NewText.Tag = MapList.SelectedItems[0].Tag; - var map = new Map(txtNew.Tag as string); - txtTitle.Text = map.Title; - txtAuthor.Text = map.Author; - txtTheater.Text = map.Tileset; - txtDesc.Text = map.Description; - pbMinimap.Image = null; + var map = new Map(NewText.Tag as string); + TitleText.Text = map.Title; + AuthorText.Text = map.Author; + TheaterText.Text = map.Tileset; + DescTxt.Text = map.Description; + MiniMapBox.Image = null; try { - pbMinimap.Image = Minimap.AddStaticResources(map, Minimap.TerrainBitmap(map, true)); + MiniMapBox.Image = Minimap.AddStaticResources(map, Minimap.TerrainBitmap(map, true)); } catch (Exception ed) { Console.WriteLine("No map preview image found: {0}", ed.ToString()); } - finally { } } } - void txtPathOut_TextChanged(object sender, EventArgs e) + void PathOutTextChanged(object sender, EventArgs e) { - MapFolderPath = txtPathOut.Text; + MapFolderPath = PathOutText.Text; } } } diff --git a/OpenRA.Editor/NewMapDialog.Designer.cs b/OpenRA.Editor/NewMapDialog.Designer.cs old mode 100755 new mode 100644 index a7b8168bd2..13544a0691 --- a/OpenRA.Editor/NewMapDialog.Designer.cs +++ b/OpenRA.Editor/NewMapDialog.Designer.cs @@ -24,9 +24,8 @@ namespace OpenRA.Editor protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } + base.Dispose(disposing); } @@ -43,20 +42,20 @@ namespace OpenRA.Editor this.label3 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); this.label1 = new System.Windows.Forms.Label(); - this.cordonBottom = new System.Windows.Forms.NumericUpDown(); - this.cordonTop = new System.Windows.Forms.NumericUpDown(); - this.cordonRight = new System.Windows.Forms.NumericUpDown(); - this.cordonLeft = new System.Windows.Forms.NumericUpDown(); - this.height = new System.Windows.Forms.NumericUpDown(); - this.width = new System.Windows.Forms.NumericUpDown(); + this.CordonBottom = new System.Windows.Forms.NumericUpDown(); + this.CordonTop = new System.Windows.Forms.NumericUpDown(); + this.CordonRight = new System.Windows.Forms.NumericUpDown(); + this.CordonLeft = new System.Windows.Forms.NumericUpDown(); + this.MapHeight = new System.Windows.Forms.NumericUpDown(); + this.MapWidth = new System.Windows.Forms.NumericUpDown(); this.label4 = new System.Windows.Forms.Label(); - this.theater = new System.Windows.Forms.ComboBox(); - ((System.ComponentModel.ISupportInitialize)(this.cordonBottom)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonTop)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonRight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonLeft)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.height)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.width)).BeginInit(); + this.TheaterBox = new System.Windows.Forms.ComboBox(); + ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).BeginInit(); this.SuspendLayout(); // // button2 @@ -108,121 +107,121 @@ namespace OpenRA.Editor // // cordonBottom // - this.cordonBottom.Location = new System.Drawing.Point(280, 75); - this.cordonBottom.Maximum = new decimal(new int[] { + this.CordonBottom.Location = new System.Drawing.Point(280, 75); + this.CordonBottom.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonBottom.Name = "cordonBottom"; - this.cordonBottom.Size = new System.Drawing.Size(105, 20); - this.cordonBottom.TabIndex = 5; - this.cordonBottom.Value = new decimal(new int[] { + this.CordonBottom.Name = "cordonBottom"; + this.CordonBottom.Size = new System.Drawing.Size(105, 20); + this.CordonBottom.TabIndex = 5; + this.CordonBottom.Value = new decimal(new int[] { 112, 0, 0, 0}); - this.cordonBottom.Enter += new System.EventHandler(this.SelectText); + this.CordonBottom.Enter += new System.EventHandler(this.SelectText); // // cordonTop // - this.cordonTop.Location = new System.Drawing.Point(280, 49); - this.cordonTop.Maximum = new decimal(new int[] { + this.CordonTop.Location = new System.Drawing.Point(280, 49); + this.CordonTop.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonTop.Name = "cordonTop"; - this.cordonTop.Size = new System.Drawing.Size(105, 20); - this.cordonTop.TabIndex = 3; - this.cordonTop.Value = new decimal(new int[] { + this.CordonTop.Name = "cordonTop"; + this.CordonTop.Size = new System.Drawing.Size(105, 20); + this.CordonTop.TabIndex = 3; + this.CordonTop.Value = new decimal(new int[] { 16, 0, 0, 0}); - this.cordonTop.Enter += new System.EventHandler(this.SelectText); + this.CordonTop.Enter += new System.EventHandler(this.SelectText); // // cordonRight // - this.cordonRight.Location = new System.Drawing.Point(169, 75); - this.cordonRight.Maximum = new decimal(new int[] { + this.CordonRight.Location = new System.Drawing.Point(169, 75); + this.CordonRight.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonRight.Name = "cordonRight"; - this.cordonRight.Size = new System.Drawing.Size(105, 20); - this.cordonRight.TabIndex = 4; - this.cordonRight.Value = new decimal(new int[] { + this.CordonRight.Name = "cordonRight"; + this.CordonRight.Size = new System.Drawing.Size(105, 20); + this.CordonRight.TabIndex = 4; + this.CordonRight.Value = new decimal(new int[] { 112, 0, 0, 0}); - this.cordonRight.Enter += new System.EventHandler(this.SelectText); + this.CordonRight.Enter += new System.EventHandler(this.SelectText); // // cordonLeft // - this.cordonLeft.Location = new System.Drawing.Point(169, 49); - this.cordonLeft.Maximum = new decimal(new int[] { + this.CordonLeft.Location = new System.Drawing.Point(169, 49); + this.CordonLeft.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonLeft.Name = "cordonLeft"; - this.cordonLeft.Size = new System.Drawing.Size(105, 20); - this.cordonLeft.TabIndex = 2; - this.cordonLeft.Value = new decimal(new int[] { + this.CordonLeft.Name = "cordonLeft"; + this.CordonLeft.Size = new System.Drawing.Size(105, 20); + this.CordonLeft.TabIndex = 2; + this.CordonLeft.Value = new decimal(new int[] { 16, 0, 0, 0}); - this.cordonLeft.Enter += new System.EventHandler(this.SelectText); + this.CordonLeft.Enter += new System.EventHandler(this.SelectText); // // height // - this.height.Increment = new decimal(new int[] { + this.MapHeight.Increment = new decimal(new int[] { 8, 0, 0, 0}); - this.height.Location = new System.Drawing.Point(280, 23); - this.height.Maximum = new decimal(new int[] { + this.MapHeight.Location = new System.Drawing.Point(280, 23); + this.MapHeight.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.height.Name = "height"; - this.height.Size = new System.Drawing.Size(105, 20); - this.height.TabIndex = 1; - this.height.Value = new decimal(new int[] { + this.MapHeight.Name = "height"; + this.MapHeight.Size = new System.Drawing.Size(105, 20); + this.MapHeight.TabIndex = 1; + this.MapHeight.Value = new decimal(new int[] { 128, 0, 0, 0}); - this.height.Enter += new System.EventHandler(this.SelectText); + this.MapHeight.Enter += new System.EventHandler(this.SelectText); // // width // - this.width.Increment = new decimal(new int[] { + this.MapWidth.Increment = new decimal(new int[] { 8, 0, 0, 0}); - this.width.Location = new System.Drawing.Point(169, 23); - this.width.Maximum = new decimal(new int[] { + this.MapWidth.Location = new System.Drawing.Point(169, 23); + this.MapWidth.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.width.Name = "width"; - this.width.Size = new System.Drawing.Size(105, 20); - this.width.TabIndex = 0; - this.width.Value = new decimal(new int[] { + this.MapWidth.Name = "width"; + this.MapWidth.Size = new System.Drawing.Size(105, 20); + this.MapWidth.TabIndex = 0; + this.MapWidth.Value = new decimal(new int[] { 128, 0, 0, 0}); - this.width.Enter += new System.EventHandler(this.SelectText); + this.MapWidth.Enter += new System.EventHandler(this.SelectText); // // label4 // @@ -235,12 +234,12 @@ namespace OpenRA.Editor // // theater // - this.theater.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.theater.FormattingEnabled = true; - this.theater.Location = new System.Drawing.Point(169, 121); - this.theater.Name = "theater"; - this.theater.Size = new System.Drawing.Size(216, 21); - this.theater.TabIndex = 6; + this.TheaterBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.TheaterBox.FormattingEnabled = true; + this.TheaterBox.Location = new System.Drawing.Point(169, 121); + this.TheaterBox.Name = "theater"; + this.TheaterBox.Size = new System.Drawing.Size(216, 21); + this.TheaterBox.TabIndex = 6; // // NewMapDialog // @@ -249,29 +248,29 @@ namespace OpenRA.Editor this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.button1; this.ClientSize = new System.Drawing.Size(418, 210); - this.Controls.Add(this.theater); + this.Controls.Add(this.TheaterBox); this.Controls.Add(this.label4); this.Controls.Add(this.button2); this.Controls.Add(this.button1); this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); - this.Controls.Add(this.cordonBottom); - this.Controls.Add(this.cordonTop); - this.Controls.Add(this.cordonRight); - this.Controls.Add(this.cordonLeft); - this.Controls.Add(this.height); - this.Controls.Add(this.width); + this.Controls.Add(this.CordonBottom); + this.Controls.Add(this.CordonTop); + this.Controls.Add(this.CordonRight); + this.Controls.Add(this.CordonLeft); + this.Controls.Add(this.MapHeight); + this.Controls.Add(this.MapWidth); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "NewMapDialog"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "New Map"; - ((System.ComponentModel.ISupportInitialize)(this.cordonBottom)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonTop)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonRight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonLeft)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.height)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.width)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -284,13 +283,13 @@ namespace OpenRA.Editor private System.Windows.Forms.Label label3; private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; - public System.Windows.Forms.NumericUpDown cordonBottom; - public System.Windows.Forms.NumericUpDown cordonTop; - public System.Windows.Forms.NumericUpDown cordonRight; - public System.Windows.Forms.NumericUpDown cordonLeft; - public System.Windows.Forms.NumericUpDown height; - public System.Windows.Forms.NumericUpDown width; + public System.Windows.Forms.NumericUpDown CordonBottom; + public System.Windows.Forms.NumericUpDown CordonTop; + public System.Windows.Forms.NumericUpDown CordonRight; + public System.Windows.Forms.NumericUpDown CordonLeft; + public System.Windows.Forms.NumericUpDown MapHeight; + public System.Windows.Forms.NumericUpDown MapWidth; private System.Windows.Forms.Label label4; - public System.Windows.Forms.ComboBox theater; + public System.Windows.Forms.ComboBox TheaterBox; } } \ No newline at end of file diff --git a/OpenRA.Editor/OpenRA.Editor.csproj b/OpenRA.Editor/OpenRA.Editor.csproj index 48b017dcd5..166adf6e68 100644 --- a/OpenRA.Editor/OpenRA.Editor.csproj +++ b/OpenRA.Editor/OpenRA.Editor.csproj @@ -116,7 +116,6 @@ PropertiesDialog.cs - ActorPropertiesDialog.cs Designer diff --git a/OpenRA.Editor/Program.cs b/OpenRA.Editor/Program.cs index a3bdf2c24a..a6888c8d54 100644 --- a/OpenRA.Editor/Program.cs +++ b/OpenRA.Editor/Program.cs @@ -20,7 +20,7 @@ namespace OpenRA.Editor static class Program { [STAThread] - static void Main( string[] args ) + static void Main(string[] args) { if (args.Length >= 2 && args[0] == "--convert") { @@ -40,12 +40,13 @@ namespace OpenRA.Editor static void UpgradeMaps(string mod) { - var MapFolderPath = new string[] { Environment.CurrentDirectory, "mods", mod, "maps" } + var mapFolderPath = new string[] { Environment.CurrentDirectory, "mods", mod, "maps" } .Aggregate(Path.Combine); - foreach (var path in ModData.FindMapsIn(MapFolderPath)) + foreach (var path in ModData.FindMapsIn(mapFolderPath)) { var map = new Map(path); + // Touch the lazy bits to initialize them map.Actors.Force(); map.Smudges.Force(); @@ -54,6 +55,5 @@ namespace OpenRA.Editor map.Save(path); } } - } } diff --git a/OpenRA.Editor/Properties/AssemblyInfo.cs b/OpenRA.Editor/Properties/AssemblyInfo.cs deleted file mode 100644 index 89becad42b..0000000000 --- a/OpenRA.Editor/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.Editor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("OpenRA.Editor")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e18ea68f-f344-46c9-b026-8bda76fa91f8")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Editor/PropertiesDialog.Designer.cs b/OpenRA.Editor/PropertiesDialog.Designer.cs index 94d15a3730..c0222fc44e 100644 --- a/OpenRA.Editor/PropertiesDialog.Designer.cs +++ b/OpenRA.Editor/PropertiesDialog.Designer.cs @@ -24,9 +24,8 @@ namespace OpenRA.Editor protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } + base.Dispose(disposing); } @@ -41,13 +40,13 @@ namespace OpenRA.Editor this.button2 = new System.Windows.Forms.Button(); this.button1 = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); - this.title = new System.Windows.Forms.TextBox(); + this.TitleBox = new System.Windows.Forms.TextBox(); this.label2 = new System.Windows.Forms.Label(); - this.desc = new System.Windows.Forms.TextBox(); - this.selectable = new System.Windows.Forms.CheckBox(); + this.DescBox = new System.Windows.Forms.TextBox(); + this.SelectableCheckBox = new System.Windows.Forms.CheckBox(); this.label3 = new System.Windows.Forms.Label(); - this.author = new System.Windows.Forms.TextBox(); - this.useAsShellmap = new System.Windows.Forms.CheckBox(); + this.AuthorBox = new System.Windows.Forms.TextBox(); + this.ShellmapCheckBox = new System.Windows.Forms.CheckBox(); this.SuspendLayout(); // // button2 @@ -83,10 +82,10 @@ namespace OpenRA.Editor // // title // - this.title.Location = new System.Drawing.Point(66, 47); - this.title.Name = "title"; - this.title.Size = new System.Drawing.Size(286, 20); - this.title.TabIndex = 17; + this.TitleBox.Location = new System.Drawing.Point(66, 47); + this.TitleBox.Name = "title"; + this.TitleBox.Size = new System.Drawing.Size(286, 20); + this.TitleBox.TabIndex = 17; // // label2 // @@ -99,20 +98,20 @@ namespace OpenRA.Editor // // desc // - this.desc.Location = new System.Drawing.Point(66, 73); - this.desc.Name = "desc"; - this.desc.Size = new System.Drawing.Size(286, 20); - this.desc.TabIndex = 17; + this.DescBox.Location = new System.Drawing.Point(66, 73); + this.DescBox.Name = "desc"; + this.DescBox.Size = new System.Drawing.Size(286, 20); + this.DescBox.TabIndex = 17; // // selectable // - this.selectable.AutoSize = true; - this.selectable.Location = new System.Drawing.Point(118, 138); - this.selectable.Name = "selectable"; - this.selectable.Size = new System.Drawing.Size(130, 17); - this.selectable.TabIndex = 18; - this.selectable.Text = "Show in Map Chooser"; - this.selectable.UseVisualStyleBackColor = true; + this.SelectableCheckBox.AutoSize = true; + this.SelectableCheckBox.Location = new System.Drawing.Point(118, 138); + this.SelectableCheckBox.Name = "selectable"; + this.SelectableCheckBox.Size = new System.Drawing.Size(130, 17); + this.SelectableCheckBox.TabIndex = 18; + this.SelectableCheckBox.Text = "Show in Map Chooser"; + this.SelectableCheckBox.UseVisualStyleBackColor = true; // // label3 // @@ -125,20 +124,20 @@ namespace OpenRA.Editor // // author // - this.author.Location = new System.Drawing.Point(66, 99); - this.author.Name = "author"; - this.author.Size = new System.Drawing.Size(286, 20); - this.author.TabIndex = 17; + this.AuthorBox.Location = new System.Drawing.Point(66, 99); + this.AuthorBox.Name = "author"; + this.AuthorBox.Size = new System.Drawing.Size(286, 20); + this.AuthorBox.TabIndex = 17; // // checkBox1 // - this.useAsShellmap.AutoSize = true; - this.useAsShellmap.Location = new System.Drawing.Point(118, 161); - this.useAsShellmap.Name = "checkBox1"; - this.useAsShellmap.Size = new System.Drawing.Size(105, 17); - this.useAsShellmap.TabIndex = 18; - this.useAsShellmap.Text = "Use as Shellmap"; - this.useAsShellmap.UseVisualStyleBackColor = true; + this.ShellmapCheckBox.AutoSize = true; + this.ShellmapCheckBox.Location = new System.Drawing.Point(118, 161); + this.ShellmapCheckBox.Name = "checkBox1"; + this.ShellmapCheckBox.Size = new System.Drawing.Size(105, 17); + this.ShellmapCheckBox.TabIndex = 18; + this.ShellmapCheckBox.Text = "Use as Shellmap"; + this.ShellmapCheckBox.UseVisualStyleBackColor = true; // // PropertiesDialog // @@ -147,13 +146,13 @@ namespace OpenRA.Editor this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.CancelButton = this.button1; this.ClientSize = new System.Drawing.Size(370, 228); - this.Controls.Add(this.useAsShellmap); - this.Controls.Add(this.selectable); - this.Controls.Add(this.author); + this.Controls.Add(this.ShellmapCheckBox); + this.Controls.Add(this.SelectableCheckBox); + this.Controls.Add(this.AuthorBox); this.Controls.Add(this.label3); - this.Controls.Add(this.desc); + this.Controls.Add(this.DescBox); this.Controls.Add(this.label2); - this.Controls.Add(this.title); + this.Controls.Add(this.TitleBox); this.Controls.Add(this.label1); this.Controls.Add(this.button2); this.Controls.Add(this.button1); @@ -171,12 +170,12 @@ namespace OpenRA.Editor private System.Windows.Forms.Button button2; private System.Windows.Forms.Button button1; private System.Windows.Forms.Label label1; - public System.Windows.Forms.TextBox title; + public System.Windows.Forms.TextBox TitleBox; private System.Windows.Forms.Label label2; - public System.Windows.Forms.TextBox desc; - public System.Windows.Forms.CheckBox selectable; + public System.Windows.Forms.TextBox DescBox; + public System.Windows.Forms.CheckBox SelectableCheckBox; private System.Windows.Forms.Label label3; - public System.Windows.Forms.TextBox author; - public System.Windows.Forms.CheckBox useAsShellmap; + public System.Windows.Forms.TextBox AuthorBox; + public System.Windows.Forms.CheckBox ShellmapCheckBox; } } diff --git a/OpenRA.Editor/ResizeDialog.Designer.cs b/OpenRA.Editor/ResizeDialog.Designer.cs index 1d2e7233c7..d0ff2e09d5 100644 --- a/OpenRA.Editor/ResizeDialog.Designer.cs +++ b/OpenRA.Editor/ResizeDialog.Designer.cs @@ -24,9 +24,8 @@ namespace OpenRA.Editor protected override void Dispose(bool disposing) { if (disposing && (components != null)) - { components.Dispose(); - } + base.Dispose(disposing); } @@ -38,41 +37,41 @@ namespace OpenRA.Editor /// private void InitializeComponent() { - this.width = new System.Windows.Forms.NumericUpDown(); + this.MapWidth = new System.Windows.Forms.NumericUpDown(); this.label1 = new System.Windows.Forms.Label(); this.label2 = new System.Windows.Forms.Label(); - this.cordonLeft = new System.Windows.Forms.NumericUpDown(); - this.cordonTop = new System.Windows.Forms.NumericUpDown(); - this.cordonRight = new System.Windows.Forms.NumericUpDown(); - this.cordonBottom = new System.Windows.Forms.NumericUpDown(); + this.CordonLeft = new System.Windows.Forms.NumericUpDown(); + this.CordonTop = new System.Windows.Forms.NumericUpDown(); + this.CordonRight = new System.Windows.Forms.NumericUpDown(); + this.CordonBottom = new System.Windows.Forms.NumericUpDown(); this.label3 = new System.Windows.Forms.Label(); this.button1 = new System.Windows.Forms.Button(); this.button2 = new System.Windows.Forms.Button(); - this.height = new System.Windows.Forms.NumericUpDown(); - ((System.ComponentModel.ISupportInitialize)(this.width)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonLeft)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonTop)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonRight)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonBottom)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.height)).BeginInit(); + this.MapHeight = new System.Windows.Forms.NumericUpDown(); + ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).BeginInit(); this.SuspendLayout(); // // width // - this.width.Increment = new decimal(new int[] { + this.MapWidth.Increment = new decimal(new int[] { 8, 0, 0, 0}); - this.width.Location = new System.Drawing.Point(161, 18); - this.width.Maximum = new decimal(new int[] { + this.MapWidth.Location = new System.Drawing.Point(161, 18); + this.MapWidth.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.width.Name = "width"; - this.width.Size = new System.Drawing.Size(105, 20); - this.width.TabIndex = 0; + this.MapWidth.Name = "width"; + this.MapWidth.Size = new System.Drawing.Size(105, 20); + this.MapWidth.TabIndex = 0; // // label1 // @@ -94,51 +93,51 @@ namespace OpenRA.Editor // // cordonLeft // - this.cordonLeft.Location = new System.Drawing.Point(161, 44); - this.cordonLeft.Maximum = new decimal(new int[] { + this.CordonLeft.Location = new System.Drawing.Point(161, 44); + this.CordonLeft.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonLeft.Name = "cordonLeft"; - this.cordonLeft.Size = new System.Drawing.Size(105, 20); - this.cordonLeft.TabIndex = 0; + this.CordonLeft.Name = "cordonLeft"; + this.CordonLeft.Size = new System.Drawing.Size(105, 20); + this.CordonLeft.TabIndex = 0; // // cordonTop // - this.cordonTop.Location = new System.Drawing.Point(272, 44); - this.cordonTop.Maximum = new decimal(new int[] { + this.CordonTop.Location = new System.Drawing.Point(272, 44); + this.CordonTop.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonTop.Name = "cordonTop"; - this.cordonTop.Size = new System.Drawing.Size(105, 20); - this.cordonTop.TabIndex = 0; + this.CordonTop.Name = "cordonTop"; + this.CordonTop.Size = new System.Drawing.Size(105, 20); + this.CordonTop.TabIndex = 0; // // cordonRight // - this.cordonRight.Location = new System.Drawing.Point(161, 70); - this.cordonRight.Maximum = new decimal(new int[] { + this.CordonRight.Location = new System.Drawing.Point(161, 70); + this.CordonRight.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonRight.Name = "cordonRight"; - this.cordonRight.Size = new System.Drawing.Size(105, 20); - this.cordonRight.TabIndex = 0; + this.CordonRight.Name = "cordonRight"; + this.CordonRight.Size = new System.Drawing.Size(105, 20); + this.CordonRight.TabIndex = 0; // // cordonBottom // - this.cordonBottom.Location = new System.Drawing.Point(272, 70); - this.cordonBottom.Maximum = new decimal(new int[] { + this.CordonBottom.Location = new System.Drawing.Point(272, 70); + this.CordonBottom.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.cordonBottom.Name = "cordonBottom"; - this.cordonBottom.Size = new System.Drawing.Size(105, 20); - this.cordonBottom.TabIndex = 0; + this.CordonBottom.Name = "cordonBottom"; + this.CordonBottom.Size = new System.Drawing.Size(105, 20); + this.CordonBottom.TabIndex = 0; // // label3 // @@ -171,20 +170,20 @@ namespace OpenRA.Editor // // height // - this.height.Increment = new decimal(new int[] { + this.MapHeight.Increment = new decimal(new int[] { 8, 0, 0, 0}); - this.height.Location = new System.Drawing.Point(272, 18); - this.height.Maximum = new decimal(new int[] { + this.MapHeight.Location = new System.Drawing.Point(272, 18); + this.MapHeight.Maximum = new decimal(new int[] { 2048, 0, 0, 0}); - this.height.Name = "height"; - this.height.Size = new System.Drawing.Size(105, 20); - this.height.TabIndex = 0; + this.MapHeight.Name = "height"; + this.MapHeight.Size = new System.Drawing.Size(105, 20); + this.MapHeight.TabIndex = 0; // // ResizeDialog // @@ -198,22 +197,22 @@ namespace OpenRA.Editor this.Controls.Add(this.label3); this.Controls.Add(this.label2); this.Controls.Add(this.label1); - this.Controls.Add(this.cordonBottom); - this.Controls.Add(this.cordonTop); - this.Controls.Add(this.cordonRight); - this.Controls.Add(this.cordonLeft); - this.Controls.Add(this.height); - this.Controls.Add(this.width); + this.Controls.Add(this.CordonBottom); + this.Controls.Add(this.CordonTop); + this.Controls.Add(this.CordonRight); + this.Controls.Add(this.CordonLeft); + this.Controls.Add(this.MapHeight); + this.Controls.Add(this.MapWidth); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; this.Name = "ResizeDialog"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; this.Text = "Resize Map"; - ((System.ComponentModel.ISupportInitialize)(this.width)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonLeft)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonTop)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonRight)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.cordonBottom)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.height)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapWidth)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonLeft)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonTop)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonRight)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.CordonBottom)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.MapHeight)).EndInit(); this.ResumeLayout(false); this.PerformLayout(); @@ -226,11 +225,11 @@ namespace OpenRA.Editor private System.Windows.Forms.Label label3; private System.Windows.Forms.Button button1; private System.Windows.Forms.Button button2; - public System.Windows.Forms.NumericUpDown width; - public System.Windows.Forms.NumericUpDown cordonLeft; - public System.Windows.Forms.NumericUpDown cordonTop; - public System.Windows.Forms.NumericUpDown cordonRight; - public System.Windows.Forms.NumericUpDown cordonBottom; - public System.Windows.Forms.NumericUpDown height; + public System.Windows.Forms.NumericUpDown MapWidth; + public System.Windows.Forms.NumericUpDown CordonLeft; + public System.Windows.Forms.NumericUpDown CordonTop; + public System.Windows.Forms.NumericUpDown CordonRight; + public System.Windows.Forms.NumericUpDown CordonBottom; + public System.Windows.Forms.NumericUpDown MapHeight; } } \ No newline at end of file diff --git a/OpenRA.Editor/ResourceTool.cs b/OpenRA.Editor/ResourceTool.cs index ae3a9d10b2..a2ded666c3 100644 --- a/OpenRA.Editor/ResourceTool.cs +++ b/OpenRA.Editor/ResourceTool.cs @@ -17,21 +17,21 @@ namespace OpenRA.Editor { class ResourceTool : ITool { - ResourceTemplate Resource; + ResourceTemplate resourceTemplate; - public ResourceTool(ResourceTemplate resource) { Resource = resource; } + public ResourceTool(ResourceTemplate resource) { resourceTemplate = resource; } public void Apply(Surface surface) { surface.Map.MapResources.Value[surface.GetBrushLocation().X, surface.GetBrushLocation().Y] = new TileReference { - type = (byte)Resource.Info.ResourceType, - index = (byte)random.Next(Resource.Info.SpriteNames.Length) + type = (byte)resourceTemplate.Info.ResourceType, + index = (byte)random.Next(resourceTemplate.Info.SpriteNames.Length) }; - var ch = new int2((surface.GetBrushLocation().X) / Surface.ChunkSize, - (surface.GetBrushLocation().Y) / Surface.ChunkSize); + var ch = new int2(surface.GetBrushLocation().X / Surface.ChunkSize, + surface.GetBrushLocation().Y / Surface.ChunkSize); if (surface.Chunks.ContainsKey(ch)) { @@ -42,7 +42,7 @@ namespace OpenRA.Editor public void Preview(Surface surface, SGraphics g) { - surface.DrawImage(g, Resource.Bitmap, surface.GetBrushLocation(), false, null); + surface.DrawImage(g, resourceTemplate.Bitmap, surface.GetBrushLocation(), false, null); } Random random = new Random(); diff --git a/OpenRA.Editor/Settings.StyleCop b/OpenRA.Editor/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Editor/Settings.StyleCop +++ b/OpenRA.Editor/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs index fa8a4cb838..933f525998 100755 --- a/OpenRA.Editor/Surface.cs +++ b/OpenRA.Editor/Surface.cs @@ -21,6 +21,24 @@ using SGraphics = System.Drawing.Graphics; namespace OpenRA.Editor { + static class ActorReferenceExts + { + public static CPos Location(this ActorReference ar) + { + return (CPos)ar.InitDict.Get().value; + } + + public static void DrawStringContrast(this SGraphics g, Font f, string s, int x, int y, Brush fg, Brush bg) + { + g.DrawString(s, f, bg, x - 1, y - 1); + g.DrawString(s, f, bg, x + 1, y - 1); + g.DrawString(s, f, bg, x - 1, y + 1); + g.DrawString(s, f, bg, x + 1, y + 1); + + g.DrawString(s, f, fg, x, y); + } + } + class Surface : Control { public Map Map { get; private set; } @@ -33,7 +51,7 @@ namespace OpenRA.Editor public float Zoom = 1.0f; - ITool Tool; + ITool currentTool; public bool IsPanning; public bool IsErasing; @@ -53,7 +71,7 @@ namespace OpenRA.Editor public event Action MousePositionChanged = _ => { }; public event Action> ActorDoubleClicked = _ => { }; - Dictionary ActorTemplates = new Dictionary(); + Dictionary actorTemplates = new Dictionary(); public Dictionary ResourceTemplates = new Dictionary(); static readonly Font MarkerFont = new Font(FontFamily.GenericSansSerif, 12.0f, FontStyle.Regular); @@ -67,16 +85,16 @@ namespace OpenRA.Editor TileSet = ts; Palette = p; PlayerPalette = pp; - PlayerPalettes = null; + playerPalettes = null; Chunks.Clear(); - Tool = null; + currentTool = null; } - public void SetTool(ITool tool) { Tool = tool; ClearSelection(); } + public void SetTool(ITool tool) { currentTool = tool; ClearSelection(); } public void BindActorTemplates(IEnumerable templates) { - ActorTemplates = templates.ToDictionary(a => a.Info.Name.ToLowerInvariant()); + actorTemplates = templates.ToDictionary(a => a.Info.Name.ToLowerInvariant()); } public void BindResourceTemplates(IEnumerable templates) @@ -99,7 +117,8 @@ namespace OpenRA.Editor static readonly Pen SelectionPen = new Pen(Color.Blue); static readonly Pen PastePen = new Pen(Color.Green); static readonly Pen CordonPen = new Pen(Color.Red); - int2 MousePos; + + int2 mousePos; public void Scroll(int2 dx) { @@ -151,12 +170,12 @@ namespace OpenRA.Editor if (Map == null) return; - var oldMousePos = MousePos; - MousePos = new int2(e.Location); + var oldMousePos = mousePos; + mousePos = new int2(e.Location); MousePositionChanged(GetBrushLocation().ToString()); if (e.Button == MouseButtons.Middle || (e.Button != MouseButtons.None && IsPanning)) - Scroll(oldMousePos - MousePos); + Scroll(oldMousePos - mousePos); else { if (e.Button == MouseButtons.Right || (IsErasing && e.Button == MouseButtons.Left)) @@ -180,7 +199,7 @@ namespace OpenRA.Editor brushLocation.Y < 0) return; - Tool = null; + currentTool = null; var key = Map.Actors.Value.FirstOrDefault(a => a.Value.Location() == brushLocation); if (key.Key != null) Map.Actors.Value.Remove(key.Key); @@ -188,7 +207,7 @@ namespace OpenRA.Editor if (Map.MapResources.Value[brushLocation.X, brushLocation.Y].type != 0) { Map.MapResources.Value[brushLocation.X, brushLocation.Y] = new TileReference(); - var ch = new int2((brushLocation.X) / ChunkSize, (brushLocation.Y) / ChunkSize); + var ch = new int2(brushLocation.X / ChunkSize, brushLocation.Y / ChunkSize); if (Chunks.ContainsKey(ch)) { Chunks[ch].Dispose(); @@ -202,9 +221,9 @@ namespace OpenRA.Editor void Draw() { - if (Tool != null) + if (currentTool != null) { - Tool.Apply(this); + currentTool.Apply(this); AfterChange(); } else if (IsPaste) @@ -237,7 +256,6 @@ namespace OpenRA.Editor Bitmap RenderChunk(int u, int v) { - var bitmap = new Bitmap(ChunkSize * TileSet.TileSize, ChunkSize * TileSet.TileSize); var data = bitmap.LockBits(bitmap.Bounds(), @@ -284,12 +302,12 @@ namespace OpenRA.Editor bitmap.UnlockBits(data); if (ShowGrid) - using( var g = SGraphics.FromImage(bitmap) ) + using (var g = SGraphics.FromImage(bitmap)) { - var rect = new Rectangle(0,0,bitmap.Width, bitmap.Height); - ControlPaint.DrawGrid( g, rect, new Size(2, Game.CellSize), Color.DarkRed ); - ControlPaint.DrawGrid( g, rect, new Size(Game.CellSize, 2), Color.DarkRed ); - ControlPaint.DrawGrid( g, rect, new Size(Game.CellSize, Game.CellSize), Color.Red ); + var rect = new Rectangle(0, 0, bitmap.Width, bitmap.Height); + ControlPaint.DrawGrid(g, rect, new Size(2, Game.CellSize), Color.DarkRed); + ControlPaint.DrawGrid(g, rect, new Size(Game.CellSize, 2), Color.DarkRed); + ControlPaint.DrawGrid(g, rect, new Size(Game.CellSize, Game.CellSize), Color.Red); } return bitmap; @@ -297,15 +315,15 @@ namespace OpenRA.Editor public CPos GetBrushLocation() { - var vX = (int)Math.Floor((MousePos.X - Offset.X) / Zoom); - var vY = (int)Math.Floor((MousePos.Y - Offset.Y) / Zoom); + var vX = (int)Math.Floor((mousePos.X - Offset.X) / Zoom); + var vY = (int)Math.Floor((mousePos.Y - Offset.Y) / Zoom); return new CPos(vX / TileSet.TileSize, vY / TileSet.TileSize); } public CPos GetBrushLocationBR() { - var vX = (int)Math.Floor((MousePos.X - Offset.X) / Zoom); - var vY = (int)Math.Floor((MousePos.Y - Offset.Y) / Zoom); + var vX = (int)Math.Floor((mousePos.X - Offset.X) / Zoom); + var vY = (int)Math.Floor((mousePos.Y - Offset.Y) / Zoom); return new CPos((vX + TileSet.TileSize - 1) / TileSet.TileSize, (vY + TileSet.TileSize - 1) / TileSet.TileSize); } @@ -361,14 +379,14 @@ namespace OpenRA.Editor return new Palette(PlayerPalette, remap).AsSystemPalette(); } - Cache PlayerPalettes; + Cache playerPalettes; public ColorPalette GetPaletteForPlayer(string player) { - if (PlayerPalettes == null) - PlayerPalettes = new Cache(GetPaletteForPlayerInner); + if (playerPalettes == null) + playerPalettes = new Cache(GetPaletteForPlayerInner); - return PlayerPalettes[player]; + return playerPalettes[player]; } ColorPalette GetPaletteForActor(ActorReference ar) @@ -393,10 +411,10 @@ namespace OpenRA.Editor var bmp = Chunks[x]; - float DrawX = TileSet.TileSize * (float)ChunkSize * (float)x.X * Zoom + Offset.X; - float DrawY = TileSet.TileSize * (float)ChunkSize * (float)x.Y * Zoom + Offset.Y; + var drawX = TileSet.TileSize * (float)ChunkSize * (float)x.X * Zoom + Offset.X; + var drawY = TileSet.TileSize * (float)ChunkSize * (float)x.Y * Zoom + Offset.Y; RectangleF sourceRect = new RectangleF(0, 0, bmp.Width, bmp.Height); - RectangleF destRect = new RectangleF(DrawX, DrawY, bmp.Width * Zoom, bmp.Height * Zoom); + RectangleF destRect = new RectangleF(drawX, drawY, bmp.Width * Zoom, bmp.Height * Zoom); e.Graphics.DrawImage(bmp, destRect, sourceRect, GraphicsUnit.Pixel); } @@ -427,8 +445,8 @@ namespace OpenRA.Editor foreach (var ar in Map.Actors.Value) { - if (ActorTemplates.ContainsKey(ar.Value.Type)) - DrawActor(e.Graphics, ar.Value.Location(), ActorTemplates[ar.Value.Type], + if (actorTemplates.ContainsKey(ar.Value.Type)) + DrawActor(e.Graphics, ar.Value.Location(), actorTemplates[ar.Value.Type], GetPaletteForActor(ar.Value)); else Console.WriteLine("Warning: Unknown or excluded actor: {0}", ar.Value.Type); @@ -445,16 +463,16 @@ namespace OpenRA.Editor if (ShowRuler && Zoom > 0.2) { - for (int i = Map.Bounds.Left; i <= Map.Bounds.Right; i+=8) + for (int i = Map.Bounds.Left; i <= Map.Bounds.Right; i += 8) { - if( i % 8 == 0) + if (i % 8 == 0) { PointF point = new PointF(i * TileSet.TileSize * Zoom + Offset.X, (Map.Bounds.Top - 8) * TileSet.TileSize * Zoom + Offset.Y); e.Graphics.DrawString((i - Map.Bounds.Left).ToString(), MarkerFont, TextBrush, point); } } - for (int i = Map.Bounds.Top; i <= Map.Bounds.Bottom; i+=8) + for (int i = Map.Bounds.Top; i <= Map.Bounds.Bottom; i += 8) { if (i % 8 == 0) { @@ -464,14 +482,14 @@ namespace OpenRA.Editor } } - if (Tool != null) - Tool.Preview(this, e.Graphics); + if (currentTool != null) + currentTool.Preview(this, e.Graphics); - if (Tool == null) + if (currentTool == null) { var x = Map.Actors.Value.FirstOrDefault(a => a.Value.Location() == GetBrushLocation()); if (x.Key != null) - DrawActorBorder(e.Graphics, x.Value.Location(), ActorTemplates[x.Value.Type]); + DrawActorBorder(e.Graphics, x.Value.Location(), actorTemplates[x.Value.Type]); } } @@ -493,7 +511,7 @@ namespace OpenRA.Editor { for (int y = 0; y < height; y++) { - //TODO: crash prevention + // TODO: crash prevention TileSelection[x, y] = Map.MapTiles.Value[start.X + x, start.Y + y]; ResourceSelection[x, y] = Map.MapResources.Value[start.X + x, start.Y + y]; } @@ -513,7 +531,7 @@ namespace OpenRA.Editor var mapX = loc.X + x; var mapY = loc.Y + y; - //TODO: crash prevention for outside of bounds + // TODO: crash prevention for outside of bounds Map.MapTiles.Value[mapX, mapY] = TileSelection[x, y]; Map.MapResources.Value[mapX, mapY] = ResourceSelection[x, y]; @@ -525,6 +543,7 @@ namespace OpenRA.Editor } } } + AfterChange(); } @@ -536,22 +555,4 @@ namespace OpenRA.Editor ResourceSelection = null; } } - - static class ActorReferenceExts - { - public static CPos Location(this ActorReference ar) - { - return (CPos)ar.InitDict.Get().value; - } - - public static void DrawStringContrast(this SGraphics g, Font f, string s, int x, int y, Brush fg, Brush bg) - { - g.DrawString(s, f, bg, x - 1, y - 1); - g.DrawString(s, f, bg, x + 1, y - 1); - g.DrawString(s, f, bg, x - 1, y + 1); - g.DrawString(s, f, bg, x + 1, y + 1); - - g.DrawString(s, f, fg, x, y); - } - } } \ No newline at end of file diff --git a/OpenRA.FileFormats/Evaluator.cs b/OpenRA.FileFormats/Evaluator.cs index 40addb059b..19ec58f51b 100644 --- a/OpenRA.FileFormats/Evaluator.cs +++ b/OpenRA.FileFormats/Evaluator.cs @@ -39,14 +39,15 @@ namespace OpenRA.FileFormats default: s.Push(int.Parse(t)); break; } } + return s.Pop(); } - static void ApplyBinop( Stack s, Func f ) + static void ApplyBinop(Stack s, Func f) { var x = s.Pop(); var y = s.Pop(); - s.Push( f(x,y) ); + s.Push(f(x, y)); } static IEnumerable ToPostfix(IEnumerable toks, Dictionary syms) diff --git a/OpenRA.FileFormats/Exts.cs b/OpenRA.FileFormats/Exts.cs index 30a629c59d..55071007d6 100755 --- a/OpenRA.FileFormats/Exts.cs +++ b/OpenRA.FileFormats/Exts.cs @@ -129,9 +129,9 @@ namespace OpenRA return xs.Except(ys).Concat(ys.Except(xs)); } - public static IEnumerable Iterate( this T t, Func f ) + public static IEnumerable Iterate(this T t, Func f) { - for(;;) { yield return t; t = f(t); } + for (;;) { yield return t; t = f(t); } } public static int NextPowerOf2(int v) @@ -157,7 +157,7 @@ namespace OpenRA return string.Join(j, ts.Select(t => t.ToString()).ToArray()); } - public static IEnumerable Append( this IEnumerable ts, params T[] moreTs) + public static IEnumerable Append(this IEnumerable ts, params T[] moreTs) { return ts.Concat(moreTs); } @@ -204,8 +204,8 @@ namespace OpenRA // If any duplicates were found, log it and throw a descriptive error if (dupKeys.Count > 0) { - string badKeysFormatted = String.Join(", ", dupKeys.Select(p => "{0}: [{1}]".F(logKey(p.Key), String.Join(",", p.Value.ToArray()))).ToArray()); - string msg = "{0}, duplicate values found for the following keys: {1}".F(debugName, badKeysFormatted); + var badKeysFormatted = string.Join(", ", dupKeys.Select(p => "{0}: [{1}]".F(logKey(p.Key), string.Join(",", p.Value.ToArray()))).ToArray()); + var msg = "{0}, duplicate values found for the following keys: {1}".F(debugName, badKeysFormatted); Log.Write("debug", msg); throw new ArgumentException(msg); } @@ -232,6 +232,16 @@ namespace OpenRA return result; } + public static T[,] ResizeArray(T[,] ts, T t, int width, int height) + { + var result = new T[width, height]; + for (var i = 0; i < width; i++) + for (var j = 0; j < height; j++) + result[i, j] = i <= ts.GetUpperBound(0) && j <= ts.GetUpperBound(1) + ? ts[i, j] : t; + return result; + } + public static Rectangle Bounds(this Bitmap b) { return new Rectangle(0, 0, b.Width, b.Height); } public static int ToBits(this IEnumerable bits) @@ -240,7 +250,7 @@ namespace OpenRA var result = 0; foreach (var b in bits) if (b) - result |= (1 << i++); + result |= 1 << i++; else i++; if (i > 33) diff --git a/OpenRA.FileFormats/FieldLoader.cs b/OpenRA.FileFormats/FieldLoader.cs index 5c966eb114..d48ac4ed94 100755 --- a/OpenRA.FileFormats/FieldLoader.cs +++ b/OpenRA.FileFormats/FieldLoader.cs @@ -11,57 +11,58 @@ using System; using System.Collections.Generic; using System.Drawing; +using System.Globalization; using System.Linq; using System.Reflection; -using System.Globalization; namespace OpenRA.FileFormats { public static class FieldLoader { - public static Func InvalidValueAction = (s,t,f) => + public static Func InvalidValueAction = (s, t, f) => { - throw new InvalidOperationException("FieldLoader: Cannot parse `{0}` into `{1}.{2}` ".F(s,f,t) ); + throw new InvalidOperationException("FieldLoader: Cannot parse `{0}` into `{1}.{2}` ".F(s, f, t)); }; - public static Action UnknownFieldAction = (s,f) => + public static Action UnknownFieldAction = (s, f) => { - throw new NotImplementedException( "FieldLoader: Missing field `{0}` on `{1}`".F( s, f.Name ) ); + throw new NotImplementedException("FieldLoader: Missing field `{0}` on `{1}`".F(s, f.Name)); }; - public static void Load( object self, MiniYaml my ) + public static void Load(object self, MiniYaml my) { - var loadDict = typeLoadInfo[ self.GetType() ]; + var loadDict = typeLoadInfo[self.GetType()]; - foreach( var kv in loadDict ) + foreach (var kv in loadDict) { object val; - if( kv.Value != null ) - val = kv.Value( kv.Key.Name, kv.Key.FieldType, my ); - else if( !TryGetValueFromYaml( kv.Key.Name, kv.Key.FieldType, my, out val ) ) + if (kv.Value != null) + val = kv.Value(kv.Key.Name, kv.Key.FieldType, my); + else if (!TryGetValueFromYaml(kv.Key.Name, kv.Key.FieldType, my, out val)) continue; - kv.Key.SetValue( self, val ); + kv.Key.SetValue(self, val); } } - static bool TryGetValueFromYaml( string fieldName, Type fieldType, MiniYaml yaml, out object ret ) + static bool TryGetValueFromYaml(string fieldName, Type fieldType, MiniYaml yaml, out object ret) { ret = null; - var n = yaml.Nodes.Where( x=>x.Key == fieldName ).ToList(); - if( n.Count == 0 ) + var n = yaml.Nodes.Where(x => x.Key == fieldName).ToList(); + if (n.Count == 0) return false; - if( n.Count == 1 && n[ 0 ].Value.Nodes.Count == 0 ) + if (n.Count == 1 && n[0].Value.Nodes.Count == 0) { - ret = GetValue( fieldName, fieldType, n[ 0 ].Value.Value ); + ret = GetValue(fieldName, fieldType, n[0].Value.Value); return true; } - else if ( n.Count > 1 ) + else if (n.Count > 1) { throw new InvalidOperationException("The field {0} has multiple definitions:\n{1}" .F(fieldName, n.Select(m => "\t- " + m.Location).JoinWith("\n"))); } - throw new InvalidOperationException( "TryGetValueFromYaml: unable to load field {0} (of type {1})".F( fieldName, fieldType ) ); + + throw new InvalidOperationException("TryGetValueFromYaml: unable to load field {0} (of type {1})".F(fieldName, fieldType)); } public static T Load(MiniYaml y) where T : new() @@ -71,19 +72,19 @@ namespace OpenRA.FileFormats return t; } - static readonly object[] NoIndexes = {}; - public static void LoadField( object self, string key, string value ) + static readonly object[] NoIndexes = { }; + public static void LoadField(object self, string key, string value) { - var field = self.GetType().GetField( key.Trim() ); + var field = self.GetType().GetField(key.Trim()); - if( field != null ) + if (field != null) { if (!field.HasAttribute()) - field.SetValue( self, GetValue( field.Name, field.FieldType, value ) ); + field.SetValue(self, GetValue(field.Name, field.FieldType, value)); return; } - var prop = self.GetType().GetProperty( key.Trim() ); + var prop = self.GetType().GetProperty(key.Trim()); if (prop != null) { @@ -92,47 +93,48 @@ namespace OpenRA.FileFormats return; } - UnknownFieldAction( key.Trim(), self.GetType() ); + UnknownFieldAction(key.Trim(), self.GetType()); } - public static T GetValue( string field, string value ) + public static T GetValue(string field, string value) { - return (T) GetValue( field, typeof(T), value ); + return (T)GetValue(field, typeof(T), value); } - public static object GetValue( string field, Type fieldType, string x ) + public static object GetValue(string field, Type fieldType, string x) { if (x != null) x = x.Trim(); - if( fieldType == typeof( int ) ) + + if (fieldType == typeof(int)) { int res; - if (int.TryParse(x,out res)) + if (int.TryParse(x, out res)) return res; - return InvalidValueAction(x,fieldType, field); + return InvalidValueAction(x, fieldType, field); } - else if( fieldType == typeof( ushort ) ) + else if (fieldType == typeof(ushort)) { ushort res; - if (ushort.TryParse(x,out res)) + if (ushort.TryParse(x, out res)) return res; - return InvalidValueAction(x,fieldType, field); + return InvalidValueAction(x, fieldType, field); } else if (fieldType == typeof(float)) { float res; - if (float.TryParse(x.Replace("%",""), NumberStyles.Any, NumberFormatInfo.InvariantInfo, out res)) - return res * (x.Contains( '%' ) ? 0.01f : 1f); - return InvalidValueAction(x,fieldType, field); + if (float.TryParse(x.Replace("%", ""), NumberStyles.Any, NumberFormatInfo.InvariantInfo, out res)) + return res * (x.Contains('%') ? 0.01f : 1f); + return InvalidValueAction(x, fieldType, field); } else if (fieldType == typeof(decimal)) { decimal res; - if (decimal.TryParse(x.Replace("%",""), NumberStyles.Any, NumberFormatInfo.InvariantInfo, out res)) - return res * (x.Contains( '%' ) ? 0.01m : 1m); - return InvalidValueAction(x,fieldType, field); + if (decimal.TryParse(x.Replace("%", ""), NumberStyles.Any, NumberFormatInfo.InvariantInfo, out res)) + return res * (x.Contains('%') ? 0.01m : 1m); + return InvalidValueAction(x, fieldType, field); } else if (fieldType == typeof(string)) @@ -145,12 +147,13 @@ namespace OpenRA.FileFormats return Color.FromArgb(int.Parse(parts[0]).Clamp(0, 255), int.Parse(parts[1]).Clamp(0, 255), int.Parse(parts[2]).Clamp(0, 255)); if (parts.Length == 4) return Color.FromArgb(int.Parse(parts[0]).Clamp(0, 255), int.Parse(parts[1]).Clamp(0, 255), int.Parse(parts[2]).Clamp(0, 255), int.Parse(parts[3]).Clamp(0, 255)); - return InvalidValueAction(x,fieldType, field); + return InvalidValueAction(x, fieldType, field); } else if (fieldType == typeof(HSLColor)) { var parts = x.Split(','); + // Allow old ColorRamp format to be parsed as HSLColor if (parts.Length == 3 || parts.Length == 4) return new HSLColor( @@ -213,6 +216,7 @@ namespace OpenRA.FileFormats if (int.TryParse(x, out rr) && int.TryParse(x, out rp) && int.TryParse(x, out ry)) return new WRot(new WAngle(rr), new WAngle(rp), new WAngle(ry)); } + return InvalidValueAction(x, fieldType, field); } @@ -238,11 +242,13 @@ namespace OpenRA.FileFormats ret.SetValue(GetValue(field, fieldType.GetElementType(), parts[i].Trim()), i); return ret; } + else if (fieldType == typeof(int2)) { var parts = x.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); return new int2(int.Parse(parts[0]), int.Parse(parts[1])); } + else if (fieldType == typeof(float2)) { var parts = x.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); @@ -255,11 +261,13 @@ namespace OpenRA.FileFormats yy = res * (parts[1].Contains('%') ? 0.01f : 1f); return new float2(xx, yy); } + else if (fieldType == typeof(Rectangle)) { var parts = x.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); return new Rectangle(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2]), int.Parse(parts[3])); } + else if (fieldType.IsGenericType && fieldType.GetGenericTypeDefinition() == typeof(Bits<>)) { var parts = x.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); @@ -268,62 +276,62 @@ namespace OpenRA.FileFormats return fieldType.GetConstructor(argTypes).Invoke(argValues); } - UnknownFieldAction("[Type] {0}".F(x),fieldType); + UnknownFieldAction("[Type] {0}".F(x), fieldType); return null; } - static object ParseYesNo( string p, System.Type fieldType, string field ) + static object ParseYesNo(string p, System.Type fieldType, string field) { p = p.ToLowerInvariant(); - if( p == "yes" ) return true; - if( p == "true" ) return true; - if( p == "no" ) return false; - if( p == "false" ) return false; - return InvalidValueAction(p,fieldType, field); + if (p == "yes") return true; + if (p == "true") return true; + if (p == "no") return false; + if (p == "false") return false; + return InvalidValueAction(p, fieldType, field); } - static Cache>> typeLoadInfo = new Cache>>( GetTypeLoadInfo ); + static Cache>> typeLoadInfo = new Cache>>(GetTypeLoadInfo); - static Dictionary> GetTypeLoadInfo( Type type ) + static Dictionary> GetTypeLoadInfo(Type type) { var ret = new Dictionary>(); - foreach( var ff in type.GetFields() ) + foreach (var ff in type.GetFields()) { var field = ff; - var ignore = field.GetCustomAttributes( false ); - var loadUsing = field.GetCustomAttributes( false ); - var fromYamlKey = field.GetCustomAttributes( false ); - if( loadUsing.Length != 0 ) - ret[ field ] = ( _1, fieldType, yaml ) => loadUsing[ 0 ].LoaderFunc( field )( yaml ); - else if( fromYamlKey.Length != 0 ) - ret[ field ] = ( f, ft, yaml ) => GetValue( f, ft, yaml.Value ); - else if( ignore.Length == 0 ) - ret[ field ] = null; + var ignore = field.GetCustomAttributes(false); + var loadUsing = field.GetCustomAttributes(false); + var fromYamlKey = field.GetCustomAttributes(false); + if (loadUsing.Length != 0) + ret[field] = (_1, fieldType, yaml) => loadUsing[0].LoaderFunc(field)(yaml); + else if (fromYamlKey.Length != 0) + ret[field] = (f, ft, yaml) => GetValue(f, ft, yaml.Value); + else if (ignore.Length == 0) + ret[field] = null; } return ret; } - [AttributeUsage( AttributeTargets.Field )] + [AttributeUsage(AttributeTargets.Field)] public class IgnoreAttribute : Attribute { } - [AttributeUsage( AttributeTargets.Field )] + [AttributeUsage(AttributeTargets.Field)] public class LoadUsingAttribute : Attribute { Func loaderFuncCache; public readonly string Loader; - public LoadUsingAttribute( string loader ) + public LoadUsingAttribute(string loader) { Loader = loader; } - internal Func LoaderFunc( FieldInfo field ) + internal Func LoaderFunc(FieldInfo field) { - const BindingFlags bf = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static; - if( loaderFuncCache == null ) - loaderFuncCache = (Func)Delegate.CreateDelegate( typeof( Func ), field.DeclaringType.GetMethod( Loader, bf ) ); + const BindingFlags BindingFlag = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static; + if (loaderFuncCache == null) + loaderFuncCache = (Func)Delegate.CreateDelegate(typeof(Func), field.DeclaringType.GetMethod(Loader, BindingFlag)); return loaderFuncCache; } } @@ -336,15 +344,15 @@ namespace OpenRA.FileFormats var nodes = new List(); string root = null; - foreach( var f in o.GetType().GetFields( BindingFlags.Public | BindingFlags.Instance ) ) + foreach (var f in o.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance)) { - if( f.HasAttribute() ) - root = FormatValue( o, f ); + if (f.HasAttribute()) + root = FormatValue(o, f); else - nodes.Add( new MiniYamlNode( f.Name, FormatValue( o, f ) ) ); + nodes.Add(new MiniYamlNode(f.Name, FormatValue(o, f))); } - return new MiniYaml( root, nodes ); + return new MiniYaml(root, nodes); } public static MiniYaml SaveDifferences(object o, object from) @@ -353,16 +361,14 @@ namespace OpenRA.FileFormats throw new InvalidOperationException("FieldLoader: can't diff objects of different types"); var fields = o.GetType().GetFields(BindingFlags.Public | BindingFlags.Instance) - .Where(f => FormatValue(o,f) != FormatValue(from,f)); + .Where(f => FormatValue(o, f) != FormatValue(from, f)); - return new MiniYaml( null, fields.Select( f => new MiniYamlNode( - f.Name, - FormatValue( o, f ) ) ).ToList() ); + return new MiniYaml(null, fields.Select(f => new MiniYamlNode(f.Name, FormatValue(o, f))).ToList()); } public static MiniYamlNode SaveField(object o, string field) { - return new MiniYamlNode(field, FieldSaver.FormatValue( o, o.GetType().GetField(field) )); + return new MiniYamlNode(field, FieldSaver.FormatValue(o, o.GetType().GetField(field))); } public static string FormatValue(object v, Type t) diff --git a/OpenRA.FileFormats/FileFormats/AudLoader.cs b/OpenRA.FileFormats/FileFormats/AudLoader.cs index 4152276db8..05d663e310 100644 --- a/OpenRA.FileFormats/FileFormats/AudLoader.cs +++ b/OpenRA.FileFormats/FileFormats/AudLoader.cs @@ -44,8 +44,8 @@ namespace OpenRA.FileFormats public static class AudLoader { - static int[] IndexAdjust = { -1, -1, -1, -1, 2, 4, 6, 8 }; - static int[] StepTable = { + static int[] indexAdjust = { -1, -1, -1, -1, 2, 4, 6, 8 }; + static int[] stepTable = { 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, 50, 55, 60, 66, 73, 80, 88, @@ -62,14 +62,14 @@ namespace OpenRA.FileFormats var sb = (b & 8) != 0; b &= 7; - var delta = (StepTable[index] * b) / 4 + StepTable[index] / 8; + var delta = (stepTable[index] * b) / 4 + stepTable[index] / 8; if (sb) delta = -delta; current += delta; if (current > short.MaxValue) current = short.MaxValue; if (current < short.MinValue) current = short.MinValue; - index += IndexAdjust[b]; + index += indexAdjust[b]; if (index < 0) index = 0; if (index > 88) index = 88; @@ -108,7 +108,7 @@ namespace OpenRA.FileFormats var sampleRate = br.ReadUInt16(); /*var dataSize = */ br.ReadInt32(); var outputSize = br.ReadInt32(); - var flags = (SoundFlags) br.ReadByte(); + var flags = (SoundFlags)br.ReadByte(); var samples = outputSize; if (0 != (flags & SoundFlags.Stereo)) samples /= 2; diff --git a/OpenRA.FileFormats/FileFormats/Blast.cs b/OpenRA.FileFormats/FileFormats/Blast.cs index 7f7518602d..c85d7cee3a 100644 --- a/OpenRA.FileFormats/FileFormats/Blast.cs +++ b/OpenRA.FileFormats/FileFormats/Blast.cs @@ -59,24 +59,24 @@ namespace OpenRA.FileFormats // Decode PKWare Compression Library stream. public static byte[] Decompress(byte[] src) { - BitReader br = new BitReader(src); + var br = new BitReader(src); // Are literals coded? - int coded = br.ReadBits(8); + var coded = br.ReadBits(8); if (coded < 0 || coded > 1) throw new NotImplementedException("Invalid datastream"); - bool EncodedLiterals = (coded == 1); + var EncodedLiterals = coded == 1; // log2(dictionary size) - 6 - int dict = br.ReadBits(8); + var dict = br.ReadBits(8); if (dict < 4 || dict > 6) throw new InvalidDataException("Invalid dictionary size"); // output state ushort next = 0; // index of next write location in out[] - bool first = true; // true to check distances (for first 4K) - byte[] outBuffer = new byte[MAXWIN]; // output buffer and sliding window + var first = true; // true to check distances (for first 4K) + var outBuffer = new byte[MAXWIN]; // output buffer and sliding window var ms = new MemoryStream(); // decode literals and length/distance pairs @@ -86,9 +86,11 @@ namespace OpenRA.FileFormats if (br.ReadBits(1) == 1) { // Length - int symbol = Decode(lencode, br); - int len = lengthbase[symbol] + br.ReadBits(extra[symbol]); - if (len == 519) // Magic number for "done" + var symbol = Decode(lencode, br); + var len = lengthbase[symbol] + br.ReadBits(extra[symbol]); + + // Magic number for "done" + if (len == 519) { for (int i = 0; i < next; i++) ms.WriteByte(outBuffer[i]); @@ -97,7 +99,7 @@ namespace OpenRA.FileFormats // Distance symbol = len == 2 ? 2 : dict; - int dist = Decode(distcode, br) << symbol; + var dist = Decode(distcode, br) << symbol; dist += br.ReadBits(symbol); dist++; @@ -107,10 +109,10 @@ namespace OpenRA.FileFormats // copy length bytes from distance bytes back do { - int dest = next; - int source = dest - dist; + var dest = next; + var source = dest - dist; - int copy = MAXWIN; + var copy = MAXWIN; if (next < dist) { source += copy; @@ -127,7 +129,7 @@ namespace OpenRA.FileFormats // copy with old-fashioned memcpy semantics // in case of overlapping ranges. this is NOT // the same as Array.Copy() - while( copy-- > 0 ) + while (copy-- > 0) outBuffer[dest++] = outBuffer[source++]; // Flush window to outstream @@ -140,9 +142,10 @@ namespace OpenRA.FileFormats } } while (len != 0); } - else // literal value + // literal value + else { - int symbol = EncodedLiterals ? Decode(litcode, br) : br.ReadBits(8); + var symbol = EncodedLiterals ? Decode(litcode, br) : br.ReadBits(8); outBuffer[next++] = (byte)symbol; if (next == MAXWIN) { @@ -160,9 +163,9 @@ namespace OpenRA.FileFormats // Decode a code using huffman table h. static int Decode(Huffman h, BitReader br) { - int code = 0; // len bits being decoded - int first = 0; // first code of length len - int index = 0; // index of first code of length len in symbol table + var code = 0; // len bits being decoded + var first = 0; // first code of length len + var index = 0; // index of first code of length len in symbol table short next = 1; while (true) { @@ -193,8 +196,8 @@ namespace OpenRA.FileFormats public int ReadBits(int count) { - int ret = 0; - int filled = 0; + var ret = 0; + var filled = 0; while (filled < count) { if (bitCount == 0) @@ -208,6 +211,7 @@ namespace OpenRA.FileFormats bitCount--; filled++; } + return ret; } } @@ -226,21 +230,22 @@ namespace OpenRA.FileFormats public short[] Count; // number of symbols of each length public short[] Symbol; // canonically ordered symbols - public Huffman(byte[] rep, int n, short SymbolCount) + public Huffman(byte[] rep, int n, short symbolCount) { - short[] length = new short[256]; // code lengths - int s = 0; // current symbol + var length = new short[256]; // code lengths + var s = 0; // current symbol // convert compact repeat counts into symbol bit length list foreach (byte code in rep) { - int num = (code >> 4) + 1; // Number of codes (top four bits plus 1) - byte len = (byte)(code & 15); // Code length (low four bits) + var num = (code >> 4) + 1; // Number of codes (top four bits plus 1) + var len = (byte)(code & 15); // Code length (low four bits) do { length[s++] = len; } while (--num > 0); } + n = s; // count number of codes of each length @@ -253,24 +258,22 @@ namespace OpenRA.FileFormats return; // check for an over-subscribed or incomplete set of lengths - int left = 1; // one possible code of zero length + var left = 1; // one possible code of zero length for (int len = 1; len <= Blast.MAXBITS; len++) { - left <<= 1; - // one more bit, double codes left - left -= Count[len]; - // deduct count from possible codes + left <<= 1; // one more bit, double codes left + left -= Count[len]; // deduct count from possible codes if (left < 0) - throw new InvalidDataException ("over subscribed code set"); + throw new InvalidDataException("over subscribed code set"); } // generate offsets into symbol table for each length for sorting - short[] offs = new short[Blast.MAXBITS + 1]; + var offs = new short[Blast.MAXBITS + 1]; for (int len = 1; len < Blast.MAXBITS; len++) offs[len + 1] = (short)(offs[len] + Count[len]); // put symbols in table sorted by length, by symbol order within each length - Symbol = new short[SymbolCount]; + Symbol = new short[symbolCount]; for (short i = 0; i < n; i++) if (length[i] != 0) Symbol[offs[length[i]]++] = i; diff --git a/OpenRA.FileFormats/FileFormats/IniFile.cs b/OpenRA.FileFormats/FileFormats/IniFile.cs index cebeb44be5..2ab2238b3d 100644 --- a/OpenRA.FileFormats/FileFormats/IniFile.cs +++ b/OpenRA.FileFormats/FileFormats/IniFile.cs @@ -20,93 +20,93 @@ namespace OpenRA.FileFormats { Dictionary sections = new Dictionary(); - public IniFile( Stream s ) + public IniFile(Stream s) { - Load( s ); + Load(s); } - public IniFile( params Stream[] streams ) + public IniFile(params Stream[] streams) { - foreach( var s in streams ) - Load( s ); + foreach (var s in streams) + Load(s); } - public void Load( Stream s ) + public void Load(Stream s) { - StreamReader reader = new StreamReader( s ); + StreamReader reader = new StreamReader(s); IniSection currentSection = null; - while( !reader.EndOfStream ) + while (!reader.EndOfStream) { - string line = reader.ReadLine(); + var line = reader.ReadLine(); - if( line.Length == 0 ) continue; + if (line.Length == 0) continue; - switch( line[ 0 ] ) + switch (line[0]) { case ';': break; - case '[': currentSection = ProcessSection( line ); break; - default: ProcessEntry( line, currentSection ); break; + case '[': currentSection = ProcessSection(line); break; + default: ProcessEntry(line, currentSection); break; } } } - Regex sectionPattern = new Regex( @"^\[([^]]*)\]" ); + Regex sectionPattern = new Regex(@"^\[([^]]*)\]"); - IniSection ProcessSection( string line ) + IniSection ProcessSection(string line) { - Match m = sectionPattern.Match( line ); - if( m == null || !m.Success ) + Match m = sectionPattern.Match(line); + if (m == null || !m.Success) return null; - string sectionName = m.Groups[ 1 ].Value.ToLowerInvariant(); + string sectionName = m.Groups[1].Value.ToLowerInvariant(); IniSection ret; - if( !sections.TryGetValue( sectionName, out ret ) ) - sections.Add( sectionName, ret = new IniSection( sectionName ) ); + if (!sections.TryGetValue(sectionName, out ret)) + sections.Add(sectionName, ret = new IniSection(sectionName)); return ret; } - bool ProcessEntry( string line, IniSection currentSection ) + bool ProcessEntry(string line, IniSection currentSection) { - int comment = line.IndexOf( ';' ); - if( comment >= 0 ) - line = line.Substring( 0, comment ); + var comment = line.IndexOf(';'); + if (comment >= 0) + line = line.Substring(0, comment); line = line.Trim(); - if( line.Length == 0 ) + if (line.Length == 0) return false; var key = line; var value = ""; - int eq = line.IndexOf( '=' ); - if( eq >= 0 ) + int eq = line.IndexOf('='); + if (eq >= 0) { - key = line.Substring( 0, eq ); - value = line.Substring( eq + 1, line.Length - eq - 1 ); + key = line.Substring(0, eq); + value = line.Substring(eq + 1, line.Length - eq - 1); } - if( currentSection == null ) - throw new InvalidOperationException( "No current INI section" ); + if (currentSection == null) + throw new InvalidOperationException("No current INI section"); - if( !currentSection.Contains( key ) ) - currentSection.Add( key, value ); + if (!currentSection.Contains(key)) + currentSection.Add(key, value); return true; } - public IniSection GetSection( string s ) + public IniSection GetSection(string s) { - return GetSection( s, false ); + return GetSection(s, false); } - public IniSection GetSection( string s, bool allowFail ) + public IniSection GetSection(string s, bool allowFail) { IniSection section; - if( sections.TryGetValue( s.ToLowerInvariant(), out section ) ) + if (sections.TryGetValue(s.ToLowerInvariant(), out section)) return section; - if( allowFail ) - return new IniSection( s ); - throw new InvalidOperationException( "Section does not exist in map or rules: " + s ); + if (allowFail) + return new IniSection(s); + throw new InvalidOperationException("Section does not exist in map or rules: " + s); } public IEnumerable Sections { get { return sections.Values; } } @@ -117,25 +117,25 @@ namespace OpenRA.FileFormats public string Name { get; private set; } Dictionary values = new Dictionary(); - public IniSection( string name ) + public IniSection(string name) { Name = name; } - public void Add( string key, string value ) + public void Add(string key, string value) { values[key] = value; } - public bool Contains( string key ) + public bool Contains(string key) { - return values.ContainsKey( key ); + return values.ContainsKey(key); } - public string GetValue( string key, string defaultValue ) + public string GetValue(string key, string defaultValue) { string s; - return values.TryGetValue( key, out s ) ? s : defaultValue; + return values.TryGetValue(key, out s) ? s : defaultValue; } public IEnumerator> GetEnumerator() diff --git a/OpenRA.FileFormats/MiniYaml.cs b/OpenRA.FileFormats/MiniYaml.cs index 8af81d951a..965f8e362e 100755 --- a/OpenRA.FileFormats/MiniYaml.cs +++ b/OpenRA.FileFormats/MiniYaml.cs @@ -17,255 +17,6 @@ namespace OpenRA.FileFormats { using MiniYamlNodes = List; - public class MiniYamlNode - { - public struct SourceLocation - { - public string Filename; public int Line; - public override string ToString() { return "{0}:{1}".F(Filename, Line); } - } - - public SourceLocation Location; - public string Key; - public MiniYaml Value; - - public MiniYamlNode( string k, MiniYaml v ) - { - Key = k; - Value = v; - } - - public MiniYamlNode( string k, MiniYaml v, SourceLocation loc ) - : this( k, v ) - { - Location = loc; - } - - public MiniYamlNode( string k, string v ) - : this( k, v, null ) - { - } - public MiniYamlNode( string k, string v, List n ) - : this( k, new MiniYaml( v, n ) ) - { - } - - public MiniYamlNode( string k, string v, List n, SourceLocation loc ) - : this( k, new MiniYaml( v, n ), loc ) - { - } - - public override string ToString() - { - return "{{YamlNode: {0} @ {1}}}".F(Key, Location); - } - } - - public class MiniYaml - { - public string Value; - public List Nodes; - - public Dictionary NodesDict - { - get - { - var ret = new Dictionary(); - foreach (var y in Nodes) - { - if (ret.ContainsKey(y.Key)) - throw new InvalidDataException("Duplicate key `{0}' in MiniYaml".F(y.Key)); - ret.Add(y.Key, y.Value); - } - return ret; - } - } - - public MiniYaml( string value ) : this( value, null ) { } - - public MiniYaml( string value, List nodes ) - { - Value = value; - Nodes = nodes ?? new List(); - } - - public static MiniYaml FromDictionary( Dictionary dict ) - { - return new MiniYaml( null, dict.Select( x => new MiniYamlNode( x.Key.ToString(), new MiniYaml( x.Value.ToString() ) ) ).ToList() ); - } - - public static MiniYaml FromList( List list ) - { - return new MiniYaml( null, list.Select( x => new MiniYamlNode( x.ToString(), new MiniYaml( null ) ) ).ToList() ); - } - - static List FromLines(string[] lines, string filename) - { - var levels = new List>(); - levels.Add(new List()); - - var lineNo = 0; - foreach (var ll in lines) - { - var line = ll; - ++lineNo; - if (line.Contains('#')) - line = line.Substring(0, line.IndexOf('#')).TrimEnd(' ', '\t'); - var t = line.TrimStart(' ', '\t'); - if (t.Length == 0) - continue; - var level = line.Length - t.Length; - var location = new MiniYamlNode.SourceLocation { Filename = filename, Line = lineNo }; - - if (levels.Count <= level) - throw new YamlException("Bad indent in miniyaml at {0}".F (location)); - while (levels.Count > level + 1) - levels.RemoveAt(levels.Count - 1); - - var d = new List(); - var rhs = SplitAtColon( ref t ); - levels[ level ].Add( new MiniYamlNode( t, rhs, d, location ) ); - - levels.Add(d); - } - return levels[ 0 ]; - } - - static string SplitAtColon( ref string t ) - { - var colon = t.IndexOf(':'); - if( colon == -1 ) - return null; - var ret = t.Substring( colon + 1 ).Trim(); - if( ret.Length == 0 ) - ret = null; - t = t.Substring( 0, colon ).Trim(); - return ret; - } - - public static List FromFileInPackage( string path ) - { - StreamReader reader = new StreamReader( FileSystem.Open(path) ); - List lines = new List(); - - while( !reader.EndOfStream ) - lines.Add(reader.ReadLine()); - reader.Close(); - - return FromLines(lines.ToArray(), path); - } - - public static Dictionary DictFromFile( string path ) - { - return FromFile( path ).ToDictionary( x => x.Key, x => x.Value ); - } - - public static Dictionary DictFromStream( Stream stream ) - { - return FromStream( stream ).ToDictionary( x => x.Key, x => x.Value ); - } - - public static List FromFile( string path ) - { - return FromLines(File.ReadAllLines( path ), path); - } - - public static List FromStream(Stream s) - { - using (var reader = new StreamReader(s)) - return FromString(reader.ReadToEnd()); - } - - public static List FromString(string text) - { - return FromLines(text.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries), ""); - } - - public static List MergeLiberal(List a, List b) - { - return Merge(a, b, false); - } - - public static List MergeStrict(List a, List b) - { - return Merge(a, b, true); - } - - static List Merge( List a, List b, bool throwErrors ) - { - if( a.Count == 0 ) - return b; - if( b.Count == 0 ) - return a; - - var ret = new List(); - - var aDict = a.ToDictionaryWithConflictLog(x => x.Key, "MiniYaml.Merge", null, x => "{0} (at {1})".F(x.Key, x.Location)); - var bDict = b.ToDictionaryWithConflictLog(x => x.Key, "MiniYaml.Merge", null, x => "{0} (at {1})".F(x.Key, x.Location)); - var keys = aDict.Keys.Union( bDict.Keys ).ToList(); - - var noInherit = keys.Where(x => x.Length > 0 && x[0] == '-') - .ToDictionary(x => x.Substring(1), x => false); - - foreach( var key in keys ) - { - MiniYamlNode aa, bb; - aDict.TryGetValue( key, out aa ); - bDict.TryGetValue( key, out bb ); - - if( noInherit.ContainsKey( key ) ) - { - if (!throwErrors) - if (aa != null) - ret.Add(aa); - - noInherit[key] = true; - } - else - { - var loc = aa == null ? default( MiniYamlNode.SourceLocation ) : aa.Location; - var merged = ( aa == null || bb == null ) ? aa ?? bb : new MiniYamlNode( key, Merge( aa.Value, bb.Value, throwErrors ), loc ); - ret.Add( merged ); - } - } - - if (throwErrors) - if (noInherit.ContainsValue(false)) - throw new YamlException("Bogus yaml removals: {0}".F( - noInherit.Where(x => !x.Value).JoinWith(", "))); - - return ret; - } - - public static MiniYaml MergeLiberal(MiniYaml a, MiniYaml b) - { - return Merge(a, b, false); - } - - public static MiniYaml MergeStrict(MiniYaml a, MiniYaml b) - { - return Merge(a, b, true); - } - - static MiniYaml Merge( MiniYaml a, MiniYaml b, bool throwErrors ) - { - if( a == null ) - return b; - if( b == null ) - return a; - - return new MiniYaml( a.Value ?? b.Value, Merge( a.Nodes, b.Nodes, throwErrors ) ); - } - - public IEnumerable ToLines(string name) - { - yield return name + ": " + Value; - if (Nodes != null) - foreach (var line in Nodes.ToLines(false)) - yield return "\t" + line; - } - } - public static class MiniYamlExts { public static void WriteToFile(this MiniYamlNodes y, string filename) @@ -290,6 +41,257 @@ namespace OpenRA.FileFormats } } + public class MiniYamlNode + { + public struct SourceLocation + { + public string Filename; public int Line; + public override string ToString() { return "{0}:{1}".F(Filename, Line); } + } + + public SourceLocation Location; + public string Key; + public MiniYaml Value; + + public MiniYamlNode(string k, MiniYaml v) + { + Key = k; + Value = v; + } + + public MiniYamlNode(string k, MiniYaml v, SourceLocation loc) + : this(k, v) + { + Location = loc; + } + + public MiniYamlNode(string k, string v) + : this(k, v, null) { } + + public MiniYamlNode(string k, string v, List n) + : this(k, new MiniYaml(v, n)) { } + + public MiniYamlNode(string k, string v, List n, SourceLocation loc) + : this(k, new MiniYaml(v, n), loc) { } + + public override string ToString() + { + return "{{YamlNode: {0} @ {1}}}".F(Key, Location); + } + } + + public class MiniYaml + { + public string Value; + public List Nodes; + + public Dictionary NodesDict + { + get + { + var ret = new Dictionary(); + foreach (var y in Nodes) + { + if (ret.ContainsKey(y.Key)) + throw new InvalidDataException("Duplicate key `{0}' in MiniYaml".F(y.Key)); + ret.Add(y.Key, y.Value); + } + + return ret; + } + } + + public MiniYaml(string value) : this(value, null) { } + + public MiniYaml(string value, List nodes) + { + Value = value; + Nodes = nodes ?? new List(); + } + + public static MiniYaml FromDictionary(Dictionary dict) + { + return new MiniYaml(null, dict.Select(x => new MiniYamlNode(x.Key.ToString(), new MiniYaml(x.Value.ToString()))).ToList()); + } + + public static MiniYaml FromList(List list) + { + return new MiniYaml(null, list.Select(x => new MiniYamlNode(x.ToString(), new MiniYaml(null))).ToList()); + } + + public static List NodesOrEmpty(MiniYaml y, string s) + { + return y.NodesDict.ContainsKey(s) ? y.NodesDict[s].Nodes : new List(); + } + + static List FromLines(string[] lines, string filename) + { + var levels = new List>(); + levels.Add(new List()); + + var lineNo = 0; + foreach (var ll in lines) + { + var line = ll; + ++lineNo; + if (line.Contains('#')) + line = line.Substring(0, line.IndexOf('#')).TrimEnd(' ', '\t'); + var t = line.TrimStart(' ', '\t'); + if (t.Length == 0) + continue; + var level = line.Length - t.Length; + var location = new MiniYamlNode.SourceLocation { Filename = filename, Line = lineNo }; + + if (levels.Count <= level) + throw new YamlException("Bad indent in miniyaml at {0}".F(location)); + while (levels.Count > level + 1) + levels.RemoveAt(levels.Count - 1); + + var d = new List(); + var rhs = SplitAtColon(ref t); + levels[level].Add(new MiniYamlNode(t, rhs, d, location)); + + levels.Add(d); + } + + return levels[0]; + } + + static string SplitAtColon(ref string t) + { + var colon = t.IndexOf(':'); + if (colon == -1) + return null; + var ret = t.Substring(colon + 1).Trim(); + if (ret.Length == 0) + ret = null; + t = t.Substring(0, colon).Trim(); + return ret; + } + + public static List FromFileInPackage(string path) + { + StreamReader reader = new StreamReader(FileSystem.Open(path)); + List lines = new List(); + + while (!reader.EndOfStream) + lines.Add(reader.ReadLine()); + reader.Close(); + + return FromLines(lines.ToArray(), path); + } + + public static Dictionary DictFromFile(string path) + { + return FromFile(path).ToDictionary(x => x.Key, x => x.Value); + } + + public static Dictionary DictFromStream(Stream stream) + { + return FromStream(stream).ToDictionary(x => x.Key, x => x.Value); + } + + public static List FromFile(string path) + { + return FromLines(File.ReadAllLines(path), path); + } + + public static List FromStream(Stream s) + { + using (var reader = new StreamReader(s)) + return FromString(reader.ReadToEnd()); + } + + public static List FromString(string text) + { + return FromLines(text.Split(new[] { "\r\n", "\n" }, StringSplitOptions.RemoveEmptyEntries), ""); + } + + public static List MergeLiberal(List a, List b) + { + return Merge(a, b, false); + } + + public static List MergeStrict(List a, List b) + { + return Merge(a, b, true); + } + + static List Merge(List a, List b, bool throwErrors) + { + if (a.Count == 0) + return b; + if (b.Count == 0) + return a; + + var ret = new List(); + + var dictA = a.ToDictionaryWithConflictLog(x => x.Key, "MiniYaml.Merge", null, x => "{0} (at {1})".F(x.Key, x.Location)); + var dictB = b.ToDictionaryWithConflictLog(x => x.Key, "MiniYaml.Merge", null, x => "{0} (at {1})".F(x.Key, x.Location)); + var keys = dictA.Keys.Union(dictB.Keys).ToList(); + + var noInherit = keys.Where(x => x.Length > 0 && x[0] == '-') + .ToDictionary(x => x.Substring(1), x => false); + + foreach (var key in keys) + { + MiniYamlNode aa, bb; + dictA.TryGetValue(key, out aa); + dictB.TryGetValue(key, out bb); + + if (noInherit.ContainsKey(key)) + { + if (!throwErrors) + if (aa != null) + ret.Add(aa); + + noInherit[key] = true; + } + else + { + var loc = aa == null ? default(MiniYamlNode.SourceLocation) : aa.Location; + var merged = (aa == null || bb == null) ? aa ?? bb : new MiniYamlNode(key, Merge(aa.Value, bb.Value, throwErrors), loc); + ret.Add(merged); + } + } + + if (throwErrors) + if (noInherit.ContainsValue(false)) + throw new YamlException("Bogus yaml removals: {0}".F( + noInherit.Where(x => !x.Value).JoinWith(", "))); + + return ret; + } + + public static MiniYaml MergeLiberal(MiniYaml a, MiniYaml b) + { + return Merge(a, b, false); + } + + public static MiniYaml MergeStrict(MiniYaml a, MiniYaml b) + { + return Merge(a, b, true); + } + + static MiniYaml Merge(MiniYaml a, MiniYaml b, bool throwErrors) + { + if (a == null) + return b; + if (b == null) + return a; + + return new MiniYaml(a.Value ?? b.Value, Merge(a.Nodes, b.Nodes, throwErrors)); + } + + public IEnumerable ToLines(string name) + { + yield return name + ": " + Value; + if (Nodes != null) + foreach (var line in Nodes.ToLines(false)) + yield return "\t" + line; + } + } + public class YamlException : Exception { public YamlException(string s) : base(s) { } diff --git a/OpenRA.FileFormats/OpenRA.FileFormats.csproj b/OpenRA.FileFormats/OpenRA.FileFormats.csproj index cc3d2264c1..7ccec24b8b 100644 --- a/OpenRA.FileFormats/OpenRA.FileFormats.csproj +++ b/OpenRA.FileFormats/OpenRA.FileFormats.csproj @@ -126,7 +126,6 @@ - diff --git a/OpenRA.FileFormats/Properties/AssemblyInfo.cs b/OpenRA.FileFormats/Properties/AssemblyInfo.cs deleted file mode 100644 index 5495a0fa39..0000000000 --- a/OpenRA.FileFormats/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,26 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("OpenRA.FileFormats")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.FileFormats")] -[assembly: AssemblyCopyright("Copyright © 2007,2009,2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.FileFormats/Settings.StyleCop b/OpenRA.FileFormats/Settings.StyleCop index 2e3436170c..7031ca7dff 100644 --- a/OpenRA.FileFormats/Settings.StyleCop +++ b/OpenRA.FileFormats/Settings.StyleCop @@ -252,6 +252,11 @@ False + + + False + + @@ -302,6 +307,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Game/Map.cs b/OpenRA.Game/Map.cs index 4fad2b5b5f..f792d41884 100644 --- a/OpenRA.Game/Map.cs +++ b/OpenRA.Game/Map.cs @@ -22,7 +22,7 @@ namespace OpenRA { public class Map { - [FieldLoader.Ignore] IFolder Container; + [FieldLoader.Ignore] IFolder container; public string Path { get; private set; } // Yaml map data @@ -44,14 +44,6 @@ namespace OpenRA public int PlayerCount { get { return Players.Count(p => p.Value.Playable); } } - public int2[] GetSpawnPoints() - { - return Actors.Value.Values - .Where(a => a.Type == "mpspawn") - .Select(a => a.InitDict.Get().value) - .ToArray(); - } - public Rectangle Bounds; // Yaml map data @@ -71,14 +63,12 @@ namespace OpenRA [FieldLoader.Ignore] public Lazy[,]> MapTiles; [FieldLoader.Ignore] public Lazy[,]> MapResources; - [FieldLoader.Ignore] public string [,] CustomTerrain; - - public Map() {} /* doesn't really produce a valid map, but enough for loading a mod */ + [FieldLoader.Ignore] public string[,] CustomTerrain; public static Map FromTileset(string tileset) { var tile = OpenRA.Rules.TileSets[tileset].Templates.First(); - var tileRef = new TileReference { type = tile.Key, index = (byte)0 }; + var tileRef = new TileReference { type = tile.Key, index = (byte)0 }; Map map = new Map() { @@ -98,20 +88,22 @@ namespace OpenRA void AssertExists(string filename) { - using(var s = Container.GetContent(filename)) + using (var s = container.GetContent(filename)) if (s == null) throw new InvalidOperationException("Required file {0} not present in this map".F(filename)); } + public Map() { } /* doesn't really produce a valid map, but enough for loading a mod */ + public Map(string path) { Path = path; - Container = FileSystem.OpenPackage(path, null, int.MaxValue); + container = FileSystem.OpenPackage(path, null, int.MaxValue); AssertExists("map.yaml"); AssertExists("map.bin"); - var yaml = new MiniYaml( null, MiniYaml.FromStream(Container.GetContent("map.yaml")) ); + var yaml = new MiniYaml(null, MiniYaml.FromStream(container.GetContent("map.yaml"))); FieldLoader.Load(this, yaml); Uid = ComputeHash(); @@ -130,7 +122,7 @@ namespace OpenRA Actors = Lazy.New(() => { - var ret = new Dictionary(); + var ret = new Dictionary(); foreach (var kv in yaml.NodesDict["Actors"].NodesDict) ret.Add(kv.Key, new ActorReference(kv.Value.Value, kv.Value.NodesDict)); return ret; @@ -150,12 +142,12 @@ namespace OpenRA return ret; }); - Rules = NodesOrEmpty(yaml, "Rules"); - Sequences = NodesOrEmpty(yaml, "Sequences"); - VoxelSequences = NodesOrEmpty(yaml, "VoxelSequences"); - Weapons = NodesOrEmpty(yaml, "Weapons"); - Voices = NodesOrEmpty(yaml, "Voices"); - Notifications = NodesOrEmpty(yaml, "Notifications"); + Rules = MiniYaml.NodesOrEmpty(yaml, "Rules"); + Sequences = MiniYaml.NodesOrEmpty(yaml, "Sequences"); + VoxelSequences = MiniYaml.NodesOrEmpty(yaml, "VoxelSequences"); + Weapons = MiniYaml.NodesOrEmpty(yaml, "Weapons"); + Voices = MiniYaml.NodesOrEmpty(yaml, "Voices"); + Notifications = MiniYaml.NodesOrEmpty(yaml, "Notifications"); CustomTerrain = new string[MapSize.X, MapSize.Y]; @@ -163,9 +155,12 @@ namespace OpenRA MapResources = Lazy.New(() => LoadResourceTiles()); } - static List NodesOrEmpty(MiniYaml y, string s) + public int2[] GetSpawnPoints() { - return y.NodesDict.ContainsKey(s) ? y.NodesDict[s].Nodes : new List(); + return Actors.Value.Values + .Where(a => a.Type == "mpspawn") + .Select(a => a.InitDict.Get().value) + .ToArray(); } public void Save(string toPath) @@ -173,7 +168,7 @@ namespace OpenRA MapFormat = 5; var root = new List(); - var fields = new [] + var fields = new[] { "Selectable", "MapFormat", @@ -193,20 +188,16 @@ namespace OpenRA { var f = this.GetType().GetField(field); if (f.GetValue(this) == null) continue; - root.Add( new MiniYamlNode( field, FieldSaver.FormatValue( this, f ) ) ); + root.Add(new MiniYamlNode(field, FieldSaver.FormatValue(this, f))); } - root.Add( new MiniYamlNode( "Players", null, - Players.Select( p => new MiniYamlNode( - "PlayerReference@{0}".F( p.Key ), - FieldSaver.SaveDifferences( p.Value, new PlayerReference() ) ) ).ToList() ) ); + root.Add(new MiniYamlNode("Players", null, + Players.Select(p => new MiniYamlNode("PlayerReference@{0}".F(p.Key), FieldSaver.SaveDifferences(p.Value, new PlayerReference()))).ToList())); - root.Add( new MiniYamlNode( "Actors", null, - Actors.Value.Select( x => new MiniYamlNode( - x.Key, - x.Value.Save() ) ).ToList() ) ); + root.Add(new MiniYamlNode("Actors", null, + Actors.Value.Select(x => new MiniYamlNode(x.Key, x.Value.Save())).ToList())); - root.Add(new MiniYamlNode("Smudges", MiniYaml.FromList( Smudges.Value ))); + root.Add(new MiniYamlNode("Smudges", MiniYaml.FromList(Smudges.Value))); root.Add(new MiniYamlNode("Rules", null, Rules)); root.Add(new MiniYamlNode("Sequences", null, Sequences)); root.Add(new MiniYamlNode("VoxelSequences", null, VoxelSequences)); @@ -226,17 +217,17 @@ namespace OpenRA // Create a new map package // TODO: Add other files (custom assets) to the entries list - Container = FileSystem.CreatePackage(Path, int.MaxValue, entries); + container = FileSystem.CreatePackage(Path, int.MaxValue, entries); } // Update existing package - Container.Write(entries); + container.Write(entries); } public TileReference[,] LoadMapTiles() { var tiles = new TileReference[MapSize.X, MapSize.Y]; - using (var dataStream = Container.GetContent("map.bin")) + using (var dataStream = container.GetContent("map.bin")) { if (dataStream.ReadUInt8() != 1) throw new InvalidDataException("Unknown binary map format"); @@ -260,6 +251,7 @@ namespace OpenRA tiles[i, j] = new TileReference(tile, index); } } + return tiles; } @@ -267,7 +259,7 @@ namespace OpenRA { var resources = new TileReference[MapSize.X, MapSize.Y]; - using (var dataStream = Container.GetContent("map.bin")) + using (var dataStream = container.GetContent("map.bin")) { if (dataStream.ReadUInt8() != 1) throw new InvalidDataException("Unknown binary map format"); @@ -280,7 +272,7 @@ namespace OpenRA throw new InvalidDataException("Invalid tile data"); // Skip past tile data - dataStream.Seek(3*MapSize.X*MapSize.Y, SeekOrigin.Current); + dataStream.Seek(3 * MapSize.X * MapSize.Y, SeekOrigin.Current); // Load resource data for (var i = 0; i < MapSize.X; i++) @@ -291,6 +283,7 @@ namespace OpenRA resources[i, j] = new TileReference(type, index); } } + return resources; } @@ -314,8 +307,8 @@ namespace OpenRA for (var j = 0; j < MapSize.Y; j++) { writer.Write(MapTiles.Value[i, j].type); - var PickAny = OpenRA.Rules.TileSets[Tileset].Templates[MapTiles.Value[i, j].type].PickAny; - writer.Write(PickAny ? (byte)(i % 4 + (j % 4) * 4) : MapTiles.Value[i, j].index); + var pickAny = OpenRA.Rules.TileSets[Tileset].Templates[MapTiles.Value[i, j].type].PickAny; + writer.Write(pickAny ? (byte)(i % 4 + (j % 4) * 4) : MapTiles.Value[i, j].index); } // Resource data @@ -326,29 +319,20 @@ namespace OpenRA writer.Write(MapResources.Value[i, j].index); } } + return dataStream.ToArray(); } public bool IsInMap(CPos xy) { return IsInMap(xy.X, xy.Y); } - public bool IsInMap(int x, int y) { return Bounds.Contains(x,y); } - - static T[,] ResizeArray(T[,] ts, T t, int width, int height) - { - var result = new T[width, height]; - for (var i = 0; i < width; i++) - for (var j = 0; j < height; j++) - result[i, j] = i <= ts.GetUpperBound(0) && j <= ts.GetUpperBound(1) - ? ts[i, j] : t; - return result; - } + public bool IsInMap(int x, int y) { return Bounds.Contains(x, y); } public void Resize(int width, int height) // editor magic. { var oldMapTiles = MapTiles.Value; var oldMapResources = MapResources.Value; - MapTiles = Lazy.New(() => ResizeArray(oldMapTiles, oldMapTiles[0, 0], width, height)); - MapResources = Lazy.New(() => ResizeArray(oldMapResources, oldMapResources[0, 0], width, height)); + MapTiles = Lazy.New(() => Exts.ResizeArray(oldMapTiles, oldMapTiles[0, 0], width, height)); + MapResources = Lazy.New(() => Exts.ResizeArray(oldMapResources, oldMapResources[0, 0], width, height)); MapSize = new int2(width, height); } @@ -361,8 +345,8 @@ namespace OpenRA { // UID is calculated by taking an SHA1 of the yaml and binary data // Read the relevant data into a buffer - var data = Container.GetContent("map.yaml").ReadAllBytes() - .Concat(Container.GetContent("map.bin").ReadAllBytes()).ToArray(); + var data = container.GetContent("map.yaml").ReadAllBytes() + .Concat(container.GetContent("map.bin").ReadAllBytes()).ToArray(); // Take the SHA1 using (var csp = SHA1.Create()) diff --git a/OpenRA.Game/ModData.cs b/OpenRA.Game/ModData.cs index 65a8fa2d43..7af68550f8 100755 --- a/OpenRA.Game/ModData.cs +++ b/OpenRA.Game/ModData.cs @@ -30,6 +30,18 @@ namespace OpenRA public SpriteLoader SpriteLoader; public VoxelLoader VoxelLoader; + public static IEnumerable FindMapsIn(string dir) + { + string[] noMaps = { }; + + if (!Directory.Exists(dir)) + return noMaps; + + return Directory.GetDirectories(dir) + .Concat(Directory.GetFiles(dir, "*.zip")) + .Concat(Directory.GetFiles(dir, "*.oramap")); + } + public ModData(params string[] mods) { Manifest = new Manifest(mods); @@ -45,7 +57,6 @@ namespace OpenRA FileSystem.UnmountAll(); foreach (var dir in Manifest.Folders) FileSystem.Mount(dir); - } public void InitializeLoaders() @@ -76,24 +87,13 @@ namespace OpenRA Rules.LoadRules(Manifest, map); SpriteLoader = new SpriteLoader(Rules.TileSets[map.Tileset].Extensions, SheetBuilder); + // TODO: Don't load the sequences for assets that are not used in this tileset. Maybe use the existing EditorTilesetFilters. SequenceProvider.Initialize(Manifest.Sequences, map.Sequences); VoxelProvider.Initialize(Manifest.VoxelSequences, map.VoxelSequences); return map; } - public static IEnumerable FindMapsIn(string dir) - { - string[] NoMaps = { }; - - if (!Directory.Exists(dir)) - return NoMaps; - - return Directory.GetDirectories(dir) - .Concat(Directory.GetFiles(dir, "*.zip")) - .Concat(Directory.GetFiles(dir, "*.oramap")); - } - Dictionary FindMaps(string[] mods) { var paths = mods.SelectMany(p => FindMapsIn("mods{0}{1}{0}maps{0}".F(Path.DirectorySeparatorChar, p))) @@ -108,7 +108,7 @@ namespace OpenRA var map = new Map(path); ret.Add(map.Uid, map); } - catch(Exception e) + catch (Exception e) { Console.WriteLine("Failed to load map: {0}", path); Console.WriteLine("Details: {0}", e.ToString()); diff --git a/OpenRA.Game/ObjectCreator.cs b/OpenRA.Game/ObjectCreator.cs index fe84654a78..e7a54ab96a 100755 --- a/OpenRA.Game/ObjectCreator.cs +++ b/OpenRA.Game/ObjectCreator.cs @@ -19,9 +19,9 @@ namespace OpenRA { public class ObjectCreator { - Pair[] ModAssemblies; + Pair[] modAssemblies; - public ObjectCreator( Manifest manifest ) + public ObjectCreator(Manifest manifest) { // All the core namespaces var asms = typeof(Game).Assembly.GetNamespaces() @@ -35,7 +35,7 @@ namespace OpenRA asms.AddRange(asm.GetNamespaces().Select(ns => Pair.New(asm, ns))); } - ModAssemblies = asms.ToArray(); + modAssemblies = asms.ToArray(); } public static Action MissingTypeAction = @@ -43,57 +43,59 @@ namespace OpenRA public T CreateObject(string className) { - return CreateObject( className, new Dictionary() ); + return CreateObject(className, new Dictionary()); } - public T CreateObject( string className, Dictionary args ) + public T CreateObject(string className, Dictionary args) { - foreach( var mod in ModAssemblies ) + foreach (var mod in modAssemblies) { - var type = mod.First.GetType( mod.Second + "." + className, false ); - if( type == null ) continue; + var type = mod.First.GetType(mod.Second + "." + className, false); + if (type == null) continue; var flags = BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance; - var ctors = type.GetConstructors( flags ) - .Where( x => x.HasAttribute() ).ToList(); + var ctors = type.GetConstructors(flags) + .Where(x => x.HasAttribute()).ToList(); - if( ctors.Count == 0 ) - return (T)CreateBasic( type ); - else if( ctors.Count == 1 ) - return (T)CreateUsingArgs( ctors[ 0 ], args ); + if (ctors.Count == 0) + return (T)CreateBasic(type); + else if (ctors.Count == 1) + return (T)CreateUsingArgs(ctors[0], args); else - throw new InvalidOperationException( "ObjectCreator: UseCtor on multiple constructors; invalid." ); + throw new InvalidOperationException("ObjectCreator: UseCtor on multiple constructors; invalid."); } + MissingTypeAction(className); return default(T); } - public object CreateBasic( Type type ) + public object CreateBasic(Type type) { - return type.GetConstructor( new Type[ 0 ] ).Invoke( new object[ 0 ] ); + return type.GetConstructor(new Type[0]).Invoke(new object[0]); } - public object CreateUsingArgs( ConstructorInfo ctor, Dictionary args ) + public object CreateUsingArgs(ConstructorInfo ctor, Dictionary args) { var p = ctor.GetParameters(); - var a = new object[ p.Length ]; - for( int i = 0 ; i < p.Length ; i++ ) + var a = new object[p.Length]; + for (int i = 0; i < p.Length; i++) { var key = p[i].Name; - if ( !args.ContainsKey(key) ) throw new InvalidOperationException("ObjectCreator: key `{0}' not found".F(key)); - a[ i ] = args[ key ]; + if (!args.ContainsKey(key)) throw new InvalidOperationException("ObjectCreator: key `{0}' not found".F(key)); + a[i] = args[key]; } - return ctor.Invoke( a ); + + return ctor.Invoke(a); } public IEnumerable GetTypesImplementing() { var it = typeof(T); - return ModAssemblies.Select( ma => ma.First ).Distinct() + return modAssemblies.Select(ma => ma.First).Distinct() .SelectMany(ma => ma.GetTypes() .Where(t => t != it && it.IsAssignableFrom(t))); } - [AttributeUsage( AttributeTargets.Constructor )] - public class UseCtorAttribute : Attribute {} + [AttributeUsage(AttributeTargets.Constructor)] + public class UseCtorAttribute : Attribute { } } } diff --git a/OpenRA.Game/OpenRA.Game.csproj b/OpenRA.Game/OpenRA.Game.csproj index e16c3456d6..e3b4c1c2d7 100644 --- a/OpenRA.Game/OpenRA.Game.csproj +++ b/OpenRA.Game/OpenRA.Game.csproj @@ -146,7 +146,6 @@ - diff --git a/OpenRA.Game/Properties/AssemblyInfo.cs b/OpenRA.Game/Properties/AssemblyInfo.cs deleted file mode 100644 index dfc5296618..0000000000 --- a/OpenRA.Game/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -[assembly: AssemblyTitle("OpenRA")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA")] -[assembly: AssemblyCopyright("Copyright © 2007,2009,2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -[assembly: ComVisible(false)] - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Game/Settings.StyleCop b/OpenRA.Game/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Game/Settings.StyleCop +++ b/OpenRA.Game/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Mods.Cnc/CncLoadScreen.cs b/OpenRA.Mods.Cnc/CncLoadScreen.cs index 8d2c2de1ae..5c96d4959e 100644 --- a/OpenRA.Mods.Cnc/CncLoadScreen.cs +++ b/OpenRA.Mods.Cnc/CncLoadScreen.cs @@ -19,19 +19,19 @@ namespace OpenRA.Mods.Cnc { public class CncLoadScreen : ILoadScreen { - Dictionary Info; + Dictionary loadInfo; Stopwatch loadTimer = new Stopwatch(); Sprite[] ss; int loadTick; float2 nodPos, gdiPos, evaPos; Sprite nodLogo, gdiLogo, evaLogo, brightBlock, dimBlock; - Rectangle Bounds; + Rectangle bounds; Renderer r; NullInputHandler nih = new NullInputHandler(); public void Init(Dictionary info) { - Info = info; + loadInfo = info; // Avoid standard loading mechanisms so we // can display loadscreen as early as possible @@ -40,26 +40,26 @@ namespace OpenRA.Mods.Cnc var s = new Sheet("mods/cnc/uibits/chrome.png"); var res = Renderer.Resolution; - Bounds = new Rectangle(0, 0, res.Width, res.Height); + bounds = new Rectangle(0, 0, res.Width, res.Height); - ss = new [] + ss = new[] { - new Sprite(s, new Rectangle(161,128,62,33), TextureChannel.Alpha), - new Sprite(s, new Rectangle(161,223,62,33), TextureChannel.Alpha), - new Sprite(s, new Rectangle(128,161,33,62), TextureChannel.Alpha), - new Sprite(s, new Rectangle(223,161,33,62), TextureChannel.Alpha), - new Sprite(s, new Rectangle(128,128,33,33), TextureChannel.Alpha), - new Sprite(s, new Rectangle(223,128,33,33), TextureChannel.Alpha), - new Sprite(s, new Rectangle(128,223,33,33), TextureChannel.Alpha), - new Sprite(s, new Rectangle(223,223,33,33), TextureChannel.Alpha) + new Sprite(s, new Rectangle(161, 128, 62, 33), TextureChannel.Alpha), + new Sprite(s, new Rectangle(161, 223, 62, 33), TextureChannel.Alpha), + new Sprite(s, new Rectangle(128, 161, 33, 62), TextureChannel.Alpha), + new Sprite(s, new Rectangle(223, 161, 33, 62), TextureChannel.Alpha), + new Sprite(s, new Rectangle(128, 128, 33, 33), TextureChannel.Alpha), + new Sprite(s, new Rectangle(223, 128, 33, 33), TextureChannel.Alpha), + new Sprite(s, new Rectangle(128, 223, 33, 33), TextureChannel.Alpha), + new Sprite(s, new Rectangle(223, 223, 33, 33), TextureChannel.Alpha) }; nodLogo = new Sprite(s, new Rectangle(0, 256, 256, 256), TextureChannel.Alpha); gdiLogo = new Sprite(s, new Rectangle(256, 256, 256, 256), TextureChannel.Alpha); evaLogo = new Sprite(s, new Rectangle(256, 64, 128, 64), TextureChannel.Alpha); - nodPos = new float2(Bounds.Width / 2 - 384, Bounds.Height / 2 - 128); - gdiPos = new float2(Bounds.Width / 2 + 128, Bounds.Height / 2 - 128); - evaPos = new float2(Bounds.Width - 43 - 128, 43); + nodPos = new float2(bounds.Width / 2 - 384, bounds.Height / 2 - 128); + gdiPos = new float2(bounds.Width / 2 + 128, bounds.Height / 2 - 128); + evaPos = new float2(bounds.Width - 43 - 128, 43); brightBlock = new Sprite(s, new Rectangle(320, 0, 16, 35), TextureChannel.Alpha); dimBlock = new Sprite(s, new Rectangle(336, 0, 16, 35), TextureChannel.Alpha); @@ -83,19 +83,19 @@ namespace OpenRA.Mods.Cnc r.RgbaSpriteRenderer.DrawSprite(nodLogo, nodPos); r.RgbaSpriteRenderer.DrawSprite(evaLogo, evaPos); - WidgetUtils.DrawPanelPartial(ss, Bounds, PanelSides.Edges); - var barY = Bounds.Height - 78; + WidgetUtils.DrawPanelPartial(ss, bounds, PanelSides.Edges); + var barY = bounds.Height - 78; if (!setup && r.Fonts != null) { loadingFont = r.Fonts["BigBold"]; loadingText = "Loading"; - loadingPos = new float2((Bounds.Width - loadingFont.Measure(loadingText).X) / 2, barY); + loadingPos = new float2((bounds.Width - loadingFont.Measure(loadingText).X) / 2, barY); versionFont = r.Fonts["Regular"]; versionText = WidgetUtils.ActiveModVersion(); var versionSize = versionFont.Measure(versionText); - versionPos = new float2(Bounds.Width - 107 - versionSize.X/2, 115 - versionSize.Y/2); + versionPos = new float2(bounds.Width - 107 - versionSize.X / 2, 115 - versionSize.Y / 2); setup = true; } @@ -109,9 +109,9 @@ namespace OpenRA.Mods.Cnc { var block = loadTick == i ? brightBlock : dimBlock; r.RgbaSpriteRenderer.DrawSprite(block, - new float2(Bounds.Width / 2 - 114 - i * 32, barY)); + new float2(bounds.Width / 2 - 114 - i * 32, barY)); r.RgbaSpriteRenderer.DrawSprite(block, - new float2(Bounds.Width / 2 + 114 + i * 32 - 16, barY)); + new float2(bounds.Width / 2 + 114 + i * 32 - 16, barY)); } r.EndFrame(nih); @@ -125,19 +125,18 @@ namespace OpenRA.Mods.Cnc void TestAndContinue() { Ui.ResetAll(); - if (!FileSystem.Exists(Info["TestFile"])) + if (!FileSystem.Exists(loadInfo["TestFile"])) { var args = new WidgetArgs() { { "continueLoading", () => TestAndContinue() }, - { "installData", Info } + { "installData", loadInfo } }; - Ui.LoadWidget(Info["InstallerBackgroundWidget"], Ui.Root, args); - Ui.OpenWindow(Info["InstallerMenuWidget"], args); + Ui.LoadWidget(loadInfo["InstallerBackgroundWidget"], Ui.Root, args); + Ui.OpenWindow(loadInfo["InstallerMenuWidget"], args); } else Game.LoadShellMap(); } } -} - +} \ No newline at end of file diff --git a/OpenRA.Mods.Cnc/CncMenuPaletteEffect.cs b/OpenRA.Mods.Cnc/CncMenuPaletteEffect.cs index 71ee66a307..e3cbe78313 100644 --- a/OpenRA.Mods.Cnc/CncMenuPaletteEffect.cs +++ b/OpenRA.Mods.Cnc/CncMenuPaletteEffect.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Cnc Color ColorForEffect(EffectType t, Color orig) { - switch(t) + switch (t) { case EffectType.Black: return Color.FromArgb(orig.A, Color.Black); @@ -62,7 +62,7 @@ namespace OpenRA.Mods.Cnc } } - public void AdjustPalette(Dictionary palettes) + public void AdjustPalette(Dictionary palettes) { if (to == EffectType.None && remainingFrames == 0) return; diff --git a/OpenRA.Mods.Cnc/Missions/CncShellmapScript.cs b/OpenRA.Mods.Cnc/Missions/CncShellmapScript.cs index 7086c416cd..c56c0dd91f 100755 --- a/OpenRA.Mods.Cnc/Missions/CncShellmapScript.cs +++ b/OpenRA.Mods.Cnc/Missions/CncShellmapScript.cs @@ -19,18 +19,18 @@ namespace OpenRA.Mods.RA { class CncShellmapScriptInfo : TraitInfo { } - class CncShellmapScript: IWorldLoaded, ITick + class CncShellmapScript : IWorldLoaded, ITick { - Dictionary Actors; - static CPos ViewportOrigin; + static CPos viewportOrigin; + Dictionary actors; public void WorldLoaded(World w) { var b = w.Map.Bounds; - ViewportOrigin = new CPos(b.Left + b.Width/2, b.Top + b.Height/2); - Game.MoveViewport(ViewportOrigin.ToFloat2()); + viewportOrigin = new CPos(b.Left + b.Width / 2, b.Top + b.Height / 2); + Game.MoveViewport(viewportOrigin.ToFloat2()); - Actors = w.WorldActor.Trait().Actors; + actors = w.WorldActor.Trait().Actors; SetViewport(); } @@ -38,7 +38,7 @@ namespace OpenRA.Mods.RA void SetViewport() { var t = (ticks + 45) % (360f * speed) * (Math.PI / 180) * 1f / speed; - var loc = ViewportOrigin.ToFloat2() + (new float2(-15,4) * float2.FromAngle( (float)t )); + var loc = viewportOrigin.ToFloat2() + (new float2(-15, 4) * float2.FromAngle((float)t)); Game.viewport.Center(loc); } @@ -51,16 +51,16 @@ namespace OpenRA.Mods.RA if (ticks == 0) { - LoopTrack(Actors["boat1"], Actors["tl1"].Location, Actors["tr1"].Location); - LoopTrack(Actors["boat3"], Actors["tl1"].Location, Actors["tr1"].Location); - LoopTrack(Actors["boat2"], Actors["tl3"].Location, Actors["tr3"].Location); - LoopTrack(Actors["boat4"], Actors["tl3"].Location, Actors["tr3"].Location); - CreateUnitsInTransport(Actors["lst1"], new string[] {"htnk"}); - CreateUnitsInTransport(Actors["lst2"], new string[] {"mcv"}); - CreateUnitsInTransport(Actors["lst3"], new string[] {"htnk"}); - LoopTrack(Actors["lst1"], Actors["tl2"].Location, Actors["tr2"].Location); - LoopTrack(Actors["lst2"], Actors["tl2"].Location, Actors["tr2"].Location); - LoopTrack(Actors["lst3"], Actors["tl2"].Location, Actors["tr2"].Location); + LoopTrack(actors["boat1"], actors["tl1"].Location, actors["tr1"].Location); + LoopTrack(actors["boat3"], actors["tl1"].Location, actors["tr1"].Location); + LoopTrack(actors["boat2"], actors["tl3"].Location, actors["tr3"].Location); + LoopTrack(actors["boat4"], actors["tl3"].Location, actors["tr3"].Location); + CreateUnitsInTransport(actors["lst1"], new string[] { "htnk" }); + CreateUnitsInTransport(actors["lst2"], new string[] { "mcv" }); + CreateUnitsInTransport(actors["lst3"], new string[] { "htnk" }); + LoopTrack(actors["lst1"], actors["tl2"].Location, actors["tr2"].Location); + LoopTrack(actors["lst2"], actors["tl2"].Location, actors["tr2"].Location); + LoopTrack(actors["lst3"], actors["tl2"].Location, actors["tr2"].Location); } ticks++; @@ -73,8 +73,8 @@ namespace OpenRA.Mods.RA foreach (var i in cargo) c.Load(transport, transport.World.CreateActor(false, i.ToLowerInvariant(), new TypeDictionary { - new OwnerInit( transport.Owner ), - new FacingInit( f.Facing ), + new OwnerInit(transport.Owner), + new FacingInit(f.Facing), })); } @@ -83,7 +83,7 @@ namespace OpenRA.Mods.RA var mobile = self.Trait(); self.QueueActivity(mobile.ScriptedMove(left)); self.QueueActivity(new SimpleTeleport(right)); - self.QueueActivity(new CallFunc(() => LoopTrack(self,left,right))); + self.QueueActivity(new CallFunc(() => LoopTrack(self, left, right))); } } } diff --git a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs index 97fc4f0c66..6261f6689a 100644 --- a/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs +++ b/OpenRA.Mods.Cnc/Missions/Gdi01Script.cs @@ -15,25 +15,25 @@ using OpenRA.FileFormats; using OpenRA.Mods.RA; using OpenRA.Mods.RA.Activities; using OpenRA.Mods.RA.Move; +using OpenRA.Scripting; using OpenRA.Traits; using OpenRA.Widgets; -using OpenRA.Scripting; namespace OpenRA.Mods.Cnc.Missions { class Gdi01ScriptInfo : TraitInfo { } - class Gdi01Script: IWorldLoaded, ITick + class Gdi01Script : IWorldLoaded, ITick { - Dictionary Actors; - Dictionary Players; + Dictionary actors; + Dictionary players; public void WorldLoaded(World w) { - Players = w.Players.ToDictionary(p => p.InternalName); - Actors = w.WorldActor.Trait().Actors; + players = w.Players.ToDictionary(p => p.InternalName); + actors = w.WorldActor.Trait().Actors; var b = w.Map.Bounds; - Game.MoveViewport(new CPos(b.Left + b.Width/2, b.Top + b.Height/2).ToFloat2()); + Game.MoveViewport(new CPos(b.Left + b.Width / 2, b.Top + b.Height / 2).ToFloat2()); Action afterFMV = () => { @@ -48,10 +48,10 @@ namespace OpenRA.Mods.Cnc.Missions { Action afterFMV = () => { - Players["GoodGuy"].WinState = WinState.Won; + players["GoodGuy"].WinState = WinState.Won; started = false; Sound.StopMusic(); - Sound.PlayToPlayer(Players["GoodGuy"], "accom1.aud"); + Sound.PlayToPlayer(players["GoodGuy"], "accom1.aud"); }; Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "consyard.vqa", afterFMV)); } @@ -60,10 +60,10 @@ namespace OpenRA.Mods.Cnc.Missions { Action afterFMV = () => { - Players["GoodGuy"].WinState = WinState.Lost; + players["GoodGuy"].WinState = WinState.Lost; started = false; Sound.StopMusic(); - Sound.PlayToPlayer(Players["GoodGuy"], "fail1.aud"); + Sound.PlayToPlayer(players["GoodGuy"], "fail1.aud"); }; Game.RunAfterDelay(0, () => Media.PlayFMVFullscreen(w, "gameover.vqa", afterFMV)); } @@ -82,27 +82,29 @@ namespace OpenRA.Mods.Cnc.Missions SetGunboatPath(); self.World.AddFrameEndTask(w => { - //Initial Nod reinforcements - foreach (var i in new[]{ "e1", "e1" }) + // Initial Nod reinforcements + foreach (var i in new[] { "e1", "e1" }) { var a = self.World.CreateActor(i.ToLowerInvariant(), new TypeDictionary { - new OwnerInit(Players["BadGuy"]), + new OwnerInit(players["BadGuy"]), new FacingInit(0), - new LocationInit(Actors["nod0"].Location), + new LocationInit(actors["nod0"].Location), }); var mobile = a.Trait(); - a.QueueActivity(mobile.MoveTo(Actors["nod1"].Location, 2 )); - a.QueueActivity(mobile.MoveTo(Actors["nod2"].Location, 2 )); - a.QueueActivity(mobile.MoveTo(Actors["nod3"].Location, 2 )); + a.QueueActivity(mobile.MoveTo(actors["nod1"].Location, 2)); + a.QueueActivity(mobile.MoveTo(actors["nod2"].Location, 2)); + a.QueueActivity(mobile.MoveTo(actors["nod3"].Location, 2)); + // TODO: Queue hunt order } }); } + // GoodGuy win conditions // BadGuy is dead var badcount = self.World.Actors.Count(a => a != a.Owner.PlayerActor && - a.Owner == Players["BadGuy"] && !a.IsDead()); + a.Owner == players["BadGuy"] && !a.IsDead()); if (badcount != lastBadCount) { Game.Debug("{0} badguys remain".F(badcount)); @@ -112,51 +114,51 @@ namespace OpenRA.Mods.Cnc.Missions OnVictory(self.World); } - //GoodGuy lose conditions: MCV/cyard must survive + // GoodGuy lose conditions: MCV/cyard must survive var hasAnything = self.World.ActorsWithTrait() - .Any( a => a.Actor.Owner == Players["GoodGuy"] ); + .Any(a => a.Actor.Owner == players["GoodGuy"]); if (!hasAnything) OnLose(self.World); // GoodGuy reinforcements - if (ticks == 25*5) + if (ticks == 25 * 5) { ReinforceFromSea(self.World, - Actors["lstStart"].Location, - Actors["lstEnd"].Location, + actors["lstStart"].Location, + actors["lstEnd"].Location, new CPos(53, 53), - new string[] {"e1","e1","e1"}, - Players["GoodGuy"]); + new string[] { "e1", "e1", "e1" }, + players["GoodGuy"]); } - if (ticks == 25*15) + if (ticks == 25 * 15) { ReinforceFromSea(self.World, - Actors["lstStart"].Location, - Actors["lstEnd"].Location, + actors["lstStart"].Location, + actors["lstEnd"].Location, new CPos(53, 53), - new string[] {"e1","e1","e1"}, - Players["GoodGuy"]); + new string[] { "e1", "e1", "e1" }, + players["GoodGuy"]); } - if (ticks == 25*30) + if (ticks == 25 * 30) { ReinforceFromSea(self.World, - Actors["lstStart"].Location, - Actors["lstEnd"].Location, + actors["lstStart"].Location, + actors["lstEnd"].Location, new CPos(53, 53), - new string[] {"jeep"}, - Players["GoodGuy"]); + new string[] { "jeep" }, + players["GoodGuy"]); } - if (ticks == 25*60) + if (ticks == 25 * 60) { ReinforceFromSea(self.World, - Actors["lstStart"].Location, - Actors["lstEnd"].Location, + actors["lstStart"].Location, + actors["lstEnd"].Location, new CPos(53, 53), - new string[] {"jeep"}, - Players["GoodGuy"]); + new string[] { "jeep" }, + players["GoodGuy"]); } ticks++; @@ -164,11 +166,11 @@ namespace OpenRA.Mods.Cnc.Missions void SetGunboatPath() { - var self = Actors[ "Gunboat" ]; + var self = actors["Gunboat"]; var mobile = self.Trait(); - self.Trait().stance = UnitStance.AttackAnything; //TODO: this is ignored - self.QueueActivity(mobile.ScriptedMove(Actors["gunboatLeft"].Location)); - self.QueueActivity(mobile.ScriptedMove(Actors["gunboatRight"].Location)); + self.Trait().stance = UnitStance.AttackAnything; // TODO: this is ignored + self.QueueActivity(mobile.ScriptedMove(actors["gunboatLeft"].Location)); + self.QueueActivity(mobile.ScriptedMove(actors["gunboatRight"].Location)); self.QueueActivity(new CallFunc(() => SetGunboatPath())); } @@ -176,13 +178,13 @@ namespace OpenRA.Mods.Cnc.Missions { world.AddFrameEndTask(w => { - Sound.PlayToPlayer(w.LocalPlayer,"reinfor1.aud"); + Sound.PlayToPlayer(w.LocalPlayer, "reinfor1.aud"); var a = w.CreateActor("lst", new TypeDictionary { - new LocationInit( startPos ), - new OwnerInit( player ), - new FacingInit( 0 ), + new LocationInit(startPos), + new OwnerInit(player), + new FacingInit(0), }); var mobile = a.Trait(); @@ -190,8 +192,8 @@ namespace OpenRA.Mods.Cnc.Missions foreach (var i in items) cargo.Load(a, world.CreateActor(false, i.ToLowerInvariant(), new TypeDictionary { - new OwnerInit( player ), - new FacingInit( 0 ), + new OwnerInit(player), + new FacingInit(0), })); a.CancelActivity(); diff --git a/OpenRA.Mods.Cnc/Missions/Nod01Script.cs b/OpenRA.Mods.Cnc/Missions/Nod01Script.cs index 0fa3cfaa12..be8b23def6 100644 --- a/OpenRA.Mods.Cnc/Missions/Nod01Script.cs +++ b/OpenRA.Mods.Cnc/Missions/Nod01Script.cs @@ -11,16 +11,16 @@ using System; using System.Collections.Generic; using System.Linq; +using OpenRA.FileFormats; using OpenRA.Mods.Cnc; using OpenRA.Mods.RA; -using OpenRA.Mods.RA.Air; -using OpenRA.Mods.RA.Move; using OpenRA.Mods.RA.Activities; -using OpenRA.Mods.RA.Missions; +using OpenRA.Mods.RA.Air; using OpenRA.Mods.RA.Buildings; +using OpenRA.Mods.RA.Missions; +using OpenRA.Mods.RA.Move; using OpenRA.Scripting; using OpenRA.Traits; -using OpenRA.FileFormats; namespace OpenRA.Mods.Cnc.Missions { @@ -90,6 +90,7 @@ namespace OpenRA.Mods.Cnc.Missions NODReinforceNthA(); Sound.Play("reinfor1.aud"); } + if (world.FrameNumber == 1400) { NODReinforceNthB(); @@ -107,6 +108,7 @@ namespace OpenRA.Mods.Cnc.Missions Sound.Play("reinfor1.aud"); } } + if (levelvillage.Status == ObjectiveStatus.InProgress) { if (vil01.Destroyed && vil02.Destroyed && vil03.Destroyed && vil04.Destroyed && vil05.Destroyed && vil06.Destroyed && diff --git a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj index 333ec49300..8b636b7390 100644 --- a/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj +++ b/OpenRA.Mods.Cnc/OpenRA.Mods.Cnc.csproj @@ -84,7 +84,6 @@ - diff --git a/OpenRA.Mods.Cnc/PoisonedByTiberium.cs b/OpenRA.Mods.Cnc/PoisonedByTiberium.cs index 3bdb6330bf..8792168f5e 100644 --- a/OpenRA.Mods.Cnc/PoisonedByTiberium.cs +++ b/OpenRA.Mods.Cnc/PoisonedByTiberium.cs @@ -34,12 +34,12 @@ namespace OpenRA.Mods.Cnc var rl = self.World.WorldActor.Trait(); var r = rl.GetResource(self.Location); - if( r == null ) return; - if( !info.Resources.Contains(r.info.Name) ) return; + if (r == null) return; + if (!info.Resources.Contains(r.info.Name)) return; var weapon = Rules.Weapons[info.Weapon.ToLowerInvariant()]; - self.InflictDamage( self.World.WorldActor, weapon.Warheads[ 0 ].Damage, weapon.Warheads[ 0 ] ); + self.InflictDamage(self.World.WorldActor, weapon.Warheads[0].Damage, weapon.Warheads[0]); poisonTicks = weapon.ROF; } } diff --git a/OpenRA.Mods.Cnc/ProductionQueueFromSelection.cs b/OpenRA.Mods.Cnc/ProductionQueueFromSelection.cs index 938cef99cb..8d2c4cb97e 100644 --- a/OpenRA.Mods.Cnc/ProductionQueueFromSelection.cs +++ b/OpenRA.Mods.Cnc/ProductionQueueFromSelection.cs @@ -20,13 +20,13 @@ namespace OpenRA.Mods.Cnc.Widgets { public string ProductionTabsWidget = null; - public object Create( ActorInitializer init ) { return new ProductionQueueFromSelection(init.world, this); } + public object Create(ActorInitializer init) { return new ProductionQueueFromSelection(init.world, this); } } class ProductionQueueFromSelection : INotifySelection { - Lazy tabsWidget; readonly World world; + Lazy tabsWidget; public ProductionQueueFromSelection(World world, ProductionQueueFromSelectionInfo info) { diff --git a/OpenRA.Mods.Cnc/Properties/AssemblyInfo.cs b/OpenRA.Mods.Cnc/Properties/AssemblyInfo.cs deleted file mode 100644 index adf9bff76b..0000000000 --- a/OpenRA.Mods.Cnc/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.Mods.Cnc")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.Mods.Cnc")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b31edcf-34e4-4a58-8130-88b15b046d10")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Mods.Cnc/Settings.StyleCop b/OpenRA.Mods.Cnc/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Mods.Cnc/Settings.StyleCop +++ b/OpenRA.Mods.Cnc/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Mods.Cnc/SpawnViceroid.cs b/OpenRA.Mods.Cnc/SpawnViceroid.cs index b7f584abe2..d385da15d3 100644 --- a/OpenRA.Mods.Cnc/SpawnViceroid.cs +++ b/OpenRA.Mods.Cnc/SpawnViceroid.cs @@ -26,28 +26,28 @@ namespace OpenRA.Mods.Cnc class SpawnViceroid : INotifyKilled { - readonly SpawnViceroidInfo Info; + readonly SpawnViceroidInfo spawnViceroidInfo; - public SpawnViceroid(SpawnViceroidInfo info) { Info = info; } + public SpawnViceroid(SpawnViceroidInfo info) { spawnViceroidInfo = info; } public void Killed(Actor self, AttackInfo e) { - if (e.Warhead == null || e.Warhead.InfDeath != Info.InfDeath) return; - if (self.World.SharedRandom.Next(100) > Info.Probability) return; + if (e.Warhead == null || e.Warhead.InfDeath != spawnViceroidInfo.InfDeath) return; + if (self.World.SharedRandom.Next(100) > spawnViceroidInfo.Probability) return; self.World.AddFrameEndTask(w => { var td = new TypeDictionary { - new LocationInit( self.Location ), - new OwnerInit( self.World.Players.First(p => p.InternalName == Info.Owner) ) + new LocationInit(self.Location), + new OwnerInit(self.World.Players.First(p => p.InternalName == spawnViceroidInfo.Owner)) }; var facing = self.TraitOrDefault(); if (facing != null) - td.Add(new FacingInit( facing.Facing )); + td.Add(new FacingInit(facing.Facing)); - w.CreateActor(Info.ViceroidActor, td); + w.CreateActor(spawnViceroidInfo.ViceroidActor, td); }); } } diff --git a/OpenRA.Mods.Cnc/TiberiumRefinery.cs b/OpenRA.Mods.Cnc/TiberiumRefinery.cs index 49a77be9ea..ef0729cf33 100644 --- a/OpenRA.Mods.Cnc/TiberiumRefinery.cs +++ b/OpenRA.Mods.Cnc/TiberiumRefinery.cs @@ -20,8 +20,7 @@ namespace OpenRA.Mods.Cnc public class TiberiumRefinery : OreRefinery { - public TiberiumRefinery(Actor self, TiberiumRefineryInfo info) - : base(self, info) {} + public TiberiumRefinery(Actor self, TiberiumRefineryInfo info) : base(self, info) { } public override Activity DockSequence(Actor harv, Actor self) { diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/ButtonTooltipLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/ButtonTooltipLogic.cs index 32d9a57cda..713bdc578b 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/ButtonTooltipLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/ButtonTooltipLogic.cs @@ -26,12 +26,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var hotkeyLabel = "({0})".F(button.Key.ToUpperInvariant()); hotkey.GetText = () => hotkeyLabel; - hotkey.Bounds.X = labelWidth + 2*label.Bounds.X; + hotkey.Bounds.X = labelWidth + 2 * label.Bounds.X; var panelWidth = hotkey.Bounds.X + label.Bounds.X + Game.Renderer.Fonts[label.Font].Measure(hotkeyLabel).X; widget.Bounds.Width = panelWidth; } } -} - +} \ No newline at end of file diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs index 12f6995fa0..75f77f6f2c 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameChromeLogic.cs @@ -24,6 +24,17 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic Widget ingameRoot; World world; + static void BindOrderButton(World world, Widget parent, string button, string icon) + where T : IOrderGenerator, new() + { + var w = parent.Get(button); + w.OnClick = () => world.ToggleInputMode(); + w.IsHighlighted = () => world.OrderGenerator is T; + + w.Get("ICON").GetImageName = + () => world.OrderGenerator is T ? icon + "-active" : icon; + } + void AddChatLine(Color c, string from, string text) { ingameRoot.Get("CHAT_DISPLAY").AddLine(c, from, text); @@ -114,7 +125,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic .Any(a => a.Actor.Owner == world.LocalPlayer && a.Trait.IsActive); if (radarEnabled != cachedRadarEnabled) - Sound.PlayNotification(null, "Sounds", (radarEnabled ? "RadarUp" : "RadarDown"), null); + Sound.PlayNotification(null, "Sounds", radarEnabled ? "RadarUp" : "RadarDown", null); cachedRadarEnabled = radarEnabled; // Switch to observer mode after win/loss @@ -152,16 +163,5 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic return Color.LimeGreen; }; } - - static void BindOrderButton(World world, Widget parent, string button, string icon) - where T : IOrderGenerator, new() - { - var w = parent.Get(button); - w.OnClick = () => world.ToggleInputMode(); - w.IsHighlighted = () => world.OrderGenerator is T; - - w.Get("ICON").GetImageName = - () => world.OrderGenerator is T ? icon+"-active" : icon; - } } } diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs index bdb80ccfec..2cd9679375 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncIngameMenuLogic.cs @@ -49,7 +49,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic }); }; - Action doNothing = () => {}; + Action doNothing = () => { }; menu.Get("QUIT_BUTTON").OnClick = () => CncWidgetUtils.PromptConfirmAction("Abort Mission", "Leave this game and return to the menu?", onQuit, doNothing); @@ -92,35 +92,35 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic // Menu panels - ordered from lowest to highest priority var panelParent = Game.OpenWindow(world, "INGAME_MENU_PANEL"); - PanelType Panel = PanelType.Objectives; + PanelType panelType = PanelType.Objectives; var visibleButtons = 0; // Debug / Cheats panel var debugButton = panelParent.Get("DEBUG_BUTTON"); - debugButton.OnClick = () => Panel = PanelType.Debug; - debugButton.IsHighlighted = () => Panel == PanelType.Debug; + debugButton.OnClick = () => panelType = PanelType.Debug; + debugButton.IsHighlighted = () => panelType == PanelType.Debug; if (world.LocalPlayer != null && world.LobbyInfo.GlobalSettings.AllowCheats) { - Panel = PanelType.Debug; + panelType = PanelType.Debug; visibleButtons++; - var debugPanel = Game.LoadWidget(world, "CHEATS_PANEL", panelParent, new WidgetArgs(){{"onExit", doNothing}}); - debugPanel.IsVisible = () => Panel == PanelType.Debug; + var debugPanel = Game.LoadWidget(world, "CHEATS_PANEL", panelParent, new WidgetArgs() { { "onExit", doNothing } }); + debugPanel.IsVisible = () => panelType == PanelType.Debug; debugButton.IsVisible = () => visibleButtons > 1; } // Mission objectives var iop = world.WorldActor.TraitsImplementing().FirstOrDefault(); var objectivesButton = panelParent.Get("OBJECTIVES_BUTTON"); - objectivesButton.OnClick = () => Panel = PanelType.Objectives; - objectivesButton.IsHighlighted = () => Panel == PanelType.Objectives; + objectivesButton.OnClick = () => panelType = PanelType.Objectives; + objectivesButton.IsHighlighted = () => panelType == PanelType.Objectives; if (iop != null && iop.ObjectivesPanel != null) { - Panel = PanelType.Objectives; + panelType = PanelType.Objectives; visibleButtons++; var objectivesPanel = Game.LoadWidget(world, iop.ObjectivesPanel, panelParent, new WidgetArgs()); - objectivesPanel.IsVisible = () => Panel == PanelType.Objectives; + objectivesPanel.IsVisible = () => panelType == PanelType.Objectives; objectivesButton.IsVisible = () => visibleButtons > 1; } } diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallFromCDLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallFromCDLogic.cs index 5a435c8e99..c024894a8c 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallFromCDLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallFromCDLogic.cs @@ -54,9 +54,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic public static bool IsValidDisk(string diskRoot) { var files = new string[][] { - new [] { diskRoot, "CONQUER.MIX" }, - new [] { diskRoot, "DESERT.MIX" }, - new [] { diskRoot, "INSTALL", "SETUP.Z" }, + new[] { diskRoot, "CONQUER.MIX" }, + new[] { diskRoot, "DESERT.MIX" }, + new[] { diskRoot, "INSTALL", "SETUP.Z" }, }; return files.All(f => File.Exists(f.Aggregate(Path.Combine))); @@ -89,7 +89,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var installTotal = filesToExtract.Count() + filesToExtract.Count(); var onProgress = (Action)(s => Game.RunAfterTick(() => { - progressBar.Percentage = installCounter*100/installTotal; + progressBar.Percentage = installCounter * 100 / installTotal; installCounter++; statusLabel.GetText = () => s; @@ -97,12 +97,12 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var onError = (Action)(s => Game.RunAfterTick(() => { - statusLabel.GetText = () => "Error: "+s; + statusLabel.GetText = () => "Error: " + s; backButton.IsDisabled = () => false; retryButton.IsDisabled = () => false; })); - new Thread( _ => + new Thread(_ => { try { diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallLogic.cs index 4d49ac346e..349f543ebf 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncInstallLogic.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic public class CncInstallLogic { [ObjectCreator.UseCtor] - public CncInstallLogic(Widget widget, Dictionary installData, Action continueLoading) + public CncInstallLogic(Widget widget, Dictionary installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() @@ -43,8 +43,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic { Ui.OpenWindow("MODS_PANEL", new WidgetArgs() { - { "onExit", () => {} }, - // Close this panel + { "onExit", () => { } }, { "onSwitch", Ui.CloseWindow }, }); }; diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncMenuLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncMenuLogic.cs index 4abf3ca97e..6e2ca0d708 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncMenuLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncMenuLogic.cs @@ -16,9 +16,9 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic { public class CncMenuLogic { - enum MenuType { Main, Multiplayer, Settings, None } + enum MenuType { Main, Multiplayer, Settings, None } - MenuType Menu = MenuType.Main; + MenuType menuType = MenuType.Main; Widget rootMenu; [ObjectCreator.UseCtor] @@ -32,85 +32,85 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic // Menu buttons var mainMenu = widget.Get("MAIN_MENU"); - mainMenu.IsVisible = () => Menu == MenuType.Main; + mainMenu.IsVisible = () => menuType == MenuType.Main; mainMenu.Get("SOLO_BUTTON").OnClick = StartSkirmishGame; - mainMenu.Get("MULTIPLAYER_BUTTON").OnClick = () => Menu = MenuType.Multiplayer; + mainMenu.Get("MULTIPLAYER_BUTTON").OnClick = () => menuType = MenuType.Multiplayer; mainMenu.Get("MODS_BUTTON").OnClick = () => { - Menu = MenuType.None; + menuType = MenuType.None; Ui.OpenWindow("MODS_PANEL", new WidgetArgs() { - { "onExit", () => Menu = MenuType.Main }, + { "onExit", () => menuType = MenuType.Main }, { "onSwitch", RemoveShellmapUI } }); }; - mainMenu.Get("SETTINGS_BUTTON").OnClick = () => Menu = MenuType.Settings; + mainMenu.Get("SETTINGS_BUTTON").OnClick = () => menuType = MenuType.Settings; mainMenu.Get("QUIT_BUTTON").OnClick = Game.Exit; // Multiplayer menu var multiplayerMenu = widget.Get("MULTIPLAYER_MENU"); - multiplayerMenu.IsVisible = () => Menu == MenuType.Multiplayer; + multiplayerMenu.IsVisible = () => menuType == MenuType.Multiplayer; - multiplayerMenu.Get("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; + multiplayerMenu.Get("BACK_BUTTON").OnClick = () => menuType = MenuType.Main; multiplayerMenu.Get("JOIN_BUTTON").OnClick = () => OpenGamePanel("SERVERBROWSER_PANEL"); multiplayerMenu.Get("CREATE_BUTTON").OnClick = () => OpenGamePanel("CREATESERVER_PANEL"); multiplayerMenu.Get("DIRECTCONNECT_BUTTON").OnClick = () => OpenGamePanel("DIRECTCONNECT_PANEL"); // Settings menu var settingsMenu = widget.Get("SETTINGS_MENU"); - settingsMenu.IsVisible = () => Menu == MenuType.Settings; + settingsMenu.IsVisible = () => menuType == MenuType.Settings; settingsMenu.Get("REPLAYS_BUTTON").OnClick = () => { - Menu = MenuType.None; + menuType = MenuType.None; Ui.OpenWindow("REPLAYBROWSER_PANEL", new WidgetArgs() { - { "onExit", () => Menu = MenuType.Settings }, + { "onExit", () => menuType = MenuType.Settings }, { "onStart", RemoveShellmapUI } }); }; settingsMenu.Get("MUSIC_BUTTON").OnClick = () => { - Menu = MenuType.None; + menuType = MenuType.None; Ui.OpenWindow("MUSIC_PANEL", new WidgetArgs() { - { "onExit", () => Menu = MenuType.Settings }, + { "onExit", () => menuType = MenuType.Settings }, }); }; settingsMenu.Get("CREDITS_BUTTON").OnClick = () => { - Menu = MenuType.None; + menuType = MenuType.None; Ui.OpenWindow("CREDITS_PANEL", new WidgetArgs() { - { "onExit", () => Menu = MenuType.Settings }, + { "onExit", () => menuType = MenuType.Settings }, }); }; settingsMenu.Get("SETTINGS_BUTTON").OnClick = () => { - Menu = MenuType.None; + menuType = MenuType.None; Game.OpenWindow("SETTINGS_PANEL", new WidgetArgs() { - { "onExit", () => Menu = MenuType.Settings }, + { "onExit", () => menuType = MenuType.Settings }, }); }; - settingsMenu.Get("BACK_BUTTON").OnClick = () => Menu = MenuType.Main; + settingsMenu.Get("BACK_BUTTON").OnClick = () => menuType = MenuType.Main; rootMenu.Get("RECBLOCK").IsVisible = () => world.FrameNumber / 25 % 2 == 0; } void OpenGamePanel(string id) { - Menu = MenuType.None; + menuType = MenuType.None; Ui.OpenWindow(id, new WidgetArgs() { - { "onExit", () => Menu = MenuType.Multiplayer }, + { "onExit", () => menuType = MenuType.Multiplayer }, { "openLobby", () => OpenLobbyPanel(MenuType.Multiplayer, false) } }); } @@ -122,10 +122,10 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic void OpenLobbyPanel(MenuType menu, bool addBots) { - Menu = MenuType.None; + menuType = MenuType.None; Game.OpenWindow("SERVER_LOBBY", new WidgetArgs() { - { "onExit", () => { Game.Disconnect(); Menu = menu; } }, + { "onExit", () => { Game.Disconnect(); menuType = menu; } }, { "onStart", RemoveShellmapUI }, { "addBots", addBots } }); @@ -138,7 +138,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic ConnectionLogic.Connect(IPAddress.Loopback.ToString(), Game.CreateLocalServer(map), () => OpenLobbyPanel(MenuType.Main, true), - () => { Game.CloseServer(); Menu = MenuType.Main; }); + () => { Game.CloseServer(); menuType = MenuType.Main; }); } } } diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs index 392e15c176..96ba7a49f4 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/CncSettingsLogic.cs @@ -16,9 +16,9 @@ using OpenRA.FileFormats; using OpenRA.FileFormats.Graphics; using OpenRA.GameRules; using OpenRA.Mods.RA; +using OpenRA.Mods.RA.Widgets; using OpenRA.Mods.RA.Widgets.Logic; using OpenRA.Widgets; -using OpenRA.Mods.RA.Widgets; namespace OpenRA.Mods.Cnc.Widgets.Logic { @@ -27,7 +27,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic enum PanelType { General, Input } SoundDevice soundDevice; - PanelType Settings = PanelType.General; + PanelType settingsPanel = PanelType.General; ColorPreviewManagerWidget colorPreview; World world; @@ -39,11 +39,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic // General pane var generalButton = panel.Get("GENERAL_BUTTON"); - generalButton.OnClick = () => Settings = PanelType.General; - generalButton.IsHighlighted = () => Settings == PanelType.General; + generalButton.OnClick = () => settingsPanel = PanelType.General; + generalButton.IsHighlighted = () => settingsPanel == PanelType.General; var generalPane = panel.Get("GENERAL_CONTROLS"); - generalPane.IsVisible = () => Settings == PanelType.General; + generalPane.IsVisible = () => settingsPanel == PanelType.General; var gameSettings = Game.Settings.Game; var playerSettings = Game.Settings.Player; @@ -102,7 +102,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic // Audio var soundSlider = generalPane.Get("SOUND_SLIDER"); - soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x;}; + soundSlider.OnChange += x => { soundSettings.SoundVolume = x; Sound.SoundVolume = x; }; soundSlider.Value = soundSettings.SoundVolume; var musicSlider = generalPane.Get("MUSIC_SLIDER"); @@ -122,11 +122,11 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic // Input pane var inputPane = panel.Get("INPUT_CONTROLS"); - inputPane.IsVisible = () => Settings == PanelType.Input; + inputPane.IsVisible = () => settingsPanel == PanelType.Input; var inputButton = panel.Get("INPUT_BUTTON"); - inputButton.OnClick = () => Settings = PanelType.Input; - inputButton.IsHighlighted = () => Settings == PanelType.Input; + inputButton.OnClick = () => settingsPanel = PanelType.Input; + inputButton.IsHighlighted = () => settingsPanel == PanelType.Input; var classicMouseCheckbox = inputPane.Get("CLASSICORDERS_CHECKBOX"); classicMouseCheckbox.IsChecked = () => gameSettings.UseClassicMouseStyle; @@ -154,7 +154,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic int x, y; int.TryParse(windowWidth.Text, out x); int.TryParse(windowHeight.Text, out y); - graphicsSettings.WindowedSize = new int2(x,y); + graphicsSettings.WindowedSize = new int2(x, y); soundSettings.Device = soundDevice.Device; soundSettings.Engine = soundDevice.Engine; Game.Settings.Save(); @@ -163,6 +163,28 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic }; } + static bool ShowMouseScrollDropdown(DropDownButtonWidget dropdown, GameSettings s) + { + var options = new Dictionary() + { + { "Disabled", MouseScrollType.Disabled }, + { "Standard", MouseScrollType.Standard }, + { "Inverted", MouseScrollType.Inverted }, + }; + + Func setupItem = (o, itemTemplate) => + { + var item = ScrollItemWidget.Setup(itemTemplate, + () => s.MouseScroll == options[o], + () => s.MouseScroll = options[o]); + item.Get("LABEL").GetText = () => o; + return item; + }; + + dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem); + return true; + } + bool ShowColorPicker(DropDownButtonWidget color, PlayerSettings s) { Action onChange = c => colorPreview.Color = c; @@ -183,28 +205,6 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic return true; } - static bool ShowMouseScrollDropdown(DropDownButtonWidget dropdown, GameSettings s) - { - var options = new Dictionary() - { - { "Disabled", MouseScrollType.Disabled }, - { "Standard", MouseScrollType.Standard }, - { "Inverted", MouseScrollType.Inverted }, - }; - - Func setupItem = (o, itemTemplate) => - { - var item = ScrollItemWidget.Setup(itemTemplate, - () => s.MouseScroll == options[o], - () => s.MouseScroll = options[o]); - item.Get("LABEL").GetText = () => o; - return item; - }; - - dropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 500, options.Keys, setupItem); - return true; - } - bool ShowAudioDeviceDropdown(DropDownButtonWidget dropdown, SoundSettings s, SoundDevice[] devices) { var i = 0; diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs index aeb8f48df0..c8165241ee 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTabsLogic.cs @@ -10,8 +10,8 @@ using System; using System.Drawing; -using OpenRA.Mods.RA.Orders; using OpenRA.Mods.RA.Buildings; +using OpenRA.Mods.RA.Orders; using OpenRA.Traits; using OpenRA.Widgets; @@ -42,8 +42,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var chromeName = button.ProductionGroup.ToLowerInvariant(); var icon = button.Get("ICON"); - icon.GetImageName = () => button.IsDisabled() ? chromeName+"-disabled" : - tabs.Groups[button.ProductionGroup].Alert ? chromeName+"-alert" : chromeName; + icon.GetImageName = () => button.IsDisabled() ? chromeName + "-disabled" : + tabs.Groups[button.ProductionGroup].Alert ? chromeName + "-alert" : chromeName; } [ObjectCreator.UseCtor] diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTooltipLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTooltipLogic.cs index 3c1a22b236..632f7eb0b9 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTooltipLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/ProductionTooltipLogic.cs @@ -23,8 +23,8 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic [ObjectCreator.UseCtor] public ProductionTooltipLogic(Widget widget, TooltipContainerWidget tooltipContainer, ProductionPaletteWidget palette) { - var pm = palette.world.LocalPlayer.PlayerActor.Trait(); - var pr = palette.world.LocalPlayer.PlayerActor.Trait(); + var pm = palette.World.LocalPlayer.PlayerActor.Trait(); + var pr = palette.World.LocalPlayer.PlayerActor.Trait(); widget.IsVisible = () => palette.TooltipActor != null; var nameLabel = widget.Get("NAME"); @@ -75,20 +75,20 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var descString = tooltip.Description.Replace("\\n", "\n"); descLabel.GetText = () => descString; - var leftWidth = new [] {font.Measure(tooltip.Name).X, requiresFont.Measure(requiresString).X, descFont.Measure(descString).X}.Aggregate(Math.Max); - var rightWidth = new [] {font.Measure(powerString).X, font.Measure(timeString).X, font.Measure(costString).X}.Aggregate(Math.Max); - timeLabel.Bounds.X = powerLabel.Bounds.X = costLabel.Bounds.X = leftWidth + 2*nameLabel.Bounds.X; - widget.Bounds.Width = leftWidth + rightWidth + 3*nameLabel.Bounds.X; + var leftWidth = new[] { font.Measure(tooltip.Name).X, requiresFont.Measure(requiresString).X, descFont.Measure(descString).X }.Aggregate(Math.Max); + var rightWidth = new[] { font.Measure(powerString).X, font.Measure(timeString).X, font.Measure(costString).X }.Aggregate(Math.Max); + timeLabel.Bounds.X = powerLabel.Bounds.X = costLabel.Bounds.X = leftWidth + 2 * nameLabel.Bounds.X; + widget.Bounds.Width = leftWidth + rightWidth + 3 * nameLabel.Bounds.X; var leftHeight = font.Measure(tooltip.Name).Y + requiresFont.Measure(requiresString).Y + descFont.Measure(descString).Y; var rightHeight = font.Measure(powerString).Y + font.Measure(timeString).Y + font.Measure(costString).Y; - widget.Bounds.Height = Math.Max(leftHeight, rightHeight)*3/2 + 3*nameLabel.Bounds.Y; + widget.Bounds.Height = Math.Max(leftHeight, rightHeight) * 3 / 2 + 3 * nameLabel.Bounds.Y; lastActor = actor; }; } - static string ActorName( string a ) + static string ActorName(string a) { ActorInfo ai; Rules.Info.TryGetValue(a.ToLowerInvariant(), out ai); @@ -98,5 +98,4 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic return a; } } -} - +} \ No newline at end of file diff --git a/OpenRA.Mods.Cnc/Widgets/Logic/SupportPowerTooltipLogic.cs b/OpenRA.Mods.Cnc/Widgets/Logic/SupportPowerTooltipLogic.cs index 85060a45a3..0d1bb46690 100644 --- a/OpenRA.Mods.Cnc/Widgets/Logic/SupportPowerTooltipLogic.cs +++ b/OpenRA.Mods.Cnc/Widgets/Logic/SupportPowerTooltipLogic.cs @@ -43,7 +43,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic return; // no instances actually exist (race with destroy) time = "{0} / {1}".F(WidgetUtils.FormatTime(sp.RemainingTime), - WidgetUtils.FormatTime(sp.Info.ChargeTime*25)); + WidgetUtils.FormatTime(sp.Info.ChargeTime * 25)); if (sp == lastPower) return; @@ -53,7 +53,7 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic var timeWidth = timeFont.Measure(time).X; var topWidth = nameFont.Measure(name).X + timeWidth + timeOffset; var descSize = descFont.Measure(desc); - widget.Bounds.Width = 2*nameLabel.Bounds.X + Math.Max(topWidth, descSize.X); + widget.Bounds.Width = 2 * nameLabel.Bounds.X + Math.Max(topWidth, descSize.X); widget.Bounds.Height = baseHeight + descSize.Y; timeLabel.Bounds.X = widget.Bounds.Width - nameLabel.Bounds.X - timeWidth; lastPower = sp; @@ -64,5 +64,4 @@ namespace OpenRA.Mods.Cnc.Widgets.Logic descLabel.GetText = () => desc; } } -} - +} \ No newline at end of file diff --git a/OpenRA.Mods.Cnc/Widgets/ProductionPaletteWidget.cs b/OpenRA.Mods.Cnc/Widgets/ProductionPaletteWidget.cs index b77c41159e..b172f81fc9 100755 --- a/OpenRA.Mods.Cnc/Widgets/ProductionPaletteWidget.cs +++ b/OpenRA.Mods.Cnc/Widgets/ProductionPaletteWidget.cs @@ -40,7 +40,7 @@ namespace OpenRA.Mods.Cnc.Widgets public readonly string HoldText = ""; public string TooltipActor { get; private set; } - public readonly World world; + public readonly World World; Lazy tooltipContainer; ProductionQueue currentQueue; @@ -52,7 +52,7 @@ namespace OpenRA.Mods.Cnc.Widgets } public override Rectangle EventBounds { get { return eventBounds; } } - Dictionary Icons = new Dictionary(); + Dictionary icons = new Dictionary(); Dictionary iconSprites; Animation cantBuild, clock; Rectangle eventBounds = Rectangle.Empty; @@ -63,7 +63,7 @@ namespace OpenRA.Mods.Cnc.Widgets [ObjectCreator.UseCtor] public ProductionPaletteWidget(World world, WorldRenderer worldRenderer) { - this.world = world; + this.World = world; this.worldRenderer = worldRenderer; tooltipContainer = Lazy.New(() => Ui.Root.Get(TooltipContainer)); @@ -93,7 +93,7 @@ namespace OpenRA.Mods.Cnc.Widgets { if (TooltipContainer != null) tooltipContainer.Value.SetTooltip(TooltipTemplate, - new WidgetArgs() {{ "palette", this }}); + new WidgetArgs() { { "palette", this } }); } public override void MouseExited() @@ -104,7 +104,7 @@ namespace OpenRA.Mods.Cnc.Widgets public override bool HandleMouseInput(MouseInput mi) { - var icon = Icons.Where(i => i.Key.Contains(mi.Location)) + var icon = icons.Where(i => i.Key.Contains(mi.Location)) .Select(i => i.Value).FirstOrDefault(); if (mi.Event == MouseInputEvent.Move) @@ -126,29 +126,28 @@ namespace OpenRA.Mods.Cnc.Widgets if (first != null && first.Done && actor.Traits.Contains()) { Sound.Play(TabClick); - world.OrderGenerator = new PlaceBuildingOrderGenerator(CurrentQueue.self, icon.Name); + World.OrderGenerator = new PlaceBuildingOrderGenerator(CurrentQueue.self, icon.Name); } - // Resume a paused item else if (first != null && first.Paused) { + // Resume a paused item Sound.Play(TabClick); - world.IssueOrder(Order.PauseProduction(CurrentQueue.self, icon.Name, false)); + World.IssueOrder(Order.PauseProduction(CurrentQueue.self, icon.Name, false)); } - // Queue a new item else if (CurrentQueue.BuildableItems().Any(a => a.Name == icon.Name)) { + // Queue a new item Sound.Play(TabClick); - Sound.PlayNotification(world.LocalPlayer, "Speech", CurrentQueue.Info.QueuedAudio, world.LocalPlayer.Country.Race); - world.IssueOrder(Order.StartProduction(CurrentQueue.self, icon.Name, + Sound.PlayNotification(World.LocalPlayer, "Speech", CurrentQueue.Info.QueuedAudio, World.LocalPlayer.Country.Race); + World.IssueOrder(Order.StartProduction(CurrentQueue.self, icon.Name, Game.GetModifierKeys().HasModifier(Modifiers.Shift) ? 5 : 1)); } else Sound.Play(DisabledTabClick); } - - // Hold/Cancel an existing item else if (mi.Button == MouseButton.Right) { + // Hold/Cancel an existing item if (first != null) { Sound.Play(TabClick); @@ -156,25 +155,26 @@ namespace OpenRA.Mods.Cnc.Widgets // instant cancel of things we havent started yet and things that are finished if (first.Paused || first.Done || first.TotalCost == first.RemainingCost) { - Sound.PlayNotification(world.LocalPlayer, "Speech", CurrentQueue.Info.CancelledAudio, world.LocalPlayer.Country.Race); - world.IssueOrder(Order.CancelProduction(CurrentQueue.self, icon.Name, + Sound.PlayNotification(World.LocalPlayer, "Speech", CurrentQueue.Info.CancelledAudio, World.LocalPlayer.Country.Race); + World.IssueOrder(Order.CancelProduction(CurrentQueue.self, icon.Name, Game.GetModifierKeys().HasModifier(Modifiers.Shift) ? 5 : 1)); } else { - Sound.PlayNotification(world.LocalPlayer, "Speech", CurrentQueue.Info.OnHoldAudio, world.LocalPlayer.Country.Race); - world.IssueOrder(Order.PauseProduction(CurrentQueue.self, icon.Name, true)); + Sound.PlayNotification(World.LocalPlayer, "Speech", CurrentQueue.Info.OnHoldAudio, World.LocalPlayer.Country.Race); + World.IssueOrder(Order.PauseProduction(CurrentQueue.self, icon.Name, true)); } } else Sound.Play(DisabledTabClick); } + return true; } public void RefreshIcons() { - Icons = new Dictionary(); + icons = new Dictionary(); if (CurrentQueue == null) return; @@ -185,7 +185,7 @@ namespace OpenRA.Mods.Cnc.Widgets { var x = i % Columns; var y = i / Columns; - var rect = new Rectangle(rb.X + x * 64 + 1, rb.Y + y * 48 + 1, 64, 48); + var rect = new Rectangle(rb.X + x * 64 + 1, rb.Y + y * 48 + 1, 64, 48); var pi = new ProductionIcon() { Name = item.Name, @@ -193,20 +193,20 @@ namespace OpenRA.Mods.Cnc.Widgets Pos = new float2(rect.Location), Queued = CurrentQueue.AllQueued().Where(a => a.Item == item.Name).ToList(), }; - Icons.Add(rect, pi); + icons.Add(rect, pi); i++; } - eventBounds = Icons.Keys.Aggregate(Rectangle.Union); + eventBounds = icons.Keys.Aggregate(Rectangle.Union); } public override void Draw() { overlayFont = Game.Renderer.Fonts["TinyBold"]; - timeOffset = new float2(32,24) - overlayFont.Measure(WidgetUtils.FormatTime(0)) / 2; - queuedOffset = new float2(4,2); - holdOffset = new float2(32,24) - overlayFont.Measure(HoldText) / 2; - readyOffset = new float2(32,24) - overlayFont.Measure(ReadyText) / 2; + timeOffset = new float2(32, 24) - overlayFont.Measure(WidgetUtils.FormatTime(0)) / 2; + queuedOffset = new float2(4, 2); + holdOffset = new float2(32, 24) - overlayFont.Measure(HoldText) / 2; + readyOffset = new float2(32, 24) - overlayFont.Measure(ReadyText) / 2; if (CurrentQueue == null) return; @@ -214,11 +214,11 @@ namespace OpenRA.Mods.Cnc.Widgets var buildableItems = CurrentQueue.BuildableItems().OrderBy(a => a.Traits.Get().BuildPaletteOrder); // Background - foreach (var rect in Icons.Keys) - WidgetUtils.DrawPanel("panel-black", rect.InflateBy(1,1,1,1)); + foreach (var rect in icons.Keys) + WidgetUtils.DrawPanel("panel-black", rect.InflateBy(1, 1, 1, 1)); // Icons - foreach (var icon in Icons.Values) + foreach (var icon in icons.Values) { WidgetUtils.DrawSHP(icon.Sprite, icon.Pos, worldRenderer); @@ -237,7 +237,7 @@ namespace OpenRA.Mods.Cnc.Widgets } // Overlays - foreach (var icon in Icons.Values) + foreach (var icon in icons.Values) { var total = icon.Queued.Count; if (total > 0) @@ -267,7 +267,7 @@ namespace OpenRA.Mods.Cnc.Widgets public override string GetCursor(int2 pos) { - var icon = Icons.Where(i => i.Key.Contains(pos)) + var icon = icons.Where(i => i.Key.Contains(pos)) .Select(i => i.Value).FirstOrDefault(); return icon != null ? base.GetCursor(pos) : null; diff --git a/OpenRA.Mods.Cnc/Widgets/ProductionTabsWidget.cs b/OpenRA.Mods.Cnc/Widgets/ProductionTabsWidget.cs index b618409176..41c5be3040 100755 --- a/OpenRA.Mods.Cnc/Widgets/ProductionTabsWidget.cs +++ b/OpenRA.Mods.Cnc/Widgets/ProductionTabsWidget.cs @@ -68,8 +68,8 @@ namespace OpenRA.Mods.Cnc.Widgets public readonly int ArrowWidth = 20; public Dictionary Groups; - int ContentWidth = 0; - float ListOffset = 0; + int contentWidth = 0; + float listOffset = 0; bool leftPressed = false; bool rightPressed = false; Rectangle leftButtonRect; @@ -107,10 +107,14 @@ namespace OpenRA.Mods.Cnc.Widgets public string QueueGroup { - get { return queueGroup; } + get + { + return queueGroup; + } + set { - ListOffset = 0; + listOffset = 0; queueGroup = value; SelectNextTab(false); } @@ -118,7 +122,11 @@ namespace OpenRA.Mods.Cnc.Widgets public ProductionQueue CurrentQueue { - get { return paletteWidget.Value.CurrentQueue; } + get + { + return paletteWidget.Value.CurrentQueue; + } + set { paletteWidget.Value.CurrentQueue = value; @@ -134,9 +142,9 @@ namespace OpenRA.Mods.Cnc.Widgets leftButtonRect = new Rectangle(rb.X, rb.Y, ArrowWidth, rb.Height); rightButtonRect = new Rectangle(rb.Right - ArrowWidth, rb.Y, ArrowWidth, rb.Height); - var leftDisabled = ListOffset >= 0; + var leftDisabled = listOffset >= 0; var leftHover = Ui.MouseOverWidget == this && leftButtonRect.Contains(Viewport.LastMousePos); - var rightDisabled = ListOffset <= Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - ContentWidth; + var rightDisabled = listOffset <= Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - contentWidth; var rightHover = Ui.MouseOverWidget == this && rightButtonRect.Contains(Viewport.LastMousePos); WidgetUtils.DrawPanel("panel-black", rb); @@ -150,20 +158,20 @@ namespace OpenRA.Mods.Cnc.Widgets // Draw tab buttons Game.Renderer.EnableScissor(leftButtonRect.Right, rb.Y + 1, rightButtonRect.Left - leftButtonRect.Right - 1, rb.Height); - var origin = new int2(leftButtonRect.Right - 1 + (int)ListOffset, leftButtonRect.Y); + var origin = new int2(leftButtonRect.Right - 1 + (int)listOffset, leftButtonRect.Y); SpriteFont font = Game.Renderer.Fonts["TinyBold"]; - ContentWidth = 0; + contentWidth = 0; foreach (var tab in Groups[queueGroup].Tabs) { - var rect = new Rectangle(origin.X + ContentWidth, origin.Y, TabWidth, rb.Height); + var rect = new Rectangle(origin.X + contentWidth, origin.Y, TabWidth, rb.Height); var hover = !leftHover && !rightHover && Ui.MouseOverWidget == this && rect.Contains(Viewport.LastMousePos); var baseName = tab.Queue == CurrentQueue ? "button-highlighted" : "button"; ButtonWidget.DrawBackground(baseName, rect, false, false, hover, false); - ContentWidth += TabWidth - 1; + contentWidth += TabWidth - 1; int2 textSize = font.Measure(tab.Name); - int2 position = new int2(rect.X + (rect.Width - textSize.X)/2, rect.Y + (rect.Height - textSize.Y)/2); + int2 position = new int2(rect.X + (rect.Width - textSize.X) / 2, rect.Y + (rect.Height - textSize.Y) / 2); font.DrawTextWithContrast(tab.Name, position, tab.Queue.CurrentDone ? Color.Gold : Color.White, Color.Black, 1); } @@ -172,8 +180,8 @@ namespace OpenRA.Mods.Cnc.Widgets void Scroll(int direction) { - ListOffset += direction*ScrollVelocity; - ListOffset = Math.Min(0,Math.Max(Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - ContentWidth, ListOffset)); + listOffset += direction * ScrollVelocity; + listOffset = Math.Min(0, Math.Max(Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - contentWidth, listOffset)); } // Is added to world.ActorAdded by the SidebarLogic handler @@ -242,8 +250,8 @@ namespace OpenRA.Mods.Cnc.Widgets leftPressed = leftButtonRect.Contains(mi.Location); rightPressed = rightButtonRect.Contains(mi.Location); - var leftDisabled = ListOffset >= 0; - var rightDisabled = ListOffset <= Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - ContentWidth; + var leftDisabled = listOffset >= 0; + var rightDisabled = listOffset <= Bounds.Width - rightButtonRect.Width - leftButtonRect.Width - contentWidth; if (leftPressed || rightPressed) { @@ -254,10 +262,10 @@ namespace OpenRA.Mods.Cnc.Widgets } // Check production tabs - var offsetloc = mi.Location - new int2(leftButtonRect.Right - 1 + (int)ListOffset, leftButtonRect.Y); - if (offsetloc.X > 0 && offsetloc.X < ContentWidth) + var offsetloc = mi.Location - new int2(leftButtonRect.Right - 1 + (int)listOffset, leftButtonRect.Y); + if (offsetloc.X > 0 && offsetloc.X < contentWidth) { - CurrentQueue = Groups[queueGroup].Tabs[offsetloc.X/(TabWidth - 1)].Queue; + CurrentQueue = Groups[queueGroup].Tabs[offsetloc.X / (TabWidth - 1)].Queue; Sound.PlayNotification(null, "Sounds", "ClickSound", null); } diff --git a/OpenRA.Mods.Cnc/Widgets/ProductionTypeButtonWidget.cs b/OpenRA.Mods.Cnc/Widgets/ProductionTypeButtonWidget.cs index f7643ba15b..6cb77cfeee 100644 --- a/OpenRA.Mods.Cnc/Widgets/ProductionTypeButtonWidget.cs +++ b/OpenRA.Mods.Cnc/Widgets/ProductionTypeButtonWidget.cs @@ -19,7 +19,7 @@ namespace OpenRA.Mods.Cnc.Widgets { public readonly string ProductionGroup; - public ProductionTypeButtonWidget() : base() {} + public ProductionTypeButtonWidget() : base() { } protected ProductionTypeButtonWidget(ProductionTypeButtonWidget other) : base(other) { diff --git a/OpenRA.Mods.Cnc/Widgets/SupportPowersWidget.cs b/OpenRA.Mods.Cnc/Widgets/SupportPowersWidget.cs index 3f6b20a2a4..f6532a83cc 100755 --- a/OpenRA.Mods.Cnc/Widgets/SupportPowersWidget.cs +++ b/OpenRA.Mods.Cnc/Widgets/SupportPowersWidget.cs @@ -14,31 +14,33 @@ using System.Drawing; using System.Linq; using OpenRA.FileFormats; using OpenRA.Graphics; -using OpenRA.Widgets; using OpenRA.Mods.RA; +using OpenRA.Widgets; namespace OpenRA.Mods.Cnc.Widgets { public class SupportPowersWidget : Widget { - public int Spacing = 10; - public readonly string ReadyText = ""; public readonly string HoldText = ""; - Dictionary iconSprites; - Animation clock; - Dictionary Icons = new Dictionary(); - public readonly string TooltipContainer; public readonly string TooltipTemplate = "SUPPORT_POWER_TOOLTIP"; + + public int Spacing = 10; + + readonly WorldRenderer worldRenderer; + readonly SupportPowerManager spm; + + Dictionary iconSprites; + Animation clock; + Dictionary icons = new Dictionary(); + public SupportPowerInstance TooltipPower { get; private set; } Lazy tooltipContainer; Rectangle eventBounds; public override Rectangle EventBounds { get { return eventBounds; } } - readonly WorldRenderer worldRenderer; - readonly SupportPowerManager spm; SpriteFont overlayFont; float2 holdOffset, readyOffset, timeOffset; @@ -50,7 +52,7 @@ namespace OpenRA.Mods.Cnc.Widgets tooltipContainer = Lazy.New(() => Ui.Root.Get(TooltipContainer)); - iconSprites = Rules.Info.Values.SelectMany( u => u.Traits.WithInterface() ) + iconSprites = Rules.Info.Values.SelectMany(u => u.Traits.WithInterface()) .Select(u => u.Image).Distinct() .ToDictionary( u => u, @@ -68,7 +70,7 @@ namespace OpenRA.Mods.Cnc.Widgets public void RefreshIcons() { - Icons = new Dictionary(); + icons = new Dictionary(); var powers = spm.Powers.Values.Where(p => !p.Disabled); var i = 0; @@ -83,26 +85,26 @@ namespace OpenRA.Mods.Cnc.Widgets Sprite = iconSprites[p.Info.Image] }; - Icons.Add(rect, power); + icons.Add(rect, power); i++; } - eventBounds = (Icons.Count == 0) ? Rectangle.Empty : Icons.Keys.Aggregate(Rectangle.Union); + eventBounds = (icons.Count == 0) ? Rectangle.Empty : icons.Keys.Aggregate(Rectangle.Union); } public override void Draw() { overlayFont = Game.Renderer.Fonts["TinyBold"]; - holdOffset = new float2(32,24) - overlayFont.Measure(HoldText) / 2; - readyOffset = new float2(32,24) - overlayFont.Measure(ReadyText) / 2; - timeOffset = new float2(32,24) - overlayFont.Measure(WidgetUtils.FormatTime(0)) / 2; + holdOffset = new float2(32, 24) - overlayFont.Measure(HoldText) / 2; + readyOffset = new float2(32, 24) - overlayFont.Measure(ReadyText) / 2; + timeOffset = new float2(32, 24) - overlayFont.Measure(WidgetUtils.FormatTime(0)) / 2; // Background - foreach (var rect in Icons.Keys) - WidgetUtils.DrawPanel("panel-black", rect.InflateBy(1,1,1,1)); + foreach (var rect in icons.Keys) + WidgetUtils.DrawPanel("panel-black", rect.InflateBy(1, 1, 1, 1)); // Icons - foreach (var p in Icons.Values) + foreach (var p in icons.Values) { WidgetUtils.DrawSHP(p.Sprite, p.Pos, worldRenderer); @@ -115,7 +117,7 @@ namespace OpenRA.Mods.Cnc.Widgets } // Overlay - foreach (var p in Icons.Values) + foreach (var p in icons.Values) { if (p.Power.Ready) overlayFont.DrawTextWithContrast(ReadyText, @@ -142,7 +144,7 @@ namespace OpenRA.Mods.Cnc.Widgets { if (TooltipContainer == null) return; tooltipContainer.Value.SetTooltip(TooltipTemplate, - new WidgetArgs() {{ "palette", this }}); + new WidgetArgs() { { "palette", this } }); } public override void MouseExited() @@ -155,7 +157,7 @@ namespace OpenRA.Mods.Cnc.Widgets { if (mi.Event == MouseInputEvent.Move) { - var icon = Icons.Where(i => i.Key.Contains(mi.Location)) + var icon = icons.Where(i => i.Key.Contains(mi.Location)) .Select(i => i.Value).FirstOrDefault(); TooltipPower = (icon != null) ? icon.Power : null; return false; @@ -164,7 +166,7 @@ namespace OpenRA.Mods.Cnc.Widgets if (mi.Event != MouseInputEvent.Down) return false; - var clicked = Icons.Where(i => i.Key.Contains(mi.Location)) + var clicked = icons.Where(i => i.Key.Contains(mi.Location)) .Select(i => i.Value).FirstOrDefault(); if (clicked != null) diff --git a/OpenRA.Mods.Cnc/WithCargo.cs b/OpenRA.Mods.Cnc/WithCargo.cs index 2379fd057b..7151f4a61f 100644 --- a/OpenRA.Mods.Cnc/WithCargo.cs +++ b/OpenRA.Mods.Cnc/WithCargo.cs @@ -21,8 +21,8 @@ namespace OpenRA.Mods.Cnc public class WithCargoInfo : ITraitInfo, Requires, Requires { [Desc("Cargo position relative to turret or body. (forward, right, up) triples")] - public readonly WRange[] LocalOffset = {}; - public readonly string[] DisplayTypes = {}; + public readonly WRange[] LocalOffset = { }; + public readonly string[] DisplayTypes = { }; public object Create(ActorInitializer init) { return new WithCargo(init.self, this); } } @@ -31,7 +31,7 @@ namespace OpenRA.Mods.Cnc { Cargo cargo; IFacing facing; - WithCargoInfo Info; + WithCargoInfo cargoInfo; WVec[] positions; IBodyOrientation body; @@ -39,7 +39,7 @@ namespace OpenRA.Mods.Cnc { cargo = self.Trait(); facing = self.TraitOrDefault(); - Info = info; + cargoInfo = info; body = self.Trait(); @@ -48,7 +48,7 @@ namespace OpenRA.Mods.Cnc positions = new WVec[info.LocalOffset.Length / 3]; for (var i = 0; i < info.LocalOffset.Length / 3; i++) - positions[i] = new WVec(info.LocalOffset[3*i], info.LocalOffset[3*i + 1], info.LocalOffset[3*i + 2]); + positions[i] = new WVec(info.LocalOffset[3 * i], info.LocalOffset[3 * i + 1], info.LocalOffset[3 * i + 2]); } public IEnumerable ModifyRender(Actor self, WorldRenderer wr, IEnumerable r) @@ -66,7 +66,7 @@ namespace OpenRA.Mods.Cnc cargoFacing.Facing = facing.Facing; var cargoPassenger = c.Trait(); - if (Info.DisplayTypes.Contains(cargoPassenger.info.CargoType)) + if (cargoInfo.DisplayTypes.Contains(cargoPassenger.info.CargoType)) { var offset = pos - c.CenterPosition + body.LocalToWorld(positions[i++ % positions.Length].Rotate(bodyOrientation)); foreach (var cr in c.Render(wr)) diff --git a/OpenRA.Mods.D2k/BuildingCaptureNotification.cs b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs index e23746d7f4..164eaced05 100644 --- a/OpenRA.Mods.D2k/BuildingCaptureNotification.cs +++ b/OpenRA.Mods.D2k/BuildingCaptureNotification.cs @@ -21,19 +21,18 @@ namespace OpenRA.Mods.RA class CaptureNotification : INotifyCapture { - CaptureNotificationInfo Info; + CaptureNotificationInfo captureInfo; public CaptureNotification(CaptureNotificationInfo info) { - Info = info; + captureInfo = info; } - public void OnCapture (Actor self, Actor captor, Player oldOwner, Player newOwner) + public void OnCapture(Actor self, Actor captor, Player oldOwner, Player newOwner) { if (captor.World.LocalPlayer != captor.Owner) return; - Sound.PlayNotification(captor.World.LocalPlayer, "Speech", Info.Notification, newOwner.Country.Race); + Sound.PlayNotification(captor.World.LocalPlayer, "Speech", captureInfo.Notification, newOwner.Country.Race); } } -} - +} \ No newline at end of file diff --git a/OpenRA.Mods.D2k/D2kLoadScreen.cs b/OpenRA.Mods.D2k/D2kLoadScreen.cs index cef13195fe..8183238456 100644 --- a/OpenRA.Mods.D2k/D2kLoadScreen.cs +++ b/OpenRA.Mods.D2k/D2kLoadScreen.cs @@ -9,8 +9,8 @@ #endregion using System.Collections.Generic; -using System.IO; using System.Drawing; +using System.IO; using OpenRA.FileFormats; using OpenRA.Graphics; using OpenRA.Network; @@ -21,27 +21,28 @@ namespace OpenRA.Mods.D2k { public class D2kLoadScreen : ILoadScreen { - Dictionary Info; - static string[] Comments = new[] {"Filling Crates...", "Breeding Sandworms..."}; + public static string[] Comments = new[] { "Filling Crates...", "Breeding Sandworms..." }; + public Dictionary Info; Stopwatch lastLoadScreen = new Stopwatch(); - Rectangle StripeRect; - Sprite Stripe, Logo; - float2 LogoPos; + Rectangle stripeRect; + Sprite stripe, Logo; + float2 logoPos; Renderer r; public void Init(Dictionary info) { Info = info; + // Avoid standard loading mechanisms so we // can display loadscreen as early as possible r = Game.Renderer; if (r == null) return; var s = new Sheet("mods/d2k/uibits/loadscreen.png"); - Logo = new Sprite(s, new Rectangle(0,0,256,256), TextureChannel.Alpha); - Stripe = new Sprite(s, new Rectangle(256,0,256,256), TextureChannel.Alpha); - StripeRect = new Rectangle(0, Renderer.Resolution.Height/2 - 128, Renderer.Resolution.Width, 256); - LogoPos = new float2(Renderer.Resolution.Width/2 - 128, Renderer.Resolution.Height/2 - 128); + Logo = new Sprite(s, new Rectangle(0, 0, 256, 256), TextureChannel.Alpha); + stripe = new Sprite(s, new Rectangle(256, 0, 256, 256), TextureChannel.Alpha); + stripeRect = new Rectangle(0, Renderer.Resolution.Height / 2 - 128, Renderer.Resolution.Width, 256); + logoPos = new float2(Renderer.Resolution.Width / 2 - 128, Renderer.Resolution.Height / 2 - 128); } public void Display() @@ -61,10 +62,10 @@ namespace OpenRA.Mods.D2k var textSize = r.Fonts["Bold"].Measure(text); r.BeginFrame(float2.Zero, 1f); - WidgetUtils.FillRectWithSprite(StripeRect, Stripe); - r.RgbaSpriteRenderer.DrawSprite(Logo, LogoPos); + WidgetUtils.FillRectWithSprite(stripeRect, stripe); + r.RgbaSpriteRenderer.DrawSprite(Logo, logoPos); r.Fonts["Bold"].DrawText(text, new float2(Renderer.Resolution.Width - textSize.X - 20, Renderer.Resolution.Height - textSize.Y - 20), Color.White); - r.EndFrame( new NullInputHandler() ); + r.EndFrame(new NullInputHandler()); } public void StartGame() diff --git a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj index 2f41a168e2..4677860648 100644 --- a/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj +++ b/OpenRA.Mods.D2k/OpenRA.Mods.D2k.csproj @@ -77,7 +77,6 @@ - diff --git a/OpenRA.Mods.D2k/Properties/AssemblyInfo.cs b/OpenRA.Mods.D2k/Properties/AssemblyInfo.cs deleted file mode 100644 index d76af3c9e2..0000000000 --- a/OpenRA.Mods.D2k/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,39 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2012 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle("OpenRA.Mods.D2k")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.Mods.D2k")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". -// The form "{Major}.{Minor}.*" will automatically update the build and revision, -// and "{Major}.{Minor}.{Build}.*" will update just the revision. - -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] - -// The following attributes are used to specify the signing key for the assembly, -// if desired. See the Mono documentation for more information about signing. - -//[assembly: AssemblyDelaySign(false)] -//[assembly: AssemblyKeyFile("")] - diff --git a/OpenRA.Mods.D2k/Settings.StyleCop b/OpenRA.Mods.D2k/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Mods.D2k/Settings.StyleCop +++ b/OpenRA.Mods.D2k/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs index ff982effce..a515dc8801 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kDownloadPackagesLogic.cs @@ -22,13 +22,13 @@ namespace OpenRA.Mods.D2k.Widgets.Logic public class D2kDownloadPackagesLogic { Widget panel; - Dictionary installData; + Dictionary installData; ProgressBarWidget progressBar; LabelWidget statusLabel; Action afterInstall; [ObjectCreator.UseCtor] - public D2kDownloadPackagesLogic(Widget widget, Dictionary installData, Action afterInstall) + public D2kDownloadPackagesLogic(Widget widget, Dictionary installData, Action afterInstall) { this.installData = installData; this.afterInstall = afterInstall; @@ -71,7 +71,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic { Game.RunAfterTick(() => { - statusLabel.GetText = () => "Error: "+s; + statusLabel.GetText = () => "Error: " + s; retryButton.IsVisible = () => true; }); }; diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs index 78f471c2ee..ca5f3fbc17 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kExtractGameFilesLogic.cs @@ -9,14 +9,14 @@ #endregion using System; +using System.Diagnostics; using System.IO; using System.Linq; using System.Threading; -using System.Diagnostics; using OpenRA.FileFormats; using OpenRA.FileFormats.Graphics; -using OpenRA.Widgets; using OpenRA.Utility; +using OpenRA.Widgets; namespace OpenRA.Mods.D2k.Widgets.Logic { @@ -56,676 +56,676 @@ namespace OpenRA.Mods.D2k.Widgets.Logic copyFilesContainer.IsVisible = () => false; extractingContainer.IsVisible = () => true; - var PathToDataR8 = Path.Combine(Platform.SupportDir, "Content/d2k/DATA.R8"); - var PathToPalette = "mods/d2k/bits/d2k.pal"; - var PathToSHPs = Path.Combine(Platform.SupportDir, "Content/d2k/SHPs"); - var PathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets"); + var pathToDataR8 = Path.Combine(Platform.SupportDir, "Content/d2k/DATA.R8"); + var pathToPalette = "mods/d2k/bits/d2k.pal"; + var pathToSHPs = Path.Combine(Platform.SupportDir, "Content/d2k/SHPs"); + var pathToTilesets = Path.Combine(Platform.SupportDir, "Content/d2k/Tilesets"); - var ExtractGameFiles = new string[][] + var extractGameFiles = new string[][] { - new string[] {"--r8", PathToDataR8, PathToPalette, "0", "2", Path.Combine(PathToSHPs, "overlay")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3", "3", Path.Combine(PathToSHPs, "repairing")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4", "4", Path.Combine(PathToSHPs, "black")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "5", "8", Path.Combine(PathToSHPs, "selectionedges")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "9", "9", Path.Combine(PathToSHPs, "bar1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "10", "10", Path.Combine(PathToSHPs, "bar2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "11", "11", Path.Combine(PathToSHPs, "bar3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "12", "12", Path.Combine(PathToSHPs, "bar4")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "13", "13", Path.Combine(PathToSHPs, "bar5")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "14", "14", Path.Combine(PathToSHPs, "bar6")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "15", "16", Path.Combine(PathToSHPs, "dots")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "17", "26", Path.Combine(PathToSHPs, "numbers")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "27", "37", Path.Combine(PathToSHPs, "credits")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "40", "101", Path.Combine(PathToSHPs, "d2kshadow")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "102", "105", Path.Combine(PathToSHPs, "crates")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "107", "109", Path.Combine(PathToSHPs, "spicebloom")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "110", "111", Path.Combine(PathToSHPs, "stars")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "112", "113", Path.Combine(PathToSHPs, "greenuparrow")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "114", "129", Path.Combine(PathToSHPs, "rockcrater1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "130", "145", Path.Combine(PathToSHPs, "rockcrater2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "146", "161", Path.Combine(PathToSHPs, "sandcrater1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "162", "177", Path.Combine(PathToSHPs, "sandcrater2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "178", "193", Path.Combine(PathToSHPs, "unknown")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "194", "205", Path.Combine(PathToSHPs, "unknown2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "206", "381", Path.Combine(PathToSHPs, "rifle"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "382", "457", Path.Combine(PathToSHPs, "rifledeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "458", "633", Path.Combine(PathToSHPs, "bazooka"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "634", "693", Path.Combine(PathToSHPs, "bazookadeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "694", "869", Path.Combine(PathToSHPs, "fremen"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "870", "929", Path.Combine(PathToSHPs, "fremendeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "930", "1105", Path.Combine(PathToSHPs, "sardaukar"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1106", "1165", Path.Combine(PathToSHPs, "sardaukardeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1166", "1341", Path.Combine(PathToSHPs, "engineer"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1342", "1401", Path.Combine(PathToSHPs, "engineerdeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1402", "1457", Path.Combine(PathToSHPs, "thumper"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1458", "1462", Path.Combine(PathToSHPs, "thumping"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1463", "1542", Path.Combine(PathToSHPs, "thumper2"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1543", "1602", Path.Combine(PathToSHPs, "thumperdeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1603", "1634", Path.Combine(PathToSHPs, "missiletank"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1635", "1666", Path.Combine(PathToSHPs, "trike"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1667", "1698", Path.Combine(PathToSHPs, "quad"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1699", "1730", Path.Combine(PathToSHPs, "harvester"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1731", "1762", Path.Combine(PathToSHPs, "combata"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1763", "1794", Path.Combine(PathToSHPs, "siegetank"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1795", "1826", Path.Combine(PathToSHPs, "dmcv"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1827", "1858", Path.Combine(PathToSHPs, "sonictank"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1859", "1890", Path.Combine(PathToSHPs, "combataturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1891", "1922", Path.Combine(PathToSHPs, "siegeturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1923", "1954", Path.Combine(PathToSHPs, "carryall"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "1955", "2050", Path.Combine(PathToSHPs, "orni"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2051", "2082", Path.Combine(PathToSHPs, "combath"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2083", "2114", Path.Combine(PathToSHPs, "devast"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2115", "2146", Path.Combine(PathToSHPs, "combathturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2147", "2148", Path.Combine(PathToSHPs, "deathhandmissile")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2149", "2324", Path.Combine(PathToSHPs, "saboteur"), "--infantry"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2325", "2388", Path.Combine(PathToSHPs, "saboteurdeath"), "--infantrydeath"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2389", "2420", Path.Combine(PathToSHPs, "deviatortank"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2421", "2452", Path.Combine(PathToSHPs, "raider"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2453", "2484", Path.Combine(PathToSHPs, "combato"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2485", "2516", Path.Combine(PathToSHPs, "combatoturret"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2517", "2517", Path.Combine(PathToSHPs, "frigate"), "--vehicle"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2518", "2520", Path.Combine(PathToSHPs, "heavya"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2521", "2522", Path.Combine(PathToSHPs, "radara"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2523", "2524", Path.Combine(PathToSHPs, "pwra"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2525", "2526", Path.Combine(PathToSHPs, "barra"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2527", "2558", Path.Combine(PathToSHPs, "walla"), "--wall"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2559", "2560", Path.Combine(PathToSHPs, "conyarda"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2561", "2563", Path.Combine(PathToSHPs, "refa"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2564", "2565", Path.Combine(PathToSHPs, "hightecha"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2566", "2570", Path.Combine(PathToSHPs, "siloa"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2571", "2572", Path.Combine(PathToSHPs, "repaira"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2573", "2588", Path.Combine(PathToSHPs, "guntowera"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2589", "2620", Path.Combine(PathToSHPs, "gunturreta"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2621", "2636", Path.Combine(PathToSHPs, "rockettowera"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2637", "2668", Path.Combine(PathToSHPs, "rocketturreta"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2669", "2670", Path.Combine(PathToSHPs, "researcha"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2671", "2672", Path.Combine(PathToSHPs, "starporta"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2673", "2675", Path.Combine(PathToSHPs, "lighta"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2676", "2677", Path.Combine(PathToSHPs, "palacea"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2678", "2680", Path.Combine(PathToSHPs, "heavyh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2681", "2682", Path.Combine(PathToSHPs, "radarh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2683", "2684", Path.Combine(PathToSHPs, "pwrh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2685", "2686", Path.Combine(PathToSHPs, "barrh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2687", "2718", Path.Combine(PathToSHPs, "wallh"), "--wall"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2719", "2720", Path.Combine(PathToSHPs, "conyardh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2721", "2723", Path.Combine(PathToSHPs, "refh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2724", "2725", Path.Combine(PathToSHPs, "hightechh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2726", "2730", Path.Combine(PathToSHPs, "siloh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2731", "2732", Path.Combine(PathToSHPs, "repairh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2733", "2748", Path.Combine(PathToSHPs, "guntowerh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2749", "2780", Path.Combine(PathToSHPs, "gunturreth"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2781", "2796", Path.Combine(PathToSHPs, "rockettowerh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2797", "2828", Path.Combine(PathToSHPs, "rocketturreth"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2829", "2830", Path.Combine(PathToSHPs, "researchh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2831", "2832", Path.Combine(PathToSHPs, "starporth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2833", "2835", Path.Combine(PathToSHPs, "lighth"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2836", "2837", Path.Combine(PathToSHPs, "palaceh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2838", "2840", Path.Combine(PathToSHPs, "heavyo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2841", "2842", Path.Combine(PathToSHPs, "radaro"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2843", "2844", Path.Combine(PathToSHPs, "pwro"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2845", "2846", Path.Combine(PathToSHPs, "barro"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2847", "2878", Path.Combine(PathToSHPs, "wallo"), "--wall"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2879", "2880", Path.Combine(PathToSHPs, "conyardo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2881", "2883", Path.Combine(PathToSHPs, "refo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2884", "2885", Path.Combine(PathToSHPs, "hightecho"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2886", "2890", Path.Combine(PathToSHPs, "siloo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2891", "2892", Path.Combine(PathToSHPs, "repairo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2893", "2908", Path.Combine(PathToSHPs, "guntowero"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2909", "2940", Path.Combine(PathToSHPs, "gunturreto"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2941", "2956", Path.Combine(PathToSHPs, "rockettowero"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2957", "2988", Path.Combine(PathToSHPs, "rocketturreto"), "--turret"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2989", "2990", Path.Combine(PathToSHPs, "researcho"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2991", "2992", Path.Combine(PathToSHPs, "starporto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2993", "2995", Path.Combine(PathToSHPs, "lighto"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2996", "2997", Path.Combine(PathToSHPs, "palaceo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2998", "2998", Path.Combine(PathToSHPs, "sietch"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "2999", "3000", Path.Combine(PathToSHPs, "starportc"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3001", "3003", Path.Combine(PathToSHPs, "heavyc"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3004", "3005", Path.Combine(PathToSHPs, "palacec"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3006", "3007", Path.Combine(PathToSHPs, "conyardh2"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3008", "3013", Path.Combine(PathToSHPs, "plates")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3014", "3014", Path.Combine(PathToSHPs, "unknown3"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3015", "3078", Path.Combine(PathToSHPs, "rpg"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3079", "3087", Path.Combine(PathToSHPs, "unknown4"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3088", "3247", Path.Combine(PathToSHPs, "missile"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3248", "3279", Path.Combine(PathToSHPs, "doubleblast"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3280", "3283", Path.Combine(PathToSHPs, "bombs"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3284", "3287", Path.Combine(PathToSHPs, "unknown6"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3288", "3289", Path.Combine(PathToSHPs, "unknown7"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3290", "3303", Path.Combine(PathToSHPs, "unknown8"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3304", "3305", Path.Combine(PathToSHPs, "unknown9"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3306", "3369", Path.Combine(PathToSHPs, "missile2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3370", "3380", Path.Combine(PathToSHPs, "unload"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3381", "3385", Path.Combine(PathToSHPs, "harvest"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3386", "3389", Path.Combine(PathToSHPs, "miniboom"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3390", "3402", Path.Combine(PathToSHPs, "mediboom"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3403", "3417", Path.Combine(PathToSHPs, "mediboom2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3418", "3420", Path.Combine(PathToSHPs, "minifire"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3421", "3428", Path.Combine(PathToSHPs, "miniboom2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3429", "3432", Path.Combine(PathToSHPs, "minibooms"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3433", "3447", Path.Combine(PathToSHPs, "bigboom"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3448", "3470", Path.Combine(PathToSHPs, "bigboom2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3471", "3493", Path.Combine(PathToSHPs, "bigboom3"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3494", "3501", Path.Combine(PathToSHPs, "unknown10"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3502", "3509", Path.Combine(PathToSHPs, "unknown11"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3510", "3511", Path.Combine(PathToSHPs, "unknown12"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3512", "3530", Path.Combine(PathToSHPs, "movingsand"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3531", "3534", Path.Combine(PathToSHPs, "unknown13"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3535", "3539", Path.Combine(PathToSHPs, "unknown14"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3540", "3543", Path.Combine(PathToSHPs, "unknown15"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3544", "3548", Path.Combine(PathToSHPs, "unknown16"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3549", "3564", Path.Combine(PathToSHPs, "wormjaw"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3565", "3585", Path.Combine(PathToSHPs, "wormdust"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3586", "3600", Path.Combine(PathToSHPs, "wormsigns1")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3601", "3610", Path.Combine(PathToSHPs, "wormsigns2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3611", "3615", Path.Combine(PathToSHPs, "wormsigns3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3616", "3620", Path.Combine(PathToSHPs, "wormsigns4")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3621", "3625", Path.Combine(PathToSHPs, "rings"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3626", "3630", Path.Combine(PathToSHPs, "minipiff"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3631", "3678", Path.Combine(PathToSHPs, "movingsand2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3679", "3686", Path.Combine(PathToSHPs, "selling"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3687", "3693", Path.Combine(PathToSHPs, "shockwave"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3694", "3711", Path.Combine(PathToSHPs, "electroplosion"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3712", "3722", Path.Combine(PathToSHPs, "fire"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3723", "3734", Path.Combine(PathToSHPs, "fire2"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3735", "3738", Path.Combine(PathToSHPs, "unknown21"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3739", "3742", Path.Combine(PathToSHPs, "unknown22"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3743", "3774", Path.Combine(PathToSHPs, "doublemuzzle"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3775", "3806", Path.Combine(PathToSHPs, "muzzle"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3807", "3838", Path.Combine(PathToSHPs, "doubleblastmuzzle"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3839", "3870", Path.Combine(PathToSHPs, "minimuzzle"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3871", "3872", Path.Combine(PathToSHPs, "unknown17"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3873", "3875", Path.Combine(PathToSHPs, "unknown18"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3876", "3876", Path.Combine(PathToSHPs, "unknown19"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3877", "3884", Path.Combine(PathToSHPs, "burst"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3885", "3898", Path.Combine(PathToSHPs, "fire3"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3899", "3910", Path.Combine(PathToSHPs, "energy"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3911", "3946", Path.Combine(PathToSHPs, "reveal"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3947", "3964", Path.Combine(PathToSHPs, "orbit"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3965", "3979", Path.Combine(PathToSHPs, "mushroomcloud"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3980", "3987", Path.Combine(PathToSHPs, "mediboom3"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "3988", "4010", Path.Combine(PathToSHPs, "largeboom"), "--projectile"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4011", "4011", Path.Combine(PathToSHPs, "rifleicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4012", "4012", Path.Combine(PathToSHPs, "bazookaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4013", "4013", Path.Combine(PathToSHPs, "engineericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4014", "4014", Path.Combine(PathToSHPs, "thumpericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4015", "4015", Path.Combine(PathToSHPs, "sardaukaricon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4016", "4016", Path.Combine(PathToSHPs, "trikeicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4017", "4017", Path.Combine(PathToSHPs, "raidericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4018", "4018", Path.Combine(PathToSHPs, "quadicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4019", "4019", Path.Combine(PathToSHPs, "harvestericon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4020", "4020", Path.Combine(PathToSHPs, "combataicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4021", "4021", Path.Combine(PathToSHPs, "combathicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4022", "4022", Path.Combine(PathToSHPs, "combatoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4023", "4023", Path.Combine(PathToSHPs, "mcvicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4024", "4024", Path.Combine(PathToSHPs, "missiletankicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4025", "4025", Path.Combine(PathToSHPs, "deviatortankicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4026", "4026", Path.Combine(PathToSHPs, "siegetankicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4027", "4027", Path.Combine(PathToSHPs, "sonictankicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4028", "4028", Path.Combine(PathToSHPs, "devasticon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4029", "4029", Path.Combine(PathToSHPs, "carryallicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4030", "4030", Path.Combine(PathToSHPs, "carryallicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4031", "4031", Path.Combine(PathToSHPs, "orniicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4032", "4032", Path.Combine(PathToSHPs, "fremenicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4033", "4033", Path.Combine(PathToSHPs, "fremenicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4034", "4034", Path.Combine(PathToSHPs, "saboteuricon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4035", "4035", Path.Combine(PathToSHPs, "deathhandicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4036", "4036", Path.Combine(PathToSHPs, "rifleicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4037", "4037", Path.Combine(PathToSHPs, "bazookaicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4038", "4038", Path.Combine(PathToSHPs, "engineericon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4039", "4039", Path.Combine(PathToSHPs, "thumpericon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4040", "4040", Path.Combine(PathToSHPs, "sardaukaricon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4041", "4041", Path.Combine(PathToSHPs, "trikeicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4042", "4042", Path.Combine(PathToSHPs, "raidericon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4043", "4043", Path.Combine(PathToSHPs, "quadicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4044", "4044", Path.Combine(PathToSHPs, "harvestericon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4045", "4045", Path.Combine(PathToSHPs, "combataicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4046", "4046", Path.Combine(PathToSHPs, "conyardaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4047", "4047", Path.Combine(PathToSHPs, "conyardhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4048", "4048", Path.Combine(PathToSHPs, "conyardoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4049", "4049", Path.Combine(PathToSHPs, "conyardaicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4050", "4050", Path.Combine(PathToSHPs, "4plateaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4051", "4051", Path.Combine(PathToSHPs, "4platehicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4052", "4052", Path.Combine(PathToSHPs, "4plateoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4053", "4053", Path.Combine(PathToSHPs, "6plateaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4054", "4054", Path.Combine(PathToSHPs, "6platehicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4055", "4055", Path.Combine(PathToSHPs, "6plateoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4056", "4056", Path.Combine(PathToSHPs, "pwraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4057", "4057", Path.Combine(PathToSHPs, "pwrhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4058", "4058", Path.Combine(PathToSHPs, "pwroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4059", "4059", Path.Combine(PathToSHPs, "barraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4060", "4060", Path.Combine(PathToSHPs, "barrhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4061", "4061", Path.Combine(PathToSHPs, "barroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4062", "4062", Path.Combine(PathToSHPs, "orniicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4063", "4063", Path.Combine(PathToSHPs, "wallaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4064", "4064", Path.Combine(PathToSHPs, "wallhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4065", "4065", Path.Combine(PathToSHPs, "walloicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4066", "4066", Path.Combine(PathToSHPs, "refaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4067", "4067", Path.Combine(PathToSHPs, "refhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4068", "4068", Path.Combine(PathToSHPs, "refoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4069", "4069", Path.Combine(PathToSHPs, "guntoweraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4070", "4070", Path.Combine(PathToSHPs, "guntowerhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4071", "4071", Path.Combine(PathToSHPs, "guntoweroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4072", "4072", Path.Combine(PathToSHPs, "radaraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4073", "4073", Path.Combine(PathToSHPs, "radarhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4074", "4074", Path.Combine(PathToSHPs, "radaroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4075", "4075", Path.Combine(PathToSHPs, "rockettoweraicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4076", "4076", Path.Combine(PathToSHPs, "rockettowerhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4077", "4077", Path.Combine(PathToSHPs, "rockettoweroicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4078", "4078", Path.Combine(PathToSHPs, "hightechaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4079", "4079", Path.Combine(PathToSHPs, "hightechhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4080", "4080", Path.Combine(PathToSHPs, "hightechoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4081", "4081", Path.Combine(PathToSHPs, "lightaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4082", "4082", Path.Combine(PathToSHPs, "lighthicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4083", "4083", Path.Combine(PathToSHPs, "lightoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4084", "4084", Path.Combine(PathToSHPs, "siloaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4085", "4085", Path.Combine(PathToSHPs, "silohicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4086", "4086", Path.Combine(PathToSHPs, "silooicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4087", "4087", Path.Combine(PathToSHPs, "heavyaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4088", "4088", Path.Combine(PathToSHPs, "heavyhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4089", "4089", Path.Combine(PathToSHPs, "heavyoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4090", "4090", Path.Combine(PathToSHPs, "orniicon3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4091", "4091", Path.Combine(PathToSHPs, "heavyhicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4092", "4092", Path.Combine(PathToSHPs, "starportaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4093", "4093", Path.Combine(PathToSHPs, "starporthicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4094", "4094", Path.Combine(PathToSHPs, "starportoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4095", "4095", Path.Combine(PathToSHPs, "orniicon4")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4096", "4096", Path.Combine(PathToSHPs, "repairaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4097", "4097", Path.Combine(PathToSHPs, "repairhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4098", "4098", Path.Combine(PathToSHPs, "repairoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4099", "4099", Path.Combine(PathToSHPs, "researchaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4100", "4100", Path.Combine(PathToSHPs, "researchhicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4101", "4101", Path.Combine(PathToSHPs, "researchoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4102", "4102", Path.Combine(PathToSHPs, "palaceaicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4103", "4103", Path.Combine(PathToSHPs, "palacehicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4104", "4104", Path.Combine(PathToSHPs, "palaceoicon")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4105", "4105", Path.Combine(PathToSHPs, "orniicon5")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4106", "4106", Path.Combine(PathToSHPs, "radaraicon2")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4107", "4107", Path.Combine(PathToSHPs, "radaraicon3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4108", "4108", Path.Combine(PathToSHPs, "conyardaicon3")}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4109", "4150", Path.Combine(PathToSHPs, "conmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4151", "4174", Path.Combine(PathToSHPs, "wtrpmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4175", "4194", Path.Combine(PathToSHPs, "barramake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4195", "4212", Path.Combine(PathToSHPs, "barrhmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4213", "4230", Path.Combine(PathToSHPs, "barromake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4231", "4253", Path.Combine(PathToSHPs, "refmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4254", "4273", Path.Combine(PathToSHPs, "radarmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4274", "4294", Path.Combine(PathToSHPs, "highmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4295", "4312", Path.Combine(PathToSHPs, "lightmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4313", "4327", Path.Combine(PathToSHPs, "silomake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4328", "4346", Path.Combine(PathToSHPs, "heavymake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4347", "4369", Path.Combine(PathToSHPs, "starportmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4370", "4390", Path.Combine(PathToSHPs, "repairmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4391", "4412", Path.Combine(PathToSHPs, "researchmake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4413", "4435", Path.Combine(PathToSHPs, "palacemake"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4436", "4449", Path.Combine(PathToSHPs, "cranea"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4450", "4463", Path.Combine(PathToSHPs, "craneh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4464", "4477", Path.Combine(PathToSHPs, "craneo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4478", "4491", Path.Combine(PathToSHPs, "cranea2"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4492", "4501", Path.Combine(PathToSHPs, "windtrapa"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4502", "4511", Path.Combine(PathToSHPs, "windtraph"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4512", "4521", Path.Combine(PathToSHPs, "windtrapo"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4522", "4552", Path.Combine(PathToSHPs, "disha"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4553", "4582", Path.Combine(PathToSHPs, "dishh"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4583", "4613", Path.Combine(PathToSHPs, "disho"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4614", "4643", Path.Combine(PathToSHPs, "highweld"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4644", "4673", Path.Combine(PathToSHPs, "lightweld"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4674", "4721", Path.Combine(PathToSHPs, "heavyweld"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4722", "4744", Path.Combine(PathToSHPs, "unknown20"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4745", "4759", Path.Combine(PathToSHPs, "marker"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4760", "4819", Path.Combine(PathToSHPs, "researchzaps"), "--building"}, - new string[] {"--r8", PathToDataR8, PathToPalette, "4820", "4840", Path.Combine(PathToSHPs, "deathhandlaunch"), "--building"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), PathToPalette, "0", "264", Path.Combine(PathToSHPs, "mouse")}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BASE"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), PathToPalette, "748", "749", Path.Combine(PathToSHPs, "spice0")}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBAT.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BAT"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBGBS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "BGBS"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXICE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "ICE"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXTREE.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "TREE"), "--tileset"}, - new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXWAST.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "WAST"), "--tileset"}, - //new string[] {"--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXXMAS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "XMAS"), "--tileset"}, + new string[] { "--r8", pathToDataR8, pathToPalette, "0", "2", Path.Combine(pathToSHPs, "overlay") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3", "3", Path.Combine(pathToSHPs, "repairing") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4", "4", Path.Combine(pathToSHPs, "black") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "5", "8", Path.Combine(pathToSHPs, "selectionedges") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "9", "9", Path.Combine(pathToSHPs, "bar1") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "10", "10", Path.Combine(pathToSHPs, "bar2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "11", "11", Path.Combine(pathToSHPs, "bar3") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "12", "12", Path.Combine(pathToSHPs, "bar4") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "13", "13", Path.Combine(pathToSHPs, "bar5") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "14", "14", Path.Combine(pathToSHPs, "bar6") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "15", "16", Path.Combine(pathToSHPs, "dots") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "17", "26", Path.Combine(pathToSHPs, "numbers") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "27", "37", Path.Combine(pathToSHPs, "credits") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "40", "101", Path.Combine(pathToSHPs, "d2kshadow") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "102", "105", Path.Combine(pathToSHPs, "crates") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "107", "109", Path.Combine(pathToSHPs, "spicebloom") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "110", "111", Path.Combine(pathToSHPs, "stars") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "112", "113", Path.Combine(pathToSHPs, "greenuparrow") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "114", "129", Path.Combine(pathToSHPs, "rockcrater1") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "130", "145", Path.Combine(pathToSHPs, "rockcrater2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "146", "161", Path.Combine(pathToSHPs, "sandcrater1") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "162", "177", Path.Combine(pathToSHPs, "sandcrater2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "178", "193", Path.Combine(pathToSHPs, "unknown") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "194", "205", Path.Combine(pathToSHPs, "unknown2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "206", "381", Path.Combine(pathToSHPs, "rifle"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "382", "457", Path.Combine(pathToSHPs, "rifledeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "458", "633", Path.Combine(pathToSHPs, "bazooka"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "634", "693", Path.Combine(pathToSHPs, "bazookadeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "694", "869", Path.Combine(pathToSHPs, "fremen"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "870", "929", Path.Combine(pathToSHPs, "fremendeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "930", "1105", Path.Combine(pathToSHPs, "sardaukar"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1106", "1165", Path.Combine(pathToSHPs, "sardaukardeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1166", "1341", Path.Combine(pathToSHPs, "engineer"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1342", "1401", Path.Combine(pathToSHPs, "engineerdeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1402", "1457", Path.Combine(pathToSHPs, "thumper"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1458", "1462", Path.Combine(pathToSHPs, "thumping"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1463", "1542", Path.Combine(pathToSHPs, "thumper2"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1543", "1602", Path.Combine(pathToSHPs, "thumperdeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1603", "1634", Path.Combine(pathToSHPs, "missiletank"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1635", "1666", Path.Combine(pathToSHPs, "trike"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1667", "1698", Path.Combine(pathToSHPs, "quad"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1699", "1730", Path.Combine(pathToSHPs, "harvester"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1731", "1762", Path.Combine(pathToSHPs, "combata"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1763", "1794", Path.Combine(pathToSHPs, "siegetank"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1795", "1826", Path.Combine(pathToSHPs, "dmcv"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1827", "1858", Path.Combine(pathToSHPs, "sonictank"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1859", "1890", Path.Combine(pathToSHPs, "combataturret"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1891", "1922", Path.Combine(pathToSHPs, "siegeturret"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1923", "1954", Path.Combine(pathToSHPs, "carryall"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "1955", "2050", Path.Combine(pathToSHPs, "orni"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2051", "2082", Path.Combine(pathToSHPs, "combath"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2083", "2114", Path.Combine(pathToSHPs, "devast"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2115", "2146", Path.Combine(pathToSHPs, "combathturret"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2147", "2148", Path.Combine(pathToSHPs, "deathhandmissile") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2149", "2324", Path.Combine(pathToSHPs, "saboteur"), "--infantry" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2325", "2388", Path.Combine(pathToSHPs, "saboteurdeath"), "--infantrydeath" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2389", "2420", Path.Combine(pathToSHPs, "deviatortank"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2421", "2452", Path.Combine(pathToSHPs, "raider"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2453", "2484", Path.Combine(pathToSHPs, "combato"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2485", "2516", Path.Combine(pathToSHPs, "combatoturret"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2517", "2517", Path.Combine(pathToSHPs, "frigate"), "--vehicle" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2518", "2520", Path.Combine(pathToSHPs, "heavya"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2521", "2522", Path.Combine(pathToSHPs, "radara"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2523", "2524", Path.Combine(pathToSHPs, "pwra"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2525", "2526", Path.Combine(pathToSHPs, "barra"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2527", "2558", Path.Combine(pathToSHPs, "walla"), "--wall" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2559", "2560", Path.Combine(pathToSHPs, "conyarda"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2561", "2563", Path.Combine(pathToSHPs, "refa"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2564", "2565", Path.Combine(pathToSHPs, "hightecha"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2566", "2570", Path.Combine(pathToSHPs, "siloa"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2571", "2572", Path.Combine(pathToSHPs, "repaira"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2573", "2588", Path.Combine(pathToSHPs, "guntowera"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2589", "2620", Path.Combine(pathToSHPs, "gunturreta"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2621", "2636", Path.Combine(pathToSHPs, "rockettowera"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2637", "2668", Path.Combine(pathToSHPs, "rocketturreta"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2669", "2670", Path.Combine(pathToSHPs, "researcha"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2671", "2672", Path.Combine(pathToSHPs, "starporta"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2673", "2675", Path.Combine(pathToSHPs, "lighta"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2676", "2677", Path.Combine(pathToSHPs, "palacea"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2678", "2680", Path.Combine(pathToSHPs, "heavyh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2681", "2682", Path.Combine(pathToSHPs, "radarh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2683", "2684", Path.Combine(pathToSHPs, "pwrh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2685", "2686", Path.Combine(pathToSHPs, "barrh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2687", "2718", Path.Combine(pathToSHPs, "wallh"), "--wall" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2719", "2720", Path.Combine(pathToSHPs, "conyardh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2721", "2723", Path.Combine(pathToSHPs, "refh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2724", "2725", Path.Combine(pathToSHPs, "hightechh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2726", "2730", Path.Combine(pathToSHPs, "siloh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2731", "2732", Path.Combine(pathToSHPs, "repairh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2733", "2748", Path.Combine(pathToSHPs, "guntowerh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2749", "2780", Path.Combine(pathToSHPs, "gunturreth"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2781", "2796", Path.Combine(pathToSHPs, "rockettowerh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2797", "2828", Path.Combine(pathToSHPs, "rocketturreth"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2829", "2830", Path.Combine(pathToSHPs, "researchh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2831", "2832", Path.Combine(pathToSHPs, "starporth"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2833", "2835", Path.Combine(pathToSHPs, "lighth"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2836", "2837", Path.Combine(pathToSHPs, "palaceh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2838", "2840", Path.Combine(pathToSHPs, "heavyo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2841", "2842", Path.Combine(pathToSHPs, "radaro"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2843", "2844", Path.Combine(pathToSHPs, "pwro"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2845", "2846", Path.Combine(pathToSHPs, "barro"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2847", "2878", Path.Combine(pathToSHPs, "wallo"), "--wall" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2879", "2880", Path.Combine(pathToSHPs, "conyardo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2881", "2883", Path.Combine(pathToSHPs, "refo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2884", "2885", Path.Combine(pathToSHPs, "hightecho"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2886", "2890", Path.Combine(pathToSHPs, "siloo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2891", "2892", Path.Combine(pathToSHPs, "repairo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2893", "2908", Path.Combine(pathToSHPs, "guntowero"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2909", "2940", Path.Combine(pathToSHPs, "gunturreto"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2941", "2956", Path.Combine(pathToSHPs, "rockettowero"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2957", "2988", Path.Combine(pathToSHPs, "rocketturreto"), "--turret" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2989", "2990", Path.Combine(pathToSHPs, "researcho"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2991", "2992", Path.Combine(pathToSHPs, "starporto"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2993", "2995", Path.Combine(pathToSHPs, "lighto"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2996", "2997", Path.Combine(pathToSHPs, "palaceo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2998", "2998", Path.Combine(pathToSHPs, "sietch"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "2999", "3000", Path.Combine(pathToSHPs, "starportc"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3001", "3003", Path.Combine(pathToSHPs, "heavyc"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3004", "3005", Path.Combine(pathToSHPs, "palacec"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3006", "3007", Path.Combine(pathToSHPs, "conyardh2"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3008", "3013", Path.Combine(pathToSHPs, "plates") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3014", "3014", Path.Combine(pathToSHPs, "unknown3"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3015", "3078", Path.Combine(pathToSHPs, "rpg"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3079", "3087", Path.Combine(pathToSHPs, "unknown4"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3088", "3247", Path.Combine(pathToSHPs, "missile"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3248", "3279", Path.Combine(pathToSHPs, "doubleblast"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3280", "3283", Path.Combine(pathToSHPs, "bombs"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3284", "3287", Path.Combine(pathToSHPs, "unknown6"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3288", "3289", Path.Combine(pathToSHPs, "unknown7"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3290", "3303", Path.Combine(pathToSHPs, "unknown8"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3304", "3305", Path.Combine(pathToSHPs, "unknown9"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3306", "3369", Path.Combine(pathToSHPs, "missile2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3370", "3380", Path.Combine(pathToSHPs, "unload"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3381", "3385", Path.Combine(pathToSHPs, "harvest"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3386", "3389", Path.Combine(pathToSHPs, "miniboom"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3390", "3402", Path.Combine(pathToSHPs, "mediboom"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3403", "3417", Path.Combine(pathToSHPs, "mediboom2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3418", "3420", Path.Combine(pathToSHPs, "minifire"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3421", "3428", Path.Combine(pathToSHPs, "miniboom2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3429", "3432", Path.Combine(pathToSHPs, "minibooms"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3433", "3447", Path.Combine(pathToSHPs, "bigboom"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3448", "3470", Path.Combine(pathToSHPs, "bigboom2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3471", "3493", Path.Combine(pathToSHPs, "bigboom3"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3494", "3501", Path.Combine(pathToSHPs, "unknown10"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3502", "3509", Path.Combine(pathToSHPs, "unknown11"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3510", "3511", Path.Combine(pathToSHPs, "unknown12"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3512", "3530", Path.Combine(pathToSHPs, "movingsand"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3531", "3534", Path.Combine(pathToSHPs, "unknown13"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3535", "3539", Path.Combine(pathToSHPs, "unknown14"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3540", "3543", Path.Combine(pathToSHPs, "unknown15"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3544", "3548", Path.Combine(pathToSHPs, "unknown16"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3549", "3564", Path.Combine(pathToSHPs, "wormjaw"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3565", "3585", Path.Combine(pathToSHPs, "wormdust"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3586", "3600", Path.Combine(pathToSHPs, "wormsigns1") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3601", "3610", Path.Combine(pathToSHPs, "wormsigns2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3611", "3615", Path.Combine(pathToSHPs, "wormsigns3") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3616", "3620", Path.Combine(pathToSHPs, "wormsigns4") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3621", "3625", Path.Combine(pathToSHPs, "rings"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3626", "3630", Path.Combine(pathToSHPs, "minipiff"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3631", "3678", Path.Combine(pathToSHPs, "movingsand2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3679", "3686", Path.Combine(pathToSHPs, "selling"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3687", "3693", Path.Combine(pathToSHPs, "shockwave"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3694", "3711", Path.Combine(pathToSHPs, "electroplosion"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3712", "3722", Path.Combine(pathToSHPs, "fire"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3723", "3734", Path.Combine(pathToSHPs, "fire2"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3735", "3738", Path.Combine(pathToSHPs, "unknown21"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3739", "3742", Path.Combine(pathToSHPs, "unknown22"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3743", "3774", Path.Combine(pathToSHPs, "doublemuzzle"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3775", "3806", Path.Combine(pathToSHPs, "muzzle"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3807", "3838", Path.Combine(pathToSHPs, "doubleblastmuzzle"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3839", "3870", Path.Combine(pathToSHPs, "minimuzzle"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3871", "3872", Path.Combine(pathToSHPs, "unknown17"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3873", "3875", Path.Combine(pathToSHPs, "unknown18"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3876", "3876", Path.Combine(pathToSHPs, "unknown19"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3877", "3884", Path.Combine(pathToSHPs, "burst"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3885", "3898", Path.Combine(pathToSHPs, "fire3"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3899", "3910", Path.Combine(pathToSHPs, "energy"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3911", "3946", Path.Combine(pathToSHPs, "reveal"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3947", "3964", Path.Combine(pathToSHPs, "orbit"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3965", "3979", Path.Combine(pathToSHPs, "mushroomcloud"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3980", "3987", Path.Combine(pathToSHPs, "mediboom3"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "3988", "4010", Path.Combine(pathToSHPs, "largeboom"), "--projectile" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4011", "4011", Path.Combine(pathToSHPs, "rifleicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4012", "4012", Path.Combine(pathToSHPs, "bazookaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4013", "4013", Path.Combine(pathToSHPs, "engineericon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4014", "4014", Path.Combine(pathToSHPs, "thumpericon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4015", "4015", Path.Combine(pathToSHPs, "sardaukaricon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4016", "4016", Path.Combine(pathToSHPs, "trikeicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4017", "4017", Path.Combine(pathToSHPs, "raidericon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4018", "4018", Path.Combine(pathToSHPs, "quadicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4019", "4019", Path.Combine(pathToSHPs, "harvestericon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4020", "4020", Path.Combine(pathToSHPs, "combataicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4021", "4021", Path.Combine(pathToSHPs, "combathicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4022", "4022", Path.Combine(pathToSHPs, "combatoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4023", "4023", Path.Combine(pathToSHPs, "mcvicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4024", "4024", Path.Combine(pathToSHPs, "missiletankicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4025", "4025", Path.Combine(pathToSHPs, "deviatortankicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4026", "4026", Path.Combine(pathToSHPs, "siegetankicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4027", "4027", Path.Combine(pathToSHPs, "sonictankicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4028", "4028", Path.Combine(pathToSHPs, "devasticon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4029", "4029", Path.Combine(pathToSHPs, "carryallicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4030", "4030", Path.Combine(pathToSHPs, "carryallicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4031", "4031", Path.Combine(pathToSHPs, "orniicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4032", "4032", Path.Combine(pathToSHPs, "fremenicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4033", "4033", Path.Combine(pathToSHPs, "fremenicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4034", "4034", Path.Combine(pathToSHPs, "saboteuricon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4035", "4035", Path.Combine(pathToSHPs, "deathhandicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4036", "4036", Path.Combine(pathToSHPs, "rifleicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4037", "4037", Path.Combine(pathToSHPs, "bazookaicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4038", "4038", Path.Combine(pathToSHPs, "engineericon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4039", "4039", Path.Combine(pathToSHPs, "thumpericon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4040", "4040", Path.Combine(pathToSHPs, "sardaukaricon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4041", "4041", Path.Combine(pathToSHPs, "trikeicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4042", "4042", Path.Combine(pathToSHPs, "raidericon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4043", "4043", Path.Combine(pathToSHPs, "quadicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4044", "4044", Path.Combine(pathToSHPs, "harvestericon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4045", "4045", Path.Combine(pathToSHPs, "combataicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4046", "4046", Path.Combine(pathToSHPs, "conyardaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4047", "4047", Path.Combine(pathToSHPs, "conyardhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4048", "4048", Path.Combine(pathToSHPs, "conyardoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4049", "4049", Path.Combine(pathToSHPs, "conyardaicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4050", "4050", Path.Combine(pathToSHPs, "4plateaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4051", "4051", Path.Combine(pathToSHPs, "4platehicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4052", "4052", Path.Combine(pathToSHPs, "4plateoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4053", "4053", Path.Combine(pathToSHPs, "6plateaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4054", "4054", Path.Combine(pathToSHPs, "6platehicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4055", "4055", Path.Combine(pathToSHPs, "6plateoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4056", "4056", Path.Combine(pathToSHPs, "pwraicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4057", "4057", Path.Combine(pathToSHPs, "pwrhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4058", "4058", Path.Combine(pathToSHPs, "pwroicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4059", "4059", Path.Combine(pathToSHPs, "barraicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4060", "4060", Path.Combine(pathToSHPs, "barrhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4061", "4061", Path.Combine(pathToSHPs, "barroicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4062", "4062", Path.Combine(pathToSHPs, "orniicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4063", "4063", Path.Combine(pathToSHPs, "wallaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4064", "4064", Path.Combine(pathToSHPs, "wallhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4065", "4065", Path.Combine(pathToSHPs, "walloicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4066", "4066", Path.Combine(pathToSHPs, "refaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4067", "4067", Path.Combine(pathToSHPs, "refhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4068", "4068", Path.Combine(pathToSHPs, "refoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4069", "4069", Path.Combine(pathToSHPs, "guntoweraicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4070", "4070", Path.Combine(pathToSHPs, "guntowerhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4071", "4071", Path.Combine(pathToSHPs, "guntoweroicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4072", "4072", Path.Combine(pathToSHPs, "radaraicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4073", "4073", Path.Combine(pathToSHPs, "radarhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4074", "4074", Path.Combine(pathToSHPs, "radaroicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4075", "4075", Path.Combine(pathToSHPs, "rockettoweraicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4076", "4076", Path.Combine(pathToSHPs, "rockettowerhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4077", "4077", Path.Combine(pathToSHPs, "rockettoweroicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4078", "4078", Path.Combine(pathToSHPs, "hightechaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4079", "4079", Path.Combine(pathToSHPs, "hightechhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4080", "4080", Path.Combine(pathToSHPs, "hightechoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4081", "4081", Path.Combine(pathToSHPs, "lightaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4082", "4082", Path.Combine(pathToSHPs, "lighthicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4083", "4083", Path.Combine(pathToSHPs, "lightoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4084", "4084", Path.Combine(pathToSHPs, "siloaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4085", "4085", Path.Combine(pathToSHPs, "silohicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4086", "4086", Path.Combine(pathToSHPs, "silooicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4087", "4087", Path.Combine(pathToSHPs, "heavyaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4088", "4088", Path.Combine(pathToSHPs, "heavyhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4089", "4089", Path.Combine(pathToSHPs, "heavyoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4090", "4090", Path.Combine(pathToSHPs, "orniicon3") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4091", "4091", Path.Combine(pathToSHPs, "heavyhicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4092", "4092", Path.Combine(pathToSHPs, "starportaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4093", "4093", Path.Combine(pathToSHPs, "starporthicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4094", "4094", Path.Combine(pathToSHPs, "starportoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4095", "4095", Path.Combine(pathToSHPs, "orniicon4") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4096", "4096", Path.Combine(pathToSHPs, "repairaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4097", "4097", Path.Combine(pathToSHPs, "repairhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4098", "4098", Path.Combine(pathToSHPs, "repairoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4099", "4099", Path.Combine(pathToSHPs, "researchaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4100", "4100", Path.Combine(pathToSHPs, "researchhicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4101", "4101", Path.Combine(pathToSHPs, "researchoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4102", "4102", Path.Combine(pathToSHPs, "palaceaicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4103", "4103", Path.Combine(pathToSHPs, "palacehicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4104", "4104", Path.Combine(pathToSHPs, "palaceoicon") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4105", "4105", Path.Combine(pathToSHPs, "orniicon5") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4106", "4106", Path.Combine(pathToSHPs, "radaraicon2") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4107", "4107", Path.Combine(pathToSHPs, "radaraicon3") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4108", "4108", Path.Combine(pathToSHPs, "conyardaicon3") }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4109", "4150", Path.Combine(pathToSHPs, "conmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4151", "4174", Path.Combine(pathToSHPs, "wtrpmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4175", "4194", Path.Combine(pathToSHPs, "barramake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4195", "4212", Path.Combine(pathToSHPs, "barrhmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4213", "4230", Path.Combine(pathToSHPs, "barromake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4231", "4253", Path.Combine(pathToSHPs, "refmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4254", "4273", Path.Combine(pathToSHPs, "radarmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4274", "4294", Path.Combine(pathToSHPs, "highmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4295", "4312", Path.Combine(pathToSHPs, "lightmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4313", "4327", Path.Combine(pathToSHPs, "silomake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4328", "4346", Path.Combine(pathToSHPs, "heavymake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4347", "4369", Path.Combine(pathToSHPs, "starportmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4370", "4390", Path.Combine(pathToSHPs, "repairmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4391", "4412", Path.Combine(pathToSHPs, "researchmake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4413", "4435", Path.Combine(pathToSHPs, "palacemake"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4436", "4449", Path.Combine(pathToSHPs, "cranea"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4450", "4463", Path.Combine(pathToSHPs, "craneh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4464", "4477", Path.Combine(pathToSHPs, "craneo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4478", "4491", Path.Combine(pathToSHPs, "cranea2"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4492", "4501", Path.Combine(pathToSHPs, "windtrapa"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4502", "4511", Path.Combine(pathToSHPs, "windtraph"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4512", "4521", Path.Combine(pathToSHPs, "windtrapo"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4522", "4552", Path.Combine(pathToSHPs, "disha"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4553", "4582", Path.Combine(pathToSHPs, "dishh"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4583", "4613", Path.Combine(pathToSHPs, "disho"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4614", "4643", Path.Combine(pathToSHPs, "highweld"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4644", "4673", Path.Combine(pathToSHPs, "lightweld"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4674", "4721", Path.Combine(pathToSHPs, "heavyweld"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4722", "4744", Path.Combine(pathToSHPs, "unknown20"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4745", "4759", Path.Combine(pathToSHPs, "marker"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4760", "4819", Path.Combine(pathToSHPs, "researchzaps"), "--building" }, + new string[] { "--r8", pathToDataR8, pathToPalette, "4820", "4840", Path.Combine(pathToSHPs, "deathhandlaunch"), "--building" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/MOUSE.R8"), pathToPalette, "0", "264", Path.Combine(pathToSHPs, "mouse") }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BASE"), "--tileset" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBASE.R8"), pathToPalette, "748", "749", Path.Combine(pathToSHPs, "spice0") }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBAT.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BAT"), "--tileset" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXBGBS.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "BGBS"), "--tileset" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXICE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "ICE"), "--tileset" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXTREE.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "TREE"), "--tileset" }, + new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXWAST.R8"), pathToPalette, "0", "799", Path.Combine(pathToTilesets, "WAST"), "--tileset" }, + ////new string[] { "--r8", Path.Combine(Platform.SupportDir, "Content/d2k/BLOXXMAS.R8"), PathToPalette, "0", "799", Path.Combine(PathToTilesets, "XMAS"), "--tileset" }, }; - var SHPsToCreate = new string[][] + var shpToCreate = new string[][] { - new string[] {"--shp", Path.Combine(PathToSHPs, "overlay.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairing.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "black.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "selectionedges.png"), "8"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar1.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar2.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar3.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar4.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar5.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bar6.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "dots.png"), "4"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "numbers.png"), "8"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "credits.png"), "10"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "d2kshadow.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "crates.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "spicebloom.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "stars.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "greenuparrow.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater1.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockcrater2.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater1.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sandcrater2.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown2.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rifle.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rifledeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bazooka.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bazookadeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fremen.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fremendeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukar.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukardeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "engineer.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "engineerdeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "thumper.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "thumping.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "thumper2.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "thumperdeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "missiletank.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "trike.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "quad.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "harvester.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combata.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siegetank.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "dmcv.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sonictank.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combataturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siegeturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "carryall.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "orni.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "devast.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combathturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandmissile.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "saboteur.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "saboteurdeath.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "deviatortank.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "raider.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combato.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combatoturret.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "frigate.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavya.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radara.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwra.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barra.png"), "80"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "walla.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyarda.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refa.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightecha.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siloa.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repaira.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntowera.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreta.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowera.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreta.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researcha.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starporta.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lighta.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palacea.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radarh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwrh.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wallh.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barrh.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refh.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightechh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siloh.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntowerh.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreth.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowerh.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreth.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starporth.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lighth.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palaceh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radaro.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwro.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barro.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wallo.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refo.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightecho.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siloo.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntowero.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "gunturreto.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowero.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rocketturreto.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researcho.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starporto.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lighto.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palaceo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sietch.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starportc.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyc.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palacec.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardh2.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "plates.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown3.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rpg.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown4.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "missile.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "doubleblast.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bombs.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown6.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown7.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown8.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown9.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "missile2.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unload.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "harvest.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "miniboom.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom2.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "minifire.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "miniboom2.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "minibooms.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom2.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bigboom3.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown10.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown11.png"), "84"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown12.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "movingsand.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown13.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown14.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown15.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown16.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormjaw.png"), "68"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormdust.png"), "68"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns1.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns2.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns3.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wormsigns4.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rings.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "minipiff.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "movingsand2.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "selling.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "shockwave.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "electroplosion.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fire.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fire2.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown21.png"), "12"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown22.png"), "24"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "doublemuzzle.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "muzzle.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "doubleblastmuzzle.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "minimuzzle.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown17.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown18.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown19.png"), "16"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "burst.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fire3.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "energy.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "reveal.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "orbit.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mushroomcloud.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mediboom3.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "largeboom.png"), "72"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rifleicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "bazookaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "engineericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "thumpericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sardaukaricon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "trikeicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "raidericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "quadicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "harvestericon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combataicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combathicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "combatoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mcvicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "missiletankicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "deviatortankicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siegetankicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "sonictankicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "devasticon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "carryallicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "orniicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "fremenicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "saboteuricon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conyardoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "4plateaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "4platehicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "4plateoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "6plateaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "6platehicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "6plateoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwrhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "pwroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barrhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wallaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wallhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "walloicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntoweraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntowerhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "guntoweroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radaraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radarhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radaroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettoweraicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettowerhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "rockettoweroicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightechaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightechhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "hightechoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lightaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lighthicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lightoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "siloaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "silohicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "silooicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starportaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starporthicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starportoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchhicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palaceaicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palacehicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palaceoicon.png"), "60"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "conmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "wtrpmake.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barramake.png"), "80"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barrhmake.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "barromake.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "refmake.png"), "120"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "radarmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "highmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lightmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "silomake.png"), "32"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavymake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "starportmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "repairmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchmake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "palacemake.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "cranea.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "craneh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "craneo.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "windtrapa.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "windtraph.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "windtrapo.png"), "64"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "disha.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "dishh.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "disho.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "highweld.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "lightweld.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "heavyweld.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "unknown20.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "marker.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "researchzaps.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "deathhandlaunch.png"), "96"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "mouse.png"), "48"}, - new string[] {"--shp", Path.Combine(PathToSHPs, "spice0.png"), "32"}, + new string[] { "--shp", Path.Combine(pathToSHPs, "overlay.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairing.png"), "24" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "black.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "selectionedges.png"), "8" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar1.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar2.png"), "24" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar3.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar4.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar5.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bar6.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "dots.png"), "4" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "numbers.png"), "8" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "credits.png"), "10" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "d2kshadow.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "crates.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "spicebloom.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "stars.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "greenuparrow.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockcrater1.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockcrater2.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sandcrater1.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sandcrater2.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown2.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rifle.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rifledeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bazooka.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bazookadeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fremen.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fremendeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukar.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukardeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "engineer.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "engineerdeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "thumper.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "thumping.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "thumper2.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "thumperdeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "missiletank.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "trike.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "quad.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "harvester.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combata.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siegetank.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "dmcv.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sonictank.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combataturret.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siegeturret.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "carryall.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "orni.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "devast.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combathturret.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandmissile.png"), "24" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "saboteur.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "saboteurdeath.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "deviatortank.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "raider.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combato.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combatoturret.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "frigate.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavya.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radara.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwra.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barra.png"), "80" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "walla.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyarda.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refa.png"), "120" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightecha.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siloa.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repaira.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntowera.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreta.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowera.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreta.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researcha.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starporta.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lighta.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palacea.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radarh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwrh.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wallh.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barrh.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refh.png"), "120" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightechh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siloh.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntowerh.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreth.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowerh.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreth.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starporth.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lighth.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palaceh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyo.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radaro.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwro.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barro.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wallo.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardo.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refo.png"), "120" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightecho.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siloo.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairo.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntowero.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "gunturreto.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowero.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rocketturreto.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researcho.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starporto.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lighto.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palaceo.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sietch.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starportc.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyc.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palacec.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardh2.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "plates.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown3.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rpg.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown4.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "missile.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "doubleblast.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bombs.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown6.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown7.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown8.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown9.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "missile2.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unload.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "harvest.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "miniboom.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom2.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "minifire.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "miniboom2.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "minibooms.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom2.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bigboom3.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown10.png"), "24" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown11.png"), "84" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown12.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "movingsand.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown13.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown14.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown15.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown16.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormjaw.png"), "68" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormdust.png"), "68" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns1.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns2.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns3.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wormsigns4.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rings.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "minipiff.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "movingsand2.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "selling.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "shockwave.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "electroplosion.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fire.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fire2.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown21.png"), "12" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown22.png"), "24" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "doublemuzzle.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "muzzle.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "doubleblastmuzzle.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "minimuzzle.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown17.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown18.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown19.png"), "16" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "burst.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fire3.png"), "120" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "energy.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "reveal.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "orbit.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mushroomcloud.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mediboom3.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "largeboom.png"), "72" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rifleicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "bazookaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "engineericon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "thumpericon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sardaukaricon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "trikeicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "raidericon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "quadicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "harvestericon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combataicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combathicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "combatoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mcvicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "missiletankicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "deviatortankicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siegetankicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "sonictankicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "devasticon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "carryallicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "orniicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "fremenicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "saboteuricon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conyardoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "4plateaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "4platehicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "4plateoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "6plateaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "6platehicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "6plateoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwraicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwrhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "pwroicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barraicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barrhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barroicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wallaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wallhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "walloicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntoweraicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntowerhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "guntoweroicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radaraicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radarhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radaroicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettoweraicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettowerhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "rockettoweroicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightechaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightechhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "hightechoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lightaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lighthicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lightoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "siloaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "silohicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "silooicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starportaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starporthicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starportoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchhicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palaceaicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palacehicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palaceoicon.png"), "60" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "conmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "wtrpmake.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barramake.png"), "80" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barrhmake.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "barromake.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "refmake.png"), "120" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "radarmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "highmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lightmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "silomake.png"), "32" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavymake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "starportmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "repairmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchmake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "palacemake.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "cranea.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "craneh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "craneo.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "windtrapa.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "windtraph.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "windtrapo.png"), "64" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "disha.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "dishh.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "disho.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "highweld.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "lightweld.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "heavyweld.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "unknown20.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "marker.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "researchzaps.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "deathhandlaunch.png"), "96" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "mouse.png"), "48" }, + new string[] { "--shp", Path.Combine(pathToSHPs, "spice0.png"), "32" }, }; - var SHPsToTranspose = new string[][] + var shpToTranspose = new string[][] { - new string[] {"--transpose", Path.Combine(PathToSHPs, "orni.shp"), Path.Combine(PathToSHPs, "orni.shp"), "0", "32", "3"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "rifle.shp"), Path.Combine(PathToSHPs, "rifle.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "bazooka.shp"), Path.Combine(PathToSHPs, "bazooka.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "fremen.shp"), Path.Combine(PathToSHPs, "fremen.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "sardaukar.shp"), Path.Combine(PathToSHPs, "sardaukar.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "thumper.shp"), Path.Combine(PathToSHPs, "thumper.shp"), "8", "8", "6"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "thumper2.shp"), Path.Combine(PathToSHPs, "thumper2.shp"), "8", "8", "5"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "engineer.shp"), Path.Combine(PathToSHPs, "engineer.shp"), "8", "8", "6"}, - new string[] {"--transpose", Path.Combine(PathToSHPs, "saboteur.shp"), Path.Combine(PathToSHPs, "saboteur.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5"}, + new string[] { "--transpose", Path.Combine(pathToSHPs, "orni.shp"), Path.Combine(pathToSHPs, "orni.shp"), "0", "32", "3" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "rifle.shp"), Path.Combine(pathToSHPs, "rifle.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "bazooka.shp"), Path.Combine(pathToSHPs, "bazooka.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "fremen.shp"), Path.Combine(pathToSHPs, "fremen.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "sardaukar.shp"), Path.Combine(pathToSHPs, "sardaukar.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper.shp"), Path.Combine(pathToSHPs, "thumper.shp"), "8", "8", "6" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "thumper2.shp"), Path.Combine(pathToSHPs, "thumper2.shp"), "8", "8", "5" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "engineer.shp"), Path.Combine(pathToSHPs, "engineer.shp"), "8", "8", "6" }, + new string[] { "--transpose", Path.Combine(pathToSHPs, "saboteur.shp"), Path.Combine(pathToSHPs, "saboteur.shp"), "8", "8", "6", "56", "8", "5", "112", "8", "3", "136", "8", "5" }, }; var onError = (Action)(s => Game.RunAfterTick(() => { - statusLabel.GetText = () => "Error: "+s; + statusLabel.GetText = () => "Error: " + s; backButton.IsDisabled = () => false; retryButton.IsDisabled = () => false; })); - var t = new Thread( _ => + var t = new Thread(_ => { try { - for (int i = 0; i < ExtractGameFiles.Length; i++) + for (int i = 0; i < extractGameFiles.Length; i++) { - progressBar.Percentage = i*100/ExtractGameFiles.Count(); + progressBar.Percentage = i * 100 / extractGameFiles.Count(); statusLabel.GetText = () => "Extracting..."; - Utility.Command.ConvertR8ToPng(ExtractGameFiles[i]); + Utility.Command.ConvertR8ToPng(extractGameFiles[i]); } - for (int i = 0; i < SHPsToCreate.Length; i++) + for (int i = 0; i < shpToCreate.Length; i++) { - progressBar.Percentage = i*100/SHPsToCreate.Count(); + progressBar.Percentage = i * 100 / shpToCreate.Count(); statusLabel.GetText = () => "Converting..."; - Utility.Command.ConvertPngToShp(SHPsToCreate[i]); - File.Delete(SHPsToCreate[i][1]); + Utility.Command.ConvertPngToShp(shpToCreate[i]); + File.Delete(shpToCreate[i][1]); } - for (int i = 0; i < SHPsToTranspose.Length; i++) + for (int i = 0; i < shpToTranspose.Length; i++) { - progressBar.Percentage = i*100/SHPsToTranspose.Count(); + progressBar.Percentage = i * 100 / shpToTranspose.Count(); statusLabel.GetText = () => "Transposing..."; - Utility.Command.TransposeShp(SHPsToTranspose[i]); + Utility.Command.TransposeShp(shpToTranspose[i]); } statusLabel.GetText = () => "Building tilesets..."; @@ -733,19 +733,20 @@ namespace OpenRA.Mods.D2k.Widgets.Logic string[] TilesetArray = new string[] { "BASE", "BAT", "BGBS", "ICE", "TREE", "WAST" }; foreach (string set in TilesetArray) { - progressBar.Percentage = c*100/TilesetArray.Count(); - File.Delete(Path.Combine(PathToTilesets, "{0}.tsx".F(set))); - File.Copy("mods/d2k/tilesets/{0}.tsx".F(set), Path.Combine(PathToTilesets, "{0}.tsx".F(set))); - // this is ugly: a GUI will open and close immediately after some delay + progressBar.Percentage = c * 100 / TilesetArray.Count(); + File.Delete(Path.Combine(pathToTilesets, "{0}.tsx".F(set))); + File.Copy("mods/d2k/tilesets/{0}.tsx".F(set), Path.Combine(pathToTilesets, "{0}.tsx".F(set))); + + // TODO: this is ugly: a GUI will open and close immediately after some delay Process p = new Process(); - ProcessStartInfo TilesetBuilderProcessStartInfo = new ProcessStartInfo("OpenRA.TilesetBuilder.exe", Path.Combine(PathToTilesets, "{0}.png".F(set))+" 32 --export Content/d2k/Tilesets"); + ProcessStartInfo TilesetBuilderProcessStartInfo = new ProcessStartInfo("OpenRA.TilesetBuilder.exe", Path.Combine(pathToTilesets, "{0}.png".F(set)) + " 32 --export Content/d2k/Tilesets"); p.StartInfo = TilesetBuilderProcessStartInfo; p.Start(); p.WaitForExit(); - File.Delete(Path.Combine(PathToTilesets, "{0}.tsx".F(set))); - File.Delete(Path.Combine(PathToTilesets, "{0}.png".F(set))); - File.Delete(Path.Combine(PathToTilesets, "{0}.yaml".F(set.ToLower()))); - File.Delete(Path.Combine(PathToTilesets, "{0}.pal".F(set.ToLower()))); + File.Delete(Path.Combine(pathToTilesets, "{0}.tsx".F(set))); + File.Delete(Path.Combine(pathToTilesets, "{0}.png".F(set))); + File.Delete(Path.Combine(pathToTilesets, "{0}.yaml".F(set.ToLower()))); + File.Delete(Path.Combine(pathToTilesets, "{0}.pal".F(set.ToLower()))); c++; } diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs index 70772c94f0..d00498fe0a 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallFromCDLogic.cs @@ -14,8 +14,8 @@ using System.Linq; using System.Threading; using OpenRA.FileFormats; using OpenRA.FileFormats.Graphics; -using OpenRA.Widgets; using OpenRA.Utility; +using OpenRA.Widgets; namespace OpenRA.Mods.D2k.Widgets.Logic { @@ -51,8 +51,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic public static bool IsValidDisk(string diskRoot) { var files = new string[][] { - new [] { diskRoot, "music", "ambush.aud" }, - new [] { diskRoot, "setup", "setup.z" }, + new[] { diskRoot, "music", "ambush.aud" }, + new[] { diskRoot, "setup", "setup.z" }, }; return files.All(f => File.Exists(f.Aggregate(Path.Combine))); @@ -79,8 +79,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic installingContainer.IsVisible = () => true; var destMusic = new string[] { Platform.SupportDir, "Content", "d2k", "Music" }.Aggregate(Path.Combine); - var destData = new [] { Platform.SupportDir, "Content", "d2k" }.Aggregate(Path.Combine); - var destSound = new [] { destData, "GAMESFX" }.Aggregate(Path.Combine); + var destData = new[] { Platform.SupportDir, "Content", "d2k" }.Aggregate(Path.Combine); + var destSound = new[] { destData, "GAMESFX" }.Aggregate(Path.Combine); var copyFiles = new string[] { "music/ambush.aud", "music/arakatak.aud", "music/atregain.aud", "music/entordos.aud", "music/fightpwr.aud", "music/fremen.aud", "music/hark_bat.aud", "music/landsand.aud", "music/options.aud", "music/plotting.aud", "music/risehark.aud", "music/robotix.aud", "music/score.aud", "music/soldappr.aud", "music/spicesct.aud", "music/undercon.aud", "music/waitgame.aud" }; var extractPackage = "setup/setup.z"; @@ -123,7 +123,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic var onProgress = (Action)(s => Game.RunAfterTick(() => { - progressBar.Percentage = installCounter*100/installTotal; + progressBar.Percentage = installCounter * 100 / installTotal; installCounter++; statusLabel.GetText = () => s; @@ -131,12 +131,12 @@ namespace OpenRA.Mods.D2k.Widgets.Logic var onError = (Action)(s => Game.RunAfterTick(() => { - statusLabel.GetText = () => "Error: "+s; + statusLabel.GetText = () => "Error: " + s; backButton.IsDisabled = () => false; retryButton.IsDisabled = () => false; })); - var t = new Thread( _ => + var t = new Thread(_ => { try { diff --git a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs index b5ef8b5cc5..faaf5cd925 100644 --- a/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs +++ b/OpenRA.Mods.D2k/Widgets/Logic/D2kInstallLogic.cs @@ -17,7 +17,7 @@ namespace OpenRA.Mods.D2k.Widgets.Logic public class D2kInstallLogic { [ObjectCreator.UseCtor] - public D2kInstallLogic(Widget widget, Dictionary installData, Action continueLoading) + public D2kInstallLogic(Widget widget, Dictionary installData, Action continueLoading) { var panel = widget.Get("INSTALL_PANEL"); var args = new WidgetArgs() @@ -41,9 +41,8 @@ namespace OpenRA.Mods.D2k.Widgets.Logic panel.Get("MODS_BUTTON").OnClick = () => { Ui.OpenWindow("MODS_PANEL", new WidgetArgs() - { - { "onExit", () => {} }, - // Close this panel + { + { "onExit", () => { } }, { "onSwitch", Ui.CloseWindow }, }); }; diff --git a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj index 54a3cfd217..d56fd0fe6b 100644 --- a/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj +++ b/OpenRA.Mods.RA/OpenRA.Mods.RA.csproj @@ -303,7 +303,6 @@ - diff --git a/OpenRA.Mods.RA/Properties/AssemblyInfo.cs b/OpenRA.Mods.RA/Properties/AssemblyInfo.cs deleted file mode 100644 index 42dfd22c6b..0000000000 --- a/OpenRA.Mods.RA/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.Mods.RA")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.Mods.RA")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("23828b43-3536-4681-bc2f-2eb2e0972354")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Mods.RA/Settings.StyleCop b/OpenRA.Mods.RA/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Mods.RA/Settings.StyleCop +++ b/OpenRA.Mods.RA/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj index 05f4869804..ac5fbd4237 100644 --- a/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj +++ b/OpenRA.Mods.TS/OpenRA.Mods.TS.csproj @@ -35,9 +35,7 @@ - - - + @@ -54,4 +52,7 @@ OpenRA.FileFormats + + + \ No newline at end of file diff --git a/OpenRA.Mods.TS/Properties/AssemblyInfo.cs b/OpenRA.Mods.TS/Properties/AssemblyInfo.cs deleted file mode 100644 index 2edc84378f..0000000000 --- a/OpenRA.Mods.TS/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2013 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle("OpenRA.Mods.TS")] -[assembly: AssemblyDescription("Tiberian Sun Mod")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.Mods.TS")] -[assembly: AssemblyCopyright("Copyright © 2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". -// The form "{Major}.{Minor}.*" will automatically update the build and revision, -// and "{Major}.{Minor}.{Build}.*" will update just the revision. - -[assembly: AssemblyVersion("1.0.*")] - -// The following attributes are used to specify the signing key for the assembly, -// if desired. See the Mono documentation for more information about signing. - -//[assembly: AssemblyDelaySign(false)] -//[assembly: AssemblyKeyFile("")] - diff --git a/OpenRA.Renderer.Embedded/Settings.StyleCop b/OpenRA.Mods.TS/Settings.StyleCop similarity index 97% rename from OpenRA.Renderer.Embedded/Settings.StyleCop rename to OpenRA.Mods.TS/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Renderer.Embedded/Settings.StyleCop +++ b/OpenRA.Mods.TS/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Mods.TS/TSLoadScreen.cs b/OpenRA.Mods.TS/TSLoadScreen.cs new file mode 100644 index 0000000000..bfb726866d --- /dev/null +++ b/OpenRA.Mods.TS/TSLoadScreen.cs @@ -0,0 +1,92 @@ +#region Copyright & License Information +/* + * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) + * This file is part of OpenRA, which is free software. It is made + * available to you under the terms of the GNU General Public License + * as published by the Free Software Foundation. For more information, + * see COPYING. + */ +#endregion + +using System.Collections.Generic; +using System.Drawing; +using OpenRA.FileFormats; +using OpenRA.Graphics; +using OpenRA.Network; +using OpenRA.Support; +using OpenRA.Widgets; + +namespace OpenRA.Mods.TS +{ + public class TSLoadScreen : ILoadScreen + { + Dictionary Info; + static string[] Comments = new[] { "Updating EVA installation..." }; + + Stopwatch lastLoadScreen = new Stopwatch(); + Rectangle StripeRect; + Sprite Stripe, Logo; + float2 LogoPos; + + Renderer r; + public void Init(Dictionary info) + { + Info = info; + // Avoid standard loading mechanisms so we + // can display loadscreen as early as possible + r = Game.Renderer; + if (r == null) return; + + var s = new Sheet(Info["LoadScreenImage"]); + Logo = new Sprite(s, new Rectangle(0,0,256,256), TextureChannel.Alpha); + Stripe = new Sprite(s, new Rectangle(256,0,256,256), TextureChannel.Alpha); + StripeRect = new Rectangle(0, Renderer.Resolution.Height/2 - 128, Renderer.Resolution.Width, 256); + LogoPos = new float2(Renderer.Resolution.Width/2 - 128, Renderer.Resolution.Height/2 - 128); + } + + public void Display() + { + if (r == null) + return; + + // Update text at most every 0.5 seconds + if (lastLoadScreen.ElapsedTime() < 0.5) + return; + + if (r.Fonts == null) + return; + + lastLoadScreen.Reset(); + var text = Comments.Random(Game.CosmeticRandom); + var textSize = r.Fonts["Bold"].Measure(text); + + r.BeginFrame(float2.Zero, 1f); + WidgetUtils.FillRectWithSprite(StripeRect, Stripe); + r.RgbaSpriteRenderer.DrawSprite(Logo, LogoPos); + r.Fonts["Bold"].DrawText(text, new float2(Renderer.Resolution.Width - textSize.X - 20, Renderer.Resolution.Height - textSize.Y - 20), Color.White); + r.EndFrame( new NullInputHandler() ); + } + + public void StartGame() + { + TestAndContinue(); + } + + void TestAndContinue() + { + Ui.ResetAll(); + if (!FileSystem.Exists(Info["TestFile"])) + { + var args = new WidgetArgs() + { + { "continueLoading", () => TestAndContinue() }, + { "installData", Info } + }; + Ui.OpenWindow(Info["InstallerMenuWidget"], args); + } + else + Game.LoadShellMap(); + } + } +} + diff --git a/OpenRA.Renderer.Cg/OpenRA.Renderer.Cg.csproj b/OpenRA.Renderer.Cg/OpenRA.Renderer.Cg.csproj index b70afc723f..7186e7810f 100644 --- a/OpenRA.Renderer.Cg/OpenRA.Renderer.Cg.csproj +++ b/OpenRA.Renderer.Cg/OpenRA.Renderer.Cg.csproj @@ -77,7 +77,6 @@ - diff --git a/OpenRA.Renderer.Cg/Properties/AssemblyInfo.cs b/OpenRA.Renderer.Cg/Properties/AssemblyInfo.cs deleted file mode 100644 index c9ffb260b8..0000000000 --- a/OpenRA.Renderer.Cg/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.Renderer.Cg")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("OpenRA.Renderer.Cg")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5531344c-b25d-4641-bc3c-fe035cc777bd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Renderer.Cg/Settings.StyleCop b/OpenRA.Renderer.Cg/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Renderer.Cg/Settings.StyleCop +++ b/OpenRA.Renderer.Cg/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Renderer.Gl/OpenRA.Renderer.Gl.csproj b/OpenRA.Renderer.Gl/OpenRA.Renderer.Gl.csproj index 67376dd2cc..eeb08b83f7 100644 --- a/OpenRA.Renderer.Gl/OpenRA.Renderer.Gl.csproj +++ b/OpenRA.Renderer.Gl/OpenRA.Renderer.Gl.csproj @@ -75,7 +75,6 @@ - diff --git a/OpenRA.Renderer.Gl/Properties/AssemblyInfo.cs b/OpenRA.Renderer.Gl/Properties/AssemblyInfo.cs deleted file mode 100644 index ac5e1a30a3..0000000000 --- a/OpenRA.Renderer.Gl/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle("OpenRA.Renderer.Gl")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". -// The form "{Major}.{Minor}.*" will automatically update the build and revision, -// and "{Major}.{Minor}.{Build}.*" will update just the revision. - -[assembly: AssemblyVersion("1.0.*")] - -// The following attributes are used to specify the signing key for the assembly, -// if desired. See the Mono documentation for more information about signing. - -//[assembly: AssemblyDelaySign(false)] -//[assembly: AssemblyKeyFile("")] - diff --git a/OpenRA.Renderer.Gl/Settings.StyleCop b/OpenRA.Renderer.Gl/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Renderer.Gl/Settings.StyleCop +++ b/OpenRA.Renderer.Gl/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Renderer.Null/NullGraphicsDevice.cs b/OpenRA.Renderer.Null/NullGraphicsDevice.cs index dfa36f21aa..e136c77734 100644 --- a/OpenRA.Renderer.Null/NullGraphicsDevice.cs +++ b/OpenRA.Renderer.Null/NullGraphicsDevice.cs @@ -21,7 +21,7 @@ namespace OpenRA.Renderer.Null { public IGraphicsDevice Create(Size size, WindowMode windowMode) { - return new NullGraphicsDevice( size, windowMode ); + return new NullGraphicsDevice(size, windowMode); } } @@ -54,7 +54,7 @@ namespace OpenRA.Renderer.Null } public void DrawPrimitives(PrimitiveType pt, int firstVertex, int numVertices) { } - public void SetLineWidth( float width ) { } + public void SetLineWidth(float width) { } public IVertexBuffer CreateVertexBuffer(int size) { return new NullVertexBuffer(); } public ITexture CreateTexture() { return new NullTexture(); } diff --git a/OpenRA.Renderer.Null/OpenRA.Renderer.Null.csproj b/OpenRA.Renderer.Null/OpenRA.Renderer.Null.csproj index 206aa93847..e6cf42a74f 100644 --- a/OpenRA.Renderer.Null/OpenRA.Renderer.Null.csproj +++ b/OpenRA.Renderer.Null/OpenRA.Renderer.Null.csproj @@ -69,7 +69,6 @@ - diff --git a/OpenRA.Renderer.Null/Properties/AssemblyInfo.cs b/OpenRA.Renderer.Null/Properties/AssemblyInfo.cs deleted file mode 100644 index 6bd6705fc4..0000000000 --- a/OpenRA.Renderer.Null/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,46 +0,0 @@ -#region Copyright & License Information -/* - * Copyright 2007-2011 The OpenRA Developers (see AUTHORS) - * This file is part of OpenRA, which is free software. It is made - * available to you under the terms of the GNU General Public License - * as published by the Free Software Foundation. For more information, - * see COPYING. - */ -#endregion - -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.Renderer.Null")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.Renderer.Null")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c7dff231-d517-400e-bc98-ff10c99fd660")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.Renderer.Null/Settings.StyleCop b/OpenRA.Renderer.Null/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Renderer.Null/Settings.StyleCop +++ b/OpenRA.Renderer.Null/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.Renderer.SdlCommon/Settings.StyleCop b/OpenRA.Renderer.SdlCommon/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.Renderer.SdlCommon/Settings.StyleCop +++ b/OpenRA.Renderer.SdlCommon/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.TilesetBuilder/frmBuilder.Designer.cs b/OpenRA.TilesetBuilder/FormBuilder.Designer.cs similarity index 85% rename from OpenRA.TilesetBuilder/frmBuilder.Designer.cs rename to OpenRA.TilesetBuilder/FormBuilder.Designer.cs index e25c52e08e..a1ac41ff56 100644 --- a/OpenRA.TilesetBuilder/frmBuilder.Designer.cs +++ b/OpenRA.TilesetBuilder/FormBuilder.Designer.cs @@ -1,368 +1,367 @@ -namespace OpenRA.TilesetBuilder -{ - partial class frmBuilder - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmBuilder)); - this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer(); - this.panel1 = new System.Windows.Forms.Panel(); - this.imageList = new System.Windows.Forms.ImageList(this.components); - this.tsTerrainTypes = new System.Windows.Forms.ToolStrip(); - this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel(); - this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel(); - this.txtTilesetName = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripLabel5 = new System.Windows.Forms.ToolStripLabel(); - this.txtID = new System.Windows.Forms.ToolStripTextBox(); - this.lblExt = new System.Windows.Forms.ToolStripLabel(); - this.txtExt = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripLabel6 = new System.Windows.Forms.ToolStripLabel(); - this.txtPal = new System.Windows.Forms.ToolStripTextBox(); - this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); - this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.toolStripButton15 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton14 = new System.Windows.Forms.ToolStripButton(); - this.toolStripButton16 = new System.Windows.Forms.ToolStripButton(); - this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); - this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); - this.surface1 = new OpenRA.TilesetBuilder.Surface(); - this.toolStripContainer1.ContentPanel.SuspendLayout(); - this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); - this.toolStripContainer1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.tsTerrainTypes.SuspendLayout(); - this.toolStrip1.SuspendLayout(); - this.SuspendLayout(); +namespace OpenRA.TilesetBuilder +{ + partial class FormBuilder + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.components = new System.ComponentModel.Container(); + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FormBuilder)); + this.toolStripContainer1 = new System.Windows.Forms.ToolStripContainer(); + this.panel1 = new System.Windows.Forms.Panel(); + this.ImageList = new System.Windows.Forms.ImageList(this.components); + this.terrainTypes = new System.Windows.Forms.ToolStrip(); + this.toolStripLabel3 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripLabel4 = new System.Windows.Forms.ToolStripLabel(); + this.txtTilesetName = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripLabel5 = new System.Windows.Forms.ToolStripLabel(); + this.txtID = new System.Windows.Forms.ToolStripTextBox(); + this.lblExt = new System.Windows.Forms.ToolStripLabel(); + this.txtExt = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripLabel6 = new System.Windows.Forms.ToolStripLabel(); + this.txtPal = new System.Windows.Forms.ToolStripTextBox(); + this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripLabel2 = new System.Windows.Forms.ToolStripLabel(); + this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton1 = new System.Windows.Forms.ToolStripButton(); + this.toolStrip1 = new System.Windows.Forms.ToolStrip(); + this.toolStripButton15 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton2 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton14 = new System.Windows.Forms.ToolStripButton(); + this.toolStripButton16 = new System.Windows.Forms.ToolStripButton(); + this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); + this.toolStripButton3 = new System.Windows.Forms.ToolStripButton(); + this.surface1 = new OpenRA.TilesetBuilder.Surface(); + this.toolStripContainer1.ContentPanel.SuspendLayout(); + this.toolStripContainer1.TopToolStripPanel.SuspendLayout(); + this.toolStripContainer1.SuspendLayout(); + this.panel1.SuspendLayout(); + this.terrainTypes.SuspendLayout(); + this.toolStrip1.SuspendLayout(); + this.SuspendLayout(); + // + // toolStripContainer1 + // + // + // toolStripContainer1.ContentPanel + // + this.toolStripContainer1.ContentPanel.Controls.Add(this.panel1); + this.toolStripContainer1.ContentPanel.Controls.Add(this.terrainTypes); + this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(908, 571); + this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill; + this.toolStripContainer1.Location = new System.Drawing.Point(0, 0); + this.toolStripContainer1.Name = "toolStripContainer1"; + this.toolStripContainer1.Size = new System.Drawing.Size(908, 596); + this.toolStripContainer1.TabIndex = 0; + this.toolStripContainer1.Text = "toolStripContainer1"; + // + // toolStripContainer1.TopToolStripPanel + // + this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1); + this.toolStripContainer1.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; // - // toolStripContainer1 - // - // - // toolStripContainer1.ContentPanel - // - this.toolStripContainer1.ContentPanel.Controls.Add(this.panel1); - this.toolStripContainer1.ContentPanel.Controls.Add(this.tsTerrainTypes); - this.toolStripContainer1.ContentPanel.Size = new System.Drawing.Size(908, 571); - this.toolStripContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.toolStripContainer1.Location = new System.Drawing.Point(0, 0); - this.toolStripContainer1.Name = "toolStripContainer1"; - this.toolStripContainer1.Size = new System.Drawing.Size(908, 596); - this.toolStripContainer1.TabIndex = 0; - this.toolStripContainer1.Text = "toolStripContainer1"; - // - // toolStripContainer1.TopToolStripPanel - // - this.toolStripContainer1.TopToolStripPanel.Controls.Add(this.toolStrip1); - this.toolStripContainer1.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional; - this.toolStripContainer1.TopToolStripPanel.Click += new System.EventHandler(this.toolStripContainer1_TopToolStripPanel_Click); - // - // panel1 - // - this.panel1.AutoScroll = true; - this.panel1.BackColor = System.Drawing.Color.Black; + // panel1 + // + this.panel1.AutoScroll = true; + this.panel1.BackColor = System.Drawing.Color.Black; this.panel1.Controls.Add(this.surface1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(788, 571); - this.panel1.TabIndex = 3; - // - // imageList - // - this.imageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); - this.imageList.TransparentColor = System.Drawing.Color.Transparent; - this.imageList.Images.SetKeyName(0, "clear.png"); - this.imageList.Images.SetKeyName(1, "water.png"); - this.imageList.Images.SetKeyName(2, "road.png"); - this.imageList.Images.SetKeyName(3, "rock.png"); - this.imageList.Images.SetKeyName(4, "river.png"); - this.imageList.Images.SetKeyName(5, "rough.png"); - this.imageList.Images.SetKeyName(6, "wall.png"); - this.imageList.Images.SetKeyName(7, "beach.png"); - this.imageList.Images.SetKeyName(8, "tree.png"); - this.imageList.Images.SetKeyName(9, "tiberium.png"); - // - // tsTerrainTypes - // - this.tsTerrainTypes.AutoSize = false; - this.tsTerrainTypes.Dock = System.Windows.Forms.DockStyle.Right; - this.tsTerrainTypes.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripLabel3, - this.toolStripSeparator3, - this.toolStripLabel4, - this.txtTilesetName, - this.toolStripLabel5, - this.txtID, - this.lblExt, - this.txtExt, - this.toolStripLabel6, - this.txtPal, - this.toolStripSeparator5, - this.toolStripLabel2, - this.toolStripSeparator4, - this.toolStripButton1}); - this.tsTerrainTypes.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.VerticalStackWithOverflow; - this.tsTerrainTypes.Location = new System.Drawing.Point(788, 0); - this.tsTerrainTypes.Name = "tsTerrainTypes"; - this.tsTerrainTypes.Size = new System.Drawing.Size(120, 571); - this.tsTerrainTypes.TabIndex = 1; - this.tsTerrainTypes.Text = "toolStrip3"; - // - // toolStripLabel3 - // - this.toolStripLabel3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); - this.toolStripLabel3.Name = "toolStripLabel3"; - this.toolStripLabel3.Size = new System.Drawing.Size(118, 13); - this.toolStripLabel3.Text = "Tileset setup"; - // - // toolStripSeparator3 - // - this.toolStripSeparator3.Name = "toolStripSeparator3"; - this.toolStripSeparator3.Size = new System.Drawing.Size(118, 6); - // - // toolStripLabel4 - // - this.toolStripLabel4.Name = "toolStripLabel4"; - this.toolStripLabel4.Size = new System.Drawing.Size(118, 13); - this.toolStripLabel4.Text = "Tileset name:"; - // - // txtTilesetName - // - this.txtTilesetName.MaxLength = 32; - this.txtTilesetName.Name = "txtTilesetName"; - this.txtTilesetName.Size = new System.Drawing.Size(116, 21); - this.txtTilesetName.Text = "Temperat"; - this.txtTilesetName.TextChanged += new System.EventHandler(this.txtTilesetName_TextChanged); - // - // toolStripLabel5 - // - this.toolStripLabel5.Name = "toolStripLabel5"; - this.toolStripLabel5.Size = new System.Drawing.Size(118, 13); - this.toolStripLabel5.Text = "Tileset ID:"; - // - // txtID - // - this.txtID.Name = "txtID"; - this.txtID.ReadOnly = true; - this.txtID.Size = new System.Drawing.Size(116, 21); - this.txtID.Text = "TEMPERAT"; - // - // lblExt - // - this.lblExt.Name = "lblExt"; - this.lblExt.Size = new System.Drawing.Size(118, 13); - this.lblExt.Text = "Extensions:"; - // - // txtExt - // - this.txtExt.Name = "txtExt"; - this.txtExt.ReadOnly = true; - this.txtExt.Size = new System.Drawing.Size(116, 21); - this.txtExt.Text = ".tem,.shp"; - // - // toolStripLabel6 - // - this.toolStripLabel6.Name = "toolStripLabel6"; - this.toolStripLabel6.Size = new System.Drawing.Size(118, 13); - this.toolStripLabel6.Text = "Palette:"; - // - // txtPal - // - this.txtPal.Name = "txtPal"; - this.txtPal.ReadOnly = true; - this.txtPal.Size = new System.Drawing.Size(116, 21); - this.txtPal.Text = "temperat.pal"; - // - // toolStripSeparator5 - // - this.toolStripSeparator5.Name = "toolStripSeparator5"; - this.toolStripSeparator5.Size = new System.Drawing.Size(118, 6); - // - // toolStripLabel2 - // - this.toolStripLabel2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); - this.toolStripLabel2.Name = "toolStripLabel2"; - this.toolStripLabel2.Size = new System.Drawing.Size(118, 13); - this.toolStripLabel2.Text = "Terrain type"; - // - // toolStripSeparator4 - // - this.toolStripSeparator4.Name = "toolStripSeparator4"; - this.toolStripSeparator4.Size = new System.Drawing.Size(118, 6); - // - // toolStripButton1 - // - this.toolStripButton1.Checked = true; - this.toolStripButton1.CheckState = System.Windows.Forms.CheckState.Checked; - this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); - this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton1.Name = "toolStripButton1"; - this.toolStripButton1.Size = new System.Drawing.Size(118, 20); - this.toolStripButton1.Text = "Template Tool"; - this.toolStripButton1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.toolStripButton1.Click += new System.EventHandler(this.TerrainTypeSelectorClicked); - // - // toolStrip1 - // - this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripButton15, - this.toolStripButton2, - this.toolStripButton14, - this.toolStripButton16, - this.toolStripSeparator1, - this.toolStripButton3}); - this.toolStrip1.Location = new System.Drawing.Point(3, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(275, 25); - this.toolStrip1.TabIndex = 0; - // - // toolStripButton15 - // - this.toolStripButton15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton15.Image"))); - this.toolStripButton15.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton15.Name = "toolStripButton15"; - this.toolStripButton15.Size = new System.Drawing.Size(48, 22); - this.toolStripButton15.Text = "New"; - this.toolStripButton15.ToolTipText = "Create new tileset"; - this.toolStripButton15.Click += new System.EventHandler(this.toolStripButton15_Click); - // - // toolStripButton2 - // - this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); - this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton2.Name = "toolStripButton2"; - this.toolStripButton2.Size = new System.Drawing.Size(51, 22); - this.toolStripButton2.Text = "Save"; - this.toolStripButton2.ToolTipText = "Save Template definitions to file (*.tsx)"; - this.toolStripButton2.Click += new System.EventHandler(this.SaveClicked); - // - // toolStripButton14 - // - this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); - this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton14.Name = "toolStripButton14"; - this.toolStripButton14.Size = new System.Drawing.Size(59, 22); - this.toolStripButton14.Text = "Export"; - this.toolStripButton14.ToolTipText = "Export defined Templates to files"; - this.toolStripButton14.Click += new System.EventHandler(this.ExportClicked); - // - // toolStripButton16 - // - this.toolStripButton16.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); - this.toolStripButton16.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton16.Name = "toolStripButton16"; - this.toolStripButton16.Size = new System.Drawing.Size(65, 22); - this.toolStripButton16.Text = "Dump"; - this.toolStripButton16.ToolTipText = "Dump Template ID to tile number mapping to console"; - this.toolStripButton16.Click += new System.EventHandler(this.Export2Clicked); - // - // toolStripSeparator1 - // - this.toolStripSeparator1.Name = "toolStripSeparator1"; - this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); - // - // toolStripButton3 - // - this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); - this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; - this.toolStripButton3.Name = "toolStripButton3"; - this.toolStripButton3.Size = new System.Drawing.Size(70, 22); - this.toolStripButton3.Text = "Overlays"; - this.toolStripButton3.ToolTipText = "Show/hide terrain type overlays"; - this.toolStripButton3.CheckOnClick = true; - this.toolStripButton3.Click += new System.EventHandler(this.ShowOverlaysClicked); - // - // surface1 - // - this.surface1.BackColor = System.Drawing.Color.Black; - this.surface1.ImagesList = this.imageList; - this.surface1.Location = new System.Drawing.Point(0, 0); - this.surface1.Name = "surface1"; - this.surface1.ShowTerrainTypes = this.toolStripButton3.Checked; - this.surface1.Size = new System.Drawing.Size(653, 454); - this.surface1.TabIndex = 2; - this.surface1.Text = "surface1"; - // - // frmBuilder - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(908, 596); - this.Controls.Add(this.toolStripContainer1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "frmBuilder"; - this.Text = "Tileset Builder 2"; - this.toolStripContainer1.ContentPanel.ResumeLayout(false); - this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false); - this.toolStripContainer1.TopToolStripPanel.PerformLayout(); - this.toolStripContainer1.ResumeLayout(false); - this.toolStripContainer1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.tsTerrainTypes.ResumeLayout(false); - this.tsTerrainTypes.PerformLayout(); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.ResumeLayout(false); - } - - #endregion - - private System.Windows.Forms.ToolStripContainer toolStripContainer1; - private System.Windows.Forms.ToolStrip toolStrip1; - private System.Windows.Forms.ToolStripButton toolStripButton2; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; - private System.Windows.Forms.ToolStripButton toolStripButton3; - private System.Windows.Forms.ToolStripButton toolStripButton14; - private System.Windows.Forms.ToolStripButton toolStripButton15; - private System.Windows.Forms.ToolStripButton toolStripButton16; - public System.Windows.Forms.ImageList imageList; - private System.Windows.Forms.ToolStrip tsTerrainTypes; - private System.Windows.Forms.Panel panel1; - private Surface surface1; - private System.Windows.Forms.ToolStripLabel toolStripLabel2; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; - private System.Windows.Forms.ToolStripButton toolStripButton1; - private System.Windows.Forms.ToolStripLabel toolStripLabel3; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; - private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; - private System.Windows.Forms.ToolStripLabel toolStripLabel4; - private System.Windows.Forms.ToolStripTextBox txtTilesetName; - private System.Windows.Forms.ToolStripLabel toolStripLabel5; - private System.Windows.Forms.ToolStripTextBox txtID; - private System.Windows.Forms.ToolStripLabel lblExt; - private System.Windows.Forms.ToolStripTextBox txtExt; - private System.Windows.Forms.ToolStripLabel toolStripLabel6; - private System.Windows.Forms.ToolStripTextBox txtPal; - } -} - + this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(788, 571); + this.panel1.TabIndex = 3; + // + // imageList + // + this.ImageList.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList.ImageStream"))); + this.ImageList.TransparentColor = System.Drawing.Color.Transparent; + this.ImageList.Images.SetKeyName(0, "clear.png"); + this.ImageList.Images.SetKeyName(1, "water.png"); + this.ImageList.Images.SetKeyName(2, "road.png"); + this.ImageList.Images.SetKeyName(3, "rock.png"); + this.ImageList.Images.SetKeyName(4, "river.png"); + this.ImageList.Images.SetKeyName(5, "rough.png"); + this.ImageList.Images.SetKeyName(6, "wall.png"); + this.ImageList.Images.SetKeyName(7, "beach.png"); + this.ImageList.Images.SetKeyName(8, "tree.png"); + this.ImageList.Images.SetKeyName(9, "tiberium.png"); + // + // tsTerrainTypes + // + this.terrainTypes.AutoSize = false; + this.terrainTypes.Dock = System.Windows.Forms.DockStyle.Right; + this.terrainTypes.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripLabel3, + this.toolStripSeparator3, + this.toolStripLabel4, + this.txtTilesetName, + this.toolStripLabel5, + this.txtID, + this.lblExt, + this.txtExt, + this.toolStripLabel6, + this.txtPal, + this.toolStripSeparator5, + this.toolStripLabel2, + this.toolStripSeparator4, + this.toolStripButton1}); + this.terrainTypes.LayoutStyle = System.Windows.Forms.ToolStripLayoutStyle.VerticalStackWithOverflow; + this.terrainTypes.Location = new System.Drawing.Point(788, 0); + this.terrainTypes.Name = "tsTerrainTypes"; + this.terrainTypes.Size = new System.Drawing.Size(120, 571); + this.terrainTypes.TabIndex = 1; + this.terrainTypes.Text = "toolStrip3"; + // + // toolStripLabel3 + // + this.toolStripLabel3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); + this.toolStripLabel3.Name = "toolStripLabel3"; + this.toolStripLabel3.Size = new System.Drawing.Size(118, 13); + this.toolStripLabel3.Text = "Tileset setup"; + // + // toolStripSeparator3 + // + this.toolStripSeparator3.Name = "toolStripSeparator3"; + this.toolStripSeparator3.Size = new System.Drawing.Size(118, 6); + // + // toolStripLabel4 + // + this.toolStripLabel4.Name = "toolStripLabel4"; + this.toolStripLabel4.Size = new System.Drawing.Size(118, 13); + this.toolStripLabel4.Text = "Tileset name:"; + // + // txtTilesetName + // + this.txtTilesetName.MaxLength = 32; + this.txtTilesetName.Name = "txtTilesetName"; + this.txtTilesetName.Size = new System.Drawing.Size(116, 21); + this.txtTilesetName.Text = "Temperat"; + this.txtTilesetName.TextChanged += new System.EventHandler(this.TilesetNameChanged); + // + // toolStripLabel5 + // + this.toolStripLabel5.Name = "toolStripLabel5"; + this.toolStripLabel5.Size = new System.Drawing.Size(118, 13); + this.toolStripLabel5.Text = "Tileset ID:"; + // + // txtID + // + this.txtID.Name = "txtID"; + this.txtID.ReadOnly = true; + this.txtID.Size = new System.Drawing.Size(116, 21); + this.txtID.Text = "TEMPERAT"; + // + // lblExt + // + this.lblExt.Name = "lblExt"; + this.lblExt.Size = new System.Drawing.Size(118, 13); + this.lblExt.Text = "Extensions:"; + // + // txtExt + // + this.txtExt.Name = "txtExt"; + this.txtExt.ReadOnly = true; + this.txtExt.Size = new System.Drawing.Size(116, 21); + this.txtExt.Text = ".tem,.shp"; + // + // toolStripLabel6 + // + this.toolStripLabel6.Name = "toolStripLabel6"; + this.toolStripLabel6.Size = new System.Drawing.Size(118, 13); + this.toolStripLabel6.Text = "Palette:"; + // + // txtPal + // + this.txtPal.Name = "txtPal"; + this.txtPal.ReadOnly = true; + this.txtPal.Size = new System.Drawing.Size(116, 21); + this.txtPal.Text = "temperat.pal"; + // + // toolStripSeparator5 + // + this.toolStripSeparator5.Name = "toolStripSeparator5"; + this.toolStripSeparator5.Size = new System.Drawing.Size(118, 6); + // + // toolStripLabel2 + // + this.toolStripLabel2.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold); + this.toolStripLabel2.Name = "toolStripLabel2"; + this.toolStripLabel2.Size = new System.Drawing.Size(118, 13); + this.toolStripLabel2.Text = "Terrain type"; + // + // toolStripSeparator4 + // + this.toolStripSeparator4.Name = "toolStripSeparator4"; + this.toolStripSeparator4.Size = new System.Drawing.Size(118, 6); + // + // toolStripButton1 + // + this.toolStripButton1.Checked = true; + this.toolStripButton1.CheckState = System.Windows.Forms.CheckState.Checked; + this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image"))); + this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton1.Name = "toolStripButton1"; + this.toolStripButton1.Size = new System.Drawing.Size(118, 20); + this.toolStripButton1.Text = "Template Tool"; + this.toolStripButton1.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; + this.toolStripButton1.Click += new System.EventHandler(this.TerrainTypeSelectorClicked); + // + // toolStrip1 + // + this.toolStrip1.Dock = System.Windows.Forms.DockStyle.None; + this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripButton15, + this.toolStripButton2, + this.toolStripButton14, + this.toolStripButton16, + this.toolStripSeparator1, + this.toolStripButton3}); + this.toolStrip1.Location = new System.Drawing.Point(3, 0); + this.toolStrip1.Name = "toolStrip1"; + this.toolStrip1.Size = new System.Drawing.Size(275, 25); + this.toolStrip1.TabIndex = 0; + // + // toolStripButton15 + // + this.toolStripButton15.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton15.Image"))); + this.toolStripButton15.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton15.Name = "toolStripButton15"; + this.toolStripButton15.Size = new System.Drawing.Size(48, 22); + this.toolStripButton15.Text = "New"; + this.toolStripButton15.ToolTipText = "Create new tileset"; + this.toolStripButton15.Click += new System.EventHandler(this.NewTilesetButton); + // + // toolStripButton2 + // + this.toolStripButton2.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton2.Image"))); + this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton2.Name = "toolStripButton2"; + this.toolStripButton2.Size = new System.Drawing.Size(51, 22); + this.toolStripButton2.Text = "Save"; + this.toolStripButton2.ToolTipText = "Save Template definitions to file (*.tsx)"; + this.toolStripButton2.Click += new System.EventHandler(this.SaveClicked); + // + // toolStripButton14 + // + this.toolStripButton14.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); + this.toolStripButton14.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton14.Name = "toolStripButton14"; + this.toolStripButton14.Size = new System.Drawing.Size(59, 22); + this.toolStripButton14.Text = "Export"; + this.toolStripButton14.ToolTipText = "Export defined Templates to files"; + this.toolStripButton14.Click += new System.EventHandler(this.ExportClicked); + // + // toolStripButton16 + // + this.toolStripButton16.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton14.Image"))); + this.toolStripButton16.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton16.Name = "toolStripButton16"; + this.toolStripButton16.Size = new System.Drawing.Size(65, 22); + this.toolStripButton16.Text = "Dump"; + this.toolStripButton16.ToolTipText = "Dump Template ID to tile number mapping to console"; + this.toolStripButton16.Click += new System.EventHandler(this.Export2Clicked); + // + // toolStripSeparator1 + // + this.toolStripSeparator1.Name = "toolStripSeparator1"; + this.toolStripSeparator1.Size = new System.Drawing.Size(6, 25); + // + // toolStripButton3 + // + this.toolStripButton3.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton3.Image"))); + this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta; + this.toolStripButton3.Name = "toolStripButton3"; + this.toolStripButton3.Size = new System.Drawing.Size(70, 22); + this.toolStripButton3.Text = "Overlays"; + this.toolStripButton3.ToolTipText = "Show/hide terrain type overlays"; + this.toolStripButton3.CheckOnClick = true; + this.toolStripButton3.Click += new System.EventHandler(this.ShowOverlaysClicked); + // + // surface1 + // + this.surface1.BackColor = System.Drawing.Color.Black; + this.surface1.ImagesList = this.ImageList; + this.surface1.Location = new System.Drawing.Point(0, 0); + this.surface1.Name = "surface1"; + this.surface1.ShowTerrainTypes = this.toolStripButton3.Checked; + this.surface1.Size = new System.Drawing.Size(653, 454); + this.surface1.TabIndex = 2; + this.surface1.Text = "surface1"; + // + // frmBuilder + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(908, 596); + this.Controls.Add(this.toolStripContainer1); + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Name = "frmBuilder"; + this.Text = "Tileset Builder 2"; + this.toolStripContainer1.ContentPanel.ResumeLayout(false); + this.toolStripContainer1.TopToolStripPanel.ResumeLayout(false); + this.toolStripContainer1.TopToolStripPanel.PerformLayout(); + this.toolStripContainer1.ResumeLayout(false); + this.toolStripContainer1.PerformLayout(); + this.panel1.ResumeLayout(false); + this.terrainTypes.ResumeLayout(false); + this.terrainTypes.PerformLayout(); + this.toolStrip1.ResumeLayout(false); + this.toolStrip1.PerformLayout(); + this.ResumeLayout(false); + } + + #endregion + + private System.Windows.Forms.ToolStripContainer toolStripContainer1; + private System.Windows.Forms.ToolStrip toolStrip1; + private System.Windows.Forms.ToolStripButton toolStripButton2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; + private System.Windows.Forms.ToolStripButton toolStripButton3; + private System.Windows.Forms.ToolStripButton toolStripButton14; + private System.Windows.Forms.ToolStripButton toolStripButton15; + private System.Windows.Forms.ToolStripButton toolStripButton16; + public System.Windows.Forms.ImageList ImageList; + private System.Windows.Forms.ToolStrip terrainTypes; + private System.Windows.Forms.Panel panel1; + private Surface surface1; + private System.Windows.Forms.ToolStripLabel toolStripLabel2; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator4; + private System.Windows.Forms.ToolStripButton toolStripButton1; + private System.Windows.Forms.ToolStripLabel toolStripLabel3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator3; + private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; + private System.Windows.Forms.ToolStripLabel toolStripLabel4; + private System.Windows.Forms.ToolStripTextBox txtTilesetName; + private System.Windows.Forms.ToolStripLabel toolStripLabel5; + private System.Windows.Forms.ToolStripTextBox txtID; + private System.Windows.Forms.ToolStripLabel lblExt; + private System.Windows.Forms.ToolStripTextBox txtExt; + private System.Windows.Forms.ToolStripLabel toolStripLabel6; + private System.Windows.Forms.ToolStripTextBox txtPal; + } +} \ No newline at end of file diff --git a/OpenRA.TilesetBuilder/frmBuilder.cs b/OpenRA.TilesetBuilder/FormBuilder.cs similarity index 79% rename from OpenRA.TilesetBuilder/frmBuilder.cs rename to OpenRA.TilesetBuilder/FormBuilder.cs index 2eafa1c68a..f988d3fbde 100644 --- a/OpenRA.TilesetBuilder/frmBuilder.cs +++ b/OpenRA.TilesetBuilder/FormBuilder.cs @@ -14,19 +14,19 @@ using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Windows.Forms; using System.Xml; -using System.Runtime.InteropServices; using OpenRA.FileFormats; namespace OpenRA.TilesetBuilder { - public partial class frmBuilder : Form + public partial class FormBuilder : Form { string srcfile; int size; public TerrainTypeInfo[] TerrainType; - public Palette tpal; + public Palette TerrainPalette; public bool PaletteFromImage = true; public string PaletteFile = ""; public string ImageFile = ""; @@ -40,13 +40,13 @@ namespace OpenRA.TilesetBuilder public void CreateNewTileset() { this.Show(); - using (var fNew = new frmNew { }) - if (DialogResult.OK == fNew.ShowDialog()) + using (var formNew = new FormNew { }) + if (DialogResult.OK == formNew.ShowDialog()) { - PaletteFromImage = fNew.PaletteFromImage; - PaletteFile = fNew.PaletteFile; - ImageFile = fNew.ImageFile; - TileSize = fNew.TileSize; + PaletteFromImage = formNew.PaletteFromImage; + PaletteFile = formNew.PaletteFile; + ImageFile = formNew.ImageFile; + TileSize = formNew.TileSize; srcfile = ImageFile; this.size = TileSize; @@ -56,12 +56,12 @@ namespace OpenRA.TilesetBuilder Bitmap rbitmap = fbitmap.Clone(new Rectangle(0, 0, fbitmap.Width, fbitmap.Height), fbitmap.PixelFormat); - int[] ShadowIndex = { }; + int[] shadowIndex = { }; if (!PaletteFromImage) { - tpal = Palette.Load(PaletteFile, ShadowIndex); - rbitmap.Palette = tpal.AsSystemPalette(); + TerrainPalette = Palette.Load(PaletteFile, shadowIndex); + rbitmap.Palette = TerrainPalette.AsSystemPalette(); } surface1.Image = (Bitmap)rbitmap; @@ -75,18 +75,18 @@ namespace OpenRA.TilesetBuilder } } - public frmBuilder(string src, string tsize, bool AutoExport, string OutputDir) + public FormBuilder(string src, string tsize, bool autoExport, string outputDir) { InitializeComponent(); - Dictionary DefTerrain = new Dictionary(); + Dictionary terrainDefinition = new Dictionary(); int size = int.Parse(tsize); var yaml = MiniYaml.DictFromFile("OpenRA.TilesetBuilder/defaults.yaml"); - DefTerrain = yaml["Terrain"].NodesDict.Values.Select(y => new TerrainTypeInfo(y)).ToDictionary(t => t.Type); + terrainDefinition = yaml["Terrain"].NodesDict.Values.Select(y => new TerrainTypeInfo(y)).ToDictionary(t => t.Type); int i = 0; - surface1.icon = new Bitmap[DefTerrain.Keys.Count]; - TerrainType = new TerrainTypeInfo[DefTerrain.Keys.Count]; + surface1.Icon = new Bitmap[terrainDefinition.Keys.Count]; + TerrainType = new TerrainTypeInfo[terrainDefinition.Keys.Count]; var title = this.Text; surface1.UpdateMouseTilePosition += (x, y, tileNr) => @@ -95,29 +95,30 @@ namespace OpenRA.TilesetBuilder }; surface1.Enabled = false; - foreach (var deftype in DefTerrain) + foreach (var deftype in terrainDefinition) { - Bitmap icon = new Bitmap(16, 16); - int x, y; + var icon = new Bitmap(16, 16); + // Loop through the images pixels to reset color. - for (x = 0; x < icon.Width; x++) + for (var x = 0; x < icon.Width; x++) { - for (y = 0; y < icon.Height; y++) + for (var y = 0; y < icon.Height; y++) { Color newColor = deftype.Value.Color; icon.SetPixel(x, y, newColor); } } - surface1.icon[i] = icon; + + surface1.Icon[i] = icon; TerrainType[i] = deftype.Value; - ToolStripButton TerrainTypeButton = new ToolStripButton(deftype.Key, icon, TerrainTypeSelectorClicked); - TerrainTypeButton.ToolTipText = deftype.Key; - TerrainTypeButton.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText; - TerrainTypeButton.Tag = i.ToString(); - TerrainTypeButton.ImageAlign = ContentAlignment.MiddleLeft; + var terrainTypeButton = new ToolStripButton(deftype.Key, icon, TerrainTypeSelectorClicked); + terrainTypeButton.ToolTipText = deftype.Key; + terrainTypeButton.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText; + terrainTypeButton.Tag = i.ToString(); + terrainTypeButton.ImageAlign = ContentAlignment.MiddleLeft; i++; - tsTerrainTypes.Items.Add(TerrainTypeButton); + terrainTypes.Items.Add(terrainTypeButton); } if (src.Length > 0) @@ -139,9 +140,9 @@ namespace OpenRA.TilesetBuilder CreateNewTileset(); } - if (AutoExport) + if (autoExport) { - Export(OutputDir); + Export(outputDir); Application.Exit(); } } @@ -173,7 +174,7 @@ namespace OpenRA.TilesetBuilder public void Save() { - using (var w = XmlWriter.Create(Path.ChangeExtension(srcfile,"tsx"), + using (var w = XmlWriter.Create(Path.ChangeExtension(srcfile, "tsx"), new XmlWriterSettings { Indent = true, IndentChars = " " })) { var tilesetName = txtTilesetName.Text; @@ -187,8 +188,8 @@ namespace OpenRA.TilesetBuilder w.WriteAttributeString("value", tilesetName); w.WriteEndElement(); - for( var i = 0; i <= surface1.TerrainTypes.GetUpperBound(0); i++ ) - for( var j = 0; j <= surface1.TerrainTypes.GetUpperBound(1); j++ ) + for (var i = 0; i <= surface1.TerrainTypes.GetUpperBound(0); i++) + for (var j = 0; j <= surface1.TerrainTypes.GetUpperBound(1); j++) if (surface1.TerrainTypes[i, j] != 0) { w.WriteStartElement("terrain"); @@ -254,15 +255,15 @@ namespace OpenRA.TilesetBuilder string ExportTemplate(Template t, int n, string suffix, string dir) { - var TileSize = size; + var tileSize = size; var filename = Path.Combine(dir, "{0}{1:00}{2}".F(txtTilesetName.Text, n, suffix)); var totalTiles = t.Width * t.Height; var ms = new MemoryStream(); using (var bw = new BinaryWriter(ms)) { - bw.Write((ushort)TileSize); - bw.Write((ushort)TileSize); + bw.Write((ushort)tileSize); + bw.Write((ushort)tileSize); bw.Write((uint)totalTiles); bw.Write((ushort)t.Width); bw.Write((ushort)t.Height); @@ -290,16 +291,15 @@ namespace OpenRA.TilesetBuilder { if (t.Cells.ContainsKey(new int2(u + t.Left, v + t.Top))) { - byte* q = p + data.Stride * TileSize * (v + t.Top) + TileSize * (u + t.Left); - for (var j = 0; j < TileSize; j++) - for (var i = 0; i < TileSize; i++) + byte* q = p + data.Stride * tileSize * (v + t.Top) + tileSize * (u + t.Left); + for (var j = 0; j < tileSize; j++) + for (var i = 0; i < tileSize; i++) { bw.Write(q[i + j * data.Stride]); } - } else - for (var x = 0; x < TileSize * TileSize; x++) + for (var x = 0; x < tileSize * tileSize; x++) bw.Write((byte)0); /* TODO: don't fill with air */ } } @@ -317,7 +317,7 @@ namespace OpenRA.TilesetBuilder bw.Flush(); var flagsStart = ms.Position; - for (var x = 0; x < totalTiles; x++ ) + for (var x = 0; x < totalTiles; x++) bw.Write((byte)0); bw.Flush(); @@ -334,12 +334,13 @@ namespace OpenRA.TilesetBuilder File.WriteAllBytes(filename, bytes); } + return filename; } - public void Export (string OutputDir) + public void Export(string outputDir) { - var dir = Path.Combine(Path.GetDirectoryName(srcfile), Platform.SupportDir+OutputDir); + var dir = Path.Combine(Path.GetDirectoryName(srcfile), Platform.SupportDir + outputDir); Directory.CreateDirectory(dir); var tilesetName = txtTilesetName.Text; var tilesetID = txtID.Text; @@ -350,30 +351,24 @@ namespace OpenRA.TilesetBuilder if (tilesetID.Length < 1) { tilesetID = "TEMPERAT"; } if (tilesetPalette.Length < 1) { tilesetPalette = "temperat"; } if (tilesetExt.Length < 1) { tilesetExt = ".tem,.shp"; } + // Create a Tileset definition // TODO: Pull this info from the GUI var tilesetFile = ""; - //var mixFile = ""; tilesetFile = tilesetName.ToLower(); if (tilesetFile.Length < 8) - { tilesetFile = tilesetName.ToLower() + ".yaml"; - //mixFile = tilesetName.ToLower() + ".mix"; - } else - { tilesetFile = tilesetName.ToLower().Substring(0, 8) + ".yaml"; - //mixFile = tilesetName.ToLower().Substring(0, 8) + ".mix"; - } - string[] Ext = tilesetExt.Split(','); + var ext = tilesetExt.Split(','); var tileset = new TileSet() { Name = tilesetName, Id = tilesetID.ToUpper(), TileSize = size, Palette = tilesetPalette.ToLower(), - Extensions = new string[] { Ext[0], Ext[1] } + Extensions = new string[] { ext[0], ext[1] } }; // List of files to add to the mix file @@ -401,14 +396,14 @@ namespace OpenRA.TilesetBuilder { Id = cur, Image = "{0}{1:00}".F(txtTilesetName.Text, cur), - Size = new int2(tp.Width,tp.Height), + Size = new int2(tp.Width, tp.Height), }; foreach (var t in tp.Cells) { string ttype = "Clear"; ttype = TerrainType[surface1.TerrainTypes[t.Key.X, t.Key.Y]].Type; - var idx = ((t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top)); + var idx = (t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top); template.Tiles.Add((byte)idx, ttype); } @@ -417,13 +412,6 @@ namespace OpenRA.TilesetBuilder } tileset.Save(Path.Combine(dir, tilesetFile)); - //throw new NotImplementedException("NotI"); - //PackageWriter.CreateMix(Path.Combine(dir, mixFile),fileList); - - // Cleanup - //foreach (var file in fileList) - //File.Delete(file); - Console.WriteLine("Finished export"); } @@ -437,7 +425,7 @@ namespace OpenRA.TilesetBuilder { foreach (var t in tp.Cells) { - var idx = ((t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top)); + var idx = (t.Key.X - tp.Left) + tp.Width * (t.Key.Y - tp.Top); // TemplateID CellID tilenr TemplateW TemplateH XinTilesPNG YinTilesPNG Console.WriteLine("{0} {1} {2} {3} {4} {5} {6}", @@ -447,8 +435,7 @@ namespace OpenRA.TilesetBuilder tp.Width, tp.Height, t.Key.X, - t.Key.Y - ); + t.Key.Y); } cur++; @@ -457,23 +444,14 @@ namespace OpenRA.TilesetBuilder Console.WriteLine("# end\n"); } - private void toolStripContainer1_TopToolStripPanel_Click(object sender, EventArgs e) - { - - } - - private void surface1_Click(object sender, EventArgs e) - { - - } - - private void txtTilesetName_TextChanged(object sender, EventArgs e) + private void TilesetNameChanged(object sender, EventArgs e) { var tilesetFile = txtTilesetName.Text; if (tilesetFile.Length > 8) { tilesetFile = tilesetFile.ToLower().Substring(0, 8); } + txtID.Text = tilesetFile.ToUpper(); txtPal.Text = tilesetFile.ToLower() + ".pal"; if (tilesetFile.Length < 3) @@ -486,7 +464,7 @@ namespace OpenRA.TilesetBuilder } } - private void toolStripButton15_Click(object sender, EventArgs e) + private void NewTilesetButton(object sender, EventArgs e) { CreateNewTileset(); } diff --git a/OpenRA.TilesetBuilder/frmBuilder.resx b/OpenRA.TilesetBuilder/FormBuilder.resx similarity index 100% rename from OpenRA.TilesetBuilder/frmBuilder.resx rename to OpenRA.TilesetBuilder/FormBuilder.resx diff --git a/OpenRA.TilesetBuilder/frmNew.Designer.cs b/OpenRA.TilesetBuilder/FormNew.Designer.cs similarity index 91% rename from OpenRA.TilesetBuilder/frmNew.Designer.cs rename to OpenRA.TilesetBuilder/FormNew.Designer.cs index 1acc2ac303..309e1a45c2 100644 --- a/OpenRA.TilesetBuilder/frmNew.Designer.cs +++ b/OpenRA.TilesetBuilder/FormNew.Designer.cs @@ -1,228 +1,229 @@ -namespace OpenRA.TilesetBuilder -{ - partial class frmNew - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.numSize = new System.Windows.Forms.NumericUpDown(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.txtPal = new System.Windows.Forms.TextBox(); - this.btnPalBrowse = new System.Windows.Forms.Button(); - this.chkUsePalFromImage = new System.Windows.Forms.CheckBox(); - this.label3 = new System.Windows.Forms.Label(); - this.imgImage = new System.Windows.Forms.PictureBox(); - this.btnImgBrowse = new System.Windows.Forms.Button(); - this.txtImage = new System.Windows.Forms.TextBox(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOk = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.numSize)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgImage)).BeginInit(); - this.SuspendLayout(); - // - // numSize - // - this.numSize.Location = new System.Drawing.Point(66, 6); - this.numSize.Maximum = new decimal(new int[] { - 264, - 0, - 0, - 0}); - this.numSize.Minimum = new decimal(new int[] { - 24, - 0, - 0, - 0}); - this.numSize.Name = "numSize"; - this.numSize.Size = new System.Drawing.Size(49, 20); - this.numSize.TabIndex = 0; - this.numSize.Value = new decimal(new int[] { - 24, - 0, - 0, - 0}); - this.numSize.ValueChanged += new System.EventHandler(this.numSize_ValueChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(48, 13); - this.label1.TabIndex = 1; - this.label1.Text = "Tile size:"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 34); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(43, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Palette:"; - // - // txtPal - // - this.txtPal.Location = new System.Drawing.Point(15, 52); - this.txtPal.Name = "txtPal"; - this.txtPal.ReadOnly = true; - this.txtPal.Size = new System.Drawing.Size(267, 20); - this.txtPal.TabIndex = 3; - // - // btnPalBrowse - // - this.btnPalBrowse.Enabled = false; - this.btnPalBrowse.Location = new System.Drawing.Point(288, 50); - this.btnPalBrowse.Name = "btnPalBrowse"; - this.btnPalBrowse.Size = new System.Drawing.Size(26, 23); - this.btnPalBrowse.TabIndex = 4; - this.btnPalBrowse.Text = "..."; - this.btnPalBrowse.UseVisualStyleBackColor = true; - this.btnPalBrowse.Click += new System.EventHandler(this.btnPalBrowse_Click); - // - // chkUsePalFromImage - // - this.chkUsePalFromImage.AutoSize = true; - this.chkUsePalFromImage.Checked = true; - this.chkUsePalFromImage.CheckState = System.Windows.Forms.CheckState.Checked; - this.chkUsePalFromImage.Location = new System.Drawing.Point(66, 34); - this.chkUsePalFromImage.Name = "chkUsePalFromImage"; - this.chkUsePalFromImage.Size = new System.Drawing.Size(134, 17); - this.chkUsePalFromImage.TabIndex = 5; - this.chkUsePalFromImage.Text = "Use palette from image"; - this.chkUsePalFromImage.UseVisualStyleBackColor = true; - this.chkUsePalFromImage.CheckedChanged += new System.EventHandler(this.chkUsePalFromImage_CheckedChanged); - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 75); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(39, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Image:"; - // - // imgImage - // - this.imgImage.BackColor = System.Drawing.Color.Black; - this.imgImage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.imgImage.Location = new System.Drawing.Point(15, 120); - this.imgImage.Name = "imgImage"; - this.imgImage.Size = new System.Drawing.Size(299, 219); - this.imgImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.imgImage.TabIndex = 7; - this.imgImage.TabStop = false; - // - // btnImgBrowse - // - this.btnImgBrowse.Location = new System.Drawing.Point(288, 91); - this.btnImgBrowse.Name = "btnImgBrowse"; - this.btnImgBrowse.Size = new System.Drawing.Size(26, 23); - this.btnImgBrowse.TabIndex = 9; - this.btnImgBrowse.Text = "..."; - this.btnImgBrowse.UseVisualStyleBackColor = true; - this.btnImgBrowse.Click += new System.EventHandler(this.btnImgBrowse_Click); - // - // txtImage - // - this.txtImage.Location = new System.Drawing.Point(15, 91); - this.txtImage.Name = "txtImage"; - this.txtImage.ReadOnly = true; - this.txtImage.Size = new System.Drawing.Size(267, 20); - this.txtImage.TabIndex = 8; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(239, 345); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 10; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnOk - // - this.btnOk.Location = new System.Drawing.Point(158, 345); - this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(75, 23); - this.btnOk.TabIndex = 11; - this.btnOk.Text = "OK"; - this.btnOk.UseVisualStyleBackColor = true; - this.btnOk.Click += new System.EventHandler(this.btnOk_Click); - // - // frmNew - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(329, 378); - this.Controls.Add(this.btnOk); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnImgBrowse); - this.Controls.Add(this.txtImage); - this.Controls.Add(this.imgImage); - this.Controls.Add(this.label3); - this.Controls.Add(this.chkUsePalFromImage); - this.Controls.Add(this.btnPalBrowse); - this.Controls.Add(this.txtPal); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.numSize); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmNew"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "New Tileset"; - ((System.ComponentModel.ISupportInitialize)(this.numSize)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imgImage)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.NumericUpDown numSize; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox txtPal; - private System.Windows.Forms.Button btnPalBrowse; - private System.Windows.Forms.CheckBox chkUsePalFromImage; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.PictureBox imgImage; - private System.Windows.Forms.Button btnImgBrowse; - private System.Windows.Forms.TextBox txtImage; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOk; - } +namespace OpenRA.TilesetBuilder +{ + partial class FormNew + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.numSize = new System.Windows.Forms.NumericUpDown(); + this.label1 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.txtPal = new System.Windows.Forms.TextBox(); + this.btnPalBrowse = new System.Windows.Forms.Button(); + this.chkUsePalFromImage = new System.Windows.Forms.CheckBox(); + this.label3 = new System.Windows.Forms.Label(); + this.imgImage = new System.Windows.Forms.PictureBox(); + this.btnImgBrowse = new System.Windows.Forms.Button(); + this.txtImage = new System.Windows.Forms.TextBox(); + this.btnCancel = new System.Windows.Forms.Button(); + this.btnOk = new System.Windows.Forms.Button(); + ((System.ComponentModel.ISupportInitialize)(this.numSize)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgImage)).BeginInit(); + this.SuspendLayout(); + // + // numSize + // + this.numSize.Location = new System.Drawing.Point(66, 6); + this.numSize.Maximum = new decimal(new int[] { + 264, + 0, + 0, + 0}); + this.numSize.Minimum = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.numSize.Name = "numSize"; + this.numSize.Size = new System.Drawing.Size(49, 20); + this.numSize.TabIndex = 0; + this.numSize.Value = new decimal(new int[] { + 24, + 0, + 0, + 0}); + this.numSize.ValueChanged += new System.EventHandler(this.NumSizeValueChanged); + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(12, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(48, 13); + this.label1.TabIndex = 1; + this.label1.Text = "Tile size:"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Location = new System.Drawing.Point(12, 34); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(43, 13); + this.label2.TabIndex = 2; + this.label2.Text = "Palette:"; + // + // txtPal + // + this.txtPal.Location = new System.Drawing.Point(15, 52); + this.txtPal.Name = "txtPal"; + this.txtPal.ReadOnly = true; + this.txtPal.Size = new System.Drawing.Size(267, 20); + this.txtPal.TabIndex = 3; + // + // btnPalBrowse + // + this.btnPalBrowse.Enabled = false; + this.btnPalBrowse.Location = new System.Drawing.Point(288, 50); + this.btnPalBrowse.Name = "btnPalBrowse"; + this.btnPalBrowse.Size = new System.Drawing.Size(26, 23); + this.btnPalBrowse.TabIndex = 4; + this.btnPalBrowse.Text = "..."; + this.btnPalBrowse.UseVisualStyleBackColor = true; + this.btnPalBrowse.Click += new System.EventHandler(this.PaletteBrowseClick); + // + // chkUsePalFromImage + // + this.chkUsePalFromImage.AutoSize = true; + this.chkUsePalFromImage.Checked = true; + this.chkUsePalFromImage.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkUsePalFromImage.Location = new System.Drawing.Point(66, 34); + this.chkUsePalFromImage.Name = "chkUsePalFromImage"; + this.chkUsePalFromImage.Size = new System.Drawing.Size(134, 17); + this.chkUsePalFromImage.TabIndex = 5; + this.chkUsePalFromImage.Text = "Use palette from image"; + this.chkUsePalFromImage.UseVisualStyleBackColor = true; + this.chkUsePalFromImage.CheckedChanged += new System.EventHandler(this.UsePaletteFromImageCheckedChanged); + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(12, 75); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(39, 13); + this.label3.TabIndex = 6; + this.label3.Text = "Image:"; + // + // imgImage + // + this.imgImage.BackColor = System.Drawing.Color.Black; + this.imgImage.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; + this.imgImage.Location = new System.Drawing.Point(15, 120); + this.imgImage.Name = "imgImage"; + this.imgImage.Size = new System.Drawing.Size(299, 219); + this.imgImage.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; + this.imgImage.TabIndex = 7; + this.imgImage.TabStop = false; + // + // btnImgBrowse + // + this.btnImgBrowse.Location = new System.Drawing.Point(288, 91); + this.btnImgBrowse.Name = "btnImgBrowse"; + this.btnImgBrowse.Size = new System.Drawing.Size(26, 23); + this.btnImgBrowse.TabIndex = 9; + this.btnImgBrowse.Text = "..."; + this.btnImgBrowse.UseVisualStyleBackColor = true; + this.btnImgBrowse.Click += new System.EventHandler(this.ImageBrowseClick); + // + // txtImage + // + this.txtImage.Location = new System.Drawing.Point(15, 91); + this.txtImage.Name = "txtImage"; + this.txtImage.ReadOnly = true; + this.txtImage.Size = new System.Drawing.Size(267, 20); + this.txtImage.TabIndex = 8; + // + // btnCancel + // + this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; + this.btnCancel.Location = new System.Drawing.Point(239, 345); + this.btnCancel.Name = "btnCancel"; + this.btnCancel.Size = new System.Drawing.Size(75, 23); + this.btnCancel.TabIndex = 10; + this.btnCancel.Text = "Cancel"; + this.btnCancel.UseVisualStyleBackColor = true; + this.btnCancel.Click += new System.EventHandler(this.CancelButtonClick); + // + // btnOk + // + this.btnOk.Location = new System.Drawing.Point(158, 345); + this.btnOk.Name = "btnOk"; + this.btnOk.Size = new System.Drawing.Size(75, 23); + this.btnOk.TabIndex = 11; + this.btnOk.Text = "OK"; + this.btnOk.UseVisualStyleBackColor = true; + this.btnOk.Click += new System.EventHandler(this.OkButtonClick); + // + // frmNew + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.CancelButton = this.btnCancel; + this.ClientSize = new System.Drawing.Size(329, 378); + this.Controls.Add(this.btnOk); + this.Controls.Add(this.btnCancel); + this.Controls.Add(this.btnImgBrowse); + this.Controls.Add(this.txtImage); + this.Controls.Add(this.imgImage); + this.Controls.Add(this.label3); + this.Controls.Add(this.chkUsePalFromImage); + this.Controls.Add(this.btnPalBrowse); + this.Controls.Add(this.txtPal); + this.Controls.Add(this.label2); + this.Controls.Add(this.label1); + this.Controls.Add(this.numSize); + this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; + this.MaximizeBox = false; + this.MinimizeBox = false; + this.Name = "frmNew"; + this.ShowIcon = false; + this.ShowInTaskbar = false; + this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; + this.Text = "New Tileset"; + ((System.ComponentModel.ISupportInitialize)(this.numSize)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.imgImage)).EndInit(); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.NumericUpDown numSize; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox txtPal; + private System.Windows.Forms.Button btnPalBrowse; + private System.Windows.Forms.CheckBox chkUsePalFromImage; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.PictureBox imgImage; + private System.Windows.Forms.Button btnImgBrowse; + private System.Windows.Forms.TextBox txtImage; + private System.Windows.Forms.Button btnCancel; + private System.Windows.Forms.Button btnOk; + } } \ No newline at end of file diff --git a/OpenRA.TilesetBuilder/frmNew.cs b/OpenRA.TilesetBuilder/FormNew.cs similarity index 78% rename from OpenRA.TilesetBuilder/frmNew.cs rename to OpenRA.TilesetBuilder/FormNew.cs index 6f6444af83..c7e03f8a1d 100644 --- a/OpenRA.TilesetBuilder/frmNew.cs +++ b/OpenRA.TilesetBuilder/FormNew.cs @@ -8,24 +8,24 @@ using System.Windows.Forms; namespace OpenRA.TilesetBuilder { - public partial class frmNew : Form + public partial class FormNew : Form { public bool PaletteFromImage = true; public string PaletteFile = ""; public string ImageFile = ""; public int TileSize = 24; - public frmNew() + public FormNew() { InitializeComponent(); } - private void btnCancel_Click(object sender, EventArgs e) + private void CancelButtonClick(object sender, EventArgs e) { Close(); } - private void btnOk_Click(object sender, EventArgs e) + private void OkButtonClick(object sender, EventArgs e) { if (!PaletteFromImage) { @@ -34,6 +34,7 @@ namespace OpenRA.TilesetBuilder MessageBox.Show("No palette specified", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } + if (ImageFile.Length < 5) { MessageBox.Show("No image selected", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -45,7 +46,7 @@ namespace OpenRA.TilesetBuilder } } - private void chkUsePalFromImage_CheckedChanged(object sender, EventArgs e) + private void UsePaletteFromImageCheckedChanged(object sender, EventArgs e) { if (chkUsePalFromImage.Checked) { @@ -59,7 +60,7 @@ namespace OpenRA.TilesetBuilder } } - private void btnPalBrowse_Click(object sender, EventArgs e) + private void PaletteBrowseClick(object sender, EventArgs e) { using (var ofd = new OpenFileDialog { Filter = "C&C Palette (*.pal)|*.pal" }) if (DialogResult.OK == ofd.ShowDialog()) @@ -69,7 +70,7 @@ namespace OpenRA.TilesetBuilder } } - private void btnImgBrowse_Click(object sender, EventArgs e) + private void ImageBrowseClick(object sender, EventArgs e) { using (var ofd = new OpenFileDialog { Filter = "8bit Image (*.png,*.pcx,*.bmp)|*.png;*.pcx;*.bmp" }) if (DialogResult.OK == ofd.ShowDialog()) @@ -80,7 +81,7 @@ namespace OpenRA.TilesetBuilder } } - private void numSize_ValueChanged(object sender, EventArgs e) + private void NumSizeValueChanged(object sender, EventArgs e) { TileSize = (int)numSize.Value; } diff --git a/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj b/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj index a188900409..8315d2841b 100644 --- a/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj +++ b/OpenRA.TilesetBuilder/OpenRA.TilesetBuilder.csproj @@ -74,25 +74,9 @@ - - Form - - - frmBuilder.cs - - - Form - - - frmNew.cs - - - - frmBuilder.cs - - frmNew.cs + FormNew.cs ResXFileCodeGenerator @@ -120,6 +104,21 @@ Component + + Form + + + FormBuilder.cs + + + FormBuilder.cs + + + Form + + + FormNew.cs + diff --git a/OpenRA.TilesetBuilder/Program.cs b/OpenRA.TilesetBuilder/Program.cs index fd46cfc805..30b97b39b4 100644 --- a/OpenRA.TilesetBuilder/Program.cs +++ b/OpenRA.TilesetBuilder/Program.cs @@ -21,17 +21,17 @@ namespace OpenRA.TilesetBuilder { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); - //Console.WriteLine("{0} {1} {2} {3}",args[0], args[1], args[2], args[3]); + if (args.Length < 1) { - Application.Run(new frmBuilder("", "0", false, "Tilesets")); + Application.Run(new FormBuilder("", "0", false, "Tilesets")); } else { if (args.Contains("--export")) - Application.Run(new frmBuilder(args[0], args[1], true, args[3])); + Application.Run(new FormBuilder(args[0], args[1], true, args[3])); else - Application.Run(new frmBuilder(args[0], args[1], false, "Tilesets")); + Application.Run(new FormBuilder(args[0], args[1], false, "Tilesets")); } } } diff --git a/OpenRA.TilesetBuilder/Properties/AssemblyInfo.cs b/OpenRA.TilesetBuilder/Properties/AssemblyInfo.cs deleted file mode 100644 index 98243827bb..0000000000 --- a/OpenRA.TilesetBuilder/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("OpenRA.TilesetBuilder")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("OpenRA.TilesetBuilder")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("9efec6a6-74f7-4a7d-a509-aba2aae75bcc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/OpenRA.TilesetBuilder/Settings.StyleCop b/OpenRA.TilesetBuilder/Settings.StyleCop index 2e3436170c..1590d17baa 100644 --- a/OpenRA.TilesetBuilder/Settings.StyleCop +++ b/OpenRA.TilesetBuilder/Settings.StyleCop @@ -302,6 +302,16 @@ False + + + False + + + + + False + + diff --git a/OpenRA.TilesetBuilder/Surface.cs b/OpenRA.TilesetBuilder/Surface.cs index d4259ba1b2..00f06f38ec 100644 --- a/OpenRA.TilesetBuilder/Surface.cs +++ b/OpenRA.TilesetBuilder/Surface.cs @@ -9,31 +9,29 @@ namespace OpenRA.TilesetBuilder class Surface : Control { public Bitmap Image; - private ImageList ImagesListControl; public int[,] TerrainTypes; public List