]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/lib/net.qh
Reorganise item code so that VM-specific code is in its correct directories and not...
[xonotic/xonotic-data.pk3dir.git] / qcsrc / lib / net.qh
index 71950fb73cb67120d632a4d70ed0fd4bb60f276a..522b4ff2301f86b4e22f8c6d008e79a4f8103f83 100644 (file)
@@ -357,6 +357,15 @@ MACRO_END
                #define ReadFloat() ReadCoord()
                #define ReadVector() vec3(ReadFloat(), ReadFloat(), ReadFloat())
                #define ReadVector2D() vec2(ReadFloat(), ReadFloat())
+               #define ReadAngleVector() vec3(ReadAngle(), ReadAngle(), ReadAngle())
+               #define ReadAngleVector2D() vec2(ReadAngle(), ReadAngle())
+
+               int Readbits(int num)
+               {
+                       if (num > 16) return ReadInt24_t();
+                       if (num > 8) return ReadShort();
+                       return ReadByte();
+               }
 
                float ReadApproxPastTime()
                {
@@ -390,6 +399,15 @@ MACRO_END
                #define WriteFloat(to, f) WriteCoord(to, f)
                #define WriteVector(to, v) MACRO_BEGIN WriteFloat(to, v.x); WriteFloat(to, v.y); WriteFloat(to, v.z); MACRO_END
                #define WriteVector2D(to, v) MACRO_BEGIN WriteFloat(to, v.x); WriteFloat(to, v.y); MACRO_END
+               #define WriteAngleVector(to, v) MACRO_BEGIN WriteAngle(to, v.x); WriteAngle(to, v.y); WriteAngle(to, v.z); MACRO_END
+               #define WriteAngleVector2D(to, v) MACRO_BEGIN WriteAngle(to, v.x); WriteAngle(to, v.y); MACRO_END
+
+               void Writebits(float dst, float val, int num)
+               {
+                       if (num > 16) { WriteInt24_t(dst, val); return; }
+                       if (num > 8) { WriteShort(dst, val); return; }
+                       WriteByte(dst, val);
+               }
 
                // this will use the value:
                //   128