Skip to content

Commit

Permalink
Treat assets as pre-premultiplied.
Browse files Browse the repository at this point in the history
  • Loading branch information
pchote committed Oct 26, 2023
1 parent 675d8c5 commit ce297b5
Show file tree
Hide file tree
Showing 5 changed files with 23 additions and 3 deletions.
8 changes: 6 additions & 2 deletions OpenRA.Mods.Mobius/RemasterSpriteSequence.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,9 @@ public class RemasterSpriteSequence : ClassicTilesetSpecificSpriteSequence
[Desc("Adjusts the rendered size of the sprite")]
protected static readonly SpriteSequenceField<float?> RemasteredScale = new(nameof(RemasteredScale), null);

[Desc("Sprite data is already pre-multiplied by alpha channel.")]
protected static readonly SpriteSequenceField<bool> RemasteredPremultiplied = new(nameof(RemasteredPremultiplied), true);

static readonly int[] FirstFrame = { 0 };

bool hasRemasteredSprite = true;
Expand Down Expand Up @@ -184,6 +187,7 @@ public override void ReserveSprites(ModData modData, string tileset, SpriteCache
var remasteredOffset = LoadField(RemasteredOffset, data, defaults);
var remasteredMaskFilename = LoadField(RemasteredMaskFilename, data, defaults, out var remasteredMaskFilenameLocation);
var blendMode = LoadField(BlendMode, data, defaults);
var premultiplied = LoadField(RemasteredPremultiplied, data, defaults);

if (!string.IsNullOrEmpty(remasteredMaskFilename))
remasteredMaskToken = cache.ReserveFrames(remasteredMaskFilename, null, remasteredMaskFilenameLocation);
Expand All @@ -206,7 +210,7 @@ public override void ReserveSprites(ModData modData, string tileset, SpriteCache
if (remasteredMaskToken != null)
token = cache.ReserveFrames(f.Filename, f.LoadFrames, f.Location);
else
token = cache.ReserveSprites(f.Filename, f.LoadFrames, f.Location);
token = cache.ReserveSprites(f.Filename, f.LoadFrames, f.Location, hasRemasteredSprite && premultiplied);

spritesToLoad.Add(new SpriteReservation
{
Expand All @@ -229,7 +233,7 @@ public override void ReserveSprites(ModData modData, string tileset, SpriteCache
if (remasteredMaskToken != null)
token = cache.ReserveFrames(f.Filename, f.LoadFrames, f.Location);
else
token = cache.ReserveSprites(f.Filename, f.LoadFrames, f.Location);
token = cache.ReserveSprites(f.Filename, f.LoadFrames, f.Location, hasRemasteredSprite && premultiplied);

spritesToLoad.Add(new SpriteReservation
{
Expand Down
2 changes: 1 addition & 1 deletion mod.config
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
MOD_ID="cnc"

# The OpenRA engine version to use for this project.
ENGINE_VERSION="c76bd67384"
ENGINE_VERSION="9752d26472"

##############################################################################
# Packaging
Expand Down
4 changes: 4 additions & 0 deletions mods/cnc/sequences/decorations-overrides.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -726,11 +726,13 @@ v22.husk:

v23:
Defaults:
RemasteredPremultiplied: false
RemasteredFilenamePattern: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\V23.DES\V23.DES-{0:D4}.DDS
Count: 6

v23.husk:
Defaults:
RemasteredPremultiplied: false
RemasteredFilenamePattern: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\V23.DES\V23.DES-{0:D4}.DDS
Count: 7

Expand Down Expand Up @@ -866,11 +868,13 @@ v36.husk:

v37:
Defaults:
RemasteredPremultiplied: false
RemasteredFilenamePattern: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\V37.DES\V37.DES_{0:D4}.DDS
Count: 2

v37.husk:
Defaults:
RemasteredPremultiplied: false
RemasteredFilenamePattern: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\V37.DES\V37.DES_{0:D4}.DDS
Count: 3

Expand Down
1 change: 1 addition & 0 deletions mods/cnc/sequences/misc-overrides.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ moveflsh:
resources:
Defaults:
RemasteredLength: *
RemasteredPremultiplied: false
ti1:
RemasteredFilenamePattern: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\TEMPERATE\TI1\TI1.TEM-{0:D4}.DDS
Count: 12
Expand Down
11 changes: 11 additions & 0 deletions mods/cnc/sequences/structures-overrides.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ fact:
Count: 6
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB2.DES\BIB2.DES-{0:D4}.DDS
Count: 6
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -27,6 +28,7 @@ nuke:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -53,6 +55,7 @@ proc:
Count: 6
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB2.DES\BIB2.DES-{0:D4}.DDS
Count: 6
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand Down Expand Up @@ -82,6 +85,7 @@ hand:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -98,6 +102,7 @@ pyle:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -122,6 +127,7 @@ weap:
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB2.DES\BIB2.DES-{0:D4}.DDS
Count: 6
RemasteredOffset: 0,0
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand Down Expand Up @@ -150,6 +156,7 @@ afld:
Count: 8
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB1.DES\BIB1.DES-{0:D4}.DDS
Count: 8
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -166,6 +173,7 @@ hq:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -182,6 +190,7 @@ nuk2:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand Down Expand Up @@ -216,6 +225,7 @@ eye:
Count: 4
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB3.DES\BIB3.DES-{0:D4}.DDS
Count: 4
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand All @@ -237,6 +247,7 @@ tmpl:
DESERT: DATA\ART\TEXTURES\SRGB\TIBERIAN_DAWN\TERRAIN\DESERT\BIB2.DES\BIB2.DES-{0:D4}.DDS
Count: 6
RemasteredOffset: 0, 0
RemasteredPremultiplied: false
icon:
RemasteredFilename:

Expand Down

0 comments on commit ce297b5

Please sign in to comment.