1. Architectural Role & Engine Purpose
The FNT (Covert Strike Localized Font) format provides internationalized typography, subpixel kerning tables, and anti-aliased font atlases in I.G.I. 2: Covert Strike.
Unlike IGI 1's basic 256-character ASCII bitmaps, IGI 2 expanded the font architecture to support Unicode multi-language localization, enabling native rendering of English, Russian, Polish, and Chinese text for global retail distributions.
2. Binary File Layout & Memory Map Diagram
An IGI 2 FNT file contains Unicode character range headers, kerning pairs, and a multi-channel alpha atlas:
3. Localized Subtitle Rendering Pipeline Diagram
During mission dialogue playback, the localization system converts UTF-8 strings into batched Direct3D 8 quads:
4. C++ Struct Definitions
#pragma pack(push, 1)
struct FntHeaderIgi2 {
char magic[4]; // "FNT2"
uint16_t version; // 2
uint16_t font_height; // Pixel height
uint16_t baseline; // Baseline offset
uint16_t reserved;
uint32_t glyph_count; // Total Unicode glyphs
uint32_t kerning_count; // Total kerning pairs
uint16_t atlas_width; // Atlas width
uint16_t atlas_height; // Atlas height
};
struct FntGlyphIgi2 {
uint32_t codepoint; // UTF-32 character code
uint16_t width; // Glyph width
uint16_t height; // Glyph height
int16_t advance; // Horizontal step
int16_t bearing_x; // Left bearing
int16_t bearing_y; // Top bearing
uint16_t reserved;
float u0, v0, u1, v1; // Floating-point atlas UV coordinates
};
static_assert(sizeof(FntHeaderIgi2) == 24, "FntHeaderIgi2 must be 24 bytes");
#pragma pack(pop)