/*
 * gfx_sprite_clip — включить/выключить клип спрайтов по экрану.
 * on=1 (дефолт) — clip-ядра; on=0 — noclip-ядра (приложение ГАРАНТИРУЕТ,
 * что спрайты целиком на экране; ~+19% на анимации — клип-кода в noclip
 * нет физически, см. _gfx_blit_sprite_noclip.c).
 *
 * Переключение — перенаправлением указателей _gfx_blit_fn/_gfx_heal_fn
 * (ОДИН раз здесь, не ветка в горячем цикле).  Флаг _gfx_sprite_clip
 * остаётся для gfx_get_sprite_clip().  Настоящая функция (не inline):
 * только этот модуль ссылается на noclip-ядра — программа без вызова
 * gfx_sprite_clip() их не линкует.
 */
#include "../_bgi.h"

void gfx_sprite_clip(uint8_t on)
{
    _gfx_sprite_clip = on;
    if (on) {
        _gfx_blit_fn = _gfx_blit_sprite;
        _gfx_heal_fn = _gfx_heal_sprite;
    } else {
        _gfx_blit_fn = _gfx_blit_sprite_noclip;
        _gfx_heal_fn = _gfx_heal_sprite_noclip;
    }
}
