feat(selection): port retail offscreen target indicator

This commit is contained in:
Erik 2026-07-18 07:41:12 +02:00
parent ea4f52ec51
commit ec1bb19609
9 changed files with 404 additions and 97 deletions

View file

@ -15,7 +15,7 @@ namespace AcDream.App.Tests.Rendering;
public sealed class RetailSelectionAssetTests
{
[Fact]
public void InstalledDat_ResolvesAllFourVividTargetCorners()
public void InstalledDat_ResolvesAllTwelveVividTargetImages()
{
string datDir = ResolveDatDir();
using var dats = new DatCollection(datDir, DatAccessType.Read);
@ -24,7 +24,7 @@ public sealed class RetailSelectionAssetTests
uint subMapDid = master.ClientEnumToID[0x10000009u];
var subMap = Assert.IsType<EnumIDMap>(dats.Get<EnumIDMap>(subMapDid));
for (uint index = 0; index < 4; index++)
for (uint index = 0; index < 12; index++)
{
uint enumValue = 1u + index;
uint did = RetailDataIdResolver.Resolve(dats, enumValue, 0x10000009u);
@ -35,7 +35,8 @@ public sealed class RetailSelectionAssetTests
$"enum 0x{enumValue:X8} resolved 0x{did:X8}");
Assert.NotNull(surface);
Assert.Equal(0x06000000u, did & 0xFF000000u);
Assert.Equal((12, 12), (surface.Width, surface.Height));
Assert.Equal(index < 4 ? (12, 12) : (24, 24),
(surface.Width, surface.Height));
Palette? palette = surface.DefaultPaletteId != 0
? dats.Get<Palette>(surface.DefaultPaletteId)
@ -51,7 +52,7 @@ public sealed class RetailSelectionAssetTests
coloredPixels++;
}
Assert.True(coloredPixels == 0,
$"corner {index + 1} has {coloredPixels} non-grayscale source pixels");
$"image {index + 1} has {coloredPixels} non-grayscale source pixels");
}
}