
#if !defined(LD_GAME_OUTFIT_H)
#define LD_GAME_OUTFIT_H

#define G_OUTFIT_COMPONENT_COUNT 8

global_var Str8 __outfit_names[] = {
    Sl("npc_%s_base_%d"),
    Sl("npc_%s_eyes_%d"),
    Sl("npc_%s_face_%d"),
    Sl("npc_%s_hair_%d"),
    Sl("npc_%s_hat_%d"),
    Sl("npc_%s_shirt_%d"),
    Sl("npc_%s_shoes_%d"),
    Sl("npc_%s_trousers_%d")};

global_var U32 __outfit_counts[] = {
    2, // base
    3, // eyes
    5, // face
    4, // hair
    3, // hat
    2, // shirt
    1, // shoes
    2  // trousers
};

global_var U32 __outfit_back_counts[] = {
    2, // base
    0, // eyes
    3, // face
    4, // hair
    3, // hat
    2, // shirt
    1, // shoes
    2  // trousers
};

StaticAssert(ArraySize(__outfit_names) == ArraySize(__outfit_counts));

#define OUTFIT_IMG(dir, n) D_ImageHandle(&game->draw, Sf(temp.arena, (const char *)__outfit_names[it].data, #dir, n))

function U32* GenOutfit(G_Outfit *o, World *world, G_State *game);

#endif // LD_GAME_OUTFIT_H