From 670a014b012c6bc42e2998498806d42b29a947cd Mon Sep 17 00:00:00 2001 From: bones_was_here Date: Sat, 15 Jul 2023 21:01:48 +1000 Subject: [PATCH] Remove legacy Quake bbox expansion: KA Gives ball a symmetrical bbox suitable for sv_legacy_bbox_expand 0 --- qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc | 6 +++++- qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc b/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc index c50d0d2fc..4ba23b197 100644 --- a/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc +++ b/qcsrc/common/gamemodes/gamemode/keepaway/sv_keepaway.qc @@ -198,6 +198,7 @@ void ka_DropEvent(entity player) // runs any time that a player is supposed to l IL_PUSH(g_damagedbycontents, ball); ball.effects &= ~EF_NODRAW; setorigin(ball, player.origin + '0 0 10'); + nudgeoutofsolid(ball); // a ball has a horizontally bigger bbox than a player ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom(); ball.owner = NULL; navigation_dynamicgoal_set(ball, player); @@ -240,7 +241,10 @@ void ka_SpawnBalls() entity e = new(keepawayball); setmodel(e, MDL_KA_BALL); e.solid = SOLID_TRIGGER; // before setsize to ensure area grid linking - setsize(e, '-16 -16 -20', '16 16 20'); // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off + // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off + // bones_was_here: that was WITH sv_legacy_bbox_expand 1 and FL_ITEM (mins -= '15 15 1'; maxs += '15 15 1') + // it's round so should have a symmetrical bbox, same height as pickup items so it can't be jumped over in any physics + setsize(e, '-24 -24 -24', '24 24 24'); e.damageforcescale = autocvar_g_keepawayball_damageforcescale; e.takedamage = DAMAGE_YES; e.event_damage = ka_DamageEvent; diff --git a/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc b/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc index 0be1e4663..507d31750 100644 --- a/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc +++ b/qcsrc/common/gamemodes/gamemode/tka/sv_tka.qc @@ -179,6 +179,7 @@ void tka_DropEvent(entity player) // runs any time that a player is supposed to ball.takedamage = DAMAGE_YES; ball.effects &= ~EF_NODRAW; setorigin(ball, player.origin + '0 0 10'); + nudgeoutofsolid(ball); // a ball has a horizontally bigger bbox than a player ball.velocity = '0 0 200' + '0 100 0'*crandom() + '100 0 0'*crandom(); ball.owner = NULL; navigation_dynamicgoal_set(ball, player); @@ -220,7 +221,10 @@ void tka_SpawnBalls() { entity e = new(keepawayball); setmodel(e, MDL_TKA_BALL); - setsize(e, '-16 -16 -20', '16 16 20'); // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off + // 20 20 20 was too big, player is only 16 16 24... gotta cheat with the Z (20) axis so that the particle isn't cut off + // bones_was_here: that was WITH sv_legacy_bbox_expand 1 and FL_ITEM (mins -= '15 15 1'; maxs += '15 15 1') + // it's round so should have a symmetrical bbox, same height as pickup items so it can't be jumped over in any physics + setsize(e, '-24 -24 -24', '24 24 24'); e.damageforcescale = autocvar_g_tkaball_damageforcescale; e.takedamage = DAMAGE_YES; e.solid = SOLID_TRIGGER; -- 2.39.2