Add comments explaining the special meaning of a null Sprite in SmudgeLayer
This commit is contained in:
@@ -142,6 +142,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
if (Game.CosmeticRandom.Next(0, 100) <= Info.SmokePercentage)
|
if (Game.CosmeticRandom.Next(0, 100) <= Info.SmokePercentage)
|
||||||
world.AddFrameEndTask(w => w.Add(new SpriteEffect(world.Map.CenterOfCell(loc), w, Info.SmokeType, Info.SmokeSequence, Info.SmokePalette)));
|
world.AddFrameEndTask(w => w.Add(new SpriteEffect(world.Map.CenterOfCell(loc), w, Info.SmokeType, Info.SmokeSequence, Info.SmokePalette)));
|
||||||
|
|
||||||
|
// A null Sprite indicates a deleted smudge.
|
||||||
if ((!dirty.ContainsKey(loc) || dirty[loc].Sprite == null) && !tiles.ContainsKey(loc))
|
if ((!dirty.ContainsKey(loc) || dirty[loc].Sprite == null) && !tiles.ContainsKey(loc))
|
||||||
{
|
{
|
||||||
// No smudge; create a new one
|
// No smudge; create a new one
|
||||||
@@ -151,6 +152,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
// Existing smudge; make it deeper
|
// Existing smudge; make it deeper
|
||||||
|
// A null Sprite indicates a deleted smudge.
|
||||||
var tile = dirty.ContainsKey(loc) && dirty[loc].Sprite != null ? dirty[loc] : tiles[loc];
|
var tile = dirty.ContainsKey(loc) && dirty[loc].Sprite != null ? dirty[loc] : tiles[loc];
|
||||||
var maxDepth = smudges[tile.Type].Length;
|
var maxDepth = smudges[tile.Type].Length;
|
||||||
if (tile.Depth < maxDepth - 1)
|
if (tile.Depth < maxDepth - 1)
|
||||||
@@ -167,6 +169,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
var tile = dirty.ContainsKey(loc) ? dirty[loc] : new Smudge();
|
var tile = dirty.ContainsKey(loc) ? dirty[loc] : new Smudge();
|
||||||
|
|
||||||
|
// Setting Sprite to null to indicate a deleted smudge.
|
||||||
tile.Sprite = null;
|
tile.Sprite = null;
|
||||||
dirty[loc] = tile;
|
dirty[loc] = tile;
|
||||||
}
|
}
|
||||||
@@ -178,6 +181,7 @@ namespace OpenRA.Mods.Common.Traits
|
|||||||
{
|
{
|
||||||
if (!self.World.FogObscures(kv.Key))
|
if (!self.World.FogObscures(kv.Key))
|
||||||
{
|
{
|
||||||
|
// A null Sprite indicates a deleted smudge.
|
||||||
if (kv.Value.Sprite == null)
|
if (kv.Value.Sprite == null)
|
||||||
tiles.Remove(kv.Key);
|
tiles.Remove(kv.Key);
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user