inline int32 operator()(Spline<int32>& s, int32 i) { return Movement::computeFallTime(start_elevation - s.getPoint(i+1).z, false) * 1000.f; }
void WriteCatmullRomPath(const Spline<int32>& spline, ByteBuffer& data) { uint32 count = spline.getPointCount() - 3; data << count; data.append<Vector3>(&spline.getPoint(2), count); }
void WriteUncompressedCyclicPath(Spline<int32> const& spline, ByteBuffer& data) { uint32 count = spline.getPointCount() - 3; data << spline.getPoint(1); // fake point, client will erase it from the spline after first cycle done data.append<Vector3>(&spline.getPoint(1), count); }
void WriteUncompressedPath(Spline<int32> const& spline, ByteBuffer& data) { for (int i = 1; i < spline.getPointCount() - 1; i++) data << spline.getPoint(i).y << spline.getPoint(i).x << spline.getPoint(i).z; }
void WriteUncompressedPath(Spline<int32> const& spline, ByteBuffer& data) { uint32 count = spline.getPointCount() - 3; data.append<Vector3>(&spline.getPoint(2), count); }