

U32* GenOutfit(G_Outfit *o, World *world, G_State *game)
{
    U32 *outfitChoices = M_ArenaPush(world->arena, U32, .count = 8);
    G_Outfit *outfit = o;

    D_AnimationInit(&outfit->state, 0, 1, 4, 1.0f / 6.0f);

    M_TempScope(0, 0)
    {
        for (U32 it = 0; it < G_OUTFIT_COMPONENT_COUNT; ++it)
        {
            U32 idx = Random_Next(&world->random) % __outfit_counts[it];

            // We just allow face, hair and hat to default to 0 meaning the player doesn't have one
            if (idx != 0 || it < 2 || it > 4)
            {
                outfit->front.e[it] = OUTFIT_IMG(front, idx);
                outfit->side.e[it] = OUTFIT_IMG(side, idx);

                if ((idx + 1) <= __outfit_counts[it])
                {
                    outfit->back.e[it] = OUTFIT_IMG(back, idx);
                }
            }
            outfitChoices[it] = idx;
        }
    }
    return outfitChoices;
}