/*
 * sprite_init — инициализировать спрайт: img + размер кадра из заголовка
 * getimage (uint16 w, uint16 h).  Спрайт невидим (flags = 0) и нигде не
 * нарисован (drawn[*].on = 0) — первый sprite_show + sprite_update его
 * выведет.  Для атласа после init перезадать s->w/s->h (размер кадра) и
 * s->sx/s->sy.  См. docs/sprite-api-design.md §9.1.
 */
#include "../_bgi.h"
#include <sprite.h>

void sprite_init(sprite_t *s, const void *img)
{
    const uint8_t *p = (const uint8_t *)img;

    s->img = img;
    s->x = 0;
    s->y = 0;
    s->sx = 0;
    s->sy = 0;
    /* Размер кадра ≤ 255 (см. sprite.h) → младший байт uint16-заголовка;
     * старший байт для спрайта-кадра всегда 0. */
    s->w = p[0];
    s->h = p[2];
    s->flags = 0;
    s->drawn[0].on = 0;
    s->drawn[1].on = 0;
}
