Fix write and read S32 vectors
authorBlockMen <nmuelll@web.de>
Sat, 12 Apr 2014 15:39:51 +0000 (17:39 +0200)
committerBlockMen <nmuelll@web.de>
Sat, 12 Apr 2014 15:39:51 +0000 (17:39 +0200)
src/util/serialize.h

index 63713f7c460c599916408c580b4a25f4157ee60d..3f9925287578e315cf6e4bf61929699d7cbdac63 100644 (file)
@@ -166,14 +166,14 @@ inline v2s16 readV2S16(const u8 *data)
 inline void writeV2S32(u8 *data, v2s32 p)
 {
        writeS32(&data[0], p.X);
-       writeS32(&data[2], p.Y);
+       writeS32(&data[4], p.Y);
 }
 
 inline v2s32 readV2S32(const u8 *data)
 {
        v2s32 p;
        p.X = readS32(&data[0]);
-       p.Y = readS32(&data[2]);
+       p.Y = readS32(&data[4]);
        return p;
 }
 
@@ -346,6 +346,19 @@ inline v2s16 readV2S16(std::istream &is)
        return readV2S16((u8*)buf);
 }
 
+inline void writeV2S32(std::ostream &os, v2s32 p)
+{
+       char buf[8] = {0};
+       writeV2S32((u8*)buf, p);
+       os.write(buf, 8);
+}
+inline v2s32 readV2S32(std::istream &is)
+{
+       char buf[8] = {0};
+       is.read(buf, 8);
+       return readV2S32((u8*)buf);
+}
+
 inline void writeV3S16(std::ostream &os, v3s16 p)
 {
        char buf[6] = {0};