I've slightly updated my viewer by adding "site" display functionality (you can select particular area in the second list at right side, current area marked as red, whole site as pink; displayed as X.Y.Z where X is zone, Y is stage and Z is location).
In short: xcom uses list of "random" areas (720 entries, file randomsites.dat: {shortint x,y,width,height}).
Alien activity divided upto 12 earth zones (described in
ufopaedia).
These 60 areas divided to 6 "stages" so every stage have only up to 10 locations. These stages used for UFO trajectory calculation.
For example, research mission. They've scripted 3 levels of progression.
<ct_SmallScout, 1, 0, 300>
<ct_MediumScout, 1, 2, 260>
<ct_LargeScout, 2, 4, 300>
Values are: CraftType, NumberOfUFOs, Trajectory_Type, Timeout.
So they're using trajectory_types 0,2 and 4.
0:
dw 5 ; UFO_Waypoint_count
dw 5, 0, 0, 1, 5, -1, -1, -1; UFO_Waypoint_Site
dw 4, 3, 1, 1, 2, 0, 0, 0; UFO_Waypoint_Altitude
dw 100, 74, 28, 47,100, 0, 0, 0; UFO_Waypoint_Speed
dw 3000 ; Ground_Timer
2:
dw 5 ; UFO_Waypoint_count
dw 5, 0, 0, 1, 5, -1, -1, -1; UFO_Waypoint_Site
dw 4, 3, 2, 1, 0, 0, 0, 0; UFO_Waypoint_Altitude
dw 100, 57, 26, 50,100, 0, 0, 0; UFO_Waypoint_Speed
dw 5000 ; Ground_Timer
4:
dw 8 ; UFO_Waypoint_count
dw 5, 0, 0, 2, 0, 0, 2, 5; UFO_Waypoint_Site
dw 4, 2, 2, 1, 0, 2, 1, 0; UFO_Waypoint_Altitude
dw 100, 67, 52, 40, 30, 20, 30,100; UFO_Waypoint_Speed
dw 7000 ; Ground_Timer
So obviously UFOs starting at site5 and "lost track" through site5.
site0 often covers whole land area, while site2 is located at number of really narrow areas over land, and site1 is something between site0 and site1 (you can watch them through selecting area in viewer).
When UFO is moving towards next waypoint, it has fixed altitude and speed. When it reaches next waypoint, it "calculates" where's it want to fly next (it peeks random location from next Zone->Stage area set). Altitude==0 means ground level, when it reaches this point, it landed, and turned into green cross, which will stay there for around Ground_Timer*5secs.
P.S.: Site3 is often a CITY layer, with area width==0 and height==0, and this location chunks used when starting terror missions.