From b0b9f9963f6502e5c56dd389e6a34696d361e877 Mon Sep 17 00:00:00 2001 From: div0 Date: Sat, 31 Jan 2009 15:04:34 +0000 Subject: [PATCH] fix some uses of the flags field; should fix turret aiming bug git-svn-id: svn://svn.icculus.org/nexuiz/trunk@5708 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/cl_client.qc | 18 +++++++++--------- data/qcsrc/server/cl_physics.qc | 22 +++++++++++----------- data/qcsrc/server/cl_player.qc | 2 +- data/qcsrc/server/cl_weapons.qc | 2 +- data/qcsrc/server/cl_weaponsystem.qc | 2 +- data/qcsrc/server/g_damage.qc | 2 +- data/qcsrc/server/g_hook.qc | 2 +- data/qcsrc/server/sv_main.qc | 4 ++-- data/qcsrc/server/t_jumppads.qc | 2 +- data/qcsrc/server/t_teleporters.qc | 4 +--- 10 files changed, 29 insertions(+), 31 deletions(-) diff --git a/data/qcsrc/server/cl_client.qc b/data/qcsrc/server/cl_client.qc index 0d8a80ae3..44c33b5c5 100644 --- a/data/qcsrc/server/cl_client.qc +++ b/data/qcsrc/server/cl_client.qc @@ -1191,7 +1191,7 @@ void ClientConnect (void) self.classname = "player_joining"; - self.flags = self.flags | FL_CLIENT; + self.flags = FL_CLIENT; self.version_nagtime = time + 10 + random() * 10; if(player_count<0) @@ -1969,19 +1969,19 @@ void ObserverThink() if (self.flags & FL_JUMPRELEASED) { if (self.BUTTON_JUMP && !self.version_mismatch) { self.welcomemessage_time = 0; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_JUMPRELEASED; LeaveSpectatorMode(); return; } else if(self.BUTTON_ATCK && !self.version_mismatch) { self.welcomemessage_time = 0; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_JUMPRELEASED; if(SpectateNext() == 1) { self.classname = "spectator"; } } } else { if (!(self.BUTTON_ATCK || self.BUTTON_JUMP)) { - self.flags = self.flags | FL_JUMPRELEASED; + self.flags |= FL_JUMPRELEASED; } } if(self.BUTTON_ZOOM) @@ -1995,12 +1995,12 @@ void SpectatorThink() if (self.flags & FL_JUMPRELEASED) { if (self.BUTTON_JUMP && !self.version_mismatch) { self.welcomemessage_time = 0; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_JUMPRELEASED; LeaveSpectatorMode(); return; } else if(self.BUTTON_ATCK) { self.welcomemessage_time = 0; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_JUMPRELEASED; if(SpectateNext() == 1) { self.classname = "spectator"; } else { @@ -2009,7 +2009,7 @@ void SpectatorThink() } } else if (self.BUTTON_ATCK2) { self.welcomemessage_time = 0; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_JUMPRELEASED; self.classname = "observer"; PutClientInServer(); } else { @@ -2018,14 +2018,14 @@ void SpectatorThink() } } else { if (!(self.BUTTON_ATCK || self.BUTTON_ATCK2)) { - self.flags = self.flags | FL_JUMPRELEASED; + self.flags |= FL_JUMPRELEASED; } } if(self.BUTTON_ZOOM) self.wantswelcomemessage = 0; if(self.wantswelcomemessage) PrintWelcomeMessage(self); - self.flags = self.flags | FL_CLIENT | FL_NOTARGET; + self.flags |= FL_CLIENT | FL_NOTARGET; } .float touchexplode_time; diff --git a/data/qcsrc/server/cl_physics.qc b/data/qcsrc/server/cl_physics.qc index 3ec24e878..4c94c8115 100644 --- a/data/qcsrc/server/cl_physics.qc +++ b/data/qcsrc/server/cl_physics.qc @@ -79,8 +79,8 @@ void PlayerJump (void) self.velocity_z = self.velocity_z + mjumpheight; self.oldvelocity_z = self.velocity_z; - self.flags = self.flags - FL_ONGROUND; - self.flags = self.flags - FL_JUMPRELEASED; + self.flags &~= FL_ONGROUND; + self.flags &~= FL_JUMPRELEASED; if (self.crouch) player_setanim(self.anim_duckjump, FALSE, TRUE, TRUE); @@ -111,9 +111,9 @@ void CheckWaterJump() traceline (start, end, TRUE, self); if (trace_fraction == 1) { // open at eye level - self.flags = self.flags | FL_WATERJUMP; + self.flags |= FL_WATERJUMP; self.velocity_z = 225; - self.flags = self.flags - (self.flags & FL_JUMPRELEASED); + self.flags &~= FL_JUMPRELEASED; self.teleport_time = time + 2; // safety net return; } @@ -514,16 +514,16 @@ void SV_PlayerPhysics() { if(sv_doublejump) { - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; tracebox(self.origin + '0 0 1', self.mins, self.maxs, self.origin - '0 0 2', MOVE_NORMAL, self); if(trace_fraction < 1 && trace_plane_normal_z > 0.7) - self.flags = self.flags | FL_ONGROUND; + self.flags |= FL_ONGROUND; } if (self.BUTTON_JUMP) PlayerJump (); else - self.flags = self.flags | FL_JUMPRELEASED; + self.flags |= FL_JUMPRELEASED; if (self.waterlevel == 2) CheckWaterJump (); @@ -535,7 +535,7 @@ void SV_PlayerPhysics() self.velocity_y = self.movedir_y; if (time > self.teleport_time || self.waterlevel == 0) { - self.flags = self.flags - (self.flags & FL_WATERJUMP); + self.flags &~= FL_WATERJUMP; self.teleport_time = 0; } } @@ -546,7 +546,7 @@ void SV_PlayerPhysics() else if (self.movetype == MOVETYPE_NOCLIP || self.movetype == MOVETYPE_FLY) { // noclipping or flying - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; self.velocity = self.velocity * (1 - frametime * sv_friction); makevectors(self.v_angle); @@ -567,7 +567,7 @@ void SV_PlayerPhysics() else if (self.waterlevel >= 2) { // swimming - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; makevectors(self.v_angle); //wishvel = v_forward * self.movement_x + v_right * self.movement_y + v_up * self.movement_z; @@ -592,7 +592,7 @@ void SV_PlayerPhysics() else if (time < self.ladder_time) { // on a spawnfunc_func_ladder or swimming in spawnfunc_func_water - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; self.velocity = self.velocity * (1 - frametime * sv_friction); makevectors(self.v_angle); diff --git a/data/qcsrc/server/cl_player.qc b/data/qcsrc/server/cl_player.qc index e2c019932..20b7c0fde 100644 --- a/data/qcsrc/server/cl_player.qc +++ b/data/qcsrc/server/cl_player.qc @@ -480,7 +480,7 @@ void PlayerDamage (entity inflictor, entity attacker, float damage, float deatht // shootable corpse self.solid = SOLID_CORPSE; // don't stick to the floor - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; // dying animation self.deadflag = DEAD_DYING; // when to allow respawn diff --git a/data/qcsrc/server/cl_weapons.qc b/data/qcsrc/server/cl_weapons.qc index fe219c7db..a15e1766e 100644 --- a/data/qcsrc/server/cl_weapons.qc +++ b/data/qcsrc/server/cl_weapons.qc @@ -187,7 +187,7 @@ float W_ThrowNewWeapon(entity own, float wpn, float doreduce, vector org, vector wep.velocity = velo; wep.owner = wep.enemy = own; wep.classname = "droppedweapon"; - wep.flags = wep.flags | FL_TOSSED; + wep.flags |= FL_TOSSED; wep.colormap = own.colormap; wa = W_AmmoItemCode(wpn); diff --git a/data/qcsrc/server/cl_weaponsystem.qc b/data/qcsrc/server/cl_weaponsystem.qc index 120d6d0fd..7e37cfbb0 100644 --- a/data/qcsrc/server/cl_weaponsystem.qc +++ b/data/qcsrc/server/cl_weaponsystem.qc @@ -277,7 +277,7 @@ void CL_Weaponentity_Think() self.effects = self.owner.effects | EF_LOWPRECISION; self.effects = self.effects - (self.effects & (EF_FULLBRIGHT)); // can mask team color, so get rid of it - if (self.flags & FL_FLY) + if (self.owner.teleport_time) // owner is currently being teleported, so don't apply EF_NODRAW otherwise the viewmodel would "blink" self.effects &~= EF_NODRAW; diff --git a/data/qcsrc/server/g_damage.qc b/data/qcsrc/server/g_damage.qc index a6723841f..11d17d34c 100644 --- a/data/qcsrc/server/g_damage.qc +++ b/data/qcsrc/server/g_damage.qc @@ -823,7 +823,7 @@ void Damage (entity targ, entity inflictor, entity attacker, float damage, float if (vlen(force)) { self.velocity = self.velocity + self.damageforcescale * force; - self.flags = self.flags - (self.flags & FL_ONGROUND); + self.flags &~= FL_ONGROUND; UpdateCSQCProjectile(self); } // apply damage diff --git a/data/qcsrc/server/g_hook.qc b/data/qcsrc/server/g_hook.qc index c00899793..05edc12f0 100644 --- a/data/qcsrc/server/g_hook.qc +++ b/data/qcsrc/server/g_hook.qc @@ -227,7 +227,7 @@ void GrapplingHookThink() { self.owner.velocity = self.owner.velocity - dv * 0.5; self.aiment.velocity = self.aiment.velocity - dv * 0.5; - self.aiment.flags = self.aiment.flags - (self.aiment.flags & FL_ONGROUND); + self.aiment.flags &~= FL_ONGROUND; self.aiment.pusher = self.owner; self.aiment.pushltime = time + cvar("g_maxpushtime"); } diff --git a/data/qcsrc/server/sv_main.qc b/data/qcsrc/server/sv_main.qc index 35ee6719f..03e4e107e 100644 --- a/data/qcsrc/server/sv_main.qc +++ b/data/qcsrc/server/sv_main.qc @@ -13,7 +13,7 @@ void CreatureFrame (void) { if (!(self.flags & FL_INWATER)) { - self.flags = self.flags + FL_INWATER; + self.flags |= FL_INWATER; self.dmgtime = 0; } if (self.waterlevel != 3) @@ -60,7 +60,7 @@ void CreatureFrame (void) if (self.flags & FL_INWATER) { // play leave water sound - self.flags = self.flags - FL_INWATER; + self.flags &~= FL_INWATER; self.dmgtime = 0; } self.air_finished = time + 12; diff --git a/data/qcsrc/server/t_jumppads.qc b/data/qcsrc/server/t_jumppads.qc index afe0582e8..f0b90dba6 100644 --- a/data/qcsrc/server/t_jumppads.qc +++ b/data/qcsrc/server/t_jumppads.qc @@ -121,7 +121,7 @@ void trigger_push_touch() if(self.target) self.movedir = trigger_push_calculatevelocity(other.origin, self.enemy, self.height); - other.flags = other.flags - (other.flags & FL_ONGROUND); + other.flags &~= FL_ONGROUND; // reset tracking of oldvelocity for impact damage (sudden velocity changes) other.oldvelocity = other.velocity = self.movedir; diff --git a/data/qcsrc/server/t_teleporters.qc b/data/qcsrc/server/t_teleporters.qc index 71090f752..4cb2e3c8d 100644 --- a/data/qcsrc/server/t_teleporters.qc +++ b/data/qcsrc/server/t_teleporters.qc @@ -74,12 +74,10 @@ void TeleportPlayer(entity teleporter, entity player, vector to, vector to_angle // hide myself a tic player.effects = player.effects | EF_NODRAW; - if (player.weaponentity) // misuse FL_FLY to avoid EF_NODRAW on viewmodel - player.weaponentity.flags = player.weaponentity.flags | FL_FLY; player.teleport_time = time + cvar("sys_ticrate"); // player no longer is on ground - player.flags = player.flags - (player.flags & FL_ONGROUND); + player.flags &~= FL_ONGROUND; // reset tracking of oldvelocity for impact damage (sudden velocity changes) player.oldvelocity = player.velocity; -- 2.39.2