diff --git a/include/progs.h b/include/progs.h index df13bd9d..1f4812f6 100644 --- a/include/progs.h +++ b/include/progs.h @@ -968,7 +968,6 @@ typedef struct gedict_s int nullStrafeCount; // SOCD - qbool leavemealone; float shownick_time; // used to force centerprint is off at desired time clientType_t ct; // client type for client edicts // { timing diff --git a/src/client.c b/src/client.c index fe9645c3..4f4acb58 100644 --- a/src/client.c +++ b/src/client.c @@ -170,11 +170,9 @@ void CheckTiming(void) p->s.v.solid = 0; p->s.v.movetype = 0; SetVector(p->s.v.velocity, 0, 0, 0); // speed is zeroed and not restored - - // Relink after solid change to avoid stale area list membership - setorigin(p, PASSVEC3(p->s.v.origin)); } } + } else { @@ -1806,7 +1804,7 @@ void PutClientInServer(void) self->classname = "player"; self->s.v.health = 100; self->s.v.takedamage = DAMAGE_AIM; - self->s.v.solid = isCA() ? SOLID_NOT : self->leavemealone ? SOLID_TRIGGER : SOLID_SLIDEBOX; + self->s.v.solid = isCA() ? SOLID_NOT : SOLID_SLIDEBOX; self->s.v.movetype = MOVETYPE_WALK; self->show_hostile = 0; self->s.v.max_health = 100; @@ -2029,7 +2027,7 @@ void PutClientInServer(void) } else { - self->s.v.solid = self->leavemealone ? SOLID_TRIGGER : SOLID_SLIDEBOX; + self->s.v.solid = SOLID_SLIDEBOX; } setorigin(self, PASSVEC3(self->s.v.origin)); @@ -3056,9 +3054,6 @@ void BackFromLag(void) self->s.v.takedamage = self->k_timingTakedmg; self->s.v.solid = self->k_timingSolid; self->s.v.movetype = self->k_timingMovetype; - - // Relink after solid change to ensure proper area list placement - setorigin(self, PASSVEC3(self->s.v.origin)); } } @@ -3873,16 +3868,6 @@ void PlayerPreThink(void) race_player_pre_think(); - if (self->leavemealone) - { - if ((self->s.v.mins[0] == 0) || (self->s.v.mins[1] == 0)) - { - // This can happen if the world 'squashes' a SOLID_NOT entity, mvdsv will turn into corpse - setsize(self, PASSVEC3(VEC_HULL_MIN), PASSVEC3(VEC_HULL_MAX)); - } - setorigin(self, PASSVEC3(self->s.v.origin)); - } - // brokenankle included here if (self->s.v.button2 || self->brokenankle) { diff --git a/src/combat.c b/src/combat.c index b02178af..b73176e1 100644 --- a/src/combat.c +++ b/src/combat.c @@ -463,21 +463,6 @@ void T_Damage(gedict_t *targ, gedict_t *inflictor, gedict_t *attacker, float dam return; } - // don't bounce around players in prewar who wish to be left alone - if (match_in_progress != 2 && targ->leavemealone) - { - if (attacker != targ && ((targ->ct == ctPlayer) && (attacker->ct == ctPlayer))) - { - return; - } - else if (dtTELE1 == targ->deathtype // always do tele damage - || dtTELE2 == targ->deathtype // always do tele damage - || dtTELE3 == targ->deathtype) // always do tele damage - { - // telefrags still work, to avoid getting stuck - } - } - // can't damage other players in race if (isRACE() && (attacker != targ)) { diff --git a/src/commands.c b/src/commands.c index 96b6d48b..bdbdc2ab 100644 --- a/src/commands.c +++ b/src/commands.c @@ -72,7 +72,6 @@ void CTFBasedSpawn(void); // } CTF void FragsDown(void); void FragsUp(void); -void LeaveMeAlone(void); void ListWhoNot(void); void ModStatus1(void); void ModStatus2(void); @@ -395,7 +394,6 @@ const char CD_NODESC[] = "no desc"; #define CD_CTOCT "Show octal charset table" #define CD_CTHEX "Show hexadecimal charset table" #define CD_SHOWNICK "pointed player's info" -#define CD_LEAVEMEALONE "can't shoot/bounce players in prewar" #define CD_TIME5 "set timelimit to 5 mins" #define CD_TIME10 "set timelimit to 10 mins" #define CD_TIME15 "set timelimit to 15 mins" @@ -762,7 +760,6 @@ cmd_t cmds[] = { "sct_hex", ShowCharsetTableHexa, 0, CF_BOTH, CD_CTHEX }, { "about", ShowVersion, 0, CF_BOTH | CF_MATCHLESS, CD_ABOUT }, { "shownick", ShowNick, 0, CF_PLAYER | CF_PARAMS, CD_SHOWNICK }, - { "leavemealone", LeaveMeAlone, 0, CF_PLAYER | CF_PARAMS, CD_LEAVEMEALONE }, { "time5", DEF(TimeSet), 5.0f, CF_PLAYER | CF_SPC_ADMIN, CD_TIME5 }, { "time10", DEF(TimeSet), 10.0f, CF_PLAYER | CF_SPC_ADMIN, CD_TIME10 }, { "time15", DEF(TimeSet), 15.0f, CF_PLAYER | CF_SPC_ADMIN, CD_TIME15 }, @@ -4141,33 +4138,6 @@ void ShowNick(void) self->shownick_time = g_globalvars.time + 0.8; // clear centerprint at this time } -void LeaveMeAlone(void) -{ - if (match_in_progress) - { - return; - } - - if (isRA() || isRACE()) - { - return; - } - - if (self->leavemealone) - { - G_bprint(2, "%s %s\n", self->netname, redtext("no longer wants to be left alone")); - self->s.v.solid = SOLID_SLIDEBOX; - } - else - { - G_bprint(2, "%s %s\n", self->netname, redtext("wants to be left alone")); - self->s.v.solid = SOLID_TRIGGER; - } - - setorigin(self, PASSVEC3(self->s.v.origin)); - self->leavemealone = !self->leavemealone; -} - // qqshka // below predefined settings for usermodes diff --git a/src/match.c b/src/match.c index e482a34e..5ce59415 100644 --- a/src/match.c +++ b/src/match.c @@ -985,7 +985,6 @@ static void SM_PrepareClients(void) for (p = world; (p = find_plr(p));) { players[player_count++] = p; - p->leavemealone = false; // can't have this enabled during match } for (i = player_count - 1; i > 0; i--) @@ -1999,9 +1998,6 @@ void standby_think(void) p->s.v.movetype = 0; p->s.v.modelindex = 0; p->model = ""; - - // Relink after solid change to keep area lists consistent - setorigin(p, PASSVEC3(p->s.v.origin)); } } } @@ -2533,9 +2529,6 @@ void StopTimer(int removeDemo) p->s.v.solid = SOLID_SLIDEBOX; p->s.v.movetype = MOVETYPE_WALK; setmodel(p, "progs/player.mdl"); - - // Relink after solid change so players are returned to the correct list - setorigin(p, PASSVEC3(p->s.v.origin)); } } diff --git a/src/triggers.c b/src/triggers.c index e14128a1..81f5cfd3 100644 --- a/src/triggers.c +++ b/src/triggers.c @@ -715,7 +715,7 @@ void teleport_touch(void) } // only teleport living creatures - if (ISDEAD(other) || (!isRACE() && (other->s.v.solid != SOLID_SLIDEBOX) && !other->leavemealone)) + if (ISDEAD(other) || (!isRACE() && (other->s.v.solid != SOLID_SLIDEBOX))) { return; } diff --git a/src/weapons.c b/src/weapons.c index 287cc28b..95e116ae 100644 --- a/src/weapons.c +++ b/src/weapons.c @@ -377,12 +377,6 @@ void TraceAttack(float damage, vec3_t dir, qbool send_effects) return; } - //can't touch/damage players who want to be left alone - if (PROG_TO_EDICT(g_globalvars.trace_ent)->ct == ctPlayer && PROG_TO_EDICT(g_globalvars.trace_ent)->leavemealone) - { - return; - } - if (PROG_TO_EDICT(g_globalvars.trace_ent)->s.v.takedamage) { if (PROG_TO_EDICT(g_globalvars.trace_ent)->ct == ctPlayer) @@ -966,11 +960,6 @@ void T_MissileTouch(void) return; } - if (other->leavemealone) - { - return; - } - if (self->voided) { return; @@ -1334,12 +1323,6 @@ void GrenadeTouch(void) return; } - // can't touch players who want to be left alone - if (other->leavemealone) - { - return; - } - if (other->s.v.takedamage) { if (other->ct == ctPlayer) @@ -1534,12 +1517,6 @@ void spike_touch(void) return; } - // can't touch players who want to be left alone - if (other->leavemealone) - { - return; - } - if (self->voided) { return;