Browse Source

pstats: Fix save/load incompatibility with double-prec builds

rdb 3 years ago
parent
commit
39744ac7de
1 changed files with 14 additions and 4 deletions
  1. 14 4
      pandatool/src/pstatserver/pStatMonitor.cxx

+ 14 - 4
pandatool/src/pstatserver/pStatMonitor.cxx

@@ -199,7 +199,10 @@ open_default_graphs() {
   size_t num_colors = scan.get_uint32();
   size_t num_colors = scan.get_uint32();
   for (size_t i = 0; i < num_colors; ++i) {
   for (size_t i = 0; i < num_colors; ++i) {
     int key = scan.get_int32();
     int key = scan.get_int32();
-    _colors[key].read_datagram(scan);
+    LRGBColor &color = _colors[key];
+    color[0] = scan.get_float32();
+    color[1] = scan.get_float32();
+    color[2] = scan.get_float32();
   }
   }
 
 
   PStatGraph *graph;
   PStatGraph *graph;
@@ -297,7 +300,9 @@ save_default_graphs() const {
   dg.add_uint32((uint32_t)_colors.size());
   dg.add_uint32((uint32_t)_colors.size());
   for (const auto &item : _colors) {
   for (const auto &item : _colors) {
     dg.add_int32(item.first);
     dg.add_int32(item.first);
-    item.second.write_datagram(dg);
+    dg.add_float32(item.second[0]);
+    dg.add_float32(item.second[1]);
+    dg.add_float32(item.second[2]);
   }
   }
 
 
   dg.add_uint16(_timelines.size());
   dg.add_uint16(_timelines.size());
@@ -654,7 +659,9 @@ write_datagram(Datagram &dg) const {
   dg.add_uint32((uint32_t)_colors.size());
   dg.add_uint32((uint32_t)_colors.size());
   for (const auto &item : _colors) {
   for (const auto &item : _colors) {
     dg.add_int32(item.first);
     dg.add_int32(item.first);
-    item.second.write_datagram(dg);
+    dg.add_float32(item.second[0]);
+    dg.add_float32(item.second[1]);
+    dg.add_float32(item.second[2]);
   }
   }
 
 
   dg.add_uint16(_timelines.size());
   dg.add_uint16(_timelines.size());
@@ -704,7 +711,10 @@ read_datagram(DatagramIterator &scan) {
   size_t num_colors = scan.get_uint32();
   size_t num_colors = scan.get_uint32();
   for (size_t i = 0; i < num_colors; ++i) {
   for (size_t i = 0; i < num_colors; ++i) {
     int key = scan.get_int32();
     int key = scan.get_int32();
-    _colors[key].read_datagram(scan);
+    LRGBColor &color = _colors[key];
+    color[0] = scan.get_float32();
+    color[1] = scan.get_float32();
+    color[2] = scan.get_float32();
   }
   }
 
 
   int num_collectors = client_data->get_num_collectors();
   int num_collectors = client_data->get_num_collectors();