 ////////////////////////////////////////////////////////////////////////////////
 //                                  3D Projection
 ////////////////////////////////////////////////////////////////////////////////
+
+static byte VXSCALE = 16;
 
 static float model_mat[9] = { 1.0, 0.0, 0.0,
                         0.0, 1.0, 0.0,

  GD.BitmapHandle(LIGHT_HANDLE);
 
  GD.ColorRGB((i == N_VERTICES - 2) ? 0xfe2b18 : 0x4fff82);
  GD.Vertex2f(projected[i].x - (16 * LIGHT_WIDTH / 2),
              projected[i].y - (16 * LIGHT_WIDTH / 2));
  GD.RestoreContext();
}


    float yy = x * model_mat[1] + y * model_mat[4] + z * model_mat[7];
    float zz = x * model_mat[2] + y * model_mat[5] + z * model_mat[8] + distance;
    float q = hw / (100 + zz);
    dst->x = VXSCALE * (hw       + xx * q);
    dst->y = VXSCALE * (GD.h / 2 + yy * q);
    dst->z = zz;
    dst++;
  }
