/* * _pop_kdraw.h — ВНУТРЕННИЙ контракт слоя персонажей: pop_cdraw.c (банк 4) * ↔ pop_kdraw.c (тот же банк 4). * * ВАЖНО: объявления здесь НЕ помечены __banked, то есть вызовы идут прямым * `call` — это корректно РОВНО ПОКА оба модуля лежат в ОДНОЙ странице: * * --bank 4=pop_cdraw.c --bank 4=pop_kdraw.c * * Линкер этого НЕ проверяет: если один из них переедет в другой банк, * сборка пройдёт молча, а на устройстве получится прыжок в чужую страницу. * Меняешь раскладку банков в Makefile — проверь эту пару. * * Публичные (из резидента/других банков) входы того же модуля объявлены с * __banked в pop_kid.h — там pop_sword_load. */ #ifndef _POP_KDRAW_H #define _POP_KDRAW_H #include #include "pop_char.h" #include "pop_kid.h" /* Клинок в руке персонажа (add_sword_to_objtable). Возврат 1 — нарисован, * и в (*rx,*ry,*rw,*rh) лежит его прямоугольник для heal. Страницу W0 * оставляет замапленной: размаппит вызывающий. */ uint8_t pop_sword_draw(const pop_char_t *ch, const kframe *fr, int obj_x, int obj_y, int *rx, int *ry, uint16_t *rw, uint16_t *rh); /* Спрайт из атласов Кида по его id (полоса HP: деления 216/217). */ void pop_kid_img_blit(uint8_t image, int x, int y); #endif /* _POP_KDRAW_H */