]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/client/casings.qc
Merge remote-tracking branch 'origin/samual/serverlist'
[xonotic/xonotic-data.pk3dir.git] / qcsrc / client / casings.qc
index d4d1041c80b5b2bfb63cbf1208021b9cb3ad55af..2225c0f35260d6ac88320cc2027939d4ba5d528e 100644 (file)
@@ -11,7 +11,7 @@ void Casing_Draw()
        {
                self.move_angles_x = 0;
                self.move_angles_z = 0;
-               self.flags &~= FL_ONGROUND;
+               self.flags &= ~FL_ONGROUND;
        }
 
        Movetype_Physics_MatchTicrate(autocvar_cl_casings_ticrate, autocvar_cl_casings_sloppy);
@@ -57,7 +57,7 @@ void Casing_Touch()
                                                break;
                                }
 
-                               sound (self, CH_SHOTS, s, VOL_BASE, ATTN_LARGE);
+                               sound (self, CH_SHOTS, s, VOL_BASE, ATTEN_LARGE);
                        }
                }
        }
@@ -70,20 +70,21 @@ void Casing_Damage(float thisdmg, float hittype, vector org, vector thisforce)
        if(thisforce_z < 0)
                thisforce_z = 0;
        self.move_velocity = self.move_velocity + thisforce + '0 0 100';
-       self.move_flags &~= FL_ONGROUND;
+       self.move_flags &= ~FL_ONGROUND;
 }
 
 void Ent_Casing(float isNew)
 {
        entity casing;
 
-    casing = RubbleNew("casing");
+       casing = RubbleNew("casing");
        casing.state = ReadByte();
        casing.silent = (casing.state & 0x80);
        casing.state = (casing.state & 0x7F);
        casing.origin_x = ReadCoord();
        casing.origin_y = ReadCoord();
        casing.origin_z = ReadCoord();
+       setorigin(casing, casing.origin);
        casing.velocity = decompressShortVector(ReadShort());
        casing.angles_x = ReadByte() * 360 / 256;
        casing.angles_y = ReadByte() * 360 / 256;
@@ -115,11 +116,16 @@ void Ent_Casing(float isNew)
                }
 
                setsize(casing, '0 0 -1', '0 0 -1');
-       }
-    else
-        Casing_Delete();
 
-       RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete);
+               RubbleLimit("casing", autocvar_cl_casings_maxcount, Casing_Delete);
+       }
+       else
+       {
+               entity oldself = self;
+               self = casing;
+               Casing_Delete(); // yes, this IS stupid, but I don't need to duplicate all the read* stuff then
+               self = oldself;
+       }
 }
 
 void Casings_Precache()