Sectors / waypoints to improve creature AI moving.
Each sector occupies some volume in 3D (like a room).
Each waypoint indicates a point to pass when moving
from one sector to another (like a narrow door between two rooms).
Sectors create a graph, with waypoints indicating the graph
connections.
If the creature is in a different sector then it's target,
it walks through appropriate waypoints.
Placeholders named CasSector<index>[_<ignored>]
define sectors.
Placeholders named CasWaypoint[_<ignored>]
define waypoints.
Sectors of waypoints (and reverse property, waypoints
of sectors) are automatically calculated, by looking how waypoints
bounding boxes collide with sectors.
This is the only moment when waypoints bounding volumes are considered,
for all other purposes waypoints are simply 3D points.
You should place boxes that indicate waypoints
between two neighboring sectors, such that the bounding box
of the waypoint is partially inside both sectors.
Sectors boxes need not be strictly separated.
When 3D object, like player or a creature, is within two sectors,
it's arbitrarily assigned to any of the possible sectors.
However, for creature AI, this may cause some awkward movement
(when the creature goes to a waypoint, instead of directly to the target),
so try to set sectors that don't overlap (much).
You don't have to cover whole level with sectors.
If a creature (or it's target) is not inside any sector, then
the move direction is simply set to go to the target directly.