  Vectored terrains: file format
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
File header:
  8 bytes:  (chars) signature 'VecTer/0'
  56 bytes: (passtr) friendly name
  32 bytes: required capability map (1 for each required object type)

Object chunk:
  2 bytes: (word) object type

For OT_TEX=0:
  2 bytes: (word) texture ID
  4 bytes: (long) dimension (textures are always square, power-of-2)
  n bytes: texture data; pixel format: x-11:a-5:r-5:g-6:b-5 color

For OT_BEZ=1:
  8 bytes: (passtr) texture name; for builtins '$'+w2hex(TexID); for simple
           colors '#'+b2hex(Alpha)+w2hex(Color)
  1 byte:  (bool) lock Xo, Yo when moving (editor only)
  2 bytes: (word) terrain type ($0020: stone, $0001: air, $0000: dirt)
  2 bytes: (word) number of vertices
  4 bytes: (long) texture offset coord Xo
  4 bytes: (long) texture offset coord Yo
  n bytes: vertex data

For OT_PRJ=2: (currently unsupported)
  8 bytes: (passtr) projectile name
  4 bytes: (float) X coord
  4 bytes: (float) Y coord
  4 bytes: (float) X start vel
  4 bytes: (float) Y start vel

For OT_END=$FFFF:
  nothing; this chunk marks end of file

Vertex data:
  4 bytes: (float) position X
  4 bytes: (float) position Y
  4 bytes: (float) left control position CmX
  4 bytes: (float) left control position CmY
  4 bytes: (float) right control position CpX
  4 bytes: (float) right control position CpY
  2 bytes: (word) vertex type (0: sharp, 1: Bezier, 2: smooth, 3: locked;
           editor only information)

Texture chunks will always come before chunks that use them, so you can load
the file as a stream.
