From 8118e022cbca849ec3788acb9903050fda7cb4cb Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Mon, 10 May 2010 18:27:01 +1200 Subject: [PATCH] don't allow stacking of mapactors --- OpenRA.Editor/Form1.cs | 2 +- OpenRA.Editor/Surface.cs | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/OpenRA.Editor/Form1.cs b/OpenRA.Editor/Form1.cs index 96c6265bcb..9c6cdf6d3f 100644 --- a/OpenRA.Editor/Form1.cs +++ b/OpenRA.Editor/Form1.cs @@ -18,7 +18,7 @@ namespace OpenRA.Editor AppDomain.CurrentDomain.AssemblyResolve += FileSystem.ResolveAssembly; LocateGameRoot(); - LoadMap("ra", "mjolnir"); + LoadMap("cnc", "scm02ea"); } void LoadMap(string mod, string mapname) diff --git a/OpenRA.Editor/Surface.cs b/OpenRA.Editor/Surface.cs index fff9dd20ce..02953aaa88 100644 --- a/OpenRA.Editor/Surface.cs +++ b/OpenRA.Editor/Surface.cs @@ -101,8 +101,23 @@ namespace OpenRA.Editor } } + int id; + string NextActorName() + { + for (; ; ) + { + var possible = "Actor{0}".F(id++); + if (!Map.Actors.ContainsKey(possible)) return possible; + } + } + void DrawWithActor() { + if (Map.Actors.Any(a => a.Value.Location == GetBrushLocation())) + return; + + var owner = "Neutral"; + Map.Actors[NextActorName()] = new ActorReference(Actor.Info.Name.ToLowerInvariant(), GetBrushLocation(), owner); } protected override void OnMouseDown(MouseEventArgs e)