From 0251cb3e1ce8495f63a55d21e05a3cde82d170d9 Mon Sep 17 00:00:00 2001 From: Bob Date: Wed, 4 Nov 2009 20:28:04 +1300 Subject: [PATCH] Gems don't grow. --- OpenRa.FileFormats/Map.cs | 11 +--- OpenRa.Game/Game.cs | 2 +- OpenRa.Game/UiOverlay.cs | 116 +++++++++++++++++++------------------- 3 files changed, 61 insertions(+), 68 deletions(-) diff --git a/OpenRa.FileFormats/Map.cs b/OpenRa.FileFormats/Map.cs index 830cf5364e..6a66731639 100644 --- a/OpenRa.FileFormats/Map.cs +++ b/OpenRa.FileFormats/Map.cs @@ -151,12 +151,8 @@ namespace OpenRa.FileFormats { newOverlay[i,j] = 0xff; if (!HasOverlay(i, j) && GetOreDensity(i, j) > 0 && canSpreadIntoCell(new int2(i,j)) - && r.NextDouble() < oreRate ) - newOverlay[i, j] = (byte)r.Next(5,9); - - if (!HasOverlay(i, j) && GetGemDensity(i, j) > 0 && canSpreadIntoCell(new int2(i, j)) - && r.NextDouble() < gemRate ) - newOverlay[i, j] = (byte)r.Next(9, 13); + && r.NextDouble() < oreRate ) + newOverlay[i, j] = (byte)r.Next(5,9); } for (int j = 1; j < 127; j++) @@ -168,10 +164,7 @@ namespace OpenRa.FileFormats var newDensity = new byte[128, 128]; for (int j = 1; j < 127; j++) for (int i = 1; i < 127; i++) - { if (ContainsOre(i, j)) newDensity[i,j] = GetOreDensity(i, j); - if (ContainsGem(i, j)) newDensity[i,j] = GetGemDensity(i, j); - } for (int j = 1; j < 127; j++) for (int i = 1; i < 127; i++) diff --git a/OpenRa.Game/Game.cs b/OpenRa.Game/Game.cs index 7fa04d81a4..bebd3002bb 100644 --- a/OpenRa.Game/Game.cs +++ b/OpenRa.Game/Game.cs @@ -155,7 +155,7 @@ namespace OpenRa.Game if (--oreTicks == 0) { map.GrowOre(p => IsCellBuildable(p, UnitMovementType.Wheel), SharedRandom); - oreTicks = 20; + oreTicks = 1; } world.Tick(); UnitInfluence.Tick(); diff --git a/OpenRa.Game/UiOverlay.cs b/OpenRa.Game/UiOverlay.cs index ed48b17de2..569a25dd7d 100644 --- a/OpenRa.Game/UiOverlay.cs +++ b/OpenRa.Game/UiOverlay.cs @@ -1,54 +1,54 @@ -using System.Drawing; -using OpenRa.Game.Graphics; -using System; -using OpenRa.Game.GameRules; -using System.Linq; - -namespace OpenRa.Game -{ - class UiOverlay - { - SpriteRenderer spriteRenderer; - Sprite buildOk, buildBlocked, unitDebug; - +using System.Drawing; +using OpenRa.Game.Graphics; +using System; +using OpenRa.Game.GameRules; +using System.Linq; + +namespace OpenRa.Game +{ + class UiOverlay + { + SpriteRenderer spriteRenderer; + Sprite buildOk, buildBlocked, unitDebug; + public static bool ShowUnitDebug = false; - public static bool ShowBuildDebug = false; - - public UiOverlay(SpriteRenderer spriteRenderer) - { - this.spriteRenderer = spriteRenderer; - - buildOk = SynthesizeTile(0x80); - buildBlocked = SynthesizeTile(0xe6); - unitDebug = SynthesizeTile(0x7c); - } - - static Sprite SynthesizeTile(byte paletteIndex) - { - byte[] data = new byte[Game.CellSize * Game.CellSize]; - - for (int i = 0; i < Game.CellSize; i++) - for (int j = 0; j < Game.CellSize; j++) - data[i * Game.CellSize + j] = ((i + j) % 4 < 2) ? (byte)0 : paletteIndex; - - return SheetBuilder.Add( data, new Size(Game.CellSize,Game.CellSize) ); - } - - public void Draw() - { - if (ShowUnitDebug) - for (var j = 0; j < 128; j++) - for (var i = 0; i < 128; i++) - if (Game.UnitInfluence.GetUnitAt(new int2(i, j)) != null) + public static bool ShowBuildDebug = false; + + public UiOverlay(SpriteRenderer spriteRenderer) + { + this.spriteRenderer = spriteRenderer; + + buildOk = SynthesizeTile(0x80); + buildBlocked = SynthesizeTile(0xe6); + unitDebug = SynthesizeTile(0x7c); + } + + static Sprite SynthesizeTile(byte paletteIndex) + { + byte[] data = new byte[Game.CellSize * Game.CellSize]; + + for (int i = 0; i < Game.CellSize; i++) + for (int j = 0; j < Game.CellSize; j++) + data[i * Game.CellSize + j] = ((i + j) % 4 < 2) ? (byte)0 : paletteIndex; + + return SheetBuilder.Add( data, new Size(Game.CellSize,Game.CellSize) ); + } + + public void Draw() + { + if (ShowUnitDebug) + for (var j = 0; j < 128; j++) + for (var i = 0; i < 128; i++) + if (Game.UnitInfluence.GetUnitAt(new int2(i, j)) != null) spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), 0); var placeBuilding = Game.controller.orderGenerator as PlaceBuilding; if (placeBuilding == null) return; - var position = Game.controller.MousePosition.ToInt2(); - - var bi = (UnitInfo.BuildingInfo)Rules.UnitInfo[placeBuilding.Name]; - + var position = Game.controller.MousePosition.ToInt2(); + + var bi = (UnitInfo.BuildingInfo)Rules.UnitInfo[placeBuilding.Name]; + var maxDistance = bi.Adjacent + 2; /* real-ra is weird. this is 1 GAP. */ if (ShowBuildDebug) @@ -57,16 +57,16 @@ namespace OpenRa.Game if (Game.GetDistanceToBase(new int2(i, j), Game.LocalPlayer) < maxDistance) if (Game.IsCellBuildable(new int2(i, j), bi.WaterBound ? UnitMovementType.Float : UnitMovementType.Wheel)) spriteRenderer.DrawSprite(unitDebug, Game.CellSize * new float2(i, j), 0); - - var tooFarFromBase = !Footprint.Tiles(bi, position).Any( - t => Game.GetDistanceToBase(t, Game.LocalPlayer) < maxDistance); - - foreach( var t in Footprint.Tiles( bi, position ) ) - spriteRenderer.DrawSprite( !tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound - ? UnitMovementType.Float : UnitMovementType.Wheel ) - ? buildOk : buildBlocked, Game.CellSize * t, 0 ); - - spriteRenderer.Flush(); - } - } -} + + var tooFarFromBase = !Footprint.Tiles(bi, position).Any( + t => Game.GetDistanceToBase(t, Game.LocalPlayer) < maxDistance); + + foreach( var t in Footprint.Tiles( bi, position ) ) + spriteRenderer.DrawSprite( !tooFarFromBase && Game.IsCellBuildable( t, bi.WaterBound + ? UnitMovementType.Float : UnitMovementType.Wheel ) + ? buildOk : buildBlocked, Game.CellSize * t, 0 ); + + spriteRenderer.Flush(); + } + } +}