From c5bfcacc699f18b7caa0bf996d60bac19f99b649 Mon Sep 17 00:00:00 2001 From: chrisf Date: Fri, 13 Jul 2007 15:14:07 +0000 Subject: [PATCH] git-svn-id: svn://svn.ijw.co.nz/svn/OpenRa@1203 993157c7-ee19-0410-b2c4-bb4e9862e678 --- OpenRa.Game/MainWindow.cs | 8 ++------ OpenRa.Game/Mcv.cs | 9 +++++++-- OpenRa.Game/OpenRa.Game.csproj | 1 + OpenRa.Game/Refinery.cs | 36 +++++++++++++++++++++++++++++++++ OpenRa.Game/UnitSheetBuilder.cs | 9 ++++++--- 5 files changed, 52 insertions(+), 11 deletions(-) create mode 100644 OpenRa.Game/Refinery.cs diff --git a/OpenRa.Game/MainWindow.cs b/OpenRa.Game/MainWindow.cs index 791583b63e..ed878dbe4b 100644 --- a/OpenRa.Game/MainWindow.cs +++ b/OpenRa.Game/MainWindow.cs @@ -52,16 +52,12 @@ namespace OpenRa.Game foreach (TreeReference treeReference in map.Trees) world.Add(new Tree(treeReference, treeCache, map)); - //UnitSheetBuilder.AddUnit("e4"); - //UnitSheetBuilder.AddUnit("mcv"); - //UnitSheetBuilder.AddUnit("1tnk"); - //UnitSheetBuilder.AddUnit("2tnk"); - UnitSheetBuilder.AddUnit("3tnk"); - world.Add(new Mcv(new PointF(24 * 5, 24 * 5), 3)); world.Add(new Mcv(new PointF(24 * 7, 24 * 5), 2)); world.Add(new Mcv(new PointF(24 * 9, 24 * 5), 1)); + world.Add(new Refinery(new PointF(24 * 5, 24 * 7), 1)); + sidebar = new Sidebar(OpenRa.TechTree.Race.None, renderer); } diff --git a/OpenRa.Game/Mcv.cs b/OpenRa.Game/Mcv.cs index 2a7ddc4e64..d6a5926c0b 100644 --- a/OpenRa.Game/Mcv.cs +++ b/OpenRa.Game/Mcv.cs @@ -3,15 +3,21 @@ using System.Collections.Generic; using System.Text; using OpenRa.FileFormats; using System.Drawing; +using BluntDirectX.Direct3D; namespace OpenRa.Game { class Mcv : Actor { + static Range? mcvRange = null; + public Mcv( PointF location, int palette ) { this.location = location; this.palette = palette; + + if (mcvRange == null) + mcvRange = UnitSheetBuilder.AddUnit("mcv"); } int GetFacing() @@ -27,8 +33,7 @@ namespace OpenRa.Game { return new SheetRectangle[] { - UnitSheetBuilder.McvSheet[GetFacing()], - UnitSheetBuilder.McvSheet[63 - GetFacing()] + UnitSheetBuilder.sprites[GetFacing() + mcvRange.Value.Start] }; } } diff --git a/OpenRa.Game/OpenRa.Game.csproj b/OpenRa.Game/OpenRa.Game.csproj index 75a8d94b80..a9fb1207b8 100644 --- a/OpenRa.Game/OpenRa.Game.csproj +++ b/OpenRa.Game/OpenRa.Game.csproj @@ -50,6 +50,7 @@ + diff --git a/OpenRa.Game/Refinery.cs b/OpenRa.Game/Refinery.cs new file mode 100644 index 0000000000..e043c7bd45 --- /dev/null +++ b/OpenRa.Game/Refinery.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Text; +using OpenRa.FileFormats; +using BluntDirectX.Direct3D; +using System.Drawing; + +namespace OpenRa.Game +{ + class Refinery : Actor + { + static Range? refineryRange = null; + + public Refinery(PointF location, int palette) + { + if (refineryRange == null) + refineryRange = UnitSheetBuilder.AddUnit("proc"); + + this.location = location; + this.palette = palette; + } + + int GetFrame() + { + return 1;// + } + + public override SheetRectangle[] CurrentImages + { + get + { + return new SheetRectangle[] { UnitSheetBuilder.sprites[refineryRange.Value.Start + GetFrame()] }; + } + } + } +} diff --git a/OpenRa.Game/UnitSheetBuilder.cs b/OpenRa.Game/UnitSheetBuilder.cs index 1fa93f01df..a1211c463c 100644 --- a/OpenRa.Game/UnitSheetBuilder.cs +++ b/OpenRa.Game/UnitSheetBuilder.cs @@ -12,7 +12,7 @@ namespace OpenRa.Game static readonly Package unitsPackage = new Package( "../../../conquer.mix" ); static readonly Package otherUnitsPackage = new Package("../../../hires.mix"); - public static readonly List> McvSheet = new List>(); + public static readonly List> sprites = new List>(); static ShpReader Load(string filename) { @@ -23,11 +23,14 @@ namespace OpenRa.Game throw new NotImplementedException(); } - public static void AddUnit( string name ) + public static Range AddUnit( string name ) { + int low = sprites.Count; ShpReader reader = Load(name + ".shp"); foreach (ImageHeader h in reader) - McvSheet.Add(CoreSheetBuilder.Add(h.Image, reader.Size)); + sprites.Add(CoreSheetBuilder.Add(h.Image, reader.Size)); + + return new Range(low, sprites.Count - 1); } } }