Fix depth offsets for sprite with non-zero ZRamp.
Bibs and other effects that should be drawn at ground level can now simply define ZRamp: 1, Offset: <X>,<Y>,1, avoiding the need to account for the Y offset or internal sprite offsets.
This commit is contained in:
@@ -288,11 +288,18 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
};
|
||||
|
||||
var subSrc = GetSpriteSrc(modData, tileSet, sequence, animation, sub.Key, sd);
|
||||
var subSprites = cache[subSrc, subGetUsedFrames].Select(
|
||||
s => s != null ? new Sprite(s.Sheet,
|
||||
FlipRectangle(s.Bounds, subFlipX, subFlipY), ZRamp,
|
||||
new float3(subFlipX ? -s.Offset.X : s.Offset.X, subFlipY ? -s.Offset.Y : s.Offset.Y, s.Offset.Z) + subOffset + offset,
|
||||
s.Channel, blendMode) : null).ToList();
|
||||
var subSprites = cache[subSrc, subGetUsedFrames].Select(s =>
|
||||
{
|
||||
if (s == null)
|
||||
return null;
|
||||
|
||||
var bounds = FlipRectangle(s.Bounds, subFlipX, subFlipY);
|
||||
var dx = subOffset.X + offset.X + (subFlipX ? -s.Offset.X : s.Offset.X);
|
||||
var dy = subOffset.Y + offset.Y + (subFlipY ? -s.Offset.Y : s.Offset.Y);
|
||||
var dz = subOffset.Z + offset.Z + s.Offset.Z + ZRamp * dy;
|
||||
|
||||
return new Sprite(s.Sheet, bounds, ZRamp, new float3(dx, dy, dz), s.Channel, blendMode);
|
||||
}).ToList();
|
||||
|
||||
var frames = subFrames != null ? subFrames.Skip(subStart).Take(subLength).ToArray() : Exts.MakeArray(subLength, i => subStart + i);
|
||||
combined = combined.Concat(frames.Select(i => subSprites[i]));
|
||||
@@ -306,11 +313,18 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
// Apply offset to each sprite in the sequence
|
||||
// Different sequences may apply different offsets to the same frame
|
||||
var src = GetSpriteSrc(modData, tileSet, sequence, animation, info.Value, d);
|
||||
sprites = cache[src, getUsedFrames].Select(
|
||||
s => s != null ? new Sprite(s.Sheet,
|
||||
FlipRectangle(s.Bounds, flipX, flipY), ZRamp,
|
||||
new float3(flipX ? -s.Offset.X : s.Offset.X, flipY ? -s.Offset.Y : s.Offset.Y, s.Offset.Z) + offset,
|
||||
s.Channel, blendMode) : null).ToArray();
|
||||
sprites = cache[src, getUsedFrames].Select(s =>
|
||||
{
|
||||
if (s == null)
|
||||
return null;
|
||||
|
||||
var bounds = FlipRectangle(s.Bounds, flipX, flipY);
|
||||
var dx = offset.X + (flipX ? -s.Offset.X : s.Offset.X);
|
||||
var dy = offset.Y + (flipY ? -s.Offset.Y : s.Offset.Y);
|
||||
var dz = offset.Z + s.Offset.Z + ZRamp * dy;
|
||||
|
||||
return new Sprite(s.Sheet, bounds, ZRamp, new float3(dx, dy, dz), s.Channel, blendMode);
|
||||
}).ToArray();
|
||||
}
|
||||
|
||||
alpha = LoadField(d, "Alpha", (float[])null);
|
||||
|
||||
@@ -264,9 +264,6 @@ GAWEAP:
|
||||
WithIdleOverlay@TURBINES:
|
||||
RequiresCondition: !build-incomplete
|
||||
Sequence: idle-turbines
|
||||
WithIdleOverlay@BIB:
|
||||
RequiresCondition: !build-incomplete
|
||||
Sequence: bib
|
||||
WithMakeOverlay@MAKE-BRIGHT:
|
||||
Sequence: make-bright
|
||||
Palette: bright
|
||||
|
||||
@@ -231,9 +231,6 @@ NAWEAP:
|
||||
RequiresCondition: !build-incomplete && !empdisable
|
||||
Sequence: idle-lights-bright
|
||||
Palette: bright
|
||||
WithIdleOverlay@BIB:
|
||||
RequiresCondition: !build-incomplete
|
||||
Sequence: bib
|
||||
Power:
|
||||
Amount: -30
|
||||
ProvidesPrerequisite@buildingname:
|
||||
|
||||
@@ -20,12 +20,12 @@ apache:
|
||||
rotor: harpyrotor
|
||||
Start: 32
|
||||
Length: 31
|
||||
Offset: 0, 0, 16
|
||||
Offset: 0, 0, 32
|
||||
ZRamp: 1
|
||||
Tick: 25
|
||||
slow-rotor: harpyrotor
|
||||
Length: 31
|
||||
Offset: 0, 0, 16
|
||||
Offset: 0, 0, 32
|
||||
ZRamp: 1
|
||||
Tick: 50
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
UseTilesetExtension: true
|
||||
Start: 1
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 0.5
|
||||
Offset: 0, 0, 1
|
||||
|
||||
lobrdg_a:
|
||||
Inherits: ^bridge
|
||||
@@ -68,7 +68,7 @@ bridge1:
|
||||
# ShadowStart: 18
|
||||
UseTilesetExtension: true
|
||||
ZRamp: 1
|
||||
Offset: 0, -13, 3.5
|
||||
Offset: 0, -13, 49
|
||||
|
||||
bridge2:
|
||||
idle: bridge
|
||||
@@ -77,7 +77,7 @@ bridge2:
|
||||
# ShadowStart: 27
|
||||
UseTilesetExtension: true
|
||||
ZRamp: 1
|
||||
Offset: 0, -25, 3.5
|
||||
Offset: 0, -25, 49
|
||||
|
||||
railbrdg1:
|
||||
idle: railbrdg
|
||||
@@ -85,7 +85,7 @@ railbrdg1:
|
||||
# ShadowStart: 18
|
||||
UseTilesetExtension: true
|
||||
ZRamp: 1
|
||||
Offset: 0, -13, 3.5
|
||||
Offset: 0, -13, 49
|
||||
|
||||
railbrdg2:
|
||||
idle: railbrdg
|
||||
@@ -94,4 +94,4 @@ railbrdg2:
|
||||
# ShadowStart: 27
|
||||
UseTilesetExtension: true
|
||||
ZRamp: 1
|
||||
Offset: 0, -25, 3.5
|
||||
Offset: 0, -25, 49
|
||||
|
||||
@@ -72,19 +72,19 @@ mpspawn:
|
||||
idle:
|
||||
Length: *
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 24
|
||||
Offset: 0, 0, 1
|
||||
|
||||
waypoint:
|
||||
idle:
|
||||
Length: *
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 24
|
||||
Offset: 0, 0, 1
|
||||
|
||||
camera:
|
||||
idle:
|
||||
Length: *
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 24
|
||||
Offset: 0, 0, 1
|
||||
|
||||
clock:
|
||||
idle: gclock2
|
||||
@@ -144,32 +144,26 @@ explosion:
|
||||
IgnoreWorldTint: False
|
||||
ionbeam: ionbeam
|
||||
Offset: 0, -60, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
ionbeam2: ionbeam
|
||||
Offset: 0, -180, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
ionbeam3: ionbeam
|
||||
Offset: 0, -300, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
ionbeam4: ionbeam
|
||||
Offset: 0, -420, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
ionbeam5: ionbeam
|
||||
Offset: 0, -540, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
ionbeam6: ionbeam
|
||||
Offset: 0, -660, 60
|
||||
ZRamp: 1
|
||||
Tick: 100
|
||||
IgnoreWorldTint: False
|
||||
pulse_explosion: pulsefx2
|
||||
@@ -367,7 +361,6 @@ moveflsh:
|
||||
Length: *
|
||||
Tick: 30
|
||||
ZOffset: 2047
|
||||
Offset: 0, 0, 48
|
||||
ZRamp: 1
|
||||
AlphaFade: True
|
||||
|
||||
@@ -385,7 +378,7 @@ resources:
|
||||
UseTilesetExtension: true
|
||||
Length: 12
|
||||
ShadowStart: 12
|
||||
Offset: 0, -12, 1.5
|
||||
Offset: 0, -12, 1
|
||||
ZRamp: 1
|
||||
IgnoreWorldTint: true
|
||||
tib01: tib01
|
||||
@@ -411,8 +404,6 @@ resources:
|
||||
veins: veins
|
||||
Length: *
|
||||
ShadowStart: -1
|
||||
# TODO: Reduce z offset again after fixing #12229
|
||||
Offset: 0, -12, 5.5
|
||||
IgnoreWorldTint: false
|
||||
|
||||
veins:
|
||||
@@ -679,22 +670,22 @@ tracks16:
|
||||
tuntop01:
|
||||
Inherits: ^tuntop
|
||||
idle:
|
||||
Offset: 24, -49, 36
|
||||
Offset: 24, -49, 48
|
||||
|
||||
tuntop02:
|
||||
Inherits: ^tuntop
|
||||
idle:
|
||||
Offset: -24, -49, 36
|
||||
Offset: -24, -49, 48
|
||||
|
||||
tuntop03:
|
||||
Inherits: ^tuntop
|
||||
idle:
|
||||
Offset: 24, -49, 24
|
||||
Offset: 24, -49, 49
|
||||
|
||||
tuntop04:
|
||||
Inherits: ^tuntop
|
||||
idle:
|
||||
Offset: -24, -49, 24
|
||||
Offset: -24, -49, 49
|
||||
|
||||
dig:
|
||||
idle:
|
||||
|
||||
@@ -206,15 +206,15 @@ gaweap:
|
||||
DepthSprite: isodepth.shp
|
||||
idle: gtweap_1
|
||||
ShadowStart: 2
|
||||
Offset: -12, -42, 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 0
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-idle: gtweap_1
|
||||
Start: 1
|
||||
ShadowStart: 3
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 0
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
idle-roof: gtweap_2
|
||||
@@ -270,26 +270,6 @@ gaweap:
|
||||
Offset: -12, -42, 44
|
||||
DepthSpriteOffset: -12, 0
|
||||
IgnoreWorldTint: True
|
||||
bib: gtweapbb
|
||||
Length: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 0
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-bib: gtweapbb
|
||||
Start: 1
|
||||
Length: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 0
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
dead-bib: gtweapbb
|
||||
Start: 2
|
||||
Length: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 0
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
Offset: 0, 0, 23
|
||||
@@ -443,7 +423,7 @@ nahand:
|
||||
|
||||
naweap:
|
||||
Defaults:
|
||||
Offset: -12, -42, 30
|
||||
Offset: -12, -42, 25
|
||||
DepthSpriteOffset: 24, 0
|
||||
UseTilesetCode: true
|
||||
DepthSprite: isodepth.shp
|
||||
@@ -506,23 +486,6 @@ naweap:
|
||||
ShadowStart: 22
|
||||
Offset: -12, -42, 43
|
||||
DepthSpriteOffset: -12, 0
|
||||
bib: ntweapbb
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-bib: ntweapbb
|
||||
Start: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
dead-bib: ntweapbb
|
||||
Start: 2
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
Offset: 0, 0, 31
|
||||
@@ -783,7 +746,7 @@ gawall:
|
||||
|
||||
gagate_a:
|
||||
Defaults:
|
||||
Offset: -24, -24, 24
|
||||
Offset: -24, -24, 25
|
||||
DepthSpriteOffset: -24, 0
|
||||
UseTilesetCode: true
|
||||
DepthSprite: isodepth.shp
|
||||
@@ -795,6 +758,7 @@ gagate_a:
|
||||
ShadowStart: 30
|
||||
Offset: -24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
damaged-idle:
|
||||
Start: 10
|
||||
@@ -805,6 +769,7 @@ gagate_a:
|
||||
ShadowStart: 40
|
||||
Offset: -24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
dead:
|
||||
Start: 20
|
||||
@@ -825,7 +790,7 @@ gagate_a:
|
||||
|
||||
gagate_b:
|
||||
Defaults:
|
||||
Offset: 24, -24, 24
|
||||
Offset: 24, -24, 25
|
||||
DepthSpriteOffset: 24, 0
|
||||
UseTilesetCode: true
|
||||
DepthSprite: isodepth.shp
|
||||
@@ -836,6 +801,7 @@ gagate_b:
|
||||
Start: 9
|
||||
ShadowStart: 30
|
||||
Offset: 24, -24, 1
|
||||
ZOffset: -1024
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-idle:
|
||||
@@ -847,6 +813,7 @@ gagate_b:
|
||||
ShadowStart: 40
|
||||
Offset: 24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
dead:
|
||||
Start: 20
|
||||
@@ -867,7 +834,7 @@ gagate_b:
|
||||
|
||||
nagate_a:
|
||||
Defaults:
|
||||
Offset: -24, -24, 24
|
||||
Offset: -24, -24, 25
|
||||
DepthSpriteOffset: -24, 0
|
||||
UseTilesetCode: true
|
||||
Tick: 80
|
||||
@@ -884,6 +851,7 @@ nagate_a:
|
||||
ShadowStart: 21
|
||||
Offset: -24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
damaged-idle:
|
||||
Start: 7
|
||||
@@ -894,6 +862,7 @@ nagate_a:
|
||||
ShadowStart: 28
|
||||
Offset: -24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
dead:
|
||||
Start: 14
|
||||
@@ -914,7 +883,7 @@ nagate_a:
|
||||
|
||||
nagate_b:
|
||||
Defaults:
|
||||
Offset: 24, -24, 24
|
||||
Offset: 24, -24, 25
|
||||
DepthSpriteOffset: 24, 0
|
||||
UseTilesetCode: true
|
||||
DepthSprite: isodepth.shp
|
||||
@@ -927,6 +896,7 @@ nagate_b:
|
||||
ShadowStart: 21
|
||||
Offset: 24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
damaged-idle:
|
||||
Start: 7
|
||||
@@ -937,6 +907,7 @@ nagate_b:
|
||||
ShadowStart: 28
|
||||
Offset: 24, -24, 1
|
||||
ZRamp: 1
|
||||
ZOffset: -1024
|
||||
-DepthSprite:
|
||||
dead:
|
||||
Start: 14
|
||||
@@ -1023,7 +994,7 @@ napost:
|
||||
|
||||
nafnce:
|
||||
Defaults:
|
||||
Offset: 0, -12, 13
|
||||
Offset: 0, -12, 19
|
||||
UseTilesetCode: true
|
||||
DepthSprite: isodepth.shp
|
||||
idle:
|
||||
@@ -1043,20 +1014,24 @@ nafnce:
|
||||
enabled-x:
|
||||
Frames: 3,3,1,1,3,3,1,1,2,2,0,0,2,2,0,0
|
||||
Length: 16
|
||||
DepthSpriteOffset: -12, 0
|
||||
enabled-x-bright:
|
||||
Frames: 3,3,1,1,3,3,1,1,2,2,0,0,2,2,0,0
|
||||
Length: 16
|
||||
DepthSpriteOffset: -12, 0
|
||||
IgnoreWorldTint: True
|
||||
enabled-y:
|
||||
Frames: 7,5,7,5,6,4,6,4,7,5,7,5,6,4,6,4
|
||||
Length: 16
|
||||
DepthSpriteOffset: 12, 0
|
||||
enabled-y-bright:
|
||||
Frames: 7,5,7,5,6,4,6,4,7,5,7,5,6,4,6,4
|
||||
Length: 16
|
||||
DepthSpriteOffset: 12, 0
|
||||
IgnoreWorldTint: True
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
Offset: 0, 0, 25
|
||||
Offset: 0, 0, 13
|
||||
UseTilesetCode: false
|
||||
ZOffset: 512
|
||||
BlendMode: Additive
|
||||
@@ -1492,7 +1467,7 @@ gahpad:
|
||||
|
||||
nahpad:
|
||||
Defaults:
|
||||
Offset: 0, -24, 0
|
||||
Offset: 0, -24, 1
|
||||
DepthSpriteOffset: -24, 0
|
||||
UseTilesetCode: true
|
||||
idle:
|
||||
@@ -1605,19 +1580,19 @@ proc.gdi:
|
||||
bib: ntrefnbb
|
||||
Length: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-bib: ntrefnbb
|
||||
Start: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
dead-bib: ntrefnbb
|
||||
Start: 2
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
emp-overlay: emp_fx01
|
||||
@@ -1669,19 +1644,19 @@ proc.nod:
|
||||
bib: ntrefnbb
|
||||
Length: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
damaged-bib: ntrefnbb
|
||||
Start: 1
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
dead-bib: ntrefnbb
|
||||
Start: 2
|
||||
ZOffset: -1024
|
||||
Offset: -12, -42, 5
|
||||
Offset: -12, -42, 1
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
emp-overlay: emp_fx01
|
||||
@@ -1739,19 +1714,19 @@ nawast:
|
||||
ZOffset: -1024
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
Offset: 0, -36, 3
|
||||
Offset: 0, -36, 1
|
||||
damaged-bib: ntwastbb
|
||||
Start: 1
|
||||
ZOffset: -1024
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
Offset: 0, -36, 3
|
||||
Offset: 0, -36, 1
|
||||
dead-bib: ntwastbb
|
||||
Start: 2
|
||||
ZOffset: -1024
|
||||
ZRamp: 1
|
||||
-DepthSprite:
|
||||
Offset: 0, -36, 3
|
||||
Offset: 0, -36, 1
|
||||
emp-overlay: emp_fx01
|
||||
Length: *
|
||||
Offset: 0, 0, 25
|
||||
|
||||
@@ -192,5 +192,5 @@ veinhole:
|
||||
idle:
|
||||
ShadowStart: 1
|
||||
UseTilesetExtension: true
|
||||
Offset: 0, -36
|
||||
Offset: 0, -36, 1
|
||||
ZRamp: 1
|
||||
|
||||
@@ -22,7 +22,7 @@ harv.gdi:
|
||||
harvest: harvestr
|
||||
Length: *
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 3
|
||||
Offset: 0, 0, 1
|
||||
icon: sidebar-gdi|harvicon
|
||||
|
||||
harv.nod:
|
||||
@@ -30,7 +30,7 @@ harv.nod:
|
||||
harvest: harvestr
|
||||
Length: *
|
||||
ZRamp: 1
|
||||
Offset: 0, 0, 3
|
||||
Offset: 0, 0, 1
|
||||
icon: sidebar-nod|harvicon
|
||||
|
||||
hvr:
|
||||
|
||||
Reference in New Issue
Block a user