-static char * eye_to_cell(struct yx_uint8 * yx_eye, struct yx_uint8 * yx_cell,
- uint8_t right);
-
-/* fill_shadow() helper, determining if map's top left cell starts a shadow. */
-static uint8_t is_top_left_shaded(uint16_t pos_a, uint16_t pos_b,
- int16_t a_y_on_left);
-
-/* Flag as HIDDEN all cells in "fov_map" that are enclosed by 1) the map's
- * borders or cells flagged LIMIT and 2) the shadow arms of cells flagged
- * SHADOW_LEFT and SHADOW_RIGHT extending from "yx_cell", as seen as left and
- * right as seen from "yx_eye". "pos_a" and "pos_b" store the terminal positions
- * of these arms in "fov_map" ("pos_a" for the left, "pos_b" for the right one).
- */
-static void fill_shadow(struct yx_uint8 * yx_eye, struct yx_uint8 * yx_cell,
- uint8_t * fov_map, uint16_t pos_a, uint16_t pos_b);
-
-/* Flag with "flag" cells of a path from "yx_start" to the end of the map or (if
- * closer) the view border circle of the cells flagged as LIMIT, in a direction
- * parallel to the one determined by walking a path from "yx_eye" to the cell
- * reachable by moving one step into "dir" from "yx_start". If "shift_right" is
- * set, choose among the possible paths the one whose starting cell is set most
- * to the right, else do the opposite.
- */
-static uint16_t shadow_arm(struct yx_uint8 * yx_eye, struct yx_uint8 * yx_start,
- uint8_t * fov_map, char dir, uint8_t flag,
- uint8_t shift_right);
-
-/* From "yx_start", draw shadow of what is invisible as seen from "yx_eye" into
- * "fov_map" by extending shadow arms from "yx_start" as shadow borders until
- * the edges of the map or, if smaller, the maximum viewing distance, flag these
- * shadow arms' cells as HIDE_LATER and the area enclosed by them as HIDDEN.
- * "dir_left" and "dir_right" are hex directions to move to from "yx_start" for
- * cells whose shortest straight path to "yx_eye" serve as the lines of sight
- * enclosing the shadow left and right (left and right as seen from "yx_eye").
- */
-static void shadow(struct yx_uint8 * yx_eye, struct yx_uint8 * yx_start,
- uint8_t * fov_map, char dir_left, char dir_right);