/*
 * pop_bg.h — отрисовка СТАТИЧЕСКОГО фона комнаты PoP композицией слоёв
 * (порт seg008.c draw_tile/wall_pattern, Шаг 3).  Рисует прямо в текущую
 * страницу (banked GFX_BANK_TRANSPARENT — в видео-ОЗУ + теневую копию,
 * 0xFF прозрачен), ОДИН раз при входе в комнату.
 *
 * Данные: getimage-спрайты в атласах pop_env0..4/pop_wall/pop_fore
 * (toolchain/pop_pack_bg.py), палитра pop_bg.pal.  Прямая адресация
 * id: env[id>>5] idx id&31, wall idx=id, fore idx=id — ноль remap-таблиц.
 */
#ifndef POP_BG_H
#define POP_BG_H

#include <stdint.h>

/* Загрузить 7 атласов фона.  Звать ДО initgraph (как poc.c — atlas_load
 * трогает W3; проверенный порядок).  Палитру pop_bg.pal грузит ПРИЛОЖЕНИЕ
 * после initgraph (gfx_pal_fload).  0 — OK, -1 — ошибка. */
int  pop_bg_load(void);

/* Освободить EMM-страницы атласов. */
void pop_bg_free(void);

/* Нарисовать комнату: fg[30]/bg[30] — foretable-коды/backtable-модификаторы
 * (по строкам, row*10+col).  lcol_fg/lcol_bg — 3 тайла правого столбца
 * ЛЕВОЙ соседней комнаты (для границы, напр. решётки ворот), или 0 —
 * тогда левая кромка = стена.  room_num — номер комнаты (зерно стен). */
void pop_room_draw(uint8_t room_num,
                   const uint8_t *fg, const uint8_t *bg,
                   const uint8_t *lcol_fg, const uint8_t *lcol_bg);

/* Перерисовать передний слой (fore) тайлов футпринта Kid ПОВЕРХ него —
 * звать ПОСЛЕ kid_draw.  obj_x — ЛОГИЧЕСКАЯ X кадра (до ×8/7), obj_y — низ
 * спрайта, w/h — размер кадра, dir — направление Kid (<0 влево).  Метрики
 * берутся из pop_kid (kid_fp_*).  См. redraw_at_char/set_char_collision. */
void pop_fore_over_kid(int obj_x, int obj_y, uint16_t w, uint16_t h,
                       int8_t dir, uint8_t frame);

#endif
