removing a bunch of excessively low-level pixel -> cell conversions
This commit is contained in:
@@ -43,7 +43,7 @@ namespace OpenRA
|
|||||||
public static void DoImpact(WarheadInfo warhead, ProjectileArgs args)
|
public static void DoImpact(WarheadInfo warhead, ProjectileArgs args)
|
||||||
{
|
{
|
||||||
var world = args.firedBy.World;
|
var world = args.firedBy.World;
|
||||||
var targetTile = ((1f / Game.CellSize) * args.dest.ToFloat2()).ToInt2();
|
var targetTile = Util.CellContaining(args.dest);
|
||||||
|
|
||||||
if (!world.Map.IsInMap(targetTile))
|
if (!world.Map.IsInMap(targetTile))
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ namespace OpenRA.Effects
|
|||||||
{
|
{
|
||||||
var at = (float)t / TotalTime();
|
var at = (float)t / TotalTime();
|
||||||
var pos = float2.Lerp(Args.src, Args.dest, at);
|
var pos = float2.Lerp(Args.src, Args.dest, at);
|
||||||
var cell = ((1f/Game.CellSize) * pos).ToInt2();
|
var cell = Traits.Util.CellContaining(pos);
|
||||||
|
|
||||||
if (world.WorldActor.traits.Get<UnitInfluence>().GetUnitsAt(cell).Any(
|
if (world.WorldActor.traits.Get<UnitInfluence>().GetUnitsAt(cell).Any(
|
||||||
a => a.traits.Contains<IBlocksBullets>()))
|
a => a.traits.Contains<IBlocksBullets>()))
|
||||||
|
|||||||
@@ -113,7 +113,7 @@ namespace OpenRA.Effects
|
|||||||
|
|
||||||
if (!Info.High) // check for hitting a wall
|
if (!Info.High) // check for hitting a wall
|
||||||
{
|
{
|
||||||
var cell = ((1f / Game.CellSize) * Pos).ToInt2();
|
var cell = Traits.Util.CellContaining(Pos);
|
||||||
|
|
||||||
if (world.WorldActor.traits.Get<UnitInfluence>().GetUnitsAt(cell).Any(
|
if (world.WorldActor.traits.Get<UnitInfluence>().GetUnitsAt(cell).Any(
|
||||||
a => a.traits.Contains<IBlocksBullets>()))
|
a => a.traits.Contains<IBlocksBullets>()))
|
||||||
|
|||||||
@@ -137,7 +137,7 @@ namespace OpenRA.Traits
|
|||||||
var move = self.GetCurrentActivity() as Activities.Move;
|
var move = self.GetCurrentActivity() as Activities.Move;
|
||||||
if (move == null || move.path == null) return new float2[] { };
|
if (move == null || move.path == null) return new float2[] { };
|
||||||
|
|
||||||
return Enumerable.Reverse(move.path).Select( c => Game.CellSize * c + new float2(12,12) );
|
return Enumerable.Reverse(move.path).Select( c => Util.CenterOfCell(c) );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,19 +36,19 @@ namespace OpenRA.Traits
|
|||||||
{
|
{
|
||||||
public virtual int2? CreationLocation( Actor self, ActorInfo producee )
|
public virtual int2? CreationLocation( Actor self, ActorInfo producee )
|
||||||
{
|
{
|
||||||
var pos = (1 / 24f * self.CenterLocation).ToInt2();
|
var pos = Util.CellContaining(self.CenterLocation);
|
||||||
var pi = self.Info.Traits.Get<ProductionInfo>();
|
var pi = self.Info.Traits.Get<ProductionInfo>();
|
||||||
if (pi.ProductionOffset != null)
|
if (pi.ProductionOffset != null)
|
||||||
pos += new int2(pi.ProductionOffset[0], pi.ProductionOffset[1]);
|
pos += pi.ProductionOffset.AsInt2();
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
public virtual int2? ExitLocation(Actor self, ActorInfo producee)
|
public virtual int2? ExitLocation(Actor self, ActorInfo producee)
|
||||||
{
|
{
|
||||||
var pos = (1 / 24f * self.CenterLocation).ToInt2();
|
var pos = Util.CellContaining(self.CenterLocation);
|
||||||
var pi = self.Info.Traits.Get<ProductionInfo>();
|
var pi = self.Info.Traits.Get<ProductionInfo>();
|
||||||
if (pi.ExitOffset != null)
|
if (pi.ExitOffset != null)
|
||||||
pos += new int2(pi.ExitOffset[0], pi.ExitOffset[1]);
|
pos += pi.ExitOffset.AsInt2();
|
||||||
return pos;
|
return pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,10 +81,8 @@ namespace OpenRA.Traits
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (pi != null && pi.SpawnOffset != null)
|
if (pi != null && pi.SpawnOffset != null)
|
||||||
newUnit.CenterLocation = self.CenterLocation
|
newUnit.CenterLocation = self.CenterLocation + pi.SpawnOffset.AsInt2();
|
||||||
+ new float2(pi.SpawnOffset[0], pi.SpawnOffset[1]);
|
|
||||||
|
|
||||||
foreach (var t in self.traits.WithInterface<INotifyProduction>())
|
foreach (var t in self.traits.WithInterface<INotifyProduction>())
|
||||||
t.UnitProduced(self, newUnit);
|
t.UnitProduced(self, newUnit);
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ namespace OpenRA.Traits
|
|||||||
+ offset.AbsOffset();
|
+ offset.AbsOffset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static int2 AsInt2(this int[] xs) { return new int2(xs[0], xs[1]); }
|
||||||
public static float2 RelOffset(this int[] offset) { return new float2(offset[0], offset[1]); }
|
public static float2 RelOffset(this int[] offset) { return new float2(offset[0], offset[1]); }
|
||||||
public static float2 AbsOffset(this int[] offset) { return new float2(offset.ElementAtOrDefault(2), offset.ElementAtOrDefault(3)); }
|
public static float2 AbsOffset(this int[] offset) { return new float2(offset.ElementAtOrDefault(2), offset.ElementAtOrDefault(3)); }
|
||||||
|
|
||||||
@@ -171,5 +172,7 @@ namespace OpenRA.Traits
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static Color ArrayToColor(int[] x) { return Color.FromArgb(x[0], x[1], x[2]); }
|
public static Color ArrayToColor(int[] x) { return Color.FromArgb(x[0], x[1], x[2]); }
|
||||||
|
|
||||||
|
public static int2 CellContaining(float2 pos) { return (1 / 24f * pos).ToInt2(); }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
var aircraft = self.traits.Get<Aircraft>();
|
var aircraft = self.traits.Get<Aircraft>();
|
||||||
|
|
||||||
self.CenterLocation += speed * -float2.FromAngle((float)angle);
|
self.CenterLocation += speed * -float2.FromAngle((float)angle);
|
||||||
aircraft.Location = ((1 / 24f) * self.CenterLocation).ToInt2();
|
aircraft.Location = Util.CellContaining(self.CenterLocation);
|
||||||
|
|
||||||
unit.Altitude += Math.Sign(desiredAltitude - unit.Altitude);
|
unit.Altitude += Math.Sign(desiredAltitude - unit.Altitude);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
if (float2.WithinEpsilon(float2.Zero, dist, 2))
|
if (float2.WithinEpsilon(float2.Zero, dist, 2))
|
||||||
{
|
{
|
||||||
self.CenterLocation = Dest;
|
self.CenterLocation = Dest;
|
||||||
aircraft.Location = ((1 / 24f) * self.CenterLocation).ToInt2();
|
aircraft.Location = Util.CellContaining(self.CenterLocation);
|
||||||
return NextActivity;
|
return NextActivity;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
|
|
||||||
var rawSpeed = .2f * Util.GetEffectiveSpeed(self, UnitMovementType.Fly);
|
var rawSpeed = .2f * Util.GetEffectiveSpeed(self, UnitMovementType.Fly);
|
||||||
self.CenterLocation += (rawSpeed / dist.Length) * dist;
|
self.CenterLocation += (rawSpeed / dist.Length) * dist;
|
||||||
aircraft.Location = ((1 / 24f) * self.CenterLocation).ToInt2();
|
aircraft.Location = Util.CellContaining(self.CenterLocation);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
var angle = unit.Facing / 128f * Math.PI;
|
var angle = unit.Facing / 128f * Math.PI;
|
||||||
|
|
||||||
self.CenterLocation += speed * -float2.FromAngle((float)angle);
|
self.CenterLocation += speed * -float2.FromAngle((float)angle);
|
||||||
aircraft.Location = ((1 / 24f) * self.CenterLocation).ToInt2();
|
aircraft.Location = Util.CellContaining(self.CenterLocation);
|
||||||
|
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ namespace OpenRA.Mods.RA.Activities
|
|||||||
if (rearmTarget == null)
|
if (rearmTarget == null)
|
||||||
return new Wait(20);
|
return new Wait(20);
|
||||||
|
|
||||||
return new Move(((1 / 24f) * rearmTarget.CenterLocation).ToInt2(), rearmTarget)
|
return new Move(Util.CellContaining(rearmTarget.CenterLocation), rearmTarget)
|
||||||
{ NextActivity = new Rearm() { NextActivity = new Repair(rearmTarget) { NextActivity = this } } };
|
{ NextActivity = new Rearm() { NextActivity = new Repair(rearmTarget) { NextActivity = this } } };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@
|
|||||||
*/
|
*/
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using OpenRA.GameRules;
|
using OpenRA.GameRules;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ namespace OpenRA.Mods.RA.Effects
|
|||||||
world.AddFrameEndTask(w =>
|
world.AddFrameEndTask(w =>
|
||||||
{
|
{
|
||||||
w.Remove(this);
|
w.Remove(this);
|
||||||
int2 loc = ((1 / 24f) * location).ToInt2();
|
var loc = Traits.Util.CellContaining(location);
|
||||||
cargo.CancelActivity();
|
cargo.CancelActivity();
|
||||||
if (cargo.traits.Contains<Mobile>())
|
if (cargo.traits.Contains<Mobile>())
|
||||||
cargo.traits.Get<Mobile>().TeleportTo(cargo, loc);
|
cargo.traits.Get<Mobile>().TeleportTo(cargo, loc);
|
||||||
|
|||||||
@@ -127,7 +127,7 @@ namespace OpenRA.Mods.RA
|
|||||||
offsetTicks = Info.InstabilityTicks;
|
offsetTicks = Info.InstabilityTicks;
|
||||||
}
|
}
|
||||||
|
|
||||||
Location = ((1 / 24f) * self.CenterLocation).ToInt2();
|
Location = Util.CellContaining(self.CenterLocation);
|
||||||
}
|
}
|
||||||
|
|
||||||
const float Epsilon = .5f;
|
const float Epsilon = .5f;
|
||||||
|
|||||||
@@ -69,7 +69,7 @@ namespace OpenRA.Mods.RA
|
|||||||
|
|
||||||
self.World.AddFrameEndTask(w => w.Add(
|
self.World.AddFrameEndTask(w => w.Add(
|
||||||
new Parachute(self.Owner, rs.anim.Name,
|
new Parachute(self.Owner, rs.anim.Name,
|
||||||
Util.CenterOfCell((1 / 24f * self.CenterLocation).ToInt2()),
|
Util.CenterOfCell(Util.CellContaining(self.CenterLocation)),
|
||||||
self.traits.Get<Unit>().Altitude, a)));
|
self.traits.Get<Unit>().Altitude, a)));
|
||||||
|
|
||||||
Sound.Play("chute1.aud", self.CenterLocation);
|
Sound.Play("chute1.aud", self.CenterLocation);
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.RA
|
|||||||
var rp = order.TargetActor.traits.GetOrDefault<RallyPoint>();
|
var rp = order.TargetActor.traits.GetOrDefault<RallyPoint>();
|
||||||
|
|
||||||
self.CancelActivity();
|
self.CancelActivity();
|
||||||
self.QueueActivity(new Move(((1 / 24f) * order.TargetActor.CenterLocation).ToInt2(), order.TargetActor));
|
self.QueueActivity(new Move(Util.CellContaining(order.TargetActor.CenterLocation), order.TargetActor));
|
||||||
self.QueueActivity(new Rearm());
|
self.QueueActivity(new Rearm());
|
||||||
self.QueueActivity(new Repair(order.TargetActor));
|
self.QueueActivity(new Repair(order.TargetActor));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user