From d80f581e989a8b7cfb81883a7c6dc7df01d94a0c Mon Sep 17 00:00:00 2001 From: Chris Forbes Date: Tue, 15 Feb 2011 08:09:31 +1300 Subject: [PATCH] fix div-by-zero with empty minefield --- OpenRA.Mods.RA/Activities/LayMines.cs | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/OpenRA.Mods.RA/Activities/LayMines.cs b/OpenRA.Mods.RA/Activities/LayMines.cs index 6f51445b85..461292b8e5 100644 --- a/OpenRA.Mods.RA/Activities/LayMines.cs +++ b/OpenRA.Mods.RA/Activities/LayMines.cs @@ -52,12 +52,13 @@ namespace OpenRA.Mods.RA.Activities return Util.SequenceActivities( new Wait(20), this ); // a little wait after placing each mine, for show } - for (var n = 0; n < 20; n++) // dont get stuck forever here - { - var p = ml.minefield.Random(self.World.SharedRandom); - if (ShouldLayMine(self, p)) - return Util.SequenceActivities( mobile.MoveTo(p, 0), this ); - } + if (ml.minefield.Length > 0) + for (var n = 0; n < 20; n++) // dont get stuck forever here + { + var p = ml.minefield.Random(self.World.SharedRandom); + if (ShouldLayMine(self, p)) + return Util.SequenceActivities( mobile.MoveTo(p, 0), this ); + } // todo: return somewhere likely to be safe (near fix) so we're not sitting out in the minefield.