FEnigma/assets/icons
Dominik Roth e352dff531 Map: render entity game icons instead of plain dots once zoomed in
Below ICON_MIN_CELL_PX (42px cell width) everything still draws as the
plain colored dot it always has, a game icon at that size would just
be an illegible smudge. Past that threshold, Nest/Target/Ally markers
switch to the game's own unit icon for their type, drawn as a Cairo
surface (raw Cairo draw_func, not GTK widgets, so this loads PNGs
directly via cairo.ImageSurface.create_from_png(), cached per path so
a repeat draw doesn't re-hit disk).

icons.py's target_icon_path(type, is_ally) is the TargetType -> icon
file mapping, best-effort guesses the same way the Shell descriptions
were (flagged for correction): most types map onto the game's own
Enemy_*/Friendly_* unit icons (is_ally picks which set, falling back
to Enemy_ if a given type has no Friendly_ counterpart), TANK reuses
the Armor_Mechanized artwork (no dedicated tank icon exists), and
STRIKE gets its own crosshair (assets/icons/misc/Crosshair.png, not a
unit icon at all, a planned impact point) rather than a unit icon.

An ambiguous candidate (hollow, dashed-ring marker) never switches to
the icon regardless of zoom, an icon there would look more confident
about an unconfirmed position than the dashed ring is supposed to
convey.

Verified with rendered screenshots at both zoom levels: plain dots
below the threshold, real icons above it (Tank/Infantry/MarineGarrison/
Nest all confirmed showing their correct icons), and the Strike
crosshair specifically.
2026-08-09 20:45:15 +02:00
..
misc Map: render entity game icons instead of plain dots once zoomed in 2026-08-09 20:45:15 +02:00
nest Add game-extracted UI icons: target markers, RP letters, shell set, nest, scout plane 2026-08-09 18:54:27 +02:00
reference_points Add game-extracted UI icons: target markers, RP letters, shell set, nest, scout plane 2026-08-09 18:54:27 +02:00
shells Shell icon picker: fix real sizing bugs, crop icon padding, inline grid for Add Strike 2026-08-09 19:28:41 +02:00
targets Add game-extracted UI icons: target markers, RP letters, shell set, nest, scout plane 2026-08-09 18:54:27 +02:00
README.md Add game-extracted UI icons: target markers, RP letters, shell set, nest, scout plane 2026-08-09 18:54:27 +02:00

Icons

Extracted from the game's own GameAssets/Assets/Texture2D (gitignored, not redistributed as a whole), for reuse in FeNigma's UI rather than redrawing equivalents from scratch. Two source filenames had typos in the game files themselves ("Frendly_", "Refrence_Point_"), corrected here on copy; everything else keeps its original name.

  • targets/enemy/, targets/friendly/ - one marker icon per game unit type, Enemy_*.png / Friendly_*.png (originally Frendly_*.png). Not a strict 1:1 with TargetType in models.py, the game has more unit types than this app currently tracks as targets, pick whichever fits closest per type.
  • reference_points/ - ReferencePoint_A.png .. _D.png (originally Refrence_Point_*.png), the four lettered RP markers.
  • shells/ - one icon per Shell enum member in shells.py, named to match exactly (AP.png, HE.png, ...), safe to look up by Shell.name directly. Source filenames for the ones without a game short-code baked in: MSTD <- "Mustard Gas_DemoBlocked.png", TEAR <- "Tear Gas.png", PRPG <- "Propaganda.png", PHGN <- "Phosgene.png", ATMC <- "Nuclear.png".
  • nest/IronNest.png - the Iron Nest / FDC unit icon (originally "IronNest Unit Icon.png").
  • misc/ScoutPlane.png - scout-flight icon (originally "Scout Plane B.png"), fits the app's scout flight planning feature.