/* * stubs.h — интерфейс тестового окружения (см. stubs.c). * * Что тест может задавать: «нажатые» клавиши (tk_key_down) и модификаторы * тайлов комнаты (tk_modif). Что может проверять: журнал обращений * физики к соседним модулям (tk_log). */ #ifndef POP_TESTS_STUBS_H #define POP_TESTS_STUBS_H #include /* ---- клавиатура ------------------------------------------------------ */ #define TK_KEYS_MAX 6 extern uint16_t tk_keys[TK_KEYS_MAX]; void tk_keys_clear(void); void tk_key_down(uint16_t code); /* ---- комната --------------------------------------------------------- */ extern uint8_t tk_modif[30]; /* room_modif текущей комнаты */ extern uint8_t tk_start_room; /* что вернёт pop_level_start_room */ /* ---- журнал обращений ------------------------------------------------ */ #define TK_LOG_MAX 24 enum { TK_TROB = 1, /* a=room b=tilepos c=type */ TK_BUTTON, /* a=room b=tilepos c=type */ TK_REDRAW, /* a=tilepos b=kind c=pages */ TK_REDRAW_ABOVE, /* a=col b=kind c=pages */ TK_MOB_SPAWN /* a=row b=col */ }; typedef struct { uint8_t kind, a, b, c; } tk_log_e; typedef struct { uint8_t n, overflow; tk_log_e e[TK_LOG_MAX]; } tk_log_t; extern tk_log_t tk_log; void tk_log_clear(void); /* Сколько записей данного вида в журнале (0 = не было). */ uint8_t tk_log_count(uint8_t kind); #endif