Space
How positions, distances and directions are carried, whichever system carries them, and what a map gives that nothing on the wire carries.
Units and axes
Positions and distances are in world units. The ground is the plane of x and z, and y is height. A field that carries a position on the ground carries x and z; one that carries a point in the world carries x, y and z. Where a message leaves height out, a receiving end takes it from the ground beneath.
A position travels as a 32-bit float on each axis unless its definition says
otherwise. Where the paths of Movement and MovementAtSpeed are compact,
they carry their points as integers measured from the map’s origin, and
Movement says how those points are worked out.
Directions
A direction is carried as a vector, not as an angle:
- A unit’s facing in the movement state
EnterSightcarries is a pair along the ground, x and z. UnitStopped,MissileState, a particle’s facing and a view’s direction inCameracarry x, y and z.FaceDirectioncarries x, y and z, and turns the unit to face along them.
FaceDirection turns the unit along x and z alone, and leaves it as it is
where both are 0.
In 1.0.0.140–3.1.0.0
FaceDirectionturns the unit at once where bit 0 of its flags is clear, and toward that direction at its own pace where it is set.
A champion carries no facing of its own when created.
A champion faces as its map’s table of spawn positions says (see
CreateChampion).
CreateNeutral carries a point to face rather than a direction: the monster
faces from where it stands toward that point, or along +z where the two are
the same.
A prop of scenery carries angles instead: MapProp gives its turn as pitch,
yaw and roll, in degrees, where yaw 0 faces +z and yaw 90 faces +x. For an
active prop, the same three fields are a direction vector.
Maps
VersionSync names the map to load by number. A client takes a map’s
buildings (see Objects and identifiers), spawn positions and path
origin (see Movement) from its own data (see
The client’s data), and can load only a map it has data for.
In 1.0.0.140
A client has data for maps 1 to 4, 6 and 8:
mapOrigin of its paths 1 6991, 7223 2 6991, 7223 3 7479, 7147 4 6710, 6696 6 6991, 7223 8 6947, 6609