From 257ef9596384ffc039918f6157516a0a59f47cac Mon Sep 17 00:00:00 2001 From: darkademic <41052878+darkademic@users.noreply.github.com> Date: Tue, 1 Feb 2022 12:55:48 +0000 Subject: [PATCH] Suffix projectile shadow palettes with player name if IsPlayerPalette = true. --- OpenRA.Mods.Common/Projectiles/Bullet.cs | 21 ++++++++++--------- OpenRA.Mods.Common/Projectiles/GravityBomb.cs | 9 ++++++-- OpenRA.Mods.Common/Projectiles/Missile.cs | 9 ++++++-- 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/OpenRA.Mods.Common/Projectiles/Bullet.cs b/OpenRA.Mods.Common/Projectiles/Bullet.cs index ba7be41ef2..cd74d5b833 100644 --- a/OpenRA.Mods.Common/Projectiles/Bullet.cs +++ b/OpenRA.Mods.Common/Projectiles/Bullet.cs @@ -287,21 +287,22 @@ namespace OpenRA.Mods.Common.Projectiles var world = args.SourceActor.World; if (!world.FogObscures(pos)) { - if (info.Shadow) - { - var dat = world.Map.DistanceAboveTerrain(pos); - var shadowPos = pos - new WVec(0, 0, dat.Length); - foreach (var r in anim.Render(shadowPos, wr.Palette(info.Palette))) - yield return ((IModifyableRenderable)r) - .WithTint(shadowColor, ((IModifyableRenderable)r).TintModifiers | TintModifiers.ReplaceColor) - .WithAlpha(shadowAlpha); - } - var paletteName = info.Palette; if (paletteName != null && info.IsPlayerPalette) paletteName += args.SourceActor.Owner.InternalName; var palette = wr.Palette(paletteName); + + if (info.Shadow) + { + var dat = world.Map.DistanceAboveTerrain(pos); + var shadowPos = pos - new WVec(0, 0, dat.Length); + foreach (var r in anim.Render(shadowPos, palette)) + yield return ((IModifyableRenderable)r) + .WithTint(shadowColor, ((IModifyableRenderable)r).TintModifiers | TintModifiers.ReplaceColor) + .WithAlpha(shadowAlpha); + } + foreach (var r in anim.Render(pos, palette)) yield return r; } diff --git a/OpenRA.Mods.Common/Projectiles/GravityBomb.cs b/OpenRA.Mods.Common/Projectiles/GravityBomb.cs index 14026c49f8..cae3589d08 100644 --- a/OpenRA.Mods.Common/Projectiles/GravityBomb.cs +++ b/OpenRA.Mods.Common/Projectiles/GravityBomb.cs @@ -120,17 +120,22 @@ namespace OpenRA.Mods.Common.Projectiles var world = args.SourceActor.World; if (!world.FogObscures(pos)) { + var paletteName = info.Palette; + if (paletteName != null && info.IsPlayerPalette) + paletteName += args.SourceActor.Owner.InternalName; + + var palette = wr.Palette(paletteName); + if (info.Shadow) { var dat = world.Map.DistanceAboveTerrain(pos); var shadowPos = pos - new WVec(0, 0, dat.Length); - foreach (var r in anim.Render(shadowPos, wr.Palette(info.Palette))) + foreach (var r in anim.Render(shadowPos, palette)) yield return ((IModifyableRenderable)r) .WithTint(shadowColor, ((IModifyableRenderable)r).TintModifiers | TintModifiers.ReplaceColor) .WithAlpha(shadowAlpha); } - var palette = wr.Palette(info.Palette + (info.IsPlayerPalette ? args.SourceActor.Owner.InternalName : "")); foreach (var r in anim.Render(pos, palette)) yield return r; } diff --git a/OpenRA.Mods.Common/Projectiles/Missile.cs b/OpenRA.Mods.Common/Projectiles/Missile.cs index 5ab2a22ed9..4be6349d10 100644 --- a/OpenRA.Mods.Common/Projectiles/Missile.cs +++ b/OpenRA.Mods.Common/Projectiles/Missile.cs @@ -921,17 +921,22 @@ namespace OpenRA.Mods.Common.Projectiles var world = args.SourceActor.World; if (!world.FogObscures(pos)) { + var paletteName = info.Palette; + if (paletteName != null && info.IsPlayerPalette) + paletteName += args.SourceActor.Owner.InternalName; + + var palette = wr.Palette(paletteName); + if (info.Shadow) { var dat = world.Map.DistanceAboveTerrain(pos); var shadowPos = pos - new WVec(0, 0, dat.Length); - foreach (var r in anim.Render(shadowPos, wr.Palette(info.Palette))) + foreach (var r in anim.Render(shadowPos, palette)) yield return ((IModifyableRenderable)r) .WithTint(shadowColor, ((IModifyableRenderable)r).TintModifiers | TintModifiers.ReplaceColor) .WithAlpha(shadowAlpha); } - var palette = wr.Palette(info.Palette + (info.IsPlayerPalette ? args.SourceActor.Owner.InternalName : "")); foreach (var r in anim.Render(pos, palette)) yield return r; }