Add 7 missing job icons from XIVAPI (#8) - #9
Merged
Merged
Conversation
class_images/ and roster_classes/ each covered only 17 of the 28 seeded classes, so 11 real jobs and class_id 0 had no icon at all. Adds Astrologian, Dancer, Dark Knight, Gunbreaker, Machinist, Red Mage and Samurai to both sets, sourced from XIVAPI v1 (/cj/1/<job>.png) — the same source the existing 17 came from. Matching was verified rather than assumed: a v1 icon box-downscaled to 24x24 differs from the shipped ffxiv_gladiator.png by a mean 11.1 per pixel, against 31.0 for Lanczos and 41+ for every raw game-icon range tested, so the pipeline is v1 plus a box filter. - class_images/: 24x24, transparent, matching the set - roster_classes/: 40x40, art at 38x38 on the set's gradient plate. The plate is horizontally uniform, so it is reconstructed per row from an existing icon's background columns and alpha; the 38x38 inset was fitted against ffxiv_gladiator/archer/bard rather than guessed. Reaper, Sage, Viper and Pictomancer are deliberately left out: XIVAPI v1 predates them and the v2 raw range has them in a visibly darker tone that would break the set's consistency. ffxiv_unknown has no upstream source. All five stay listed on #8 and in the new test's KNOWN_GAPS. ffxiv_icon_coverage_test asserts both directories cover every seeded imagename except those five, so a new gap can't appear unnoticed. Refs #8 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This was referenced Sep 24, 2026
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Refs #8 — 7 of the 12 gaps. Kept open for the 5 that need a decision or authoring.
class_images/androster_classes/each covered only 17 of the 28 seeded classes, so 11 real jobs andclass_id0 had no icon at all.Added
Astrologian, Dancer, Dark Knight, Gunbreaker, Machinist, Red Mage, Samurai — in both sets.
Source matching was verified, not assumed
The existing 17 came from XIVAPI v1 (
/cj/1/<job>.png) with a box downscale. Evidence: a v1 icon box-downscaled to 24x24 differs from the shippedffxiv_gladiator.pngby a mean 11.1 per pixel, against 31.0 for Lanczos and 41+ for every raw game-icon range probed on the v2 asset API. So new icons go through the same pipeline and sit indistinguishably next to the old ones.class_images/— 24x24, transparentroster_classes/— 40x40, art at 38x38 on the set's gradient plate. That plate is horizontally uniform (a pure vertical gradient with rounded corners), so it's reconstructed per row from an existing icon's background columns plus its alpha; the 38x38 inset was fitted againstffxiv_gladiator,ffxiv_archerandffxiv_bardrather than eyeballed.Deliberately not included
ui/icon/062000/0620<job_id>) has them, confirmed same artwork and job-id-indexed, but in a visibly darker, higher-contrast tone; a per-channel tone fit calibrated on Samurai failed to reconcile it. Shipping them would reproduce the exact inconsistency Race icons inconsistent for Au Ra, Hrothgar, Viera #4 complains about for the race icons.ffxiv_unknown— no upstream source in either API; needs authoring (tracked family-wide in avathar/bbguild#391).All five are listed in the new test's
KNOWN_GAPSwith the reasoning, and stay open on #8.Tests
ffxiv_icon_coverage_testparses the installer's seededimagenamevalues and asserts both directories cover all of them except those five, so a new gap can't appear unnoticed. A third test pins the seeded count at 28 so the parser can't silently match nothing.Full bbguildffxiv unit suite: 92 tests, 753 assertions, green.
🤖 Generated with Claude Code