fork download
  1. std::stringstream& operator<<(std::stringstream& stream, VehicleInfo &info)
  2. {
  3. stream.write(reinterpret_cast<char*>(&info.Pos.x), sizeof(float));
  4. stream.write(reinterpret_cast<char*>(&info.Pos.y), sizeof(float));
  5. stream.write(reinterpret_cast<char*>(&info.Pos.z), sizeof(float));
  6. return stream;
  7. }
  8.  
  9. std::stringstream& operator>>(std::stringstream& stream, VehicleInfo &info)
  10. {
  11. stream.read(reinterpret_cast<char*>(&info.Pos.x), sizeof(float));
  12. stream.read(reinterpret_cast<char*>(&info.Pos.y), sizeof(float));
  13. stream.read(reinterpret_cast<char*>(&info.Pos.z), sizeof(float));
  14. return stream;
  15. }
  16.  
  17. std::stringstream& operator<<(std::stringstream& stream, Recorder::FrameInfo &info)
  18. {
  19. stream << info.Vehicle;
  20. stream.write(reinterpret_cast<char*>(&info.Nitro), sizeof(int));
  21. stream.write(reinterpret_cast<char*>(&info.RPM), sizeof(float));
  22. stream.write(reinterpret_cast<char*>(&info.CurrentGear), sizeof(int));
  23. stream.write(reinterpret_cast<char*>(&info.TURBO), sizeof(int));
  24. for(int i = 0; i < 256; ++i)
  25. {
  26. stream.write(reinterpret_cast<char*>(&info.Keys[i].Pressed), sizeof(bool));
  27. stream.write(reinterpret_cast<char*>(&info.Keys[i].Released), sizeof(bool));
  28. stream.write(reinterpret_cast<char*>(&info.Keys[i].Down), sizeof(bool));
  29. stream.write(reinterpret_cast<char*>(&info.Keys[i].Up), sizeof(bool));
  30. }
  31. return stream;
  32. }
  33.  
  34. std::stringstream& operator>>(std::stringstream& stream, Recorder::FrameInfo &info)
  35. {
  36. stream >> info.Vehicle;
  37. stream.read(reinterpret_cast<char*>(&info.Nitro), sizeof(int));
  38. stream.read(reinterpret_cast<char*>(&info.RPM), sizeof(float));
  39. stream.read(reinterpret_cast<char*>(&info.CurrentGear), sizeof(int));
  40. stream.read(reinterpret_cast<char*>(&info.TURBO), sizeof(int));
  41. for(int i = 0; i < 256; ++i)
  42. {
  43. stream.read(reinterpret_cast<char*>(&info.Keys[i].Pressed), sizeof(bool));
  44. stream.read(reinterpret_cast<char*>(&info.Keys[i].Released), sizeof(bool));
  45. stream.read(reinterpret_cast<char*>(&info.Keys[i].Down), sizeof(bool));
  46. stream.read(reinterpret_cast<char*>(&info.Keys[i].Up), sizeof(bool));
  47. }
  48. return stream;
  49. }
Not running #stdin #stdout 0s 0KB
stdin
Standard input is empty
stdout
Standard output is empty