Gateway.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System.IO;
  2. using System.Linq;
  3. namespace OpenVIII.Fields
  4. {
  5. /// <summary>
  6. /// Two Verts if you cross them it
  7. /// </summary>
  8. public class Gateway
  9. {
  10. #region Fields
  11. private WalkMesh.Vert Destination;
  12. private ushort FieldID;
  13. private uint[] unknown;
  14. private WalkMesh.Vert[] Verts;
  15. #endregion Fields
  16. #region Constructors
  17. public Gateway()
  18. {
  19. Verts = new WalkMesh.Vert[2];
  20. unknown = new uint[3];
  21. }
  22. #endregion Constructors
  23. #region Methods
  24. public static Gateway Read(BinaryReader br, int type)
  25. {
  26. var g = new Gateway();
  27. g.Verts[0] = new WalkMesh.Vert
  28. {
  29. x = br.ReadInt16(),
  30. z = br.ReadInt16(),
  31. y = br.ReadInt16(),
  32. };
  33. g.Verts[1] = new WalkMesh.Vert
  34. {
  35. x = br.ReadInt16(),
  36. z = br.ReadInt16(),
  37. y = br.ReadInt16(),
  38. };
  39. g.Destination = new WalkMesh.Vert
  40. {
  41. x = br.ReadInt16(),
  42. z = br.ReadInt16(),
  43. y = br.ReadInt16(),
  44. };
  45. g.FieldID = br.ReadUInt16();
  46. foreach (var i in Enumerable.Range(0, type == 0 ? 3 : 1))
  47. g.unknown[i] = br.ReadUInt32();
  48. return g;
  49. }
  50. #endregion Methods
  51. }
  52. }