-static void get_neighbor_scores(char * dirs, uint8_t len_dirs,
- uint8_t * score_map, struct yx_uint16 pos_yx,
- uint32_t pos_i, uint8_t max_score,
- uint8_t * neighbor_scores)
+static void get_neighbor_scores(uint16_t * score_map, uint16_t pos_i,
+ uint16_t max_score, uint16_t * neighbors);
+
+/* Iterate over scored cells in "score_map" of world.map's geometry. Compare
+ * each cell's score against the score of its immediate neighbors in N_DIRS
+ * directions. If any neighbor's score is at least two points lower than the
+ * current cell's score, re-set it to 1 point higher than its lowest-scored
+ * neighbor. Repeat this whole process until all cells have settled on their
+ * final score. Ignore cells whose score is greater than "max_score". Expect
+ * "max_score" to be the maximum score for cells, marking them as unreachable.
+ */
+static void dijkstra_map(uint16_t * score_map, uint16_t max_score);
+
+/* Return numpad char of direction ("8", "6", "2", "4" etc.) of enemy with the
+ * shortest path visible to "t_origin". If no enemy is around, return 0.
+ */
+static char get_dir_to_nearest_enemy(struct Thing * thing_origin);
+
+/* Return 1 if any animate thing not "t_origin" is in its FOV, else 0. */
+static uint8_t seeing_enemies(struct Thing * t_origin);
+
+/* Return slot ID of strongest consumable in "t_owner"'s inventory, else -1. */
+static int16_t get_inventory_slot_to_consume(struct Thing * t_owner);
+
+
+
+static void get_neighbor_scores(uint16_t * score_map, uint16_t pos_i,
+ uint16_t max_score, uint16_t * neighbors)