Wrote a rather complex function to find empty spawn points on a map for a circular area, given a point that should spawn on the circle’s rim. It caches and tries to be fairly efficient given constraints. Did another simpler function for rectangles.
Completed a heavy refactor of quest spawns in open maps. Now quests that take up more than one contiguous tile can be dynamically positioned, and so the timing of their encounter can be controlled to a useful degree.
Some general cleanup of plan initialization and tile creation, preparing for a major renovation of open air quests.