From e7fb32b09c9aaa8357ed8b01258bf66130a5ee9f Mon Sep 17 00:00:00 2001 From: reaperrr Date: Sun, 29 Apr 2018 17:39:04 +0200 Subject: [PATCH] Replace DomainIndex passability hack with Locomotor boolean --- OpenRA.Mods.Common/Traits/World/DomainIndex.cs | 3 +-- OpenRA.Mods.Common/Traits/World/JumpjetLocomotor.cs | 2 ++ OpenRA.Mods.Common/Traits/World/Locomotor.cs | 2 ++ OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs | 2 ++ 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/OpenRA.Mods.Common/Traits/World/DomainIndex.cs b/OpenRA.Mods.Common/Traits/World/DomainIndex.cs index 6cf3ace648..ed1d40c8d5 100644 --- a/OpenRA.Mods.Common/Traits/World/DomainIndex.cs +++ b/OpenRA.Mods.Common/Traits/World/DomainIndex.cs @@ -44,8 +44,7 @@ namespace OpenRA.Mods.Common.Traits if (p1.Layer != 0 || p2.Layer != 0) return true; - // HACK: Workaround until we can generalize movement classes - if (li is SubterraneanLocomotorInfo || li is JumpjetLocomotorInfo) + if (li.DisableDomainPassabilityCheck) return true; var movementClass = li.GetMovementClass(tileSet); diff --git a/OpenRA.Mods.Common/Traits/World/JumpjetLocomotor.cs b/OpenRA.Mods.Common/Traits/World/JumpjetLocomotor.cs index 4f1932737d..5fd6f5be1c 100644 --- a/OpenRA.Mods.Common/Traits/World/JumpjetLocomotor.cs +++ b/OpenRA.Mods.Common/Traits/World/JumpjetLocomotor.cs @@ -25,6 +25,8 @@ namespace OpenRA.Mods.Common.Traits [Desc("Can this actor transition on slopes?")] public readonly bool JumpjetTransitionOnRamps = true; + public override bool DisableDomainPassabilityCheck { get { return true; } } + public override object Create(ActorInitializer init) { return new JumpjetLocomotor(init.Self, this); } } diff --git a/OpenRA.Mods.Common/Traits/World/Locomotor.cs b/OpenRA.Mods.Common/Traits/World/Locomotor.cs index ebd7fcb27b..4ed9a626e5 100644 --- a/OpenRA.Mods.Common/Traits/World/Locomotor.cs +++ b/OpenRA.Mods.Common/Traits/World/Locomotor.cs @@ -287,6 +287,8 @@ namespace OpenRA.Mods.Common.Traits return true; } + public virtual bool DisableDomainPassabilityCheck { get { return false; } } + public virtual object Create(ActorInitializer init) { return new Locomotor(init.Self, this); } } diff --git a/OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs b/OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs index 5bd69f3faf..807e1cd60b 100644 --- a/OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs +++ b/OpenRA.Mods.Common/Traits/World/SubterraneanLocomotor.cs @@ -29,6 +29,8 @@ namespace OpenRA.Mods.Common.Traits [Desc("Depth at which the subterranian condition is applied.")] public readonly WDist SubterraneanTransitionDepth = new WDist(-1024); + public override bool DisableDomainPassabilityCheck { get { return true; } } + public override object Create(ActorInitializer init) { return new SubterraneanLocomotor(init.Self, this); } }