/* * 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 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