vector debug_shotorg; // if non-zero, overrides the shot origin of all weapons
-// the QC VM sucks
-#define BITXOR(v,b) ((v) + (b) - 2 * ((v) & (b)))
-#define BITXOR_ASSIGN(v,b) ((v) += ((b) - 2 * ((v) & (b))))
-
.float wasplayer;
float servertime, serverprevtime, serverframetime;
break;
}
if((contentshack = (forent.dphitcontentsmask && !(forent.dphitcontentsmask & DPCONTENTS_SOLID))))
- forent.dphitcontentsmask |= DPCONTENTS_SOLID;
+ BITSET_ASSIGN(forent.dphitcontentsmask, DPCONTENTS_SOLID);
// if starting in warpzone, first transform
wz = WarpZone_Find(org + mi, org + ma);
WarpZone_MakeAllOther();
:fail
if(contentshack)
- forent.dphitcontentsmask &~= DPCONTENTS_SOLID;
+ BITCLR_ASSIGN(forent.dphitcontentsmask, DPCONTENTS_SOLID);
trace_startsolid = sol;
v_forward = vf;
v_right = vr;
vector WarpZone_RefSys_TransformAngles(entity from, entity to, vector ang);
vector WarpZone_RefSys_TransformVAngles(entity from, entity to, vector ang);
entity WarpZone_RefSys_SpawnSameRefSys(entity me);
+
+#ifndef BITCLR
+# define BITCLR(a,b) ((a) - ((a) & (b)))
+#endif
+#ifndef BITSET
+# define BITSET(a,b) ((a) | (b))
+#endif
+#ifndef BITXOR
+# define BITXOR(a,b) (((a) | (b)) - ((a) & (b)))
+#endif
+#ifndef BITCLR_ASSIGN
+# define BITCLR_ASSIGN(a,b) ((a) = (a) - ((a) & (b)))
+#endif
+#ifndef BITSET_ASSIGN
+# define BITSET_ASSIGN(a,b) ((a) |= (b))
+#endif
+#ifndef BITXOR_ASSIGN
+# define BITXOR_ASSIGN(a,b) ((a) = ((a) | (b)) - ((a) & (b)))
+#endif
player.fixangle = TRUE;
player.velocity = to_velocity;
- if(player.effects & EF_TELEPORT_BIT)
- player.effects &~= EF_TELEPORT_BIT;
- else
- player.effects |= EF_TELEPORT_BIT;
+ BITXOR_ASSIGN(player.effects, EF_TELEPORT_BIT);
if(player.classname == "player")
- player.flags &~= FL_ONGROUND;
+ BITCLR_ASSIGN(player.flags, FL_ONGROUND);
WarpZone_PostTeleportPlayer_Callback(player);
}
// we must send this flag for clientside to match properly too
f = 0;
if(self.warpzone_isboxy)
- f |= 1;
+ BITSET_ASSIGN(f, 1);
if(self.warpzone_fadestart)
- f |= 2;
+ BITSET_ASSIGN(f, 2);
if(self.origin != '0 0 0')
- f |= 4;
+ BITSET_ASSIGN(f, 4);
WriteByte(MSG_ENTITY, f);
// we need THESE to render the warpzone (and cull properly)...
WriteByte(MSG_ENTITY, ENT_CLIENT_WARPZONE_CAMERA);
if(self.warpzone_fadestart)
- f |= 2;
+ BITSET_ASSIGN(f, 2);
if(self.origin != '0 0 0')
- f |= 4;
+ BITSET_ASSIGN(f, 4);
WriteByte(MSG_ENTITY, f);
// we need THESE to render the warpzone (and cull properly)...
setsize(self, self.mins, self.maxs);
self.SendEntity = WarpZone_Send;
self.SendFlags = 0xFFFFFF;
- self.effects |= EF_NODEPTHTEST;
+ BITSET_ASSIGN(self.effects, EF_NODEPTHTEST);
self.warpzone_next = warpzone_first;
warpzone_first = self;
}