/*
 * sprite_move_stop — остановить tween-перемещение: at_target = 0 —
 * замереть в текущих координатах (SPR_MOVE_DONE НЕ взводится — спрайт
 * цели не достиг); 1 — прыгнуть в цель и взвести SPR_MOVE_DONE.
 * Ничего не делает, если перемещение не шло.
 */
#include "../_bgi.h"
#include <sprite.h>

void sprite_move_stop(sprite_t *s, uint8_t at_target)
{
    if (!(s->an_flags & SPR_MOVE_ON))
        return;
    s->an_flags &= (uint8_t)~SPR_MOVE_ON;
    if (at_target) {
        sprite_move(s, s->mv_tx, s->mv_ty);
        s->an_flags |= SPR_MOVE_DONE;
    }
}
