]> git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/items/items.qc
Use correct pickup item bboxes on clients
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / items / items.qc
index 064be587e78fc46087e2d4eabad563d84f25885c..7e888e037640285cc582daacbeb9e0de7117ee6e 100644 (file)
@@ -135,9 +135,9 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew)
 
     if(sf & ISF_LOCATION)
     {
-        this.origin = ReadVector();
-        setorigin(this, this.origin);
-        this.oldorigin = this.origin;
+        vector org = ReadVector();
+        setorigin(this, org);
+        this.oldorigin = org;
     }
 
     if(sf & ISF_ANGLES)
@@ -145,11 +145,6 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew)
         this.angles = ReadAngleVector();
     }
 
-    if(sf & ISF_SIZE)
-    {
-        setsize(this, '-16 -16 0', '16 16 48');
-    }
-
     if(sf & ISF_STATUS) // need to read/write status first so model can handle simple, fb etc.
     {
         this.ItemStatus = ReadByte();
@@ -229,9 +224,16 @@ NET_HANDLE(ENT_CLIENT_ITEM, bool isnew)
         precache_model(this.mdl);
         _setmodel(this, this.mdl);
 
-        setsize(this, '-16 -16 0', '16 16 48');
+        this.skin = ReadByte();
     }
 
+       if(sf & ISF_SIZE && sf & ISF_SIZE2) // Default
+               setsize(this, ITEM_D_MINS, ITEM_D_MAXS);
+       else if(sf & ISF_SIZE && !(sf & ISF_SIZE2)) // Small
+               setsize(this, ITEM_S_MINS, ITEM_S_MAXS);
+       else if(!(sf & ISF_SIZE) && sf & ISF_SIZE2) // Large
+               setsize(this, ITEM_D_MINS, ITEM_L_MAXS);
+
     if(sf & ISF_COLORMAP)
     {
         this.colormap = ReadShort();