PICK A PIN's cat: the two spots it offers, what keeps a spot clear, the pick on the first frame of a visit, and the drawing with the screen's static parts.
More...
|
| static bool | meets (gfx_rect_t a, gfx_rect_t b) |
| | Whether a and b share a pixel.
|
| static gfx_rect_t | hull (gfx_rect_t a, gfx_rect_t b) |
| | The smallest box holding a and b; an empty one counts as nothing.
|
| static gfx_rect_t | board_and_keys (void) |
| | The board, every key and the traces from pad to key: the box holding the board and every key, which holds the traces too.
|
| static gfx_rect_t | pins_table (void) |
| | The PINS table as drawn: its heading and its rows, or the line that says none is bound; empty when OFF draws no table.
|
| static gfx_rect_t | use_table (void) |
| | The IN USE table as drawn: its heading to its last line, or to the line that says none, out to the panel's edge.
|
| static gfx_rect_t | list_and_shadow (void) |
| | The open list with the 4px shadow ui_choice_list() draws right of it and under it.
|
| static bool | clear (gfx_rect_t r) |
| | Whether a cat may cover r: inside the body above FOOT, and nothing the screen draws within UI_CAT_GAP of it.
|
|
void | pk_cat_reset (void) |
| | Forget the cat: none until the next visit.
|
|
void | pk_cat_enter (void) |
| | A visit begins: roll for the cat, picked on its first frame.
|
| void | pk_cat_render (gfx_canvas_t *c) |
| | Pick the cat on a visit's first frame and draw it while its box is clear; called last in a frame that draws the static parts.
|
| bool | picker_screen_cat (gfx_rect_t *box, int *pose) |
| | The cat the last frame drew (picker_cat.c): one pose, picked at random on a visit's first frame among the ones with a clear spot, bottom left or bottom right. It takes no touch.
|
PICK A PIN's cat: the two spots it offers, what keeps a spot clear, the pick on the first frame of a visit, and the drawing with the screen's static parts.
A spot is clear when its box, grown by UI_CAT_GAP, meets nothing the screen draws in the state it is in: the head, the PINS table to its last row, the IN USE table to its last line, the board with every key and the traces between them, the open list, or the panel shown for a board that cannot be drawn. The pose is picked once a visit, on its first frame, from the roll entering took; a row or a line that grows into the box later hides the cat until it shrinks back. A tap on the cat lands on nothing the screen hit-tests, so it does nothing.
SPDX-License-Identifier: MIT