/*
 * pop_char.h — состояние ПЕРСОНАЖА, общее для Кида, стража и активной
 * копии Char.  Порт char_type (types.h:302).
 *
 * Зачем отдельным заголовком: интерпретатор последовательностей в
 * оригинале один на всех (работает с Char, а вокруг стоят
 * loadkid/savekid и loadshad/saveshad, seg006:809).  Пока у Кида был свой
 * усечённый тип, а у стража свой, общий интерпретатор был невозможен.
 * Поля и их порядок — как в char_type, чтобы порт seg005/seg006 ложился
 * один в один.
 */
#ifndef POP_CHAR_H
#define POP_CHAR_H

#include <stdint.h>

typedef struct {
    uint8_t frame;
    uint8_t x, y;
    int8_t  direction;      /* -1 влево, 0 вправо */
    int8_t  curr_col, curr_row;
    uint8_t action;
    int8_t  fall_x, fall_y;
    uint8_t room;
    uint8_t repeat;
    uint8_t charid;         /* 0 = Kid, 2 = страж (см. CHARID_* в pop_guard.h) */
    uint8_t sword;
    int8_t  alive;          /* -1 = жив (как в оригинале), 0 = убит */
    uint16_t curr_seq;      /* адрес в seqtbl (база SEQTBL_BASE) */
} pop_char_t;

#endif
